0

为什么使用像这样的生成多项式 G(x) =x^8 +x^2 +x+1 用于 CRC-8。如果这是最优的,我们如何证明它。或使用此多项式 G(x) = x^5 + x^4 + x^2 + 1 用于 CRC-5-ITU。

4

1 回答 1

3

所选择的多项式决定了 CRC 的检错能力。这种能力是用汉明距离来衡量的,它是在保持 CRC 不变的情况下可以在消息中引入的最小误码数。这将是误报,CRC 表示消息正常,但事实并非如此。同样重要的是在每个误码数中存在多少这样的位模式,称为汉明权重。这确定了n位错误导致误报的概率。

Koopman 等人已经对所有可能的多项式进行了详尽的搜索,以找到对于各种消息长度具有最大汉明距离和最小汉明权重的那些。例如,您引用的 ITU-T Recommendation I.432.1 CRC 中使用的 8 次多项式很好,但不是您能选择的最好的。多项式 x 8 +x 6 +x 3 +x 2 +1 为更长的消息提供了 3 的汉明距离。这两页提供 Koopman 的最新结果。

这里的另一个答案表明“最佳多项式取决于所使用的输入数据集”。CRC 多项式的检错能力所依赖的数据的唯一方面是应用 CRC 的块的长度。由于 CRC 的线性特性,错误检测能力实际上完全独立于消息中的数据。如果您异或两个相同长度的消息,则该新消息的 CRC 将是原始两个消息的 CRC 的异或。因此,一旦您找到使 CRC 保持不变的最小错误集,那么该错误集就可以应用于任何相同长度的消息以获得误报。

于 2015-01-03T16:09:22.510 回答