假设我必须对大约120位长的消息进行错误检查。我有两种替代校验和方案:
将消息拆分为5个24位字符串,并为每个字符串追加CRC8字段
使用CRC32字段附加整个消息
哪种方案具有更高的错误检测概率,为什么?让我们假设没有关于错误模式分布的先验知识。
更新
如果系统具有自然的故障模式,即接收到的清除位而不是设置位(即“1”为Tx-ed但“0”为Rx-ed),则会发生相反的情况怎么办? ?
在这种情况下,假设有效数据具有“0”和“1”的均匀分布,则错误位长突发的概率要小得多,因此最长突发将受最长字符串的约束消息中的“1”。
答案 0 :(得分:1)
您必须对错误模式做出一些假设。如果你对所有可能的错误进行统一分配,那么五个8位CRC将检测到比一个32位CRC更多的错误,因为前者有40位冗余。
但是,我可以构造许多愚弄8位CRC的24位错误模式,并使用其中五种的任意组合在所有8位CRC上都没有错误。然而,几乎所有这些都将被32位CRC捕获。
答案 1 :(得分:0)
CRC32当然。它将检测五个段之间的排序错误,并为您提供2 24 错误检测。