Parität erkennt, lokalisiert aber nicht
Ein einzelnes Paritätsbit sagt Ihnen, dass ein übertragenes Wort eine ungerade Anzahl umgekippter Bits enthält — es sagt nichts darüber, welches Bit. Hammings Einsicht war, mehrere Paritätsbits zu verwenden, von denen jedes eine sorgfältig gewählte, überlappende Teilmenge der Datenbits abdeckt, sodass das genaue Muster, welche Paritätsprüfungen fehlschlagen, die Position des fehlerhaften Bits direkt codiert.
Überlappende Abdeckung
Jedes Paritätsbit deckt eine andere Teilmenge von Positionen ab, so gewählt, dass jedes Datenbit am Ende von einer eindeutigen Kombination von Paritätsbits geprüft wird. Im Standardschema deckt Paritätsbit p1 jede Position ab, deren binärer Index Bit 0 gesetzt hat, p2 jede Position mit gesetztem Bit 1, p4 jede mit gesetztem Bit 2, und so weiter — jedes Datenbit wird von genau den Paritätsbits geprüft, die den gesetzten Bits seiner eigenen Positionsnummer entsprechen.
Das Syndrom zeigt auf den Übeltäter
Beim Empfang wird jedes Paritätsbit auf dieselbe Weise neu berechnet und per XOR mit dem übertragenen Wert verglichen. Stapelt man die resultierenden Abweichungsbits übereinander (p1s Abweichung als Bit 0, p2s als Bit 1, und so weiter), ist das Ergebnis — das Syndrom — die binäre Positionsnummer des einen umgekippten Bits, oder komplett null, wenn nichts umgekippt ist. Ein kleiner Dekoder verwandelt dieses Syndrom direkt in ein One-Hot-Signal „dieses Bit umkippen".
Probieren Sie es selbst
Bauen Sie die Paritätsprüfungs-XOR-Gatter für ein kleines Hamming-codiertes Wort im Schaltungseditor, kippen Sie mit einem INPUT-Schalter genau ein Datenbit um und bestätigen Sie, dass die resultierenden Syndrom-Bits — abgelesen an ein paar OUTPUT-Elementen — die binäre Position des umgekippten Bits ergeben.