Error Detection Correction
Error Detection Correction
&
C o r re c t i o n
Error is a condition when the receiver’s information does not
match the sender’s information. During transmission, digital
signals suffer from noise that can introduce errors in the binary
bits traveling from sender to receiver. That means a 0 bit may
change to 1 or a 1 bit may change to 0.
Burst Error:
When several consecutive bits are flipped mistakenly in digital
transmission, it creates a burst error. This error causes a sequence
of consecutive incorrect values.
To detect errors, a common technique is to introduce redundancy
bits that provide additional information.
Various techniques for error detection include:
On receiving the code word, the receiver finds the no. of ones to
be even and hence no error, which is a wrong assumption.
Two-dimensional Parity Check:
Two-dimensional Parity check bits are calculated for each row,
which is equivalent to a simple parity check bit. Parity check bits
are also calculated for all columns, then both are sent along
with the data. At the receiving end, these are compared with the
parity bits calculated on the received data
Checksum:
Checksum error detection is a method used to identify errors in
transmitted data. The process involves dividing the data into
equally sized segments and using a 1’s complement to calculate
the sum of these segments. The calculated sum is then sent
along with the data to the receiver. At the receiver’s end, the
same process is repeated and if all zeroes are obtained in the
sum, it means that the data is correct.
Checksum – Operation at Sender’s Side
❑Firstly, the data is divided into k segments each of m bits.
❑On the sender’s end, the segments are added using 1’s
complement arithmetic to get the sum. The sum is complemented
to get the checksum.
❑The checksum segment is sent along with the data segments.
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.
Example 2: (Error in transmission)
Data word to be sent - 100100
Key - 1101
Sender Side:
Therefore, the remainder is 001 and hence the code word sent is 100100001.
Receiver Side
Let there be an error in transmission media
Code word received at the receiver side – 100000001
Since the remainder is not all zeroes, the error is detected at the receiver side.
Hamming Code for Error detection and
correction
Hamming code is a set of error-correction codes that can be used
to detect and correct the errors that can occur when the data is
moved or stored from the sender to the receiver. It is a technique
developed by R.W. Hamming for error correction.
Redundant bits – Redundant bits are extra binary bits that are
generated and added to the information-carrying bits of data transfer
to ensure that no bits were lost during the data transfer.
The number of redundant bits can be calculated using the following
formula:
2^r ≥ m + r + 1
where, r = redundant bit, m = data bit
Suppose the number of data bits is 7, then the number of redundant bits can be
calculated using: = 2^4 ≥ 7 + 4 + 1
Thus, the number of redundant bits= 4 Parity bits.
Determining the position of redundant bits – These redundancy bits are placed at
positions that correspond to the power of 2.
As in the above example:
• The number of data bits = 7
• The number of redundant bits = 4
• The total number of bits = 11
• The redundant bits are placed at positions corresponding to power of 2- 1, 2, 4,
and 8
Suppose the data to be transmitted is 1011001, the bits will be placed as
follows:
Each parity bit calculates the parity for some of the bits in the code word. The position of
the parity determines the sequence of bits that it alternatively checks and skips.
Position 1 − Check 1 bit, then skip 1 bit, check 1 bit and then skip 1 bit and so on (Ex −
1,3,5,7,11, etc.)
Position 2 − Check 2 bit, then skip 2 bit, check 2 bit, then skip 2 bit (Ex −
2,3,6,7,10,11,14,15, etc.)
Position 4 − Check 4 bit, then skip 4 bit, check 4 bit, then skip 4 bit (Ex − 4, 5, 6, 7, 12, 13,
14, 15, etc.)
Position 8 − Check 8 bit, then skip 8 bit, check 8 bit, then skip 8 bit (Ex − 8, 9, 10, 11, 12,
13, 14, 15, 24, 25, 26, 27, 28, 29, 30, 31).
Set the parity bit 1 if the total number of 1s in the positions it checks odd or
set the parity bit 0 if the total number of 1s in the positions it checks even.
Determining the Parity bits:
R1 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the least significant position. R1:
bits 1, 3, 5, 7, 9, 11
To find the redundant bit R1, we check for even parity. Since the total
number of 1’s in all the bit positions corresponding to R1 is an even
number the value of R1 (parity bit’s value) = 0
R2 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the second position from the least
significant bit. R2: bits 2,3,6,7,10,11
To find the redundant bit R2, we check for even parity. Since the total
number of 1’s in all the bit positions corresponding to R2 is odd the
value of R2(parity bit’s value)=1
R4 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the third position from the least
significant bit. R4: bits 4, 5, 6, 7
To find the redundant bit R4, we check for even parity. Since the
total number of 1’s in all the bit positions corresponding to R4 is odd
the value of R4(parity bit’s value) = 1
R8 bit is calculated using parity check at all the bits positions whose
binary representation includes a 1 in the fourth position from the
least significant bit. R8: bit 8,9,10,11
To find the redundant bit R8, we check for even parity. Since the total
number of 1’s in all the bit positions corresponding to R8 is an even
number the value of R8 (parity bit’s value)=0
Thus, the data transferred is:
Error detection and correction:
Suppose in the above example the 6th bit is changed from 0 to 1
during data transmission, then it gives new parity values in the
binary number:
For all the parity bits we will check the number of 1’s in their respective
bit positions.
• For R1: bits 1, 3, 5, 7, 9, 11. We can see that the number of 1’s in these
bit positions are 4 and that’s even so we get a 0 for this.
• For R2: bits 2,3,6,7,10,11 . We can see that the number of 1’s in these
bit positions are 5 and that’s odd so we get a 1 for this.
• For R4: bits 4, 5, 6, 7 . We can see that the number of 1’s in these bit
positions are 3 and that’s odd so we get a 1 for this.
• For R8: bit 8,9,10,11 . We can see that the number of 1’s in these bit
positions are 2 and that’s even so we get a 0 for this.
The bits give the binary number 0110 whose decimal representation is 6.
Thus, bit 6 contains an error.
To correct the error the 6th bit is changed from 1 to 0.
THANK YOU