SlideShare a Scribd company logo
Hamming Codes
11/17/04
History
 In the late 1940’s Richard Hamming recognized
that the further evolution of computers required
greater reliability, in particular the ability to not
only detect errors, but correct them. His search
for error-correcting codes led to the Hamming
Codes, perfect 1-error correcting codes, and the
extended Hamming Codes, 1-error correcting
and 2-error detecting codes.
Uses
 Hamming Codes are still widely used in
computing, telecommunication, and other
applications.
 Hamming Codes also applied in
 Data compression
 Some solutions to the popular puzzle The Hat
Game
 Block Turbo Codes
A [7,4] binary Hamming Code
 Let our codeword be (x1 x2 … x7) ε F2
7
 x3, x5, x6, x7 are chosen according to the message
(perhaps the message itself is (x3 x5 x6 x7 )).
 x4 := x5 + x6 + x7 (mod 2)
 x2 := x3 + x6 + x7
 x1 := x3 + x5 + x7
[7,4] binary Hamming codewords
A [7,4] binary Hamming Code
 Let a = x4 + x5 + x6 + x7 (=1 iff one of these
bits is in error)
 Let b = x2 + x3 + x6 + x7
 Let c = x1 + x3 + x5 + x7
 If there is an error (assuming at most one) then
abc will be binary representation of the
subscript of the offending bit.
A [7,4] binary Hamming Code
 If (y1 y2 … y7) is received and abc ≠ 000, then
we assume the bit abc is in error and switch it.
If abc=000, we assume there were no errors (so
if there are three or more errors we may recover
the wrong codeword).
Definition: Generator and Check
Matrices
 For an [n, k] linear code, the generator matrix is
a k×n matrix for which the row space is the
given code.
 A check matrix for an [n, k] is a generator matrix
for the dual code. In other words, an (n-k)×k
matrix M for which Mx = 0 for all x in the
code.
A Construction for binary Hamming
Codes
 For a given r, form an r × 2r-1 matrix M, the
columns of which are the binary representations
(r bits long) of 1, …, 2r-1.
 The linear code for which this is the check
matrix is a [2r-1, 2r-1 – r] binary Hamming Code
= {x=(x1 x2 … x n) : MxT = 0}.
Example Check Matrix
 A check matrix for a [7,4] binary Hamming
Code:
Syndrome Decoding
 Let y = (y1 y2 … yn) be a received codeword.
 The syndrome of y is S:=LryT. If S=0 then
there was no error. If S ≠ 0 then S is the binary
representation of some integer 1 ≤ t ≤ n=2r-1
and the intended codeword is
x = (y1 … yr+1 … yn).
Example Using L3
 Suppose (1 0 1 0 0 1 0) is received.
100 is 4 in binary, so the intended codeword was
(1 0 1 1 0 1 0).
Extended [8,4] binary Hamm. Code
 As with the [7,4] binary Hamming Code:
 x3, x5, x6, x7 are chosen according to the message.
 x4 := x5 + x6 + x7
 x2 := x3 + x6 + x7
 x1 := x3 + x5 + x7
 Add a new bit x0 such that
 x0 = x1 + x2 + x3 + x4 + x5 + x6 + x7 . i.e., the new
bit makes the sum of all the bits zero. x0 is called a
parity check.
Extended binary Hamming Code
 The minimum distance between any two
codewords is now 4, so an extended Hamming
Code is a 1-error correcting and 2-error
detecting code.
 The general construction of a [2r, 2r-1 - r]
extended code from a [2r –1, 2r –1 – r] binary
Hamming Code is the same: add a parity check
bit.
Check Matrix Construction of
Extended Hamming Code
 The check matrix of an extended Hamming
Code can be constructed from the check matrix
of a Hamming code by adding a zero column on
the left and a row of 1’s to the bottom.
Decoding Extended Hamming Code
q-ary Hamming Codes
 The binary construction generalizes to
