Kod liniowy - Linear code

W teorii kodowania , A kod liniowy jest kod korekcji błędów dla których każda kombinacja liniowa od słów kodowych jest słowo kodowe. Kody liniowe są tradycyjnie podzielone na kody blokowe i kody splotowe , chociaż kody turbo można postrzegać jako hybrydę tych dwóch typów. Kody liniowe pozwalają na bardziej wydajne algorytmy kodowania i dekodowania niż inne kody (por. dekodowanie syndromów ).

Kody liniowe są używane w korekcji błędów w przód i są stosowane w sposobach przesyłania symboli (np. bitów ) w kanale komunikacyjnym tak, że jeśli wystąpią błędy w komunikacji, niektóre błędy mogą zostać poprawione lub wykryte przez odbiorcę bloku wiadomości. Słowa kodowe w liniowym kodzie blokowym to bloki symboli, które są zakodowane przy użyciu większej liczby symboli niż oryginalna wartość do wysłania. Kod liniowy o długości n przesyła bloki zawierające n symboli. Na przykład [7,4,3] kod Hamminga jest liniowym kodem binarnym, który reprezentuje 4-bitowe wiadomości przy użyciu 7-bitowych słów kodowych. Dwa różne słowa kodowe różnią się co najmniej trzema bitami. W konsekwencji można wykryć do dwóch błędów na słowo kodowe, a jeden błąd można poprawić. Ten kod zawiera 2 4 =16 słów kodowych.

Definicja i parametry

Kod liniowy o długości n i pozycjonowanie k jest liniowy podprzestrzeń C z wymiar k części przestrzeni wektorowej , gdzie jest skończonego z q elementów. Taki kod nazywamy kodem q- arnym. Jeśli q  = 2 lub q  = 3, kod jest opisany odpowiednio jako kod binarny lub kod trójskładnikowy . Wektory w C nazywane są słowami kodowymi . Rozmiar z kodem jest liczba słów kodowych i wynosi q k .

Ciężar słowa kodowego jest liczba jego elementów, które są różne od zera, a odległość pomiędzy dwoma kodowych pada odległość Hamminga pomiędzy nimi, to znaczy liczbę elementów, które różnią się. Odległość d kodu liniowego jest minimalną wagą jego niezerowych słów kodowych lub równoważnie minimalną odległością między różnymi słowami kodowymi. Kod liniowy o długości n , wymiarze k i odległości d jest nazywany kodem [ n , k , d ].

Chcemy podać podstawę standardową, ponieważ każda współrzędna reprezentuje „bit”, który jest przesyłany przez „zaszumiony kanał” z pewnym małym prawdopodobieństwem błędu transmisji ( binarny kanał symetryczny ). Jeśli zastosuje się jakąś inną podstawę, to tego modelu nie da się zastosować, a metryka Hamminga nie mierzy liczby błędów w transmisji, tak jak tego chcemy.

Generator i macierze kontrolne

W liniowej podprzestrzeni w kod cała C (co może być bardzo duża) może być przedstawiony jako rozpiętość zbioru słów kodowych (znany jako podstawa w liniowym Algebra ). Te podstawowe słowa kodowe są często zestawiane w rzędach macierzy G znanej jako macierz generująca kod C . Gdy G ma postać macierzy blokowej , gdzie oznacza macierz jednostkową, a P jest pewną macierzą, wtedy mówimy, że G ma postać standardową .

Macierz H reprezentujących funkcję liniową których jądro jest C jest nazywana macierzy kontroli z C (lub czasami macierzy kontroli parzystości). Równoważnie H jest macierzą, której zerową przestrzenią jest C . Jeśli C jest kodem z macierzą generującą G w postaci standardowej , to jest macierzą kontrolną dla C. Kod generowany przez H nazywa się kodem dualnym C. Można zweryfikować, że G jest macierzą, a H jest macierzą matryca.

Liniowość gwarantuje, że minimalna odległość Hamminga d między słowem kodowym c 0 a dowolnym innym słowem kodowym c  ≠  c 0 jest niezależna od c 0 . Wynika to z własności, że różnica c  −  c 0 dwóch słów kodowych w C jest również słowem kodowym (tj. elementem podprzestrzeni C ) oraz własności, że d ( c , c 0 ) =  d ( c  −  c 0 ) , 0). Te właściwości sugerują, że

