This message is from the T13 list server.
From: "Hale Landis" <[EMAIL PROTECTED]>
On Wed, 02 Jan 2002 10:31:10 -0700, Pat LaVarre wrote:
>I have a question about how much data a single CRC-32 "should" be
>made to cover. I have heard rumors that if a single CRC-32 is
>forced to cover more than about 8 kB of data, its effectiveness
>in detecting errors drops off (that is, more errors can end up
>having good CRC and therefore go undetected). Does anybody have
>any comments? References to published papers on the topic would
>be greatly appreciated.
1394 uses such a CRC for packet data but 1394 also limits packet
sizes to fairly small lengths (4K or less). I wonder if IEEE has
any doc on the effectiveness of CRC algorithms?
If your bit error rate is p, then after n bits you expect pn errors.
This will grow without bound. On the other hand, a random bitstring
will have zero 32-bit CRC with probability 2^-32, independent of
the length of the input.
Thus, for large input length, where you expect many errors,
zero CRC just means that you were lucky (probability 1 in 2^32)
but says nothing about correctness.
A 32xN parity check matrix defines a linear code with codimension 32.
With N=4294967295 (2^32-1) it will allow you to detect two errors
or correct one error. That may be satisfactory when the expected
number of errors on 2^32 bits is much less than 1.
With N=65535 (2^16-1) it will allow you to detect four errors
or correct two errors. That may be satisfactory when the expected
number of errors on 2^16 bits is much less than 1.
With N=255 (2^8-1) it will allow you to detect eight errors
or correct four errors. That may be satisfactory when the expected
number of errors on 2^8 bits is much less than 1.
Andries
Subscribe/Unsubscribe instructions can be found at www.t13.org.