Kodowanie i kompresja 1 Kody cykliczne: dekodowanie

Transkrypt

Kodowanie i kompresja 1 Kody cykliczne: dekodowanie
Kodowanie i kompresja
Streszczenie
Studia dzienne
Wykład 6
1 Kody cykliczne: dekodowanie
Definicja 1 (Syndrom) Niech K b˛edzie kodem cyklicznym z wielomianem generuja˛
cym g(x). Reszt˛e z dzielenia słowa w przez g(x) nazywamy syndromem s(w).
Metoda 1 (dla cyklicznego (n, k)-kodu):
• Preprocessing: tworzymy tablic˛e T , która każdej możliwej wartości syndromu s
przyporzadkowuje
˛
słowo e(s) o najmniejszej wadze takie, że s(e(s)) = s (możliwe wartości syndromu to wielomiany stopnia mniejszego od n − k).
LUB
dla kodu korygujacego
˛
t bł˛edów tworzymy list˛e L, która każdemu słowu e o wadze ≤ t przyporzadkowuje
˛
wartość syndromu s(e).
• Dekodujemy słowo w o długości n:
– wyznaczamy s = s(w)
– z tablicy T (lub listy L) odczytujemy e(s)
– jako wynik przyjmujemy w − e(s).
Fakt 1 Syndrom cyklicznego przesuni˛ecia w prawo słowa w jest równy reszcie z dzielenia xs(w) przez wielomian generujacy
˛ g(x).
Metoda Meggita (dla cyklicznego (n, k)-kodu) z wielomianem generujacym
˛
g(x)
˛
t bł˛edów tworzymy list˛e L, która każdemu słowu e o wa1. dla kodu korygujacego
dze ≤ t i majacemu
˛
jedynk˛e na skrajnie prawej pozycji przyporzadkowuje
˛
wartość syndromu s(e).
2. Dekodujemy słowo w: wyznaczamy syndrom s(w), nast˛epnie wykonaj n − 1
razy:
• jeśli s(w) znajduje si˛e na liście L, zmień wartość skrajnie prawego bitu w
• przesuń w prawo (cyklicznie w)
• za s(w) podstaw reszt˛e z dzielenie xs(w) przez g(x).
1
2 Dekodowanie: error-trapping decoding
Jeśli po przesłaniu słowa v do odbiorcy dociera słowo w, to e = w − v nazywamy
wzorcem bł˛edów.
Definicja 2 Cyklicznym wzorcem bł˛edów o długości l nazywamy niezerowe słowo binarne binarne e = e0 . . . en−1 takie, że wszystkie wartości niezerowe w e zawieraja˛ si˛e
w bloku o długości l, w cyklicznym sensie. To znaczy, istnieje i takie, że jedynki sa˛
zawarte w ei , e(i+1) mod n . . . , e(i+1) mod n . . .
Fakt 2 Niech K b˛edzie (n, k)-kodem cyklicznym korygujacym
˛
t bł˛edów. Niech w b˛edzie
słowem otrzymanym ze słowa kodowego wskutek co najwyżej t bł˛edów. Wówczas:
1. Jeśli waga Hamminga syndromu s(w) nie jest wi˛eksza od t, to wzorzec bł˛edów
e(w) jest równy wielomianowi s(w).
2. Jeśli wzorzec bł˛edów e(w) jest cyklicznym wzorcem o długości n − k to pewne
cykliczne przesuni˛ecie słowa w ma syndrom o wadze nie wi˛ekszej od t.
Algorytm “error-trapping”: Niech K b˛edzie cyklicznym (n, k)-kodem korygujacym
˛
t
bł˛edów. Wówczas nast˛epujacy
˛ algorytm koryguje kaźdy cykliczny wzorzec co najwyżej
t bł˛edów o długości n − k.
Dla słowa w, powtarzaj co najwyżej n − 1 razy
1. Wyznacz syndrom s(w)
2. Jeśli waga Hamminga słowa s(w) jest mniejsza lub równa t, odkoduj w jako
w − s(w) i zakończ.
3. Za w podstaw cykliczne przesuni˛ecie w w prawo.
Twierdzenie 1 Każdy cykliczny (n, k)-kod wykrywa każdy cykliczny wzorzec bł˛edów o
długości n − k.
3 Kody BCH
3.1 Podstawy algebraiczne
Definicja 3 (Algebraiczne rozszerzenie ciała) Algebraicznym rozszerzeniem ciała F
nazywamy pierścień
F [x]/mod p(x)
gdzie p(x) jest wielomianem stopnia m ≥ 1. Elementami tego rozszerzenia sa˛ wielomiany f (α) stopnia mniejszego niż m, zmiennej α nad F . Operacje algebraiczne sa˛
zdefiniowane nast˛epujaco:
˛
2
• dodawanie to standardowe dodawanie wielomianów;
• mnożenie: f (α)g(α) jest równe h(α), gdzie h(x) to reszta z dzielenia f (x)g(x)
przez p(x).
Twierdzenie 2 Algebraiczne rozszerzenie F [x]/mod p(x) dla nierozkładalnego p(x)
jest ciałem.
Definicja 4 Algebraiczne rozszerzenie ciała Zp za pomoca˛ nieredukowalnego wielomianu stopnia m nazywamy ciałem Galois i oznaczamy GF (pm ).
Definicja 5 Rz˛edem elementu a ciała F nazywamy minimalne n takie, że an = 1. Element a nazywamy generatorem ciała F , jeśli każdy element F można przedstawić jako
ak dla pewnego naturalnego k.
Fakt 3 Każdy niezerowy element ciała skończonego ma rzad
˛ b˛edacy
˛ dzielnikiem r − 1,
gdzie r jest liczba˛ elementów ciała.
Twierdzenie 3 Każde ciało skończone ma generator.
Definicja 6 Charakterystyka˛ ciała nazywamy minimalna˛ liczb˛e n taka,˛ że 1 + 1 + . . . +
1 = 0, gdzie liczba jedynek jest równa n.
Fakt 4 Każde ciało skończone ma charakterystyk˛e, która jest liczba˛ pierwsza.˛
Twierdzenie 4 Każde ciało F o charakterystyce p spełnia nast˛epujace
˛ warunki:
1. ap = a wtedy i tylko wtedy gdy a ∈ Zp
2. dla każdych a, b zachodzi (a + b)p = ap + bp .
3. jeśli wielomian nad Zp ma miejsce zerowe w punkcie a ∈ F , to wszystkie elementy
2
3
ciagu
˛ ap , ap , ap , . . . sa˛ miejscami zerowymi funkcji f (x).
Definicja 7 Niech F b˛edzie ciałem i niech β b˛edzie elementem rozszerzenia F . Wielomianem minimalnym elementu β jest moniczny wielomian (nad F ) o najmniejszym
stopniu majacy
˛ zero w β.
Fakt 5 Każdy element β ciała skończonego F ma jeden wielomian minimalny M (x).
Ponadto, M (x) jest dzielnikiem każdego wielomianu nad F , który ma miejsce zerowe w
β.
Fakt 6 Każdy wielomian minimalny jest nieredukowalny.
Twierdzenie 5 Wielomian minimalny (nad Zp ) elementu β należacego
˛
do ciała GF (pm )
jest równy
2
i
M (x) = (x − β)(x − β p )(x − β p ) · · · (x − β p ),
gdzie i to najmniejsza wartość taka, że β p
i+1
= β.
Fakt 7 W ciele złożonym z r elementów, rzad
˛ każdego elementu jest dzielnikiem r − 1.
Ponadto, każdy dzielnik r − 1 jest rz˛edem pewnego elementu.
3
3.2 Kody Hamminga jako kody cykliczne
Niech β b˛edzie elementem pewnego rozszerzenia ciała Z2 , rzad
˛ β wynosi n. Zdefiniujmy kod K jako zbiór tych słów (wielomianów) w0 w1 . . . wn−1 , dla których
w(β) = 0.
Jest to kod cykliczny, ponieważ: wielomian minimalny M (x) elementu β jest dzielnikiem xn − 1 (Fakt 5), a każdy inny wielomian v taki, że v(β) = 0 dzieli si˛e przez
M (x).
Fakt 8 Niech β b˛edzie generatorem GF (2m ). Wówczas binarny kod cykliczny o długości 2m − 1 opisany równaniem w(β) = 0 jest (cyklicznym) kodem Hamminga.
3.3 Kody BCH
Niech F b˛edzie ciałem skończonym, n liczba˛ wzgl˛ednie pierwsza˛ z liczba˛ elementów
F . Kodem BCH korygujacym
˛
t bł˛edów nad alfabetem F jest kod cykliczny złożony ze
wszystkich słów w ∈ F n spełniajacych
˛
równanie
w(β) = w(β 2 ) = w(β 3 ) = . . . = w(b2t ) = 0,
gdzie β jest elementem rz˛edu n pewnego algebraicznego rozszerzenia F . Inaczej mówiac,
˛ słowa kodowe to wielomiany nad F , stopnia mniejszego od n, majace
˛ zera w
2
2t
β, β , . . . , β .
Twierdzenie 6 Kod BCH o długości n, korygujacy
˛ t bł˛edów jest kodem cyklicznym,
którego wielomian generujacy
˛ jest równy
g(x) = LCM(M1 (x), M2 (x), . . . , M2t (x)),
gdzie Mi (x) to minimalny wielomian dla β i , a LCM oznacza najmniejsza˛ wspólna˛
wielokrotność argumentów.
Macierz parzystości kodu BCH o długości n, korygujacego
˛
t bł˛edów:








