CRC (Cyclic Redundancy Check)
CRC (Cyclic Redundancy Check)
CRC uses Generator Polynomial which is available on both sender and receiver side. An example generator
polynomial is of the form like x3 + x + 1. This generator polynomial represents key 1011. Another example is x2 + 1
that represents key 101.
Sender Side (Generation of Encoded Data from Data and Generator Polynomial (or Key)):
1. The binary data is first augmented by adding k-1 zeros in the end of the data
2. Use modulo-2 binary division to divide binary data by the key and store remainder of division.
3. Append the remainder at the end of the data to form the encoded data and send the same
The process of modulo-2 binary division is the same as the familiar division process we use for decimal
numbers. Just that instead of subtraction, we use XOR here.
• In each step, a copy of the divisor (or data) is XORed with the k bits of the dividend (or key).
• The result of the XOR operation (remainder) is (n-1) bits, which is used for the next step after 1 extra bit
is pulled down to make it n bits long.
• When there are no bits left to pull down, we have a result. The (n-1)-bit remainder which is appended at
the sender side.
crc Page 1
n= 6 bits
k= 4 bits
zeros to be appended = k-1= 3 zeros
crc Page 2
Therefore, the remainder is 001 and hence the
code word sent is 100100001.
Receiver Side
Let there be an error in transmission media
Code word received at the receiver side - 100000001
Example 3:
crc Page 3
Example 3:
crc Page 4