Innymi słowy, aby znaleźć minimalną odległość między słowami kodowymi kodu liniowego, wystarczy spojrzeć na niezerowe słowa kodowe. Niezerowe słowo kodowe o najmniejszej wadze ma wtedy minimalną odległość do zerowego słowa kodowego, a zatem określa minimalną odległość kodu.

Odległość d kodu liniowego C jest również równa minimalnej liczbie liniowo zależnych kolumn macierzy kontrolnej H .

Dowód: Ponieważ , który jest odpowiednikiem , gdzie jest kolumną . Usuń te elementy z , te z są liniowo zależne. Dlatego jest co najmniej minimalna liczba kolumn zależnych liniowo. Z drugiej strony rozważ minimalny zestaw kolumn zależnych liniowo, gdzie jest zestawem indeksu kolumny. . Rozważmy teraz wektor taki, że if . Uwaga, ponieważ . Dlatego mamy , który jest minimalną liczbą liniowo zależnych kolumn w . Twierdzona własność jest zatem udowodniona.

Przykład: kody Hamminga

Jako pierwsza klasa kodów liniowych opracowanych do celów korekcji błędów, kody Hamminga są szeroko stosowane w systemach komunikacji cyfrowej. Dla każdej dodatniej liczby całkowitej istnieje kod Hamminga. Ponieważ ten kod Hamminga może poprawić 1-bitowy błąd.

Przykład: liniowy kod blokowy z następującą macierzą generatora i macierzą kontroli parzystości jest kodem Hamminga.

Przykład: kody Hadamarda

Kod Hadamarda jest kodem liniowym i jest w stanie poprawić wiele błędów. Kod Hadamarda może być skonstruowany kolumna po kolumnie: kolumna to bity binarnej reprezentacji liczby całkowitej , jak pokazano w poniższym przykładzie. Kod Hadamarda ma minimalną odległość i dlatego może korygować błędy.

Przykład: liniowy kod blokowy z następującą macierzą generatora to kod Hadamarda: .

Kod Hadamarda jest szczególnym przypadkiem kodu Reeda-Mullera . Jeśli wyjmiemy pierwszą kolumnę (kolumnę całkowicie zerową) z , otrzymamy kod simpleksowy , który jest podwójnym kodem kodu Hamminga.

Algorytm najbliższego sąsiada

Parametr d jest ściśle związany ze zdolnością kodu do korekcji błędów. Ilustruje to następująca konstrukcja/algorytm (nazywany algorytmem dekodowania najbliższego sąsiada):

Wejście: Odebrany wektor v w .

Wyjście: słowa kodowego w najbliżej , jeśli w ogóle.

  • Zaczynając od , powtórz następujące dwa kroki.
  • Wymień elementy kuli o promieniu (Hamminga) wokół odebranego słowa , oznaczonej .
    • Dla każdego w , sprawdź, czy w . Jeśli tak, wróć jako rozwiązanie.
  • Przyrost . Niepowodzenie tylko wtedy , gdy wyliczanie jest kompletne i nie znaleziono rozwiązania.

Mówimy, że liniowa jest korekcją błędów, jeśli istnieje co najwyżej jedno słowo kodowe w , dla każdego w .

Popularna notacja

Kody w ogólności są często oznaczane literą C , a kod o długości n i randze k (tj. mający k słów kodowych w swojej podstawie i k wierszy w macierzy generowania ) jest ogólnie określany jako ( nk ) kod. Kody blokowe liniowe są często oznaczane jako kody [ nkd ], gdzie d oznacza minimalną odległość Hamminga kodu między dowolnymi dwoma słowami kodu.

(Notacji [ nkd ] nie należy mylić z notacją ( nMd ) używaną do oznaczenia nieliniowego kodu o długości n , rozmiarze M (tj. posiadającego M słowa kodowe) i minimalnej wartości Hamminga odległość d .)

Wiązanie singletona

Lemat ( ograniczenie singletona ): Każdy liniowy [n,k,d] kod C spełnia .

Kod C, którego parametry spełniają k+d=n+1, nazywany jest maksymalną możliwą do oddzielenia odległością lub MDS . Takie kody, jeśli istnieją, są w pewnym sensie najlepsze z możliwych.

Jeśli C 1 i C 2 są dwoma kodami o długości n i jeśli istnieje permutacja p w symetrycznej grupie S n dla której (c 1 ,...,c n ) w C 1 wtedy i tylko wtedy, gdy (c p(1 ) ,...,c p(n) ) w C 2 , wtedy mówimy, że C 1 i C 2równoważne permutacjom . Mówiąc bardziej ogólnie, jeśli istnieje macierz jednomianowa, która wysyła C 1 izomorficznie do C 2, wtedy mówimy, że C 1 i C 2równoważne .

