Sil*_*cer 5 checksum crc error-detection hamming-distance polynomials
我试图找出如何计算任意 CRC 多项式的错误检测能力。
我知道有各种错误检测功能可能(或可能不)适用于任意多项式:
检测单个位错误:所有 CRC 都可以执行此操作,因为这仅需要 CRC 宽度 >= 1。
突发错误检测:所有 CRC 都可以检测大小等于其宽度的突发错误。
检测奇数位错误:CRC 与多项式的偶数项(这意味着完整二进制多项式中 1 位的偶数)可以做到这一点。
检测随机位错误(取决于帧大小):我有一个现成的 C 算法,可以计算给定 HD 和多项式的最大帧大小。我没有完全理解它,但它有效。
让我们假设一个 16 位 CRC 多项式 x¹?+x¹²+x?+1 = 0x11021。该多项式可以:
以上正确吗?
是否有额外的 CRC 错误检测功能?如果是,我如何检查(没有深入的数学知识)任意 CRC 多项式是否支持它们?
Koopman 和 Chakravarty 撰写的这篇论文着眼于 CRC 性能的几种度量,描述了许多多项式的度量和结果。简而言之,“好”多项式的定义取决于它所应用的消息的长度,该长度因应用程序而异。主要衡量指标是汉明距离(为恢复相同 CRC 所需更改的消息中的最小位数)以及规定的低误码率下的性能。