【问题标题】:Primitivity of CRC polynomialsCRC多项式的原始性
【发布时间】:2019-02-28 22:48:51
【问题描述】:

我在网上发现了以下关于 CRC 的性能:

原始多项式。这对于 HD=3 和良好的 HD=2 具有最佳长度 超过该长度的性能。

我不明白。 HD=3 的最佳长度是可以理解的;但是良好的 HD=2 性能意味着什么? AFAIK 所有 CRC 在 HD=2 处具有无限数据长度。

那么对于原始多项式,“高于该长度的良好 HD=2 性能”是什么意思?

【问题讨论】:

    标签: crc


    【解决方案1】:

    ...对于 HD=3 具有最佳长度,并且在该长度之上具有良好的 HD=2 性能。

    该声明措辞不佳。我在此网页底部的“符号:”下找到它

    https://users.ece.cmu.edu/~koopman/crc

    在我发现的这篇文章和其他文章中,缩写“HD”表示 CRC 的最小汉明距离:对于 HD=k+1,那么 CRC 可以检测到消息中任意长度的 k 位错误模式(如表中所示)。正如您所说,“所有 CRC 在 HD=2 处具有无限数据长度”。

    “超过该长度的良好 HD=2 性能”这一短语的用法令人困惑。上面的网站链接到下面的网站,其中包含声明“HD=2 长度始终是无限的,因此始终不在此列表中。”

    https://users.ece.cmu.edu/~koopman/crc/notes.html


    Wiki hamming distance 解释了误码检测和汉明距离之间的关系:“当且仅当其任意两个码字之间的最小汉明距离至少为 k+1 时,才称码 C 为 k 错误检测" 正如您所说,“所有 CRC 在 HD=2 处具有无限数据长度”,这意味着所有 CRC 都可以检测到任何单个位错误,而不管消息长度如何。

    至于“HD=3 的最佳长度”,这意味着能够检测到 2 位错误,请考虑基于 CRC 多项式的linear feedback shift register,使用任何非零值初始化,如果您循环足够多的寄存器次,它将以该初始值结束。对于基于 n+1 位原始多项式的 n 位 CRC,寄存器将在重复之前循环遍历所有 2^n - 1 个非零值。不会发生无法检测到 2 位错误的消息的最大长度(即数据长度加上 CRC 的长度)为 2^n - 1。对于长度为 2^n 或更大的消息,则为任何“i”,如果 bit[0+i] 和 bit[(2^n)-1+i] 有错误,原始 CRC 将无法检测到 2 位错误。如果 CRC 多项式不是原始的,则 failproof 2 错误位检测的最大长度将减小,而不是“最优”。

    对于基于任何 CRC 多项式的线性反馈移位寄存器,初始化为任何非零值,无论它循环多少次,它都不会包含零值。这是解释为什么“所有 CRC 在 HD=2 处具有无限数据长度”(能够检测单个位错误)的一种方式。

    【讨论】:

    • 在阅读了您的帖子后,我觉得我的问题是由于措辞不当引起的。 “汉明距离/HD”一词显然有两种含义。第一个是“任何不可检测错误的最低权重”(又名“最低 HD”)。第二个是“数据不同的位置数”。我猜提到的来源使用这两种含义的同义词。假设第二个含义,引用是有意义的。
    • 唉,我的假设是错误的。请参阅此表:users.ece.cmu.edu/~koopman/crc/crc6.html {数据大小}以 HD=3 开头(读取“最小 HD”)。 HD=2 未在此处列出,因为数据大小是无限的。原始 (*p) 多项式在 HD=3 时是最优的(如所引用的)。我仍然不明白注释页面中的“高于该长度的良好 HD=2 性能”。
    • 为什么你认为 Koopman 在users.ece.cmu.edu/~koopman/crc/notes.html 的页面已经过时了?您在哪里找到了更新的页面?
    • @Silicomancer - 我更新了我的答案。术语“汉明距离”是指两个消息(代码字)之间不同比特的数量,因此汉明距离为 2 可能意味着 2 比特错误与有效消息。但是在我发现的文章中,缩写“HD”代表错误检测(或纠正)代码的最小汉明距离,例如 CRC。如果 HD=k+1,则 CRC 可以检测到消息中的多达 k 位错误,最长可达表中所示的某个长度。正如您所说,“所有 CRC 在 HD=2 处具有无限数据长度”。
    • @Silicomancer - 请注意,写“良好的 HD=2 性能”和“HD=2 长度始终是无限的”是同一位作者。我建议改写第一句话。
    【解决方案2】:

    作者说:“与许多其他多项式相比,通常原始多项式在 HD=2 时往往具有相当好的(即低)权重。我已经有一段时间没有看了,但我认为在所有情况下都在上面最低权重多项式的 HD=2 断点始终是原始的。”

    对于某些算法实现,低权重可以提供更快的计算。

    【讨论】:

    • 对于其他阅读本文的人来说,低权重意味着多项式中(非零)系数的数量。原始多项式没有自然趋势具有低权重,必须“搜索”它们。通常,较低权重的计算速度没有差异,因为软件通常使用表格,而硬件使用伽罗瓦移位寄存器,其中 XOR 是并行完成的。较低的权重确实减少了硬件中 XOR 门的数量。对于使用无进位乘法的软件,例如 X86 pclmulqdq,乘法时间是固定的,与 1 的位数无关。
    • 关于计算我认为你是对的。在现实中没有人使用按位算法。关于原始多项式的低权重,作者所说的有点不同。我现在正在使用作者的措辞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多