Hamming Codes over an alphabet A={0, …, q},
q ≥ 2.
 For a given r, form an r × (qr-1)/(q-1) matrix M
over A, any two columns of which are linearly
independent.
 M determines a [(qr-1)/(q-1), (qr-1)/(q-1) – r]
(= [n,k]) q-ary Hamming Code for which M is
the check matrix.
Example: ternary [4, 2]
Hamming
 Two check matrices for the some [4, 2] ternary
Hamming Codes:
Syndrome decoding: the q-ary case
 The syndrome of received word y, S:=MyT, will
be a multiple of one of the columns of M, say
S=αmi, α scalar, mi the ith column of M. Assume
an error vector of weight 1 was introduced y =
x + (0 … α … 0), α in the ith spot.
Example: q-ary Syndrome
 [4,2] ternary with check matrix ,
word (0 1 1 1) received.
 So decode (0 1 1 1) as
(0 1 1 1) – (0 0 2 0) = (0 1 2 1).
Perfect 1-error correcting
 Hamming Codes are perfect 1-error correcting
codes. That is, any received word with at most
one error will be decoded correctly and the code
has the smallest possible size of any code that
does this.
 For a given r, any perfect 1-error correcting
linear code of length n=2r-1 and dimension n-r
is a Hamming Code.
Proof: 1-error correcting
 A code will be 1-error correcting if
 spheres of radius 1 centered at codewords cover the
codespace, and
 if the minimum distance between any two
codewords ≥ 3, since then spheres of radius 1
centered at codewords will be disjoint.
Proof: 1-error correcting
 Suppose codewords x, y differ by 1 bit. Then
x-y is a codeword of weight 1, and M(x-y) ≠ 0.
Contradiction. If x, y differ by 2 bits, then
M(x-y) is the difference of two multiples of
columns of M. No two columns of M are
linearly dependent, so M(x-y) ≠ 0, another
contradiction. Thus the minimum distance is at
least 3.
Perfect
 A sphere of radius δ centered at x is
Sδ(x)={y in An : dH(x,y) ≤ δ}. Where A is the
alphabet, Fq, and dH is the Hamming distance.
 A sphere of radius e contains
words.
 If C is an e-error correcting code then
, so .
Perfect
 This last inequality is called the sphere packing
bound for an e-error correcting code C of
length n over Fm:
where n
is the length of the code and in this case e=1.
 A code for which equality holds is called perfect.
Proof: Perfect
 The right side of this, for e=1 is qn/(1+n(q-1)).
 The left side is qn-r where n= (qr-1)/(q-1).
qn-r(1+n(q-1)) = qn-r(1+(qr-1)) = qn.
Applications
 Data compression.
 Turbo Codes
 The Hat Game
Data Compression
 Hamming Codes can be used for a form of
lossy compression.
 If n=2r-1 for some r, then any n-tuple of bits x
is within distance at most 1 from a Hamming
codeword c. Let G be a generator matrix for
the Hamming Code, and mG=c.
 For compression, store x as m. For
decompression, decode m as c. This saves r bits
of space but corrupts (at most) 1 bit.
The Hat Game
 A group of n players enter a room whereupon
they each receive a hat. Each player can see
everyone else’s hat but not his own.
 The players must each simultaneously guess a
hat color, or pass.
 The group loses if any player guesses the wrong
hat color or if every player passes.
 Players are not necessarily anonymous, they can
be numbered.
The Hat Game
 Assignment of hats is assumed to be random.
 The players can meet beforehand to devise a
strategy.
 The goal is to devise the strategy that gives the
highest probability of winning.
Source
 “Notes on Coding Theory” by J.I. Hall
http://www.mth.msu.edu/~jhall/classes/coden
otes/coding-notes.html

More Related Content

What's hot (20)

PPT
Error detection correction (CRC)
Karam Munir Butt
 
PPT
Error detection and correction
Maria Akther
 
PPT
Error Detection And Correction
Renu Kewalramani
 
