Hamming-Codes werden verwendet, um Fehlerkorrektur-Informationen in Datenströme einzufügen. Die Codes sind so ausgelegt, dass ein Fehler nicht nur erkannt , sondern korrigiert. Hinzufügen Fehlerkorrektur-Informationen erhöht die Menge an Daten, sondern erhöht die Zuverlässigkeit der Kommunikation über Medien mit hoher Fehlerrate rates.Hamming Codierung kann schwierig zu implementieren, aber kann sehr schnell mit Bit -Level- Arithmetik Tricks werden. Dies macht es zu einem nützlichen Fehlerkorrektur für hohe Geschwindigkeit und Embedded-Anwendungen. Anleitung
1
Erstellen Sie die Daten Wort . Jedes Bit mit einer Position, die eine Potenz von zwei (erste, zweite , vierte, usw.) sollten für Paritätsinformationen reserviert werden. Verwenden Sie so lange von einem Wort , wie Sie die Quelldaten und Parity-Bits passen müssen
Beispiel: .
1 1 0 1 0 0 1 0 __ 1 _ wird 1 0 1 0 _ 0 1 0
die Bits bleiben in der gleichen Reihenfolge , aber wurden durchgeführt, um die Parity-Bits passen zu verbreiten.
2
berechnen Sie die ersten Paritätsbit . Beginnend mit dem ersten Bit , ein Bit zu lesen , dann überspringen Sie ein Bit und wiederholen , während das Zählen der Anzahl von Einsen begegnet . Parity Bits als Nullen zählen.
Wenn die Anzahl der Einsen gerade ist, legen Sie die erste Bit auf Null . Andernfalls setzen Sie ihn auf eine
Beispiel: .
Bits 1 , 3, 5 , 7, 9 und 11 der __ 1 _ 1 0 1 _ 0 0 1 0 , _11101 , enthalten vier diejenigen. Dies wird auch, so das erste Bit auf Null gesetzt : 0 _ 1 _ 1 0 1 _ 0 0 1 0
3
Berechnen Sie die verbleibenden Parity-Bits . Bit zwei liest zwei Bits ab Bit zwei, dann überspringt zwei und wiederholt . Bit vier liest vier Bits überspringt dann vier und beginnt mit vier Bit . Fahren Sie mit diesem Muster , bis es keine Parität Bits nach links zu berechnen sind
Beispiel: .
Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 Kontrollen _1, 01 , 01, das 3 diejenigen , so wird Bit 2 auf 4 one.Bit : 0 1 1 _ 1 0 1 _ 0 0 1 0 Kontrollen _101 , 0, 2 , die eine, also das Bit 4 auf 8 zero.Bit enthält: 0 1 1 0 1 0 1 _ 0 0 1 0 Kontrollen _0010 , mit nur einer ein , das Setzen von Bit 8 bis eins.
die kodierte Wort ist also 011010110010 .
4
bestätigen die Wort . Wenn ein Wort beschädigt ist, wird die Parity-Bits nicht übereinstimmen , was erwartet wird . Um zu bestätigen , dass ein Wort nicht beschädigt ist, einfach die Berechnung der Parity-Bits unter Verwendung der Schritte zwei und drei. Wenn irgendwelche Bits nicht übereinstimmen, nehmen ihre Positionen .
5
korrigieren schlechte Bit . Wenn Sie eine falsche Parity-Bits finden, einfach summieren die Positionen der Bits . Die Summe ist die Position des fehlerhaften Bits . Klappen Sie den Wert des Bits in dieser Position.
Zum Beispiel, wenn die Parity-Bits ein und vier falsch sind, wird Spiegeln den Wert der fünfte Bit korrigieren Sie den Fehler .