Jak obliczyć kod Hamminga

Kody Hamminga są łatwe do wdrożenia i często wykorzystywane do korekcji błędów.

Krok 1

Utwórz słowo danych. Każdy bit o pozycji, która jest potęgą dwóch (pierwszy, drugi, czwarty itd.) Musi być zarezerwowany dla informacji o parzystości. Użyj długości słowa, które musisz dostosować do źródła danych i bitów parzystości.

Na przykład:

1 1 0 1 0 0 1 0 staje się _ _ 1 _ 1 0 1 _ 0 0 1 0

Bity pozostają w tej samej kolejności, ale zostały rozszerzone, aby pomieścić bity parzystości.

Krok 2

Najpierw oblicz bit parzystości. Zaczynając od pierwszego bitu, przeczytaj trochę, a następnie pomiń trochę i powtórz operację, licząc liczbę znalezionych. Bity parzystości liczą się jako zera.

Jeśli liczba jest równa, ustaw pierwszy bit jako zero. W przeciwnym razie, umieść to jako jeden.

Na przykład:

Bity 1, 3, 5, 7, 9 i 11, z __ 1 _ 1 0 1 _ 0 0 1 0, _11101, zawierają cztery. Jest to parzyste, więc pierwszy bit jest ustawiony na zero: 0 _ 1 _ 1 0 1 _ 0 0 1 0.

Krok 3

Oblicz pozostałe bity parzystości. Bit dwa odczytuje dwa bity z bitu drugiego, następnie przeskakuje dwa i powtarza. Bit czwarty czyta cztery bity, następnie przeskakuje o cztery i rozpoczyna się bitem czwartym. Kontynuuj ten wzorzec, dopóki nie pozostawisz bitów parzystości do obliczenia.

Na przykład:

Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 rewizja _1, 01, 01, która zawiera 3, więc bit 2 jest ustawiony na 1. Bit 4: 0 1 1 _ 1 0 1 _ 0 0 1 0 korekta _101, 0, która zawiera 2, więc bit 4 jest ustawiony na 0. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 korekta _0010, z tylko jednym, ustaw bit 8 jako 1

Zakodowane słowo jest zatem 011010110010.

Krok 4

Potwierdź słowo. Jeśli słowo jest uszkodzone, bity parzystości nie będą zgodne z oczekiwaniami. Aby potwierdzić, że słowo nie jest uszkodzone, wystarczy obliczyć bity parzystości za pomocą kroków 2 i 3. Jeśli któryś z bitów nie pasuje, zarejestruj swoje pozycje.

Krok 5

Napraw zły bit. Jeśli znajdziesz nieprawidłowe bity parzystości, po prostu dodaj pozycje bitów. Suma jest pozycją błędnego bitu. Przenieś wartość bitu w tej pozycji.

Na przykład, jeśli bity parzystości jeden i cztery są niepoprawne, odwróć wartość piątego piątego bitu, aby poprawić błąd.