1. CRC
Cyclic Redundancy Check
Prof. Chintan Patel
Chintan.patel@marwadieducation.edu.in
2. Introduction
• Most powerful and Easy to implement technique
• Checksum calculation is based on summation while CRC is based on
binary division
• Cyclic Redundancy check bits are appended at the end of data unit.
• If a K bit message is to be transmitted, the transmitter generates an r-bit
sequence called as FCS(Frame check sequence).
• So k+r bits are actually being transmitted.
• Generator Polynomial : it is a predetermined number of length r+1
which is used to generate FCS bits
• NOTE : Generator polynomial is decided by sender and receiver by
their mutual understanding.
Prof. Chintan Patel
3. • Procedure at sender side :
1. Determine size of original massage (k bits)
2. Establish Generator Polynomial (r + 1 bits).
3. Append r zeros with original message [x = (k (Message)+ r (zeros))]
4. Divide this x by the generator polynomial.
5. Append remainder(also considered as a FCS of r bits) with original
message k.
6. Transmit this data.
• Procedure at Receiver side :
1. Receive k + r bits
2. Establish Generator Polynomial(r+1 bits)
3. Divide this bits by generator polynomial.
4. If remainder is all bits 0 , no error in transmission
Prof. Chintan Patel
5. Concepts………………..
1. How to represent a binary sequence using polynomial, and how to represent
polynomial using binary sequence?
7
+ 0x
– M1 = 0010,1101 M1(x) = 0x
6
+ 1x
5
+ 0x
4
+ 1x
3
+ 1x
2
+ 0x
1
+
0
– 1x
5
+ x
= x
3
+ x
2
+ 1
2. How to subtract (or add) two polynomials?
– Represent the polynomials using binary sequences
– Perform bit-wise XOR between the two sequences
– Convert the XOR result back to polynomial
7
+ x
• M1(x) – M2(x) M1 ⊕ M2 = 00101101 ⊕ 10000100 = 10101001 x
5
+ x
3
+ 1
Prof. Chintan Patel
6. Polynomial Division
• Dividing a polynomial with another one of lower degree is similar
to normal polynomial division with “subtract” simple (XOR).
Prof. Chintan Patel
7. Example 1
• Given information
– Generator polynomial = X3 + x + 1
– Data part = X3 + x2 + 1
• What will be FCS Value ?
• What will be final bits transmitted by sender?.
Prof. Chintan Patel
8. Solution
• Convert polynomial to binary
– Generator polynomial = 1011 (r + 1 = 4 bits)
– Original Message = 1101
• Append 3(r bits), 0’S with original message.
• So it will be 1101000
• Divide this sequence by 1011
• Reminder or FCS Value = 001.
• Append this reminder with original message. So it will be 1101001,
which will be transmitted by sender
Prof. Chintan Patel
9. Example 2
• Use CRC with general polynomial x3 + 1 to encode
the value: 10101111
Prof. Chintan Patel
10. Example 3
• Obtain the 4-bit CRC code word for the data bit sequence
10011011100 (leftmost bit is the least significant) using the
generator polynomial = 10101
Prof. Chintan Patel