DEMONSTRATION
OF HAMMING
CODES
Error correction codes
By Abhishek shukla (06MS06)
Indian Institute of Science Education and
Research , Kolkata
Hamming Codes a brief
introduction
In hamming codes we encrypt
information of less size into a larger
size code as in this demonstration we
have encoded information of two bits
in five bits.
By this we get better security as well
as we can recover some lost
information during transmission.
Encryption
In this method we use a matrix which
consists of 0’s and 1’s according to
the following rules:-
m rows and n columns
2n-m >= number of symbols used
n =< 2m -1
Mathematics of circuit
I have used code of 4 symbols so for
my matrix n=5 and m=3 .
I used the matrix
1 0 0 1 1
0 1 0 1 0
0 0 1 0 1
SETTLEMENT OF
VARIABLES
As my coded sequence contains 5 bits I
need 5 variables according to the
generator matrix by multiplying the vector
a by right multiplying this
matrix to
b the previous one we get
three
c relations as follows :-
d a= d e {xor}
e b= d ; c= e
Coded sequence
So for this d e a b c
arrangement we
have 4 symbols :- 0 0 0 0 0
So from table we 0 1 1 0 1
get 4 coset leaders
(don’t go into much 1 0 1 1 0
mathematics) from
coset leaders we 1 1 0 1 1
mean sequence to
be sent through
the channel
Coset is the set of
points lying in
Hamming’s theorem
If plot these points in a five dimensional
vector space and draw spheres of radius 1
around these points then we will see that
spheres neither intersect nor touch
(means they have no point in common)
This is the basis of 1 bit correction .
If we have a 1 bit error in channel yet the
point will fall in the sphere of right code.
As no spheres have intersection point will
still be related with the original message .
So if we have a error message we can
rectify it by getting the right message
CORRESPONDING CODES
MESSAGE SYMBOLS CODE CRRECTED
MESSAGE
(0,0) (0,0,0,0,0)
(0,0)
(0,1) (1,0,1,0,1)
(0,1)
(1,0) (1,1,0,1,0)
(1,0)
(1,1) (0,1,1,1,1)
(1,1)
decryption
Now for decryption we think of our
selves on the other side.
We are getting 5 bit sequence which
contains 2 bits of information so to
extract information from it we
perform some Boolean algebraic
functions on it
X1 = b.d ⊕ b.(a⊕c) ⊕ d.(a⊕e)
X2 = c.e ⊕ c.(a⊕b) ⊕ e.(a⊕d)
effeciency
This is the lowest case actually we
are using least bits so this is
inefficient because for 2 bit
information we are sending three
extra bits so rate is 3/5 which is not
feasible for real world situation. But
as we go on higher information
efficiency increases exponentially.
Example for 4 bits rate is 4/7, for 16
bits 5/21
acknowledgement
In the end I would like to thank
Professor Swapan Kumar Dutta
Professor Abhijit Poddar
professor Shubhamoy Maitra
And special thanks to professor Bimal Roy
Thank you