Eg. So let’s form hamming code using 4-bit message bits 1101 with parity bits as even parity bit and check how it is able to detect and correct error.
As we have already decided parity bit positions and their corresponding message bits for a 4-bit message
For the moment we have hamming code as P1 P2 1 P3 1 0 1
As we have already seen P1 Checks bit number 1,3,5,7
So P1 = 1 to make number of 1’s to 4 i.e. even in positions 1,3,5,7
P2 Checks bit number 2,3,6,7
So P2 = 0 to make number of 1’s to 2 i.e. even in positions 2,3,6,7
P3 Checks bit number 4,5,6,7
So P3 = 0 to make number of 1’s to 2 i.e. even in positions 4,5,6,7
Hence we have the hamming code as 1010101
As we have already mentioned that hamming code can only detect and correct only single error. So we have error at 5th position which means bit changes from 1 to 0 so we have data changed from 1010101 to 1010001
Now let’s start checking all 3 parity bits starting from P1
P1 Checks bit number 1,3,5,7 and we see we have number 1’s in these bits is 3 i.e. odd which is wrong as it should have been even so put a 1
P2 Checks bit number 2,3,6,7 and we see we have number 1’s in these bits is 2 i.e. even which is right so put a 0
P3 Checks bit number 4,5,6,7 and we see we have number 1’s in these bits is 1 i.e. odd which is wrong as it should have been even so put a 1
Now we collect all the bits recorded with bit from P1 as LSB
So we get 101 hence we get bit 5 with
So as P1 and P3 give wrong results so now we find which code bit position is common but not found in code bit position of parity bit P2 and we see that we 5 and 7 common for P1 and P3 but 7 is also present in P2 so we are left with code position 5.
RULE TO FIND POSITION OF ERROR: We start from P1 and start checking whether bit is correct or wrong and if it is wrong then we put a 1 and put a zero if it is correct. And while we reach end we collect all those bits taking bit from P1 as LSB. The decimal equivalent we get from the bits collected is the bit position of error
Hence we have the bit change in position 5 so re-change it to get the correct value. Hence we change 5th bit of received message which is 1010001, we get 1010101 which is correct one.
So we see hamming code is able to detect and correct single error.