0% found this document useful (0 votes)
13 views12 pages

CRC

CRC uses modulo-2 division to generate check bits that are appended to data to detect errors. At the sender, data is augmented with zeros and divided by a generator polynomial to get a remainder, which is appended. At the receiver, the same operation is done and if the remainder is zero, no errors are detected. CRCs can detect up to triple bit errors and bursts of errors up to the check bit length. They are commonly used in Ethernet, WiFi, and other data transmission protocols.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views12 pages

CRC

CRC uses modulo-2 division to generate check bits that are appended to data to detect errors. At the sender, data is augmented with zeros and divided by a generator polynomial to get a remainder, which is appended. At the receiver, the same operation is done and if the remainder is zero, no errors are detected. CRCs can detect up to triple bit errors and bursts of errors up to the check bit length. They are commonly used in Ethernet, WiFi, and other data transmission protocols.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

CRC

CRCs
• Send Procedure:
1. Extend the n data bits with k zeros
2. Divide by the generator value C
3. Keep remainder, ignore quotient
4. Adjust k check bits by remainder

• Receive Procedure:
1. Divide and check for zero remainder
CRC
At the sender’s end
if the dataword has k bits ; the codeword has n bits, The size of the dataword is
augmented by adding n - k 0s to the right-hand side of the word.

The n-bit result is fed into the generator.

The generator is a divisor of size n - k + I , predefined and agreed upon.

The generator divides the augmented dataword by the divisor (modulo-2 division).

The quotient of the division is discarded;


the remainder is appended to the dataword to create the codeword
CRC
Sender Side (Generation of Encoded Data from Data and Generator
Polynomial (or Key)):
1.The binary data is first augmented by adding k-1 zeros in the end of the
data
2.Use modulo-2 binary division to divide binary data by the key and store
remainder of division.
3.Append the remainder at the end of the data to form the encoded data
and send the same
CRCs
Receiver Side (Check if there are errors introduced in
transmission)
Perform modulo-2 division again and if the remainder is 0, then
there are no errors.

Modulo 2 Division:
The process of modulo-2 binary division is the same as the familiar division process we use for decimal
numbers. Just that instead of subtraction, we use XOR here.
•In each step, a copy of the divisor (or data) is XORed with the k bits of the dividend (or key).
•The result of the XOR operation (remainder) is (n-1) bits, which is used for the next step after 1 extra bit
is pulled down to make it n bits long.
•When there are no bits left to pull down, we have a result. The (n-1)-bit remainder which is appended
at the sender side.
CRCs Example1
Data bits: 100111 1 0 1 0 1 1 1 1 1
1101011111
Check bits:
C(x)=x4+x1+1
C = 10011
k=4
CRCs Example1
CRCs Example2
An example generator polynomial is of the form like x3 + x + 1. This
generator polynomial represents key 1011. Another example is
x2 + 1 that represents key 101.
CRCs Example2
Data word to be sent - 100100 Key -
1101 [ Or generator polynomial x3 + x2
+ 1] Sender Side:
Therefore, the remainder is all
zeros. Hence, the data received
has no error.
CRCs Example2
Therefore, the remainder is 001 and
hence the encoded data sent is
100100001.
Receiver Side: Code word received at
the receiver side 100100001

Therefore, the remainder is all zeros. Hence, the data received has no error.
CRCs
• Protection depend on generator
– Standard CRC-32 is 10000010
01100000 10001110 110110111

• Properties:
– HD=4, detects up to triple bit errors
– Also odd number of errors
– And bursts of up to k bits in error
– Not vulnerable to systematic errors
like checksums
Error Detection in Practice
• CRCs are widely used on links
– Ethernet, 802.11, ADSL, Cable …
• Checksum used in Internet
– IP, TCP, UDP … but it is weak
• Parity
– Is little used

You might also like