0% found this document useful (0 votes)
9 views

Error Detection & Correction Codes

The document discusses error detection and correction codes used to detect and correct errors in transmitted binary data. It describes parity codes like even and odd parity which can detect errors but not correct them. It also explains Hamming codes which can both detect and correct errors by adding parity bits in specific positions and using the parity bits to identify error locations.

Uploaded by

deliktasguven
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Error Detection & Correction Codes

The document discusses error detection and correction codes used to detect and correct errors in transmitted binary data. It describes parity codes like even and odd parity which can detect errors but not correct them. It also explains Hamming codes which can both detect and correct errors by adding parity bits in specific positions and using the parity bits to identify error locations.

Uploaded by

deliktasguven
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Error Detection & Correction Codes

We know that the bits 0 and 1 corresponding to two different range of analog voltages. So, during
transmission of binary data from one system to the other, the noise may also be added. Due to
this, there may be errors in the received data at other system.

That means a bit 0 may change to 1 or a bit 1 may change to 0. We can’t avoid the interference

of noise. But, we can get back the original data first by detecting whether any error s present

and then correcting those errors. For this purpose, we can use the following codes.

Error detection codes


Error correction codes

Error detection codes − are used to detect the error s present in the received data

bitstream . These codes contain some bit s , which are included appended to the

original bit stream. These codes detect the error, if it is occurred during transmission of the

original data bitstream .Example − Parity code, Hamming code.

Error correction codes − are used to correct the error s present in the received data

bitstream so that, we will get the original data. Error correction codes also use the similar
strategy of error detection codes.Example − Hamming code.

Therefore, to detect and correct the errors, additional bit s are appended to the data bits at the
time of transmission.

Parity Code
It is easy to include append one parity bit either to the left of MSB or to the right of LSB of

original bit stream. There are two types of parity codes, namely even parity code and odd parity
code based on the type of parity being chosen.

Even Parity Code


The value of even parity bit should be zero, if even number of ones present in the binary code.
Otherwise, it should be one. So that, even number of ones present in even parity code. Even
parity code contains the data bits and even parity bit.

The following table shows the even parity codes corresponding to each 3-bit binary code. Here,
the even parity bit is included to the right of LSB of binary code.
Binary Code Even Parity bit Even Parity Code

000 0 0000

001 1 0011

010 1 0101

011 0 0110

100 1 1001

101 0 1010

110 0 1100

111 1 1111

Here, the number of bits present in the even parity codes is 4. So, the possible even number of
ones in these even parity codes are 0, 2 & 4.

If the other system receives one of these even parity codes, then there is no error in the
received data. The bits other than even parity bit are same as that of binary code.

If the other system receives other than even parity codes, then there will be an error s in
the received data. In this case, we can’t predict the original binary code because we don’t
know the bit position s of error.

Therefore, even parity bit is useful only for detection of error in the received parity code. But, it is
not sufficient to correct the error.

Odd Parity Code


The value of odd parity bit should be zero, if odd number of ones present in the binary code.
Otherwise, it should be one. So that, odd number of ones present in odd parity code. Odd parity
code contains the data bits and odd parity bit.

The following table shows the odd parity codes corresponding to each 3-bit binary code. Here,
the odd parity bit is included to the right of LSB of binary code.
Binary Code Odd Parity bit Odd Parity Code

000 1 0001

001 0 0010

010 0 0100

011 1 0111

100 0 1000

101 1 1011

110 1 1101

111 0 1110

Here, the number of bits present in the odd parity codes is 4. So, the possible odd number of
ones in these odd parity codes are 1 & 3.

If the other system receives one of these odd parity codes, then there is no error in the
received data. The bits other than odd parity bit are same as that of binary code.

If the other system receives other than odd parity codes, then there is an error s in the
received data. In this case, we can’t predict the original binary code because we don’t know
the bit position s of error.

Therefore, odd parity bit is useful only for detection of error in the received parity code. But, it is
not sufficient to correct the error.

Hamming Code
Hamming code is useful for both detection and correction of error present in the received data.
This code uses multiple parity bits and we have to place these parity bits in the positions of
powers of 2.

The minimum value of 'k' for which the following relation is correct valid is nothing but the
required number of parity bits.

