Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
CRC-CYCLIC REDUNDANCY
CHECK
NAME:
 RAJAN SHAH
 SVIT, Vasad
Introduction
 CRC is also known as Polynomial Code,
which are based upon treating bit strings
as representations of polynomial with co-
efficients of 0 & 1 only.
 A k bit frame is regarded as the coefficient
list for a polynomial with k terms, ranging
from xk-1 to x0 and is known as polynomial
of degree k-1.
 Binary Division carried out with subtraction
is done modulo 2.
How to Perform CRC?
 Let M(x) be the message polynomial
 Let P(x) be the generator polynomial
 P(x) is fixed for a given CRC scheme
 P(x) is known both by sender and receiver
 Create a block polynomial F(x) based on M(x)
and P(x) such that F(x) is divisible by P(x) :
)(
0
)(
)(
)(
xP
xQ
xP
xF

Sending and Receiving
 Sending
1. Multiply M(x) by xn
2. Divide xnM(x) by P(x)
3. Ignore the quotient and keep the reminder C(x)
4. Form and send F(x) = xnM(x)+C(x)
 Receiving
1. Receive F’(x)
2. Divide F’(x) by P(x)
3. Accept if remainder is 0, reject otherwise.
Proof of CRC
)(
)()(
)(
)()(
)(
)()(
)()()()(
)(remainder,
)(
)()(
)(bydivisibleis)()(thatProve
xP
xCxC
xP
xQxP
xP
xCxMx
xCxQxPxMx
xC
xQ
xMxxP
xPxCxMx
n
n
n
n





Binary modular addition is equivalent to
binary modular subtraction  C(x)+C(x)=0
Example
 Send
 M(x) = 110011  x5+x4+x+1 (6 bits)
 P(x) = 11001  x4+x3+1 (5 bits, n =
4)
 4 bits of redundancy
 Form xnM(x)  110011 0000
 x9+x8+x5+x4
 Divide xnM(x) by P(x) to find C(x)100001
1001
11001
10000
11001
110011000011001
= C(x)
Send the block 110011 1001
• Receive
00000
11001
11001
11001
110011100111001
No remainder
 Accept
Properties of CRC
 F(x) is sent, but received is: F’(x) = F(x)+E(x)
 When will E(x)/P(x) have no remainder?
1. Single Bit Error  E(x) = xi ; i determines
which bit is in error.
If P(x) has two or more terms, P(x) will not
divide E(x).
2. 2 Isolated Single Bit Errors (double errors)
E(x) = xi+xj, i>j
E(x) = xj(xi-j+1)
Provided that P(x) is not divisible by x, a
sufficient condition to detect all double errors is
that P(x) does not divide (xt+1) for any t up to(i-
j) (i.e. block length)
Continue...
4. Short Burst Errors
(Length t ≤ n, number of redundant bits)
E(x) = xj(xt-1+…+1)  Length t, starting at
bit position j, i determines how far from the
right-hand end of the received frame the
burst is located.
If P(x) has an x0 term and t ≤ n, P(x) will not
divide E(x)
All errors up to length n are detected
5. Long Burst Errors (Length t = n+1)
Undetectable only if burst error is the same
as P(x)
THANK YOU

More Related Content

Cyclic Redundancy Check

  • 2. Introduction  CRC is also known as Polynomial Code, which are based upon treating bit strings as representations of polynomial with co- efficients of 0 & 1 only.  A k bit frame is regarded as the coefficient list for a polynomial with k terms, ranging from xk-1 to x0 and is known as polynomial of degree k-1.  Binary Division carried out with subtraction is done modulo 2.
  • 3. How to Perform CRC?  Let M(x) be the message polynomial  Let P(x) be the generator polynomial  P(x) is fixed for a given CRC scheme  P(x) is known both by sender and receiver  Create a block polynomial F(x) based on M(x) and P(x) such that F(x) is divisible by P(x) : )( 0 )( )( )( xP xQ xP xF 
  • 4. Sending and Receiving  Sending 1. Multiply M(x) by xn 2. Divide xnM(x) by P(x) 3. Ignore the quotient and keep the reminder C(x) 4. Form and send F(x) = xnM(x)+C(x)  Receiving 1. Receive F’(x) 2. Divide F’(x) by P(x) 3. Accept if remainder is 0, reject otherwise.
  • 6. Example  Send  M(x) = 110011  x5+x4+x+1 (6 bits)  P(x) = 11001  x4+x3+1 (5 bits, n = 4)  4 bits of redundancy  Form xnM(x)  110011 0000  x9+x8+x5+x4  Divide xnM(x) by P(x) to find C(x)100001 1001 11001 10000 11001 110011000011001 = C(x) Send the block 110011 1001 • Receive 00000 11001 11001 11001 110011100111001 No remainder  Accept
  • 7. Properties of CRC  F(x) is sent, but received is: F’(x) = F(x)+E(x)  When will E(x)/P(x) have no remainder? 1. Single Bit Error  E(x) = xi ; i determines which bit is in error. If P(x) has two or more terms, P(x) will not divide E(x). 2. 2 Isolated Single Bit Errors (double errors) E(x) = xi+xj, i>j E(x) = xj(xi-j+1) Provided that P(x) is not divisible by x, a sufficient condition to detect all double errors is that P(x) does not divide (xt+1) for any t up to(i- j) (i.e. block length)
  • 8. Continue... 4. Short Burst Errors (Length t ≤ n, number of redundant bits) E(x) = xj(xt-1+…+1)  Length t, starting at bit position j, i determines how far from the right-hand end of the received frame the burst is located. If P(x) has an x0 term and t ≤ n, P(x) will not divide E(x) All errors up to length n are detected 5. Long Burst Errors (Length t = n+1) Undetectable only if burst error is the same as P(x)