CRC-Cyclic Redundancy Check

This page describes CRC or Cyclic Redundancy Check. It covers CRC32,CRC16 mainly used in WLAN,WiMAX IEEE Standards.

There are two most common error detection techniques one is parity check and the other is Cyclic Redundancy Check or CRC.

By this method we can identify that the received packet is correctly received without any error or received incorrectly with error.

Suppose we need to transmit k bytes, in this case, few of the bytes are appended to k bytes which say make up n bytes, these n bytes are transmitted instead of k bytes and at the receiver CRC is calculated and compared with the transmitted CRC and hence error detection decision is made at the receiver.

There are many ways one can implement this, such as modulo 2 arithmetic operations, polynomial method and digital logic method. In modulo 2 method, modulo 2 sum of K bytes is calculated and appended at last as checksum and at the receiver the same last byte is compared with calculated checksum of received bytes.

The most popular CRC method used in today's wireless technologies are based on polynomial method.

There are various CRC polynomials as mentioned below such as CRC32, CRC16. They are used in wireless communication systems such as mobile wimax ( OFDMA) and fixed wimax( OFDM) implementations and in networking protocol implementations.

CRC16= X^16 + X^15 + X^2 + 1
CRC32= X^32 +X^26 + X^23 + X^22 + X^16 + X^12 + X^11 + X^10 + X^8 + X^7 + X^5 + X^4 + X^2 + X + 1

Say message K = 40 40 1A 06 C4 5A BC F6 57 21 E7 55 36 C8 27 A8 D7 1B 43 2C A5 48
CRC32 for these bytes = 1B D1 BA 21

CRC8 and CRC32 MATLAB CODE

CRC8 CRC32

RF and Wireless Terminologies