Cyclic Redundancy Checksum (CRC)
Cyclic Redundancy Check (CRC) is an error detection method that uses polynomial arithmetic to check data integrity. Here’s a summary of how CRC works and an example calculation.
CRC Process
- Representation: Treat the data packet as a polynomial.
- Division: Divide this polynomial by a generating polynomial using polynomial arithmetic.
- Remainder: Append the remainder of this division to the end of the message.
- Verification: The receiver performs the same division with the appended message. If the remainder is zero, the message is error-free.
CRC Flow
Example Calculation with Polynomial
Step-by-Step Example
Data Polynomial: (binary representation, which corresponds to )
Generator Polynomial: (binary representation )
-
Append Zeros: Append 3 zeros to the data polynomial, where 3 is the degree of the generator polynomial.
- Extended Data Polynomial: becomes
-
Division: Perform polynomial division of by .
-
Binary Division:
1101000 ÷ 1011
-
Perform Division:
1011 | 1101000 1011 ---- 01100 1011 ---- 0101 1011 ---- 0100
-
Remainder: The result of the division is .
-
-
Append Remainder: The remainder is appended to the original data polynomial.
- Message with CRC: with remainder gives
-
Verification: The receiver performs the same division with the appended message and checks if the remainder is zero.
- If the remainder is zero, the data is correct. Otherwise, there was an error during transmission.
Summary
Error detection performance
- CRC: Utilizes polynomial arithmetic for error detection.
- Process: Involves polynomial division and appending the remainder.
- Example: For data and generator polynomial , the remainder after division is .