k
2 ≥ n + k + 1

Where,
‘n’ is the number of bits in the binary code inf ormation

‘k’ is the number of parity bits

Therefore, the number of bits in the Hamming code is equal to n + k.

Let the Hamming code is bn+k bn+k−1 . . . . . b3 b2 b1 & parity bits p k , p k−1 , . . . . p 1 . We can

place the ‘k’ parity bits in powers of 2 positions only. In remaining bit positions, we can place the
‘n’ bits of binary code.

Based on requirement, we can use either even parity or odd parity while forming a Hamming
code. But, the same parity technique should be used in order to find whether any error present in
the received data.

Follow this procedure for finding parity bits.

Find the value of p1, based on the number of ones present in bit positions b3, b5, b7 and so
on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place value

of 20.

Find the value of p2, based on the number of ones present in bit positions b3, b6, b7 and so

on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place value

of 21.
Find the value of p3, based on the number of ones present in bit positions b5, b6, b7 and so

on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place value

of 22.

Similarly, find other values of parity bits.

Follow this procedure for finding check bits.

Find the value of c1, based on the number of ones present in bit positions b1, b3, b5, b7 and
so on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place

value of 20.

Find the value of c2, based on the number of ones present in bit positions b2, b3, b6, b7 and

so on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place

value of 21.
Find the value of c3, based on the number of ones present in bit positions b4, b5, b6, b7 and

so on. All these bit positions suf f ixes in their equivalent binary have ‘1’ in the place

value of 22.

Similarly, find other values of check bits.


The decimal equivalent of the check bits in the received data gives the value of bit position,
where the error is present. Just complement the value present in that bit position. Therefore, we
will get the original binary code after removing parity bits.

Example 1
Let us find the Hamming code for binary code, d4d3d2d1 = 1000. Consider even parity bits.

The number of bits in the given binary code is n=4.

We can find the required number of parity bits by using the following mathematical relation.

k
2 ≥ n + k + 1

Substitute, n=4 in the above mathematical relation.

k
⇒ 2 ≥ 4 + k + 1

k
⇒ 2 ≥ 5 + k

The minimum value of k that satisfied the above relation is 3. Hence, we require 3 parity bits p1,
p2, and p3. Therefore, the number of bits in Hamming code will be 7, since there are 4 bits in
binary code and 3 parity bits. We have to place the parity bits and bits of binary code in the
Hamming code as shown below.

The 7-bit Hamming code is b7 b6 b5 b4 b3 b2 b1 = d4 d3 d2 p 3 d1 p 2 bp 1

By substituting the bits of binary code, the Hamming code will be

b7 b6 b5 b4 b3 b2 b1 = 100p 3 Op 2 p 1 . Now, let us find the parity bits.

p 1 = b7 ⊕ b5 ⊕ b3 = 1 ⊕ 0 ⊕ 0 = 1

p 2 = b7 ⊕ b6 ⊕ b3 = 1 ⊕ 0 ⊕ 0 = 1
p 3 = b7 ⊕ b6 ⊕ b5 = 1 ⊕ 0 ⊕ 0 = 1

By substituting these parity bits, the Hamming code will be b7 b6 b5 b4 b3 b2 b1 = 1001011 .

Example 2
In the above example, we got the Hamming code as b7 b6 b5 b4 b3 b2 b1 = 1001011 . Now, let us

find the error position when the code received is b7 b6 b5 b4 b3 b2 b1 = 1001111 .

Now, let us find the check bits.

c1 = b7 ⊕ b5 ⊕ b3 ⊕ b1 = 1 ⊕ 0 ⊕ 1 ⊕ 1 = 1

c2 = b7 ⊕ b6 ⊕ b3 ⊕ b2 = 1 ⊕ 0 ⊕ 1 ⊕ 1 = 1

c3 = b7 ⊕ b6 ⊕ b5 ⊕ b4 = 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0

The decimal value of check bits gives the position of error in received Hamming code.

c3 c2 c1 = (011) = (3)
2 10

Therefore, the error present in third bit (b3) of Hamming code. Just complement the value
present in that bit and remove parity bits in order to get the original binary code.

You might also like