CRC - Cyclic Redundancy Check (DC Assignment)
CRC - Cyclic Redundancy Check (DC Assignment)
Data
Communication
CSE225
SUBMISSION DATE :
19 December 2024
PROPOSED BY :
Sumaiya Zahid Sara
ID: 0242310005101967
PROPOSED TO :
MD Jahidul Alam
Cyclic Redundancy Check (CRC)
Generator Polynomial:
A predefined binary number, often represented as a polynomial,
used for division. This is the core of CRC's functionality.
Advantages of CRC:
Efficient Error Detection:
CRC can detect common errors such as single-bit
errors, burst errors, and some patterns of multiple-
bit errors.
Fast Computation:
The algorithm is computationally efficient, making
it suitable for real-time systems and hardware
implementations.
Widely Used:
It's the backbone of many communication protocols,
including Ethernet, USB, and many file storage
systems.
Limitations of CRC:
Not Foolproof:
CRC cannot detect every possible error. For
instance, if errors perfectly cancel each other out,
the remainder will still be zero.
Solution:
1010 ) 110110101011000
1010
------------
0110 (remainder)
1010
-------------
0101 (bring down next bit)
1010
------------
0011 (bring down next bit)
1010
-------------
0110 (bring down next bit)
1010
------------
0101 (bring down next bit)
1010
------------
0000 (final remainder)
1010 ) 110110101011000
1010
---------
0111 (remainder)
1010
----------
0010 (bring down next bit)
1010
---------
0000 (bring down next bit)
1010
---------
0000 (bring down next bit)
1010
---------
0000 (final remainder)
Example:
Divisor = 1011(x3+x+1)
= 4−1=3.
= 110101000
Polynomial form of augmented dataword:
x8+x7+x5+x3
Encoder (Sender):
Given:
Dataword:
x8+x7+x5+x3
Divisor:
x3+x+1
X^7+x^6+x^3−(x^7+x^4+x^3)=x^6+x^4
Step 3:
Divide x^6 by x^3
Quotient = x^3
Subtract (x3⋅(x3+x+1)):
x6+x4−(x6+x3+x)=x4+x3+x
Step 4:
Divide x^4 by x^3
Quotient = x
Subtract (x⋅(x3+x+1)):
x4+x3+x−(x4+x2+x)=x3+x2
Step 5:
Divide x^3 by x^3
Quotient = 1
Subtract (1⋅(x3+x+1)):
x3+x2−(x3+x+1)=x2+x+1
Remainder:
x2+x+1.
Codeword:
Decoder (Receiver):
Given:
Codeword:
(binary: 110101111)
Divisor:
x^3 + x + 1
(binary: 1011)
Step 1:
Divide x^8 by x^3:
Quotient = x^5
x^8 + x^7 + x^5 + x^3 + x^2 + x + 1 - (x^8 + x^6 + x^5) = x^7 + x^6 +
x^3 + x^2 + x + 1
Step 2:
Divide x^7 by x^3:
Quotient = x^4
Step 3:
Divide x^6 by x^3:
Quotient = x^3
x^6+x^4−(x^6+x^3+x) = x^4+x^3+x
Step 4:
Subtract (x⋅(x^3+x+1))
Step 5:
Divide x^3 by x^3:
Quotient = 1
Subtract (1⋅(x3+x+1))
x^3 + x + 1 - (x^3 + x + 1) = 0
Final Remainder:
0
Interpretation: