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.

Reply via email to