我目前正在尝试理解汉明代码-或者特别是用于检测和修复错误比特的汉明距离。hamming distance
我很难理解汉明的距离。我知道我正在比较不同的比特单词,并找到使这些单词不同的比特数(->hamming距离)-但我正在比较的这些单词是什么?
例如: word= 0110 1001bit1(偶)奇偶校验位添加在末尾: 0110 (第一奇偶校验位1-4,第二位5-8,第三位3,4,5,6,第四位0,1,7,8)。=>创造了(新的)单词: 0110 0001 0110。
我现在用奇偶校验位检查字了吗?word1: 0110 (位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
还是我说的完全错了?
发布于 2015-02-03 21:05:59
您应该(根据您的描述)使用Hamming Code,而不是Hamming Distance。它们是不同的东西。至于检查错误,来自Hamming code上的维基百科
要检查错误,请检查所有奇偶校验位。称为错误校正子的错误模式识别错误中的比特。如果所有的奇偶校验位都是正确的,则不存在错误。否则,错误奇偶校验位的位置之和识别错误位。例如,如果位置1、2和8中的奇偶校验位指示错误,则位1+2+8=11出错。如果只有一个奇偶校验位指示错误,则奇偶校验位本身就是错误的。
汉明距离在海明码中的作用是解释为什么海明码只能纠正1比特和检测2比特的错误。通过应用汉明编码,所有有效字之间的汉明距离为3。任何翻转1比特的错误都将导致一个字与正确的字相距1-汉明距离。可以通过找到最近的正确单词来纠正它。任何翻转2位的错误都会导致一个字与正确的字相距2个汉明距离,但也会导致另一个正确的字与另一个正确的字相距2个汉明距离。因此,只能检测到2个故障。由于所有正确的字间隔3个距离,3位或更多位的故障不能被检测到。
https://stackoverflow.com/questions/28299515
复制相似问题