【问题标题】:Why using Generator polynomial like this x^8 +x^2 +x+1 for CRC-8?为什么对 CRC-8 使用像 x^8 +x^2 +x+1 这样的生成多项式?
【发布时间】:2015-03-01 04:26:42
【问题描述】:

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

【问题讨论】:

    标签: crc crc32 crc16 error-detection crc64


    【解决方案1】:

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

    Exhaustive searches over all possible polynomials have been done by Koopman, et al,查找具有最大汉明距离和最小汉明权重的消息长度。例如,您引用的 8 次多项式 used in the ITU-T Recommendation I.432.1 CRC 很好,但不是您能选择的最好的。多项式 x8+x6+x3+x2+1 提供了 3 的汉明距离更长的消息。这些twopages 提供了 Koopman 的最新结果。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      • 2019-08-02
      相关资源
      最近更新 更多