4. Kody wykrywające i korygujące błędy

4.2. Wykrywanie błędów metodą kontroli parzystości

Wykrywanie błędów metodą kontroli parzystości jest najprostszą często stosowaną metodą wykrywania błędów.

Załóżmy, że w systemie cyfrowym chcemy przesyłać dane porcjami za pomocą słów n bitowych. Niech x1x2...xn ∈ {0,1}n będzie takim n bitowym słowem. Przed wysłaniem uzupełniamy to słowo jeszcze jednym bitem xn+1 tzw. bitem parzystości przy czym 

xn+1 = 1 jeśli liczba jedynek w słowie x1x2...xn ∈ {0,1}n jest nieparzysta 

xn+1 = 0 jeśli liczba jedynek w słowie x1x2...xn ∈ {0,1}n jest parzysta

Zatem słowo przesyłane x1x2...xnxn+1 zawiera zawsze parzystą liczb jedynek. Łatwo sprawdzić, że układ generujący bit parzystości jest n wejściową sumą modulo 2.

xn+1 = x1 ⊕ x2 ⊕ ... ⊕ xn

Nadajnik wysyła słowo n+1 bitowe x1x2...xnxn+1 a w odbiorniku dostajemy słowo być może z błędami (przekłamaniami) y1y2...ynyn+1 ∈ {0,1}n+1. Sprawdzamy parzystość liczby jedynek w słowie binarnym odebranym y1y2...ynyn+1. Układ sprawdzający czy liczba jedynek jest parzysta jest n+1 wejściową sumą modulo 2 (por. Rys.2). Jeśli liczba jedynek w słowie y1y2...ynyn+1 jest parzysta to na wyjściu układu mamy 0 jeśli nieparzysta to 1.

Jeśli wysłaliśmy parzystą liczbę jedynek a otrzymaliśmy w odbiorniku nieparzystą tzn., że podczas przesyłania wystąpił błąd. Sprawdzając parzystość wykryjemy każdą nieparzystą ilość błędów.

Zamiast funkcji xn+1 = x1 ⊕ x2 ⊕ ... ⊕ xmożna wykorzystać funkcję xn+1 = \overline{x_{n+1} = x_1 ⊕ x_2 ⊕ ... ⊕ x_n}, wtedy przesyłane słowo będzie zawierało nieparzystą liczbę jedynek.

Pewną modyfikacją opisanej wyżej koncepcji są kody ze stałą liczbą jedynek m w słowie kodowym o stałej długości n tzw. „kody m z n” (por. podrozdział „kody numeryczne”). Pojedyncza zmiana 0 na 1 lub odwrotnie zmienia w takich kodach „bilans” jedynek i zer” i możemy wykryć błąd.

Rys. 2. Układy sprawdzające parzystość słowa binarnego x1x2x3x4x5x6x7x8