PPTX
Quick tutorial on IEEE 754 FLOATING POINT representation
Ritu Ranjan Shrivastwa
 
PPTX
Error Detection and Correction presentation
Badrul Alam
 
PPT
Chapter 4 - Digital Transmission
Wayne Jones Jnr
 
PPTX
Linear Block Codes
NilaNila16
 
PPT
Chapter 4 data link layer
Naiyan Noor
 
PPT
Unit 3 Network Layer PPT
KalpanaC14
 
PDF
Error detection & correction codes
Revathi Subramaniam
 
PPT
Data Link Layer| Error Detection
Taimoor Muzaffar Gondal
 
PPTX
HDLC(High level Data Link Control)
sonangrai
 
PPTX
BCD to binary code converter
kiruthikamaniG1
 
PPTX
Media Access Control
VijayaLakshmi514
 
PPTX
Computer Networks - Error Detection & Error Correction
Saikrishna Tanguturu
 
PPT
Introduction to switching & circuit switching
Dr Rajiv Srivastava
 
PPTX
Analog to analog conversion
Meherul1234
 
PPTX
Error control
Bhupendra sahu
 
PPTX
Computer network switches & their structures
Sweta Kumari Barnwal
 
PDF
Network security - OSI Security Architecture
BharathiKrishna6
 
Error detection correction (CRC)
Karam Munir Butt
 
Error detection and correction
Maria Akther
 
Error Detection And Correction
Renu Kewalramani
 
Quick tutorial on IEEE 754 FLOATING POINT representation
Ritu Ranjan Shrivastwa
 
Error Detection and Correction presentation
Badrul Alam
 
Chapter 4 - Digital Transmission
Wayne Jones Jnr
 
Linear Block Codes
NilaNila16
 
Chapter 4 data link layer
Naiyan Noor
 
Unit 3 Network Layer PPT
KalpanaC14
 
Error detection & correction codes
Revathi Subramaniam
 
Data Link Layer| Error Detection
Taimoor Muzaffar Gondal
 
HDLC(High level Data Link Control)
sonangrai
 
BCD to binary code converter
kiruthikamaniG1
 
Media Access Control
VijayaLakshmi514
 
Computer Networks - Error Detection & Error Correction
Saikrishna Tanguturu
 
Introduction to switching & circuit switching
Dr Rajiv Srivastava
 
Analog to analog conversion
Meherul1234
 
Error control
Bhupendra sahu
 
Computer network switches & their structures
Sweta Kumari Barnwal
 
Network security - OSI Security Architecture
BharathiKrishna6
 

Similar to Hamming codes (20)

PPTX
Error Detection N Correction
Ankan Adhikari
 
PPT
5 linear block codes
Jagruti_Ingale
 
PPT
New error-detection
Nitesh Singh
 
PPT
New error-detection (2)
Nitesh Singh
 
PPT
Error correcting codes
Michael Munroe
 
PPTX
Codes
Meenakshi Paul
 
PPTX
5. Error Coding
Napier University
 
PPT
ch10.ppt
SibiSanta
 
PPT
error control coding
Suhad Malayshi
 
PPT
this is computer network power presentation
adarshpandey9910
 
PPT
Channel Coding (Error Control Coding)
Ola Mashaqi @ an-najah national university
 
PPT
f33-ft-computing-lec09-correct.ppt
MaddulaCharishma
 
PPTX
Chapter 10: Error Correction and Detection
JeoffnaRuth
 
PPT
Cn lec-06
M Mudassar Khan
 
PPT
Ch10 2 v1
Vivek Kumar
 
PPT
Ch10 2 v1
bhagavanprasad
 
PPTX
Error Detection and correction concepts in Data communication and networks
Nt Arvind
 
PPT
Ch10 2 v1
Nitesh Singh
 
PPT
ch10_2_v1.ppt
dlakmlkfma
 
PPT
hamming code detailed
IKhait
 
