Komunikacja cyfrowa - kodowanie kontroli błędów
Szum lub błąd to główny problem w sygnale, który zakłóca niezawodność systemu komunikacyjnego. Error control codingto procedura kodowania stosowana w celu kontrolowania występowania błędów. Techniki te pomagają w wykrywaniu i korygowaniu błędów.
Istnieje wiele różnych kodów korekcji błędów w zależności od zastosowanych zasad matematycznych. Ale historycznie te kody zostały podzielone naLinear block codes i Convolution codes.
Liniowe kody blokowe
W liniowych kodach blokowych bity parzystości i bity komunikatu mają kombinację liniową, co oznacza, że wynikowe słowo kodowe jest liniową kombinacją dowolnych dwóch słów kodowych.
Rozważmy kilka bloków danych, które zawierają kbity w każdym bloku. Te bity są mapowane z blokami, które mająnbity w każdym bloku. Tutajn jest większy niż k. Nadajnik dodaje nadmiarowe bity, które są(n-k)bity. Stosunekk/n jest code rate. Jest oznaczonyr i wartość r jest r < 1.
Plik (n-k) bity dodane tutaj są parity bits. Bity parzystości pomagają w wykrywaniu błędów i korekcji błędów, a także w lokalizowaniu danych. W przesyłanych danych skrajne lewe bity słowa kodowego odpowiadają bitom komunikatu, a skrajne prawe bity słowa kodowego odpowiadają bitom parzystości.
Kod systematyczny
Każdy liniowy kod blokowy może być kodem systematycznym, dopóki nie zostanie zmieniony. Stąd niezmieniony kod blokowy jest nazywany jako pliksystematic code.
Poniżej znajduje się reprezentacja structure of code word, zgodnie z ich alokacją.
Jeśli wiadomość nie zostanie zmieniona, jest nazywana kodem systematycznym. Oznacza to, że szyfrowanie danych nie powinno zmieniać danych.
Kody splotów
Do tej pory w kodach liniowych omawialiśmy, że preferowany jest systematyczny kod niezmieniony. Tutaj dane o sumien bity, jeśli są przesyłane, k bity to bity wiadomości, a (n-k) bity są bitami parzystości.
W procesie kodowania bity parzystości są odejmowane od całych danych, a bity wiadomości są kodowane. Teraz bity parzystości są ponownie dodawane i całe dane są ponownie kodowane.
Poniższy rysunek przedstawia przykład bloków danych i strumienia danych, używanych do przesyłania informacji.
Cały proces, o którym mowa powyżej, jest żmudny i ma wady. Przydział bufora jest tutaj głównym problemem, gdy system jest zajęty.
Ta wada jest wyjaśniona w kodach splotów. Gdzie całemu strumieniowi danych przypisywane są symbole, a następnie przesyłane. Ponieważ dane to strumień bitów, do przechowywania nie jest potrzebny bufor.
Kody Hamminga
Własnością liniowości słowa kodowego jest to, że suma dwóch słów kodowych jest również słowem kodowym. Kody Hamminga to typlinear error correcting kody, które mogą wykryć do dwóch błędów bitowych lub mogą poprawić błędy jednego bitu bez wykrywania nieskorygowanych błędów.
Podczas korzystania z kodów Hamminga dodatkowe bity parzystości są używane do identyfikacji pojedynczego błędu bitowego. Aby przejść z jednego wzorca do drugiego, należy zmienić kilka bitów w danych. Taką liczbę bitów można określić jakoHamming distance. Jeśli parzystość ma odległość 2, można wykryć jednobitowe przerzucenie. Ale tego nie można naprawić. Ponadto nie można wykryć żadnych dwóch przerzutów bitów.
Jednak kod Hamminga jest lepszą procedurą niż poprzednio omówione w wykrywaniu i korekcji błędów.
Kody BCH
Kody BCH zostały nazwane imionami wynalazców Bose, Chaudari i Hocquenghem. Podczas projektowania kodu BCH istnieje kontrola liczby symboli do skorygowania, a zatem możliwa jest korekcja wielobitowa. Kody BCH to potężna technika korygowania błędów.
Dla wszystkich dodatnich liczb całkowitych m ≥ 3 i t < 2m-1istnieje kod binarny BCH. Poniżej znajdują się parametry takiego kodu.
Długość bloku n = 2m-1
Liczba cyfr kontroli parzystości n - k ≤ mt
Minimalna odległość dmin ≥ 2t + 1
Ten kod można nazwać jako t-error-correcting BCH code.
Kody cykliczne
Cykliczna właściwość słów kodowych polega na tym, że każde cykliczne przesunięcie słowa kodowego jest również słowem kodowym. Kody cykliczne następują po tej właściwości cyklicznej.
Dla kodu liniowego C, jeśli każde słowo kodowe tj. C = (C1, C2, ...... Cn)z C ma cykliczne przesunięcie składników w prawo, staje się słowem kodowym. To przesunięcie w prawo jest równen-1cykliczne przesunięcia w lewo. Dlatego jest niezmienna przy każdym przesunięciu. A więc kod liniowyC, ponieważ jest niezmienna przy każdym przesunięciu, można go nazwać jako Cyclic code.
Kody cykliczne służą do korekcji błędów. Są używane głównie do poprawiania błędów podwójnych i błędów seryjnych.
Stąd jest to kilka kodów korygujących błędy, które mają być wykryte w odbiorniku. Kody te zapobiegają wprowadzaniu błędów i zakłócają komunikację. Zapobiegają również podsłuchiwaniu sygnału przez niechciane odbiorniki. Aby to osiągnąć, istnieje pewna klasa technik sygnalizacyjnych, które omówiono w następnym rozdziale.