0

我目前正在尝试了解汉明码 - 或者特别是用于检测和修复错误位的汉明距离。汉明距离

我很难理解汉明距离。我知道我正在比较不同的位字并找到使单词不同的位数(-> 汉明距离)-但是我要比较的这些字是什么?

例如:word= 0110 1001 ->(偶数)在末尾添加的奇偶校验位:0110(第一个奇偶校验位检查 bit1-4、第二个 5-8、第三个 3、4、5、6、第四个 0、1、7、8) . => 生成(新)单词:0110 0001 0110。

我现在用奇偶校验位检查单词吗?word1:0110 0(位 1-4 + 奇偶校验位 1)。word2:0001 1(位 5-8 + 奇偶校验位 2)。word3:1000 1(位 3、4、5、6,+ 奇偶校验位 3)。word4:0101 0(位 0、1、7、8 + 奇偶校验位 4)。

word1->word2:汉明距离4。word2->word3:汉明距离3。word3->word4:汉明距离4

还是我在这里完全错了?

4

1 回答 1

0

您应该(并且根据您的描述使用汉明码,而不是汉明距离。它们是不同的东西。至于检查错误,来自 Wikipedia on Hamming code

要检查错误,请检查所有奇偶校验位。称为错误综合症的错误模式识别错误位。如果所有奇偶校验位都正确,则没有错误。否则,错误奇偶校验位的位置之和识别错误位。例如,如果位置 1、2 和 8 的奇偶校验位指示错误,则位 1+2+8=11 是错误的。如果只有一个奇偶校验位指示错误,则奇偶校验位本身是错误的。

汉明码中汉明距离的作用是解释为什么一个汉明码只能纠正 1 位和检测 2 位错误的一种方式。通过应用汉明码,所有有效字之间的汉明距离为 3。任何翻转 1 位的错误都将导致字与正确字的距离为 1-汉明。它可以通过转到最近的正确单词来纠正。任何翻转 2 位的错误都会导致一个单词与正确单词相距 2 个汉明距离,但与另一个正确单词相距 2 个汉明距离。因此只能检测到 2 个故障。由于所有正确的单词都相距 3 个距离,因此无法检测到 3 位或更多位的故障。

于 2015-02-03T13:05:59.260 回答