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