Co to jest kod Hamminga?

Kod Hamminga to metoda wykrywania i korygowania błędów w transmisji binarnej. Czyni to poprzez włączenie do sekwencji dodatkowych cyfr binarnych, które są używane do sprawdzania, a także algorytmu zapewniającego logikę wykrywania. Taki kod jest w stanie znaleźć dwa błędy w dowolnej sekwencji bitów i naprawić jeden bit, który może być niepoprawny. Najczęściej przywoływany kod Hamminga jest znany jako Hamming (7,4), gdzie cztery oznaczają pierwotną liczbę bitów początkowych, a siedem reprezentuje całkowitą liczbę bitów w sekwencji po włączeniu dodatkowych bitów kontrolnych.

Technika wzięła swoją nazwę od jej twórcy, Richarda Hamminga, który opublikował metodę w 1950 roku. Sposób działania kodu Hamminga polega na pobraniu ciągu bitów i wstawieniu do sekwencji dodatkowych bitów kontrolnych, zwanych bitami parzystości. Bity kontrolne są zawsze wstrzykiwane w pozycji, która jest potęgą dwójki, więc dowolna liczba bitów może być zweryfikowana przez dodanie dodatkowych bitów parzystości. Może to trwać, dopóki ostatni bit parzystości dodany do sekwencji nie znajdzie się w pozycji, która jest potęgą dwójki, która jest mniejsza lub równa końcowej pozycji w sekwencji.

Gdy wszystkie bity parzystości są na miejscu, pozostałe pozycje to rzeczywiste bity danych. Biorąc pod uwagę przykład czterobitowy, pozycje bitowe jeden, dwa i cztery będą bitami parzystości, podczas gdy pozycje trzy, pięć, sześć i siedem to dane. Po ustaleniu tej sekwencji logika kodu Hamminga zaczyna działać.

W kodzie Hamminga każdy z bitów parzystości, które zostały dodane do sekwencji, jest używany do sprawdzenia niektórych pozycji bitów, do których się zbliża, w tym ich samych. Bit parzystości na pierwszej pozycji sprawdza co drugą pozycję bitową, czyli zasadniczo każdą nieparzystą pozycję w sekwencji. Drugi bit parzystości na pozycji drugiej sprawdza pozycje drugą i trzecią, następnie pomija dwie pozycje, sprawdza dwie kolejne pozycje, pomija dwie kolejne i tak dalej. Jeśli na pozycji czwartej znajduje się bit parzystości, działa podobnie, sprawdzając pozycje od czwartej do siódmej, a następnie pomijając cztery pozycje, sprawdzając kolejne cztery i dalej. Każdy bit parzystości w sekwencji jest kontynuowany w ten sposób przez całą sekwencję.

Proces, w którym kod Hamminga wykrywa i koryguje błąd, polega na zsumowaniu bitów w sekwencji kontrolnej dla każdego sprawdzenia parzystości, z których każdy musi dać liczbę parzystą. Biorąc pod uwagę przykład siedmiobitowy, dla pierwszego sprawdzenia parzystości, bity jeden, trzy, pięć i siedem są sumowane. Jeśli suma jest parzysta, sprawdzana jest parzystość, ale jeśli suma jest nieparzysta, oznacza to błąd. Ponieważ kontrole parzystości nakładają się na siebie, pojawią się dwa takie błędy. Gdy pozycje bitów o dwóch parzystościach, które nie dają parzystych sum, zostaną zsumowane, pokaże się bit, który należy poprawić.

W przykładzie z siedmiobitowym kodem Hamminga należy wziąć pod uwagę, że bit na pozycji numer pięć jest nieprawidłowy. Suma bitów na pozycjach jeden, trzy, pięć i siedem będzie liczbą nieparzystą, podobnie jak suma bitów na pozycjach od czwartej do siódmej. Oznacza to, że sprawdzanie parzystości dla bitów kontrolnych w pozycjach jeden i cztery nie powiodło się. Po zsumowaniu jednego i czterech, suma wynosi pięć, co jest miejscem nieprawidłowego bitu w transmisji, który należy poprawić.