CRC 
Cyclic Redundancy Check 
Prof. Chintan Patel 
Chintan.patel@marwadieducation.edu.in
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
• 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
CRC Sender and Receiver 
Prof. Chintan Patel
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
Polynomial Division 
• Dividing a polynomial with another one of lower degree is similar 
to normal polynomial division with “subtract” simple (XOR). 
Prof. Chintan Patel
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
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
Example 2 
• Use CRC with general polynomial x3 + 1 to encode 
the value: 10101111 
Prof. Chintan Patel
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
Solution 
Prof. Chintan Patel
Practice Examples 
1 P : 1001 
D : 101110 
2 P : 1101 
D : 10010110101 
3 P : 1011 
D : 11010011101100 
Prof. Chintan Patel
Prof. Chintan Patel

Crc

  • 1.
    CRC Cyclic RedundancyCheck Prof. Chintan Patel Chintan.patel@marwadieducation.edu.in
  • 2.
    Introduction • Mostpowerful 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 atsender 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
  • 4.
    CRC Sender andReceiver Prof. Chintan Patel
  • 5.
    Concepts……………….. 1. Howto 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 • Convertpolynomial 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
  • 11.
  • 12.
    Practice Examples 1P : 1001 D : 101110 2 P : 1101 D : 10010110101 3 P : 1011 D : 11010011101100 Prof. Chintan Patel
  • 13.