Hamming Code(7,4)

Hamming-Code oder besser gesagt (7,4)-Hamming-Code ist ein Code bei den Daten (Nachricht) gesendet wird + eine Prüfsumme.

Die Prüfsumme ist nur da zu überprüfen ob ein Bit-Fehler (Bit-Invertierung) passiert ist.

Die ersten 4 Bits sind die Nachricht und die letzten 3 sind die Prüfbits.
x1 = 0
x2 = 0
x3 = 1
x4 = 1
x5 = 1
x6 = 0
x7 = 1

x1 x2 x3 x4 x5 x6 x7
0 0 1 1 1 0 0

Um die Nachricht zu überprüfen lautet folgende Regel:
x5 = (x2 + x3 + x4) mod 2
x6 = (x1 + x3 + x4) mod 2
x7 = (x1 + x2 + x4) mod 2

Das heißt die Ergebnisse von x5(1), x6(0), x7(1) müssen mit den Formel einstimmen.

x5 = (x2 + x3 + x4) mod 2
x5 = (0 + 1 +1) mod 2
x5 = (2) mod 2
x5 = 0

x6 = (x1 + x3 + x4) mod 2
x6 = (0+1+1) mod 2
x6 = (2) mod 2
x6 = (2) mod 2
x6 = 0

x7 = (0+0+1) mod 2
x7 = (1) mod 2
x7 = 1

x1 x2 x3 x4 x5 x6 x7
0 0 1 1 1 0 0

Wie wir oben sehen können x5 stimmt nicht.
um zu überprüfen welche Bit in die Nachricht falsch ist müssen wir nur die 3 Formel unter einander stellen (ohne mod 2) und die Bits vergleichen.

x5 = x2 x3 x4
x6 = x1 x3 x4
x7 = x1 x2 x4

Das heißt den Bit-Fehler soll in x5, x2, x3, x4 stehen, aber da x6, x7 und alle ihren Nachfolger richtig sind. Muss den Bit-Fehler nut x5 sein.

Korrekt Codewört: 0011001


x1 = 1
x2 = 1
x3 = 1
x4 = 0
x5 = 1
x6 = 0
x7 = 1

x1 x2 x3 x4 x5 x6 x7
1 1 1 0 1 0 1

x5 = (1 + 1 + 0) mod 2
x5 = 2 mod 2
x5 = 0

x6 = (1 + 1 + 0) mod 2
x6 = 2 mod 2
x6 = 0

x7 = (1+ 1 + 0) mod 2
x7 = 2 mod 2
x7 = 0

x5 = x2 x3 x4
x6 = x1 x3 x4
x7 = x1 x2 x4

Da wir 2 Fehler haben (x5 und x7) müssen wir vergleichen welche Xs sie gemeinsam haben (x2 und x4), aber da x4 zu x6 gehört und da kein Fehler ausgetaucht ist. Können wir mit Sicherheit sagen, dass x2 eine Bit-Fehler enthält.

Korrekt Codewört: 1010101