0

假设我必须对 120 位长的消息进行错误检查。对于校验和方案,我有两种选择:

  1. 将消息拆分为 5 个 24 位字符串,并为每个字符串附加一个 CRC8 字段

  2. 用 CRC32 字段附加整个消息

哪种方案的检错概率更高,为什么?让我们假设没有关于错误模式分布的先验知识。


更新:

如果系统有一种自然的故障模式,即接收到清除位而不是设置位(即,“1”是 Tx-ed,但“0”是 Rx-ed),而相反的情况不会发生,该怎么办?

在这种情况下,长突发错误比特的概率要小得多,假设有效数据具有“0”和“1”的均匀分布,那么最长突发将被最长的“1”字符串所束缚“在消息中。

4

2 回答 2

1

您必须对错误模式做出一些假设。如果您对所有可能的错误有一个统一的分布,那么五个 8 位 CRC 将比一个 32 位 CRC 检测到更多的错误,因为前者具有 40 位冗余。

但是,我可以构造许多 24 位错误模式来欺骗 8 位 CRC,并使用其中五个的任意组合来使所有 8 位 CRC 都没有错误。然而,几乎所有这些都将被 32 位 CRC 捕获。

于 2016-04-16T14:31:44.767 回答
0

当然是CRC32。它将检测五个段之间的排序错误,并为您提供 2 24的错误检测。

于 2016-04-15T20:52:55.433 回答