Lemat : Każdy kod liniowy jest permutacyjnym odpowiednikiem kodu w standardowej formie.

Twierdzenie Bonisoli

Kod definiuje się jako równoodległy wtedy i tylko wtedy, gdy istnieje pewna stała d taka, że ​​odległość między dowolnymi dwoma różnymi słowami kodowymi kodu jest równa d . W 1984 Arrigo Bonisoli określił strukturę liniowych kodów jednowagowych nad ciałami skończonymi i udowodnił, że każdy równoodległy kod liniowy jest sekwencją podwójnych kodów Hamminga .

Przykłady

Niektóre przykłady kodów liniowych obejmują:

Uogólnienie

Rozważano również przestrzenie Hamminga nad alfabetami niepolowymi, zwłaszcza nad skończonymi pierścieniami (zwłaszcza nad Z 4 ), co dało początek modułom zamiast przestrzeni wektorowych i kodom pierścieniowo-liniowym (identyfikowanym z submodułami ) zamiast kodów liniowych. Typowa metryka zastosowana w tym przypadku to odległość Lee . Istnieje izometria Graya pomiędzy (tj. GF(2 2m )) z odległością Hamminga i (oznaczoną również jako GR(4,m)) z odległością Lee; jego główną atrakcją jest to, że ustanawia zgodność między niektórymi „dobrymi” kodami, które nie są liniowe, jak obrazy kodów pierścieniowo-liniowych z .

Niedawno niektórzy autorzy określali takie kody nad pierścieniami po prostu jako kody liniowe.

Zobacz też

Bibliografia

  1. ^ William E. Ryan i Shu Lin (2009). Kody kanałów: klasyczny i nowoczesny . Wydawnictwo Uniwersytetu Cambridge. P. 4 . Numer ISBN 978-0-521-84868-8.
  2. ^ MacKay, David, JC (2003). Teoria informacji, wnioskowanie i algorytmy uczenia się (PDF) . Wydawnictwo Uniwersytetu Cambridge . P. 9. Kod Bibcode : 2003itil.książka.....M . Numer ISBN 9780521642989. W liniowym kodzie blokowym dodatkowe bity są liniowymi funkcjami oryginalnych bitów; te dodatkowe bity nazywane są bitami kontroli parzystości
  3. ^ Thomas M. Cover i Joy A. Thomas (1991). Elementy teorii informacji . John Wiley & Sons, Inc., s.  210-211 . Numer ISBN 978-0-471-06259-2.
  4. ^ Etzion, Tuwi; Rawiw, Netanel (2013). „Kody równoodległe w Grassmannian”. arXiv : 1308.6231 [ matematyka CO ].
  5. ^ Bonisoli, A. (1984). „Każdy równoodległy kod liniowy jest sekwencją podwójnych kodów Hamminga”. Ars Combinatoria . 18 : 181-186.
  6. ^ Marcus Greferath (2009). „Wprowadzenie do teorii kodowania pierścieniowo-liniowego”. W Massimiliano Sala; Teo Mora; Ludovica Perreta; Shojiro Sakata; Carlo Traverso (red.). Podstawy Gröbnera, kodowanie i kryptografia . Springer Nauka i Media Biznesowe. Numer ISBN 978-3-540-93806-4.
  7. ^ „Encyklopedia Matematyki” . www.encyclopediaofmath.org .
  8. ^ JH van Lint (1999). Wprowadzenie do teorii kodowania (3rd ed.). Skoczek. Rozdział 8: Kody powyżej ℤ 4 . Numer ISBN 978-3-540-64133-9.
  9. ^ ST Dougherty; J L. Kim; P. Sole (2015). „Otwarte problemy w teorii kodowania” . W Steven Dougherty; Alberto Facchiniego; Andre Gerarda Leroya; Edmunda Puczyłowskiego; Patrick Sole (red.). Pierścienie nieprzemienne i ich zastosowania . Amerykańskie Matematyczne Soc. P. 80. Numer ISBN 978-1-4704-1032-2.

Bibliografia

  • JF Humphreys; MÓJ Perst (2004). Liczby, grupy i kody (2nd ed.). Wydawnictwo Uniwersytetu Cambridge. Numer ISBN 978-0-511-19420-7. Rozdział 5 zawiera łagodniejsze wprowadzenie (niż ten artykuł) do tematyki kodów liniowych.

Zewnętrzne linki