WST P DO TEORII INFORMACJI I KODOWANIA Grzegorz Szkibiel Wiosna 203/4
Spis tre±ci Kodowanie i dekodowanie 4. Kodowanie a szyfrowanie..................... 4.2 Podstawowe poj cia........................ 5.3 Dekodowanie jednoznaczne.................... 7.4 Kody blokowe i natychmiastowe................. 7.5 Przykªady znanych kodów blokowych.............. 8 2 Twierdzenia Krafta i McMillana 0 2. Konstruowanie kodów natychmiastowych............ 0 2.2 Twierdzenia............................ 3 Kody Humana 3 3. ródªo informacji......................... 3 3.2 Denicja kodu Humana..................... 4 3.3 Konstrukcja kodu Humana................... 5 4 Kompresowanie kodów i entropia 8 4. Przykªad kompresowania danych................. 8 4.2 Idea entropii............................ 9 4.3 Denicja entropii......................... 20 4.4 Maximum i minimum entropii.................. 2 4.5 Rozszerzenie ¹ródªa........................ 23 4.6 Entropia a przeci tna dªugo± sªowa kodowego......... 24 4.7 Twierdzenie Shannona o kodowaniu bezszumowym....... 25 5 Pewna komunikacja poprzez niepewne ª cza 27 5. Symetryczne ª cze binarne.................... 27 5.2 Pr dko± przepªywu informacji.................. 29 2
5.3 Bariera pojemno±ci........................ 30 5.4 Odlegªo± Hamminga....................... 3 5.5 Wykrywanie i poprawianie bª dów................ 33 6 Kody liniowe 35 6. Denicja.............................. 35 6.2 Macierz generuj ca........................ 36 6.3 Równania opisuj ce kody..................... 39 6.4 Macierz sprawdzaj ca....................... 40 6.5 Waga Hamminga......................... 4 6.6 Syndrom.............................. 43 6.7 Wykrywanie i poprawianie bª dów................ 44 7 Kody Hamminga 46 7. Optymalne kody poprawiaj ce pojedyncze bª dy........ 46 7.2 Przykªady kodów Hamminga................... 48 7.3 Dekodowanie kodów Hamminga................. 49 7.4 Uwagi ko«cowe.......................... 50 8 Kody ReedaMüllera 5 8. Funkcje Boole'a.......................... 5 8.2 Wielomiany Boole'a........................ 54 8.3 Kody ReedaMüllera....................... 56 8.4 Geometria aniczna nad ciaªem Z 2............... 60 8.5 Dekodowanie kodu Reeda-Müllera................ 63 3
Rozdziaª 7 Kody Hamminga 7. Optymalne kody poprawiaj ce pojedyncze bª dy Zajmiemy si teraz kodami liniowymi, które zostaªy skonstruowane w celu wykrywania pojedynczych bª dów. Jak wiadomo, taki kod powinien mie wag minimaln wi ksz lub równ 3. Naszym zadaniem jest skonstruowanie optymalnego kodu poprawiaj cego pojedyncze bª dy, czyli liczba bitów sprawdzaj cych powinna by mo»liwie najmniejsza. Pierwszy punkt zaczepienia daje nam nast puj ce twierdzenie. 7. Twierdzenie. Ka»dy binarny kod liniowy dªugo±ci n poprawiaj cy pojedyncze bª dy ma co najmniej log 2 (n + ) bitów sprawdzaj cych. Dowód. Zaªó»my,»e K jest naszym kodem liniowym i»e ma on r bitów sprawdzaj cych. Wynika st d,»e bitów informacyjnych jest n r. Rozwa»my bloki informacyjne, w których wyst puje dokªadnie jedna jedynka. Takich bloków jest n r. Poniewa» K poprawia pojedyncze bª dy, wi c jego minimalna waga musi by wi ksza lub równa 3. Zatem w±ród bitów sprawdzaj cych odpowiadaj cych rozwa»anym blokom informacyjnym musz si znajdowa przynajmniej dwie jedynki. Otrzymujemy wi c nierówno± ( ) ( ) ( ) r r r n r + + +, 2 3 r która musi by speªniona. Jest ona równowa»na nierówno±ci n r 2 r r. 46
Z ostatniej nierówno±ci otrzymujemy log 2 (n + ) r. Poniewa» r jest liczb caªkowit, wi c log 2 (n + ) r. Wobec powy»szego twierdzenia, ªatwo jest zauwa»y,»e nasz optymalny kod powinien mie dªugo± 2 m oraz posiada dokªadnie m bitów sprawdzaj cych. Przyjrzyjmy si teraz jak powinna wygl da macierz sprawdzaj ca kod poprawiaj cy pojedyncze bª dy. 7.2 Twierdzenie. Dwójkowy kod K poprawia pojedyncze bª dy wtedy i tylko wtedy, gdy ka»da jego macierz sprawdzaj ca ma niezerowe i parami ró»ne kolumny. Dowód. Zaªó»my najpierw,»e K poprawia pojedyncze bª dy. Niech H b dzie macierz sprawdzaj c kod K, w której jedna kolumna (powiedzmy j-ta) skªada si z samych zer. Wówczas sªowo o wadze Hamminga, które jedyn jedynk ma na pozycji j-tej jest sªowem kodowym. Zatem K nie mo»e poprawia pojedynczych bª dów. Zaªó»my teraz,»e macierz sprawdzaj ca kod K ma identyczne dwie kolumny, powiedzmy i-t oraz j-t. Wtedy sªowo o wadze Hamminga 2, które ma jedynki na pozycjach i-tej oraz j-tej jest sªowem kodowym, co znów oznacza,»e K nie mo»e poprawi pojedynczych bª dów. Zaªó»my teraz,»e H jest macierz sprawdzaj c kod K, która nie ma kolumn skªadaj cych si z samych zer oraz nie ma dwóch identycznych kolumn. Mno» c H przez sªowo w którym wyst puje dokªadnie jedna jedynka (powiedzmy na pozycji j), otrzymamy j-t kolumn macierzy H, która nie jest zerowa. Zatem sªowa o wadze Hamminga nie s sªowami kodowymi. Podobnie, je±li pomno»ymy H przez sªowo maj ce jedynki na pozycjach i oraz j otrzymamy sum i-tej i j-tej kolumny macierzy H. Poniewa» kolumny te s ró»ne, wi c suma nie b dzie zerowa. Zatem sªowa o wadze Hamminga 2 te» nie s sªowami kodowymi. Tak wi c waga minimalna kodu K wynosi przynajmniej 3, czyli K poprawia pojedyncze bª dy. Z powy»szego twierdzenia w poª czeniu z dyskusj po twierdzeniu 7. wnioskujemy jak powinna wygl da macierz sprawdzaj ca optymalny kod poprawiaj cy pojedyncze bª dy: powinna mie ona 2 m parami ró»nych, niezerowych kolumn. Czyli jej kolumnami powinny by wszystkie liczby od do 2 m zapisane w ukªadzie dwójkowym. Liniowy kod dwójkowy K nazywamy kodem Hamminga, je±li dla pewnego m 2 macierz sprawdzaj ca kod H ma m wierszy oraz 2 m kolumn, które 47
stanowi liczby od do 2 m zapisane w systemie o podstawie 2 (lub ka»de niezerowe sªowo binarne dªugo±ci m jest pewn kolumn macierzy H). 7.2 Przykªady kodów Hamminga Z podanej denicji wynika,»e kody Hamminga zale» od jednego paramatru m, który jest liczb naturaln wi ksz lub równ 2. Kody Hamminga b dziemy wi c oznacza H m. Dla H 2, macierz sprawdzaj c jest macierz 2 3 [ ] 0 0 Zatem kod jest opisany ukªadem równa«x 2 + x 3 = 0 x + x 3 = 0, który jest równowa»ny równaniu x = x 2 = x 3. Zatem H 2 = K 3. Macierz generuj c kod H 2 jest [ ]. Rozwa»my teraz kod H 3. Jego macierz sprawdzaj c jest 0 0 0 0 0 0 0 0 0 Kod jest wi c opisany ukªadem równa«który jest równowa»ny poni»szemu:. x 4 + x 5 + x 6 + x 7 = 0 x 2 + x 3 + x 6 + x 7 = 0 x + x 3 + x 5 + x 7 = 0, x 5 = x 2 + x 3 + x 4 x 6 = x + x 3 + x 4 x 7 = x + x 2 + x 4. Je±li wi c x, x 2, x 3 oraz x 4 s bitami informacyjnymi, to macierz generuj ca H 3 ma posta 0 0 0 0 0 0 0 0 0 0 0 0. 0 0 0 48
Kod H 3 jest najprostszym nietrywialnym kodem Hamminga. Kody Hamminga H m dla m > 3 staj si do± niewygodne w zapisie. Podamy tu jeszcze macierz sprawdzaj c kod H 4, ale nie b dziemy tego kodu szczegóªowo rozwa»a. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.3 Dekodowanie kodów Hamminga Jedn z przyczyn, dla których kody Hamminga s do± popularne jest ªatwo± ich dekodowania. Tak jak w przypadku ogólnym, dekodowanie polega na obliczeniu syndromu, którym jest iloczyn macierzy sprawdzaj cej i otrzymanego sªowa. Tym razem jednak nie trzeba konstruowa tabeli reprezentantów warstw oraz odpowiadaj cej im listy syndromów jak w poprzednim rozdziale, poniewa» tutaj syndrom jest zapisanym w ukªadzie dwójkowym numerem pozycji znieksztaªconego bitu. Dla przykªadu, rozwa»my sytuacj, w której otrzymujemy sªowo 00 (wykorzystujemy kod H 3 ). Jego syndromem jest s T = 0 0 0 0 0 0 0 0 0 0 0 = co oznacza,»e znieksztaªcony zostaª (0) 2 = 6 bit. Zatem otrzymane sªowo dekodujemy jako 000. Dlaczego opisany powy»ej algorytm jest prawidªowy? Aby odpowiedzie na to pytanie, zaªó»my,»e otrzymali±my sªowo w = w w 2... w 2 m ze znieksztaªconym jednym bitem. Przyjmijmy,»e bª d wyst piª na pozycji i. Znieksztaªcenie bita jest równowa»ne dodaniu sªowa d i, które ma zera na wszystkich pozycjach z wyj tkiem i-tej. Zatem w = v + d i, gdzie v jest wysªanym sªowem kodowym. Je±li macierz sprawdzaj c oznaczymy przez H, to syndrom (transponowany) jest równy Hw T = Hv T + Hd T i = Hd T i. 49 0,.
Ale ostatni iloczyn to i-ta kolumna macierzy H, czyli i zapisane w systemie o podstawie 2. Dowodzi to sªuszno±ci przedstawionego algorytmu. 7.4 Uwagi ko«cowe Zauwa»my,»e pr dko± przepªywu informacji dla kodów Hamminga wynosi R = m 2 m. Zatem je±li m, to R. Odlegªo± minimalna dla ka»dego kodu Hamminga wynosi 3. Wynika to z dwóch faktów. Po pierwsze, pokazali±my,»e H m poprawia pojedyncze bª dy, zatem odlegªo± minimalna musi wynosi przynajmniej trzy. Po drugie, sªowo 00... 0 jest sªowem kodowym w dowolnym kodzie Hamminga, wi c waga minimalna (a wi c i odlegªo± minimalna) H m wynosi dokªadnie 3. Optymalno± (w sensie opisanym na pocz tku) ma te» swoje wady. Otó» ka»de sªowo jest albo sªowem kodowym, albo jego odlegªo± Hamminga od pewnego sªowa kodowego wynosi dokªadnie. Oznacza to,»e je±li w wyniku transmisji wyst piªy dwa bª dy, to otrzymane sªowo zostanie na pewno ¹le rozkodowane. 50