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)