Kontrola błędów

Kody Powtórzeniowe

Najprostsza forma FEC oparta na głosowaniu większościowym.

Definicja Kodu Powtórzeniowego

Kod powtórzeniowy jest kodem blokowym, który każdemu bitowi wejściowemu przypisuje stały ciąg identycznych symboli. To podstawowa postać , ponieważ odbiornik wykorzystuje powtórzone symbole do odtworzenia oryginalnego bitu bez żądania retransmisji.

Dla współczynnika powtórzeń nn koder przesyła każdy bit wejściowy nn razy. Wprowadza to , która pozwala odbiornikowi ograniczyć wpływ błędów wprowadzonych przez kanał. Przy nieparzystym nn dekoder wybiera większość w każdym bloku, a szybkość kodu wynosi R=1/nR = 1/n.

Kod powtórzeniowy R3: kodowanie i dekodowanie

Częstym przykładem jest kod R3, znany również jako kod powtórzeniowy (3,1). Koder mapuje jeden bit informacyjny na blok trzech identycznych bitów.

  • Aby wysłać logiczne '0', nadajnik wysyła sekwencję 000.
  • Aby wysłać logiczne '1', nadajnik wysyła sekwencję 111.

Dekodowanie większościowe

Dekoder analizuje każdy trzybitowy blok i wybiera wartość występującą w nim co najmniej dwa razy:

Jeśli blok zawiera co najmniej dwa zera:

000, 001, 010, 100

→ Dekodowane jako '0'

Jeśli blok zawiera co najmniej dwie jedynki:

111, 110, 101, 011

→ Dekodowane jako '1'

Zdolność Korekcji i Ograniczenia

Kod R3 koryguje pojedyncze odwrócenie bitu w każdym trzybitowym bloku. Głosowanie większościowe odtwarza wtedy bit nadany.

Przykład udanej korekcji:
1. Nadawca chce wysłać: 1
2. Zakodowany i nadany sygnał: 111
3. Szum uszkadza sygnał. Odebrany sygnał: 101
4. Głosowanie większościowe dekodera (dwie jedynki, jedno zero) → Dekodowanie daje poprawną wartość: 1.

Przykład porażki:
Jeśli dwa bity w jednym bloku zostaną odwrócone, większość wskazuje błędną wartość.
1. Nadany sygnał: 111
2. Dwa odwrócone bity zmieniają przewagę większości. Odebrany sygnał: 001
3. Głosowanie większościowe dekodera (jedna jedynka, dwa zera) → Dekoduje błędnie na: 0.

Właściwości Formalne: Odległość Hamminga

Zdolności kodu do obsługi błędów są określone przez jego . Dla kodu R3, jedynymi prawidłowymi słowami kodowymi są 000000 i 111111, które różnią się na 3 pozycjach, więc dmin=3d_{min}=3.

  • Kod o minimalnej odległości dmind_{min} wykrywa do dmin−1d_{min} - 1 błędów, jeśli odbiornik sprawdza poprawność słowa. Dla R3 są to 3−1=23 - 1 = 2 błędy.
  • Liczba błędów, które kod może skorygować, wynosi t=⌊dmin−12⌋t = \lfloor \frac{d_{min} - 1}{2} \rfloor. Dla R3 jest to ⌊3−12⌋=1\lfloor \frac{3 - 1}{2} \rfloor = 1 błąd.

Dla niezależnego binarnego kanału symetrycznego o prawdopodobieństwie odwrócenia bitu pp prawdopodobieństwo błędu bitu po dekodowaniu R3 wynosi Pe=3p2(1−p)+p3=3p2−2p3P_e = 3p^2(1-p) + p^3 = 3p^2 - 2p^3. Wzór zakłada niezależne odwrócenia i dekodowanie większościowe.

Zalety i Wady

Zalety

  • Prostota: Są łatwe do zrozumienia, wdrożenia w sprzęcie i analizy.

Wady

  • Niska Szybkość Kodu: Szybkość kodu, czyli stosunek bitów informacyjnych do całkowitej liczby przesyłanych bitów, wynosi dla R3 13\frac{1}{3}. Dwie trzecie transmisji stanowi nadmiar. Wysłanie pliku o rozmiarze 1 MB wymaga przesłania 3 MB danych.
  • Ograniczona Korekcja: Kod R3 koryguje jedno odwrócenie w bloku. Dwa lub więcej odwróceń w tym samym bloku przekracza tę gwarancję. Błędy seryjne (burst errors) mogą obejmować wiele takich bloków.
  • Zwiększone Opóźnienie i Wymagania Pasma: Przy tej samej szybkości symbolowej trzy razy więcej bitów wydłuża czas transmisji trzykrotnie. Przy tej samej efektywnej szybkości transmisji wymaga też trzykrotnie większej szybkości symbolowej i odpowiedniego pasma.

Powiązane artykuły