1
1
1
...
1
β
β2
β3
2
2 2
β
(β ) (β 2 )3
β 3 (β 3 )2 (β 3 )3
...
β 2t (β 2t )2 (β 2t )3
...
β n−1
. . . (β 2 )n−1
. . . (β 3 )n−1








. . . (β 2t )n−1
˛
t bł˛edów kodu BCH wynosi co najTwierdzenie 7 Minimalna odległość korygujacego
mniej 2t + 1. Oznacza to, że kod ten rzeczywiście koryguje t bł˛edów.
Fakt 9 Niech K b˛edzie kodem BCH utworzonym w oparciu o generator ciała GF (2n ),
korygujacym
˛
t bł˛edów. Słowo kodowe kodu K ma długość 2n − 1 i zawiera co najmniej
n
2 − 1 − 2tn bitów danych.
4
3.4 Kody BCH - dekodowanie
1. Zastosowanie standardowych metod dekodowania dla kodów liniowych badź
˛ kodów cyklicznych: dekodowanie
jednego słowa kodowego wymaga listy syndro³ ´
n
mów o rozmiarze rz˛edu t (czyli wykładniczym ze wzgl˛edu na t), gdzie n to
długość słowa kodowego a t liczba korygowanych bł˛edów.
2. Istnieja˛ efektywne algorytmy dekodowania dla kodów BCH, których czas działania jest wielomianowy ze wzgl˛edu na n i t.
3. Przykład zastosowania algorytmu “error-trapping”:
Niech K b˛edzie kodem BCH zdefiniowanym przez generator dla ciała GF (24 ),
korygujacy
˛ 2 bł˛edy. Jest to kod o długości 15, słowo kodowe zawiera 7 bitów
danych, czyli jest to (15, 7)-kd. A zatem algorytm error trapping pozwala na
skorygowanie cyklicznych wzorców co najwyżej 2 bł˛edów o długości co najwyżej
8.
Lecz w słowie o długości 15 każdy układ dwóch bł˛edów jest cyklicznych wzorcem o długości ≤ 8.
Algorytm dekodowania dla kodów BCH poprawiajacych
˛
2 bł˛edy
1. Niech K to kod BCH o długości n, zdefiniowany poprzez generator β ciała
GF (2m ) (czyli słowa kodowe spełniaja˛ w(β) = w(β 3 ) = 0).
2. Odtwarzanie słowa kodowego, gdy do odbiorcy dotarło słowo w:
(a) Wyznacz s1 = w(β), s3 = w(β 3 ).
(b) Jeśli s1 = s3 = 0, to w jest słowem kodowym.
(c) Jeśli s1 = 0 6= s3 , to liczba bł˛edów jest wi˛eksza od 2.
(d) Jeśli s1 6= 0: rozwiazujemy
˛
metoda˛ “brute force” układ równań:
x2 + s1 x + (s21 + s3 s−1
1 ) = 0
(1)
Niech pierwiastki tego równania b˛eda˛ równe β i i β j . Wówczas poprawiamy
wartości bitów na pozycjach i oraz j.
5