什么是最“位有效”的错误检测方法?

问题描述 投票:0回答:1

为了检测n_errors位长度的代码中的许多n_total错误,我们必须为某种校验和牺牲一定数量的n_check位。

我的问题是:使用什么方法,我必须牺牲最少的位数n_check才能以n_errors位长的代码检测给定数量的错误n_total

如果对该问题没有一般性的答案,我将不胜感激有关以下情况的方法的一些提示:n_total=32n_errors>1和显然n_check应该尽可能小。

谢谢。

checksum crc error-detection
1个回答
0
投票

链接到CRC Zoo注释:

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

如果您查看3位crc的表:

http://users.ece.cmu.edu/~koopman/crc/crc3.html

您可以看到第二个条目0xb => x ^ 3 + x + 1,具有4个数据位的HD(汉明距离)3,总大小为7位。这可以检测所有2位错误模式(共7位),但是某些3位模式将失败,所有位均应为零的明显情况是>

0 0 0 1 0 1 1    (when it should be 0 0 0 0 0 0)

这是一个简单的示例,其中多项式中的1位的位数确定了最大位错误数。为了验证HD = 3(检测到2位错误),检查了全部21位,共7位,坏2位的情况。

[如果您检查32位CRC,您将看到0x04c11db7(以太网802.3,在263个数据位处具有HD = 6(5位错误检测)=> 263 + 32 = 295个总位,而0x1f4acfb13,具有HD = 6在32736数据位=> 32736 + 32 = 32768总位。请注意,在32768位中,有314,728,365,660,920,250,368 5位坏的可能组合。因此,搜索这种CRC需要大量的计算能力和优化的搜索算法。

这里是有关搜索好的CRC的pdf文章:

https://users.ece.cmu.edu/~koopman/networks/dsn02/dsn02_koopman.pdf

© www.soinside.com 2019 - 2024. All rights reserved.