Jak obliczyć kod Hamminga
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.