问题
How does the probability of undetected error vary as a function of link type? are they related at all? I mean if the link is lossy or has a higher bit error rate how this would affect the Undetected Error Probability? Is there any formula to calculate that?
回答1:
What you really mean by "link type" is the error characteristics of the channel. On a channel with a high bit error rate, e.g. the number of bits in the CRC (n) in error somewhere in each message (where each messages gets a CRC), the usual undetected rate of 2-n per message applies. It is always at least this good. So there's your formula.
Assuming of course that the errors are random. It is possible to deliberately apply errors calculated to leave the CRC unchanged, so CRCs cannot protect against those with malicious intent.
However the undetected error probability can get better than that formula, for lower bit error rates.
Then it gets more complicated. If you never expect to get more than one-bit error in a message, then a CRC will always detect the error, regardless of the length of the message. (A CRC always provides a parity check.) If a CRC polynomial has a factor of x+1, then it will always detect an odd number of bit errors. CRCs also have special "burst" error properties that I won't get into. Let's assume that you have a bit error rate where any bit in the message can be flipped with that probability. (A binary symmetric channel.)
For a given number of error bits in the message, you find that there are finite message lengths for which that many errors (or fewer) will always be detected.
This page shows those properties for many 32-bit CRC polynomials. As an example, can look at the entry for the usual 32-bit CRC with polynomial 0x04c11db7
. It has this cryptic list of numbers:
{4294967263,91607,2974,268,171,91,57,34,21,12,10,10,10}
Those numbers correspond respectively to 2, 3, 4, etc. error bits in a message. Each number is the length in bits of the longest message (not including the CRC) for which a CRC using that polynomial is guaranteed to detect that many errors.
So that CRC will always detect three or fewer bit errors in messages up to 91,607 bits in length. It will always detect four or fewer bit errors in messages up to 2,974 bits in length.
There is no simple formula in this case, as those numbers are the result of exhaustive searches for "codewords", which are patterns whose CRC is zero. Those can be seen as patterns of errors that can be applied to any message that result in no change to the CRC.
There are formulas to calculate the probability that a message of n bits has k or fewer errors, given a bit error rate of p. See the binomial distribution, and its approximations.
来源:https://stackoverflow.com/questions/64638659/undetected-error-probabilities-in-crc-and-relation-to-link-error-rate