错误检测效率(CRC、校验和等)

5
我有一个假设情况,需要发送数据单元,每个单元有一千字节。失败率很低,但如果出现错误,则更可能是几位连续出错而不是单个位出错。
起初我想使用校验和,但显然它可能会漏掉大于一个位的位错误。奇偶校验也行不通,所以CRC可能是最好的选择。
使用循环冗余校验在一千字节上是否有效?还是有其他更好的方法?
4个回答

8
循环冗余校验(CRC)因其检测多位错误的效率和保证准确性而受到欢迎。有不同的设计来生成CRC多项式,其中精度与计算复杂度之间存在权衡。在您的情况下,您可以选择最符合准确性要求的“最快”方法。您可以从维基百科上的这篇文章Cyclic Redundancy Check开始。

谢谢,我只是在寻求关于效率方面的建议,因为我在其他地方找不到它。 - irl_irl

2

1

使用CRC是很正常的。我不确定你所说的“效率”是什么意思,但我认为有时会在硬件上实现CRC(例如在以太网卡上)。否则,您可能会找到“优化”的实现(使用查找表)。


1

你的磁盘扇区有多大?可能至少为512字节。CRC是硬件级磁盘ECC的历史悠久的方案。

标准的CRC多项式算法对于少量位错误非常有效。精确度在数学上是可计算的。在硬件中执行CRC也非常高效,相对较少的门和移位寄存器可以即时完成工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接