Cyclic Redundancy Check :
CRC code is an error detection code which is included in each transmitted
codeword as shown in figure and used by the receiver to detect the errors
in the received codeword.
This is a type of polynomial code in which a bit string is represented in the
form of polynomials with coefficients of 0 and 1 only.
Polynomial arithmetic uses a modulo-2 arithmetic or XOR operation.
For CRC code the sender and receiver should agree upon a generator
polynomial G(x). A codeword can be generated for a given dataword
(message) polynomial(M(x) with the help of long division.
This technique is more powerful than the parity check and checksum
error detection.
Procedure to obtain CRC to whether code word transmitted is correct or not.
Example 1 : Generate the CRC code for the data word of 110010101. The
Divisor is 10101
Soln.
Given Data word : 110010101
Divisor : 10101
The number of data bits = m =9
The number of bits in the divisor =n=5
Divident =Dataword + (n-1) zeros (5-1=4)
So, Divident = 110010101 0000
(4 additional zeros)
Division :
Carry out the division as follows:
If the received codeword is divided by divisor and the remainder is zero
then received code word is error free and if it is non-zero then it has
error.
(It is exercise to you)
Example 2 : The code word is received as 1100 1001 01011. Check whether
there are errors in the received code word, if the divisor is 10101.
Soln.
Error correction Techniques :
In the error correction techniques, codes are generated at the
transmitter(sender) by adding a group of parity bits or check bits as shown in
figure
The source generates the data(message) in the form of binary symbols. The
encoder accepts these bits and adds the check(parity) bits to them to produce
the code words.
These code words are transmitted towards the receiver. The check bits are
used by the decoder to detect and correct the errors.
The encoder adds the check bits to the data bits according to a prescribed
rule. This rule will be dependent on the type of code being used(either
odd parity or even parity)
The decoder separates out the data and check bits. It uses the parity bits
to detect and correct errors if they are present in the received code
words. The data bits are then passed on to the destination.
Following are the error detecting and correcting techniques :
FEC (Forward Error Correction) :
In FEC the receiver searches for the most likely correct code word.
When an error is detected, the distance between the received invalid
code word and all the possible valid code word is obtained.
The nearest valid code word(the one having minimum distance) is the
most likely the correct version of the received code word as shown below.