DCN Error Detection and Correction
DCN Error Detection and Correction
DCN Error Detection and Correction
11100111
11011101
00111001
10101001
10101010
Single precision
Double precision
Honey Well
Residue
Single Precision Checksum
Performing a binary addition of each n-bit data word in the message block.
Any carry or overflow during the addition process is ignored
The resultant checksum is also n-bit length.
1010
0011
Transmitted Message 1101
1010 0011 1101 1010 ------
1010
Double Precision Checksum
1010
0011
1101
--------------
00011010
Residue Checksum
Carryout of the MSB position of the checksum word is “wrapped around” and added to the LSB.
1010
0011
1101
--------------
1011
Honey well Checksum
10100011
11011111
-------------------
10000010
Double Precision Checksum
Cyclic Redundancy checking
A power full method than the LRC and VRC for detection in block is
cyclic redundancy checking CRC.
CRC is most commonly used for error detection in block
transmission.
Efficiency of error detection is 99.9%.
CRC involves a division of the transmitted message block by a
constant called the generator polynomial.
Cyclic Redundancy Check
Powerful error detection scheme
Rather than addition, binary division is used Finite Algebra Theory
(Galois Fields)
Can be easily implemented with small amount of hardware
◦ Shift registers
◦ XOR (for addition and subtraction)
Cyclic Redundancy Check
Let us assume k message bits and
n bits of redundancy xxxxxxxxxx yyyy Block of length k+n
k bits n bits
Receiving
1. Receive F’(x)
2. Divide F’(x) by P(x)
3. Accept if remainder is 0, reject otherwise
Example
Send • Receive
◦ M(x) = 110011 x5+x4+x+1 (6 bits)
◦ P(x) = 11001 x4+x3+1 (5 bits, n = 4) 11001 1100111001
4 bits of redundancy 11001
◦ Form xnM(x) 110011 0000
x9+x8+x5+x4 11001
◦ Divide xnM(x) by P(x) to find C(x) 11001
00000
11001 1100110000
11001 No remainder
10000 Accept
11001
1001 = C(x)
Send the block 110011 1001
Problem 100111 10100110100000
100111
The transmitted message block 111010
contains total number of 14. Nine of 100111
the 14 are data bits. Given Generator 111011
polynomial, G(x)=X5+X2+X+1and
message polynomial, 100111
M(x)=X8+X6+X3+X2+1. Compute the 111000
value of BCC and T(x) 100111
111110
100111
110010
100111
101010
100111
11010
Problem.
A 16-bit message using CRC-16 is used. The total number of bits in transmitted message block, n
is 32. the generator polynomial for CRC-16 is G(x)= X16+X15+X2+1 and message polynomial is
M(x)=X15+X13+X11+X10+X7+X5+X4+1. Compute the value BCC and T(x).
Error Correction
Automatic Repeat reQuest
ARQ is to request the retransmission of the data block received in error
Forward Error Correction
FEC is used in simplex transmission or applications where it is impractical or impossible to
request a retransmission of the corrupted message block.
HAMMING CODE
Hamming code employs the use of redundant bits that are inserted into the message stream for
error correction.
Hamming bits are used to identify the position of error. This position is known as the syndrome
Developing of Hamming code
Hamming code for single-bit FEC
10 bits will be used. The hamming bits depends on the number of data bits.
2m ≥ n+1
Where n is number data bits + hamming bits and m is number of hamming bits.
Compute the number of the Hamming bits m required for a message
of n bits.
Insert the Hamming bits H into original message stream.
Express each bit position containing a 1 as the m-bit binary number
and exclusive-OR each of the these numbers together.
starting from the left bit positions. This will be the hamming code.
Place the value of the hamming bits (code) into transmitted message
stream.
The Hamming bits are extracted from the received message stream and exclusive-ORed with
the binary representation of the bit positions containing a 1. This will detect the bit position in
error, or the syndrome.
Problem
Given the 12 bit message 101110101011, determine the following:
a. Number a Hamming bits, m required
b. Total number of the transmitted bits, n
c. Hamming code
d. Syndrome if the bit position 10 is corrupted.