什么是汉明距离,如何确定CRC方案的汉明距离?

8

在学习计算机网络课程时,教授谈到了样本代码中两个有效编码单词之间的海明距离。我已经读过关于海明距离的知识,并且从区分两个字符串之间的差异距离的角度来看,这种距离是有意义的。例如:

Code Word 1 = 10110 

发送方发送代码单词1,但是由于某些错误,接收方收到了10100。因此,您可以看到第4位已经损坏。这将导致海明距离为1,因为:
Valid Code Word: 10110
Error Code Word: 10100
                 -----
XOR              00010

这两个字符串的异或结果只有一个1,因此汉明距离为1。我理解到这一点。但是教授问道:

  • 标准CRC-16位协议的汉明距离是多少?
  • 标准CRC-32位协议的汉明距离是多少?

我有些困惑,希望有人能帮助一下。谢谢。

1个回答

6
您现在可能已经明白了,他要求的很可能是CRC码无法检测到的最小位错误数。答案取决于消息的宽度、多项式和长度。例如,CRC-32多项式(0x1EDC6F41)的最佳已知汉明距离为6或更高,适用于长度不超过5,275位的消息(Castaglioni、Bräuer、Herrmann:《优化具有24和32个奇偶校验位的循环冗余校验码》,IEEE通信杂志,第41卷第6期,1993年6月),这意味着它能够保证在长度不超过5,275位的单个消息中检测到多达5个翻转的位错误。

顺便说一下,校验和也包括在编码字中,因此您的示例是不正确的。


2
关于最知名的多项式部分是不正确的。多项式0x741B8CD7在16360位中具有6个汉明距离,在114663位中具有4个汉明距离。【Philip Koopman,《互联网应用的32位循环冗余校验码》】 - Řrřola
2
@Řrřola,可能最好的方法是参考Koopman的网站。这似乎是CRC性能最为更新的地方之一。 - Flip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接