Der Hamming-Abstand muss 2 sein, um einen einzelnen Fehler zu erkennen, bzw 3 um einen einzelnen Fehler korrigieren zu können. Wenn mehr Fehler drin sind, muss h entsprechend größer sein, um sie erkennen/korrigieren zu können:
h >= k+1 zur Erkennung
und
h >= 2k+1 zur Korrektur
Wichtig dabei ist, dass sich Sender und Empfänger vorher auf einen Katalog gültiger Wörter geeinigt haben, also das z.B. nur
000
011
101
110
gültig sind, die jeweils h = 2 haben.
Wenn du als Empfänger jetzt eine Übertragung bekommst, die zB so aussieht:
000 011 111 011
Dann weißt du auf jeden Fall schon mal, dass hier ein Fehler passiert sein muss, da 111 kein gültiges Wort ist. Du kannst jetzt aber nicht wissen, ob 111 aus 011, 110, oder 101 entstanden ist.
Wenn du aber stattdessen h = 3 festlegst und (die entsprechend längeren) Wörter gültig sind:
10101
10010
01100
01011
und du kriegst fehlerhaft:
10101 10010 01101 01011
dann erkennst du dass das dritte fehlerhaft ist und du weißt (wenn nur ein einziger Fehler aufgetreten ist): es muss aus 01100 entstanden sein, weil der Unterschied zu allen anderen gültigen Wörtern größer ist.
Nun könntest du ja sagen: Ich hab ja nur 4 Wörter, also stell ich die mit 2 Bit und h = 1 dar, nämlich ganz klassisch:
00
01
10
11
Kriegst du jetzt eine fehlerhafte Folge, kannst du sie nicht mal erkennen, weil wenn statt 01 zB 11 ankommt, ist das ja trotzdem ein gültiges Wort.