Error Detection N Correction
Ankan Adhikari
 
5 linear block codes
Jagruti_Ingale
 
New error-detection
Nitesh Singh
 
New error-detection (2)
Nitesh Singh
 
Error correcting codes
Michael Munroe
 
5. Error Coding
Napier University
 
ch10.ppt
SibiSanta
 
error control coding
Suhad Malayshi
 
this is computer network power presentation
adarshpandey9910
 
Channel Coding (Error Control Coding)
Ola Mashaqi @ an-najah national university
 
f33-ft-computing-lec09-correct.ppt
MaddulaCharishma
 
Chapter 10: Error Correction and Detection
JeoffnaRuth
 
Cn lec-06
M Mudassar Khan
 
Ch10 2 v1
Vivek Kumar
 
Ch10 2 v1
bhagavanprasad
 
Error Detection and correction concepts in Data communication and networks
Nt Arvind
 
Ch10 2 v1
Nitesh Singh
 
ch10_2_v1.ppt
dlakmlkfma
 
hamming code detailed
IKhait
 
Ad

Recently uploaded (20)

PPTX
How to Consolidate Subscription Billing in Odoo 18 Sales
Celine George
 
PPTX
Nutri-QUIZ-Bee-Elementary.pptx...................
ferdinandsanbuenaven
 
PPTX
PPT on the Development of Education in the Victorian England
Beena E S
 
PPTX
ENGLISH LEARNING ACTIVITY SHE W5Q1.pptxY
CHERIEANNAPRILSULIT1
 
PPTX
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
PDF
Right to Information.pdf by Sapna Maurya XI D
Directorate of Education Delhi
 
PPTX
Modern analytical techniques used to characterize organic compounds. Birbhum ...
AyanHossain
 
PPTX
Presentation: Climate Citizenship Digital Education
Karl Donert
 
PPTX
Capitol Doctoral Presentation -July 2025.pptx
CapitolTechU
 
PPTX
THE HUMAN INTEGUMENTARY SYSTEM#MLT#BCRAPC.pptx
Subham Panja
 
PPTX
Nutrition Month 2025 TARP.pptx presentation
FairyLouHernandezMej
 
PPTX
SCHOOL-BASED SEXUAL HARASSMENT PREVENTION AND RESPONSE WORKSHOP
komlalokoe
 
PDF
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
PPTX
ANORECTAL MALFORMATIONS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PDF
water conservation .pdf by Nandni Kumari XI C
Directorate of Education Delhi
 
PPTX
Latest Features in Odoo 18 - Odoo slides
Celine George
 
PPTX
ABDOMINAL WALL DEFECTS:GASTROSCHISIS, OMPHALOCELE.pptx
PRADEEP ABOTHU
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PPTX
Blanket Order in Odoo 17 Purchase App - Odoo Slides
Celine George
 
PDF
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
How to Consolidate Subscription Billing in Odoo 18 Sales
Celine George
 
Nutri-QUIZ-Bee-Elementary.pptx...................
ferdinandsanbuenaven
 
PPT on the Development of Education in the Victorian England
Beena E S
 
ENGLISH LEARNING ACTIVITY SHE W5Q1.pptxY
CHERIEANNAPRILSULIT1
 
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
Right to Information.pdf by Sapna Maurya XI D
Directorate of Education Delhi
 
Modern analytical techniques used to characterize organic compounds. Birbhum ...
AyanHossain
 
Presentation: Climate Citizenship Digital Education
Karl Donert
 
Capitol Doctoral Presentation -July 2025.pptx
CapitolTechU
 
THE HUMAN INTEGUMENTARY SYSTEM#MLT#BCRAPC.pptx
Subham Panja
 
Nutrition Month 2025 TARP.pptx presentation
FairyLouHernandezMej
 
SCHOOL-BASED SEXUAL HARASSMENT PREVENTION AND RESPONSE WORKSHOP
komlalokoe
 
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
ANORECTAL MALFORMATIONS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
water conservation .pdf by Nandni Kumari XI C
Directorate of Education Delhi
 
