Kodowanie i kompresja 1 Kody cykliczne
Transkrypt
Kodowanie i kompresja 1 Kody cykliczne
Kodowanie i kompresja Streszczenie Studia dzienne Wykład 5 1 Kody cykliczne Definicja 1 Kod liniowy K nazywamy cyklicznym jeśli dla każdego słowa kodowego v0 . . . vn−1 , słowem kodowym jest również jego cykliczne przesuni˛ecie vn−1 v0 v1 . . . vn−2 . Przyklad 1 Kod parzystości i kod powtórzeniowy sa˛ kodami cyklicznymi. Kod Hamminga nie jest kodem cyklicznym (p. 1111000). Słowo a0 a1 . . . ak nad alfabetem Np = {0, 1, . . . , p − 1} traktujemy jako reprezentacj˛e wielomianu jednej zmiennej a0 + a1 x + a2 x2 + . . . + ak xk nad ciałem Zp . Dla słowa w, przez w(x) oznaczać b˛edziemy wielomian, który ono reprezentuje. Przyjmujemy, że wielomian identycznościowo równy 0 jest wielomianem stopnia −1. Dla słów v, w nad alfabetem Np , stosować możemy nast˛epujace ˛ operacje: • dodawanie: wynikiem jest słowo reprezentujace ˛ wielomian b˛edacy ˛ suma˛ wielomianów odpowiadajacych ˛ słowom v i w; • mnożenie: wynikiem jest słowo reprezentujace ˛ wielomian b˛edacy ˛ iloczynem wielomianów odpowiadajacych ˛ słowom v i w; • dzielenie: w wyniku uzyskujemy dwa słowa q (iloraz) i r (reszta) takie, że v(x) = w(x)q(x) + r(x), stopień r(x) jest mniejszy od stopnia w(x). Uwaga: wielomian w(x) stopnia s może mieć wiele reprezentacji: w postaci słów o długościach s + 1, s + 2, s + 3, . . .. Fakt 1 Niech K b˛edzie kodem cyklicznym o długości n. Wówczas, dla każdych wielomianów g(x), q(x) takich, że stopień g(x)q(x) jest mniejszy od n zachodzi: g(x) należy do kodu K ⇒ g(x)q(x) należy do kodu K. 1 Kod, którego jedynym elementem jest słowo złożone z samych zer nazywamy kodem trywialnym. Twierdzenie 1 Każdy nietrywialny (n, k)-kod cykliczny K zawiera słowo kodowe g(x) stopnia n − k. Nast˛epnie: 1. Zbiór słów kodowych kodu K jest równy zbiorowi wielomianów postaci g(x)q(x), gdzie q(x) jest dowolnym wielomianem stopnia mniejszego niż k. 2. kod K ma macierz generatorów (o k wierszach), której i-ty wiersz jest wielomianem g(x)xi−1 . Definicja 2 Wielomianem generujacym ˛ nietrywialnego cyklicznego (n, k)-kodu nazywamy słowo kodowe tego kodu stopnia n − k (którego współczynnik przy xn−k jest równy 1). Przyklad 2 Wielomian generujacy ˛ kodu parzystości to 1 + x; kodu powtórzeniowego 1 + x + . . . + xn−1 . Dla kodu Hamminga (7, 4) można stworzyć kod równoważny (tzn. powstaje przez ustalona˛ permutacj˛e pozycji w słowach kodowych), który jest cykliczny i ma wielomian generujacy ˛ 1 + x + x3 . Obserwacja 1 Kod cykliczny ma jeden wielomian generujacy ˛ (z dokładnościa˛ do iloczynu przez stała). ˛ 1.1 Kodowanie 1.1.1 Kodowanie niesystematyczne Dane: macierz generatorów G rozmiaru k × n i ciag ˛ do zakodowania u = u0 . . . uk−1 . Kodowanie: zakodowana postać u jest równa uG. 1.1.2 Kodowanie systematyczne Dane: wielomian generujacy ˛ g(x) i ciag ˛ do zakodowania u = u0 . . . uk−1 . Niech u0 (x) = u0 xn−k + u1 xn−k+1 + . . . + uk−2 xn−2 + uk−1 xn−1 (czyli u0 (x) = u(x)xn−k ). Kodowanie: • dzielimy u0 (x) przez g(x): u0 (x) = q(x)g(x) + r(x) gdzie stopień r(x) jest < n − k. • zakodowana postać u jest równa u0 (x) − r(x). Obserwacja 2 Prefiksem (o długości k) słowa odpowiadajacego ˛ wielomianowi u0 (x)− r(x) jest u. 2 1.2 Wielomiany parzystości Fakt 2 Jeśli g(x) jest wielomianem generujacym ˛ kodu cyklicznego o długości n, to k n x g(x) + x − 1 również jest słowem kodowym tego kodu, gdzie n − k to stopień g(x). Twierdzenie 2 Jeśli g(x) jest wielomianem generujacym ˛ kodu cyklicznego o długości n, to g(x) jest dzielnikiem wielomiany xn − 1. Z drugiej strony, każdy właściwy dzielnik wielomianu xn −1 jest wielomianem generujacym ˛ pewnego kodu cyklicznego o długości n. Definicja 3 Niech K b˛edzie kodem cyklicznym o długości n, którego wielomian generujacy ˛ jest równy g(x). Wówczas, wielomian h(x) = xn − 1 g(x) nazywamy wielomianem parzystości kodu K. Kody cykliczne o długości 7: Wiel.gen. Wiel.parzyst. x+1 (x3 + x + 1)(x3 + x2 + 1) x3 + x + 1 (x + 1)(x3 + x2 + 1) 3 2 x +x +1 (x + 1)(x3 + x + 1) (x + 1)(x3 + x + 1) x3 + x 2 + 1 (x + 1)(x3 + x2 + 1) x3 + x + 1 3 3 2 (x + x + 1)(x + x + 1) x+1 1 x7 − 1 Kod parzystości Hamminga (spermut.) Hamminga (spermut.) Simplex Simplex powtórzeniowy wszystkie słowa Fakt 3 Niech K b˛edzie kodem cyklicznym o długości n i wielomianie parzystości h(x) stopnia k. Wówczas K ma macierz parzystości (o n − k wierszach), której i-ty wiersz jest równy (h(x)xi−1 )R . 3