Definition of the CRC Codes

CRC (Cyclic Redundancy Check) codes are extended Hamming codes. They are used to detect burst errors in communications systems of all kinds. Their generator polynomial is Equation002. where Equation004. is a minimal polynomial of the primitive element Equation006. of Equation008.

In other words, a primitive polynomial of degree m modulo 2. The parity check matrix is,

Equation010.

which has at least 3 independent columns, giving a minimum distance of Equation012.

CRC codes are chosen so that Equation014. so that both parity bits and generator polynomial coefficients fit into one computer word. Encoding and decoding easy and fast in hardware linear feedback shift registers, since we can add modulo 2 using XOR and multiply using AND while shifting bits circularly within a word.

The code blocklength is Equation016. and the number of parity bits is Equation018. where Equation020. We can pick one of the Equation022. primitive polynomials of degree m, subject to the conditions discussed below.

Some properties of CRC-CCITT are:

 

Description CRC-CCITT, a standard 16 bit CRC code.
Block Length Equation026.
Message Length Equation028.
Number of Parity Bits Equation030.
Error Locator Field Equation032.
Error Correction Ability Equation034.
Minimum Distance Equation036.
Generator Polynomial Equation038.
Random Error Detection Ability Equation040.
Probability of Undetected Error, burst length Equation042. Equation044.
Probability of Undetected Error, burst length Equation046. Equation048.
Probability of Undetected Error, burst length Equation050. Equation052.

Copyright © 1986-2008 by Sean Erik O'Connor. All Rights Reserved.     last updated 01 Jan 08.