【问题标题】:undetected error probabilities in CRC and relation to link error rateCRC 中未检测到的错误概率以及与链路错误率的关系
【发布时间】:2021-02-14 16:52:49
【问题描述】:

未检测到错误的概率随链接类型而变化?它们有关系吗? 我的意思是,如果链路有损或误码率较高这将如何影响未检测到的错误概率? 有任何公式可以计算吗?

【问题讨论】:

    标签: crc


    【解决方案1】:

    “链接类型”的真正含义是通道的错误特征。在具有高误码率的通道上,例如CRC (n) 中每条消息某处出错的位数(每条消息都获得一个 CRC),通常未检测到的比率为 2-n 每条消息适用。至少总是这么好。这就是你的公式。

    当然假设错误是随机的。有可能故意应用计算出来的错误以保持 CRC 不变,因此 CRC 无法防范那些具有恶意意图的错误。

    但是,由于误码率较低,未检测到的错误概率可以比该公式更好。

    然后它变得更加复杂。如果您从不希望消息中出现多于一位的错误,那么 CRC 将始终检测到错误,而不管消息的长度如何。 (CRC 始终提供奇偶校验。)如果 CRC 多项式的因子为 x+1,那么它将始终检测到 odd 个比特错误。 CRC 还具有我不会涉及的特殊“突发”错误属性。假设您有一个误码率,其中消息中的任何位都可以以该概率翻转。 (一个binary symmetric channel。)

    对于消息中给定数量的错误位,您会发现消息长度有限,始终会检测到那么多(或更少)的错误。

    This page 显示了许多 32 位 CRC 多项式的这些属性。例如,可以查看带有多项式0x04c11db7 的通常 32 位 CRC 的条目。它有这个神秘的数字列表:

    {4294967263,91607,2974,268,171,91,57,34,21,12,10,10,10}
    

    这些数字分别对应于消息中的 2、3、4 等错误位。每个数字都是最长消息(不包括 CRC)的比特长度,使用该多项式的 CRC 可以保证检测到那么多错误。

    因此,CRC 将始终检测长度不超过 91,607 位的消息中的三个或更少位错误。它始终会检测长度不超过 2,974 位的消息中的四个或更少位错误。

    在这种情况下没有简单的公式,因为这些数字是对“码字”进行详尽搜索的结果,这些码字是 CRC 为零的模式。这些可以被视为错误模式,可以应用于任何不会导致 CRC 发生变化的消息。

    在给定比特错误率p的情况下,有公式可以计算n比特的消息有k个或更少错误的概率.请参阅binomial distribution 及其近似值。

    【讨论】:

    • 您提到“通常每条消息的未检测率 2^(-n) 都适用。它总是至少这么好”,信道中较高的误码率是否可能导致 CRC比那更糟?或者你的意思是即使我们有所有的错误,但我们至少可以检测到 2^(-crc)
    • 如果您知道错误模式,在这种情况下,消息中的每个位都会翻转,并且您知道您的消息长度,您可以确定 CRC 是否会检测到该错误。所以这不是概率。如果我认为我的消息 length 是随机变量,那么是的,2^32 个消息长度中只有一个会导致这些错误未被检测到。第一个这样的消息长度是 2^32-1 位,或半 GB 长的消息。
    • 所以如果我正确理解了 PUE 与通道位错误无关。如果我有 2 个通道 1 具有 10^(-3) 和一个具有 10^(-15) 误码率,则 PUE 总是相同的(如果数据包大小小于 512MB)。
    • 你没有正确。这取决于误码率和数据包大小。
    • 但不会比 2^(-CRC) 更差吧?
    猜你喜欢
    • 2020-10-25
    • 2010-11-22
    • 2015-05-14
    • 2019-01-23
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2018-01-24
    相关资源
    最近更新 更多