Latest Features in Odoo 18 - Odoo slides
Celine George
 
ABDOMINAL WALL DEFECTS:GASTROSCHISIS, OMPHALOCELE.pptx
PRADEEP ABOTHU
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
Blanket Order in Odoo 17 Purchase App - Odoo Slides
Celine George
 
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
Ad

Hamming codes

  • 2. History  In the late 1940’s Richard Hamming recognized that the further evolution of computers required greater reliability, in particular the ability to not only detect errors, but correct them. His search for error-correcting codes led to the Hamming Codes, perfect 1-error correcting codes, and the extended Hamming Codes, 1-error correcting and 2-error detecting codes.
  • 3. Uses  Hamming Codes are still widely used in computing, telecommunication, and other applications.  Hamming Codes also applied in  Data compression  Some solutions to the popular puzzle The Hat Game  Block Turbo Codes
  • 4. A [7,4] binary Hamming Code  Let our codeword be (x1 x2 … x7) ε F2 7  x3, x5, x6, x7 are chosen according to the message (perhaps the message itself is (x3 x5 x6 x7 )).  x4 := x5 + x6 + x7 (mod 2)  x2 := x3 + x6 + x7  x1 := x3 + x5 + x7
  • 6. A [7,4] binary Hamming Code  Let a = x4 + x5 + x6 + x7 (=1 iff one of these bits is in error)  Let b = x2 + x3 + x6 + x7  Let c = x1 + x3 + x5 + x7  If there is an error (assuming at most one) then abc will be binary representation of the subscript of the offending bit.
  • 7. A [7,4] binary Hamming Code  If (y1 y2 … y7) is received and abc ≠ 000, then we assume the bit abc is in error and switch it. If abc=000, we assume there were no errors (so if there are three or more errors we may recover the wrong codeword).
  • 8. Definition: Generator and Check Matrices  For an [n, k] linear code, the generator matrix is a k×n matrix for which the row space is the given code.  A check matrix for an [n, k] is a generator matrix for the dual code. In other words, an (n-k)×k matrix M for which Mx = 0 for all x in the code.
  • 9. A Construction for binary Hamming Codes  For a given r, form an r × 2r-1 matrix M, the columns of which are the binary representations (r bits long) of 1, …, 2r-1.  The linear code for which this is the check matrix is a [2r-1, 2r-1 – r] binary Hamming Code = {x=(x1 x2 … x n) : MxT = 0}.
  • 10. Example Check Matrix  A check matrix for a [7,4] binary Hamming Code:
  • 11. Syndrome Decoding  Let y = (y1 y2 … yn) be a received codeword.  The syndrome of y is S:=LryT. If S=0 then there was no error. If S ≠ 0 then S is the binary representation of some integer 1 ≤ t ≤ n=2r-1 and the intended codeword is x = (y1 … yr+1 … yn).
  • 12. Example Using L3  Suppose (1 0 1 0 0 1 0) is received. 100 is 4 in binary, so the intended codeword was (1 0 1 1 0 1 0).
  • 13. Extended [8,4] binary Hamm. Code  As with the [7,4] binary Hamming Code:  x3, x5, x6, x7 are chosen according to the message.  x4 := x5 + x6 + x7  x2 := x3 + x6 + x7  x1 := x3 + x5 + x7  Add a new bit x0 such that  x0 = x1 + x2 + x3 + x4 + x5 + x6 + x7 . i.e., the new bit makes the sum of all the bits zero. x0 is called a parity check.
  • 14. Extended binary Hamming Code  The minimum distance between any two codewords is now 4, so an extended Hamming Code is a 1-error correcting and 2-error detecting code.  The general construction of a [2r, 2r-1 - r] extended code from a [2r –1, 2r –1 – r] binary Hamming Code is the same: add a parity check bit.
  • 15. Check Matrix Construction of Extended Hamming Code  The check matrix of an extended Hamming Code can be constructed from the check matrix of a Hamming code by adding a zero column on the left and a row of 1’s to the bottom.
  • 17. q-ary Hamming Codes  The binary construction generalizes to Hamming Codes over an alphabet A={0, …, q}, q ≥ 2.  For a given r, form an r × (qr-1)/(q-1) matrix M over A, any two columns of which are linearly independent.  M determines a [(qr-1)/(q-1), (qr-1)/(q-1) – r] (= [n,k]) q-ary Hamming Code for which M is the check matrix.
  • 18. Example: ternary [4, 2] Hamming  Two check matrices for the some [4, 2] ternary Hamming Codes:
  • 19. Syndrome decoding: the q-ary case  The syndrome of received word y, S:=MyT, will be a multiple of one of the columns of M, say S=αmi, α scalar, mi the ith column of M. Assume an error vector of weight 1 was introduced y = x + (0 … α … 0), α in the ith spot.
  • 20. Example: q-ary Syndrome  [4,2] ternary with check matrix , word (0 1 1 1) received.  So decode (0 1 1 1) as (0 1 1 1) – (0 0 2 0) = (0 1 2 1).
  • 21. Perfect 1-error correcting  Hamming Codes are perfect 1-error correcting codes. That is, any received word with at most one error will be decoded correctly and the code has the smallest possible size of any code that does this.  For a given r, any perfect 1-error correcting linear code of length n=2r-1 and dimension n-r is a Hamming Code.
  • 22. Proof: 1-error correcting  A code will be 1-error correcting if  spheres of radius 1 centered at codewords cover the codespace, and  if the minimum distance between any two codewords ≥ 3, since then spheres of radius 1 centered at codewords will be disjoint.
  • 23. Proof: 1-error correcting  Suppose codewords x, y differ by 1 bit. Then x-y is a codeword of weight 1, and M(x-y) ≠ 0. Contradiction. If x, y differ by 2 bits, then M(x-y) is the difference of two multiples of columns of M. No two columns of M are linearly dependent, so M(x-y) ≠ 0, another contradiction. Thus the minimum distance is at least 3.
  • 24. Perfect  A sphere of radius δ centered at x is Sδ(x)={y in An : dH(x,y) ≤ δ}. Where A is the alphabet, Fq, and dH is the Hamming distance.  A sphere of radius e contains words.  If C is an e-error correcting code then , so .
  • 25. Perfect  This last inequality is called the sphere packing bound for an e-error correcting code C of length n over Fm: where n is the length of the code and in this case e=1.  A code for which equality holds is called perfect.
  • 26. Proof: Perfect  The right side of this, for e=1 is qn/(1+n(q-1)).  The left side is qn-r where n= (qr-1)/(q-1). qn-r(1+n(q-1)) = qn-r(1+(qr-1)) = qn.
  • 27. Applications  Data compression.  Turbo Codes  The Hat Game
  • 28. Data Compression  Hamming Codes can be used for a form of lossy compression.  If n=2r-1 for some r, then any n-tuple of bits x is within distance at most 1 from a Hamming codeword c. Let G be a generator matrix for the Hamming Code, and mG=c.  For compression, store x as m. For decompression, decode m as c. This saves r bits of space but corrupts (at most) 1 bit.
  • 29. The Hat Game  A group of n players enter a room whereupon they each receive a hat. Each player can see everyone else’s hat but not his own.  The players must each simultaneously guess a hat color, or pass.  The group loses if any player guesses the wrong hat color or if every player passes.  Players are not necessarily anonymous, they can be numbered.
  • 30. The Hat Game  Assignment of hats is assumed to be random.  The players can meet beforehand to devise a strategy.  The goal is to devise the strategy that gives the highest probability of winning.
  • 31. Source  “Notes on Coding Theory” by J.I. Hall http://www.mth.msu.edu/~jhall/classes/coden otes/coding-notes.html