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