Hamming code[1][2][3]

Description

An infinite family of perfect linear codes with parameters \((2^r-1,2^r-r-1, 3)\) for \(r \geq 2\). Their \(r \times (2^r-1) \) parity check matrix \(H\) has all possible non-zero \(r\)-bit strings as its columns.

A generator matrix for the \([7,4,3]\) Hamming code is \begin{align} \left(\begin{array}{ccccccccccc} 1 & 0 & 0 & 0 & 1 & 1 & 0\\ 0 & 1 & 0 & 0 & 1 & 0 & 1\\ 0 & 0 & 1 & 0 & 0 & 1 & 1\\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \end{array}\right)~. \end{align}

Protection

Can detect 1-bit and 2-bit errors, and can correct 1-bit errors.

Rate

Asymptotic rate \(k/n = 1-\frac{\log n}{n} \to 1\) and normalized distance \(d/n \to 0\).

Realizations

Commonly used when error rates are very low, for example, computer RAM or integrated circuits [4].Hamming-code based matrix embedding used in steganography [5][6].

Notes

See Kaiserslautern database [7] for explicit codes.

Parents

Child

  • Tetracode — The tetracode is equivalent to the \(r=2\) Hamming code.

Cousins

References

[1]
C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal 27, 379 (1948). DOI
[2]
R. W. Hamming, “Error Detecting and Error Correcting Codes”, Bell System Technical Journal 29, 147 (1950). DOI
[3]
M. J. E. Golay, Notes on digital coding, Proc. IEEE, 37 (1949) 657.
[4]
R. Hentschke et al., “Analyzing area and performance penalty of protecting different digital modules with Hamming code and triple modular redundancy”, Proceedings. 15th Symposium on Integrated Circuits and Systems Design. DOI
[5]
Crandall, Ron. "Some notes on steganography." Posted on steganography mailing list 1998 (1998): 1-6.
[6]
A. Westfeld, “F5—A Steganographic Algorithm”, Information Hiding 289 (2001). DOI
[7]
Michael Helmling, Stefan Scholl, Florian Gensheimer, Tobias Dietz, Kira Kraft, Stefan Ruzika, and Norbert Wehn. Database of Channel Codes and ML Simulation Results. URL, 2022.
[8]
W. C. Huffman and V. Pless, Fundamentals of Error-correcting Codes (Cambridge University Press, 2003). DOI
[9]
R. Hill. A First Course In Coding Theory. Oxford University Press, 1988.
[10]
F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.
[11]
Self-dual Codes and Invariant Theory (Springer-Verlag, 2006). DOI
Page edit log

Zoo code information

Internal code ID: hamming

Your contribution is welcome!

on github.com (edit & pull request)

edit on this site

Zoo Code ID: hamming

Cite as:
“Hamming code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/hamming
BibTeX:
@incollection{eczoo_hamming, title={Hamming code}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/hamming} }
Share via:
Twitter |  | E-mail
Permanent link:
https://errorcorrectionzoo.org/c/hamming

Cite as:

“Hamming code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/hamming

Github: https://github.com/errorcorrectionzoo/eczoo_data/tree/main/codes/classical/bits/easy/hamming.yml.