微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CRC 算法的效率如何?

如何解决CRC 算法的效率如何?

在我使用 53 (110101) 作为除数的 k = 20 位的 200,000 条消息中的 CRC 算法实现中,误码率为 10^(-3) 有 4987 条错误消息,其中只有一条消息通过通过未被发现。这些是有效的结果吗? CRC 算法可以如此高效还是我的实现中可能有问题? (我没有发布我的代码,因为我只是想要一些关于我想自己调试的结果的反馈)

-编辑:我使用的 CRC 算法是 here。我使用数字 53 来划分二进制消息,得到的余数是帧校验序列。然后将此序列附加到消息的末尾,然后发送消息。在接收端,传输的消息再次除以 53,但这次余数应为 0,除非发生位错误。 (虽然可能会发生未被注意到的位错误

解决方法

您对位错误的实现很可能是不正确的。

如果我正确阅读问题并且每条消息有 20 位,那么错误消息的预期数量为 200000 (1 - (1 - 10-3)20),即 3962。标准差约为其平方根,约为 63。您的 4987 条消息比预期数字高 16 个标准差!这种意外发生的概率小于 10-58​​sup>。所以你有一个错误。

至于误报,对于具有该误码率和特定 5 位 CRC 的 200,000 条 20 位消息,您应该预计平均会有一个(更准确地说是 0.982)。

多项式 x5 + x + 1 (100011) 更适合您的指定条件。对于同样的情况,这给出了 0.0071 的误报。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。