Kod wielomianu
W teorii kodowania kod wielomianowy jest rodzajem kodu liniowego , którego zestaw prawidłowych słów kodowych składa się z tych wielomianów (zwykle o pewnej ustalonej długości), które są podzielne przez dany ustalony wielomian (o krótszej długości, zwany wielomianem generatora ).
Definicja
Napraw pole , elementy _ W celu konstruowania kodów wielomianowych identyfikujemy ciąg symboli wielomianem
Ustal i ustalonym zwanym _ _ Kod wielomianowy generowany przez kod, którego słowa kodowe są dokładnie podzielnymi wielomianami stopnia niż { (bez reszty) przez .
Przykład
Rozważ kod wielomianu nad z , i wielomian generatora sol . Kod ten składa się z następujących słów kodowych:
Lub wyraźnie napisane:
Ponieważ kod wielomianu jest zdefiniowany w binarnym polu Galois jako , modulo końcowe wielomiany to:
Równoważnie, wyrażone jako ciągi cyfr binarnych, słowa kodowe to:
To, jak każdy kod wielomianowy, jest rzeczywiście kodem liniowym , tj. liniowe kombinacje słów kodowych są ponownie słowami kodowymi. W przypadku takim jak ten, gdzie polem jest GF(2), kombinacje liniowe są znajdowane poprzez XOR słów kodowych wyrażonych w postaci binarnej (np. 00111 XOR 10010 = 10101).
Kodowanie
W kodzie wielomianowym nad i wielomianem generatora m , będzie dokładnie słów kodowych. Rzeczywiście, z definicji jest słowem kodowym wtedy i tylko wtedy, gdy ma postać , gdzie ( iloraz ) ma stopień mniejszy niż . Ponieważ istnieje takich ilorazów jest taka sama liczba możliwych słów kodowych. Zwykłe (niekodowane) słowa danych powinny zatem mieć długość
Niektórzy autorzy, na przykład (Lidl i Pilz, 1999), omawiają tylko mapowanie jako przypisanie słów danych do słów kodowych. Ma to jednak tę wadę, że słowo danych nie pojawia się jako część słowa kodowego.
systematycznego kodu często używana jest następująca metoda : biorąc uwagę słowo danych długości najpierw pomnóż przez , co skutkuje przesunięciem o miejsca po lewej stronie. Ogólnie rzecz biorąc, nie będzie podzielna przez g ( x)} . Istnieje jednak unikalne słowo kodowe, które można uzyskać, dostosowując skrajne prawe ( . Aby to obliczyć, oblicz resztę z dzielenia przez :
gdzie ma stopień mniejszy niż . Słowo kodowe odpowiadające słowu danych następnie definiowane jako re
Zwróć uwagę na następujące właściwości:
- , który jest podzielny przez . W szczególności jest prawidłowym słowem kodowym.
- Ponieważ ma stopień mniejszy niż skrajne lewe p ) z odpowiednimi symbolami . Innymi słowy, pierwszy symbole słowa kodowego są takie same jak oryginalne słowo danych. Pozostałe nazywane są cyframi sumy kontrolnej bitami kontrolnymi .
Przykład
Dla powyższego kodu z , i wielomian generatora sol , otrzymujemy następujące przyporządkowanie słów danych do słów kodowych:
- 000 ↦ 000 00
- 001 ↦ 001 11
- 010 ↦ 010 01
- 011 ↦ 011 10
- 100 ↦ 100 10
- 101 ↦ 101 01
- 110 ↦ 110 11
- 111 ↦ 111 00
Rozszyfrowanie
Błędną wiadomość można wykryć w prosty sposób poprzez dzielenie wielomianu przez wielomian generatora, co daje niezerową resztę.
że słowo kodowe jest wolne od błędów, systematyczny kod można zdekodować po prostu usuwając sumy kontrolnej.
Jeśli występują błędy, przed dekodowaniem należy przeprowadzić korekcję błędów. Istnieją wydajne algorytmy dekodowania dla określonych kodów wielomianowych, takich jak kody BCH .
Własności kodów wielomianowych
Podobnie jak w przypadku wszystkich kodów cyfrowych, możliwości wykrywania i korygowania błędów kodów wielomianowych są określone przez minimalną odległość Hamminga kodu. Ponieważ kody wielomianowe są kodami liniowymi, minimalna odległość Hamminga jest równa minimalnej wadze dowolnego niezerowego słowa kodowego. W powyższym przykładzie minimalna odległość Hamminga wynosi 2, ponieważ 01001 jest słowem kodowym i nie ma niezerowego słowa kodowego z ustawionym tylko jednym bitem.
Bardziej szczegółowe właściwości kodu wielomianowego często zależą od określonych właściwości algebraicznych jego wielomianu generatora. Oto kilka przykładów takich właściwości:
- Kod wielomianu jest cykliczny wtedy i tylko wtedy, gdy wielomian generatora dzieli . .
- Jeśli wielomian generatora jest prymitywny , to wynikowy kod ma odległość Hamminga co najmniej 3, pod warunkiem, że .
- W kodach BCH wielomian generatora jest wybierany tak, aby miał określone pierwiastki w polu rozszerzenia, w sposób zapewniający dużą odległość Hamminga.
Algebraiczny charakter kodów wielomianowych, ze sprytnie dobranymi wielomianami generującymi, często można również wykorzystać do znalezienia wydajnych algorytmów korekcji błędów. Tak jest w przypadku kodów BCH .
Konkretne rodziny kodów wielomianowych
- Kody cykliczne – każdy kod cykliczny jest jednocześnie kodem wielomianowym; popularnym przykładem jest CRC .
- Kody BCH – rodzina kodów cyklicznych o dużej odległości Hamminga i wydajnych algorytmach algebraicznej korekcji błędów.
- Kody Reeda-Solomona - ważny podzbiór kodów BCH o szczególnie wydajnej strukturze.
- WJ Gilbert i WK Nicholson: Nowoczesna algebra z aplikacjami , wydanie 2, Wiley, 2004.
- R. Lidla i G. Pilza. Applied Abstract Algebra, wydanie 2. Wiley, 1999.