Description
Member of 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. Adding a parity check yields the \([2^r,2^r-r-1, 4]\) extended Hamming code.
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
- Perfect binary code
- \(q\)-ary Hamming code
- Reed-Muller (RM) code — Binary Hamming codes are equivalent to RM\(^*(r-2,r)\).
- Binary BCH code — Binary Hamming codes are binary primitive narrow-sense BCH codes [8; Corr. 5.1.5]. Binary Hamming codes are cyclic [9; Thm. 12.22].
- Universally optimal \(q\)-ary code — Binary Hamming codes and several of their extended, punctured, and shortened versions are LP universally optimal codes [10].
Child
Cousins
- Extended Hamming code
- \([[2^r, 2^r-r-2, 3]]\) quantum Hamming code
- Nearly perfect code — Shortened Hamming codes \([2^r-2,2^r-r-2,3]\) are nearly perfect ([11], pg. 533).
- Combinatorial design code — Weight-three codewords of the \([2^r-1,2^r-r-1, 3]\) Hamming code support the Steiner system \(S(2,3,2^r-1)\) [12; pg. 89].
- Hadamard code — The shortened Hadamard code is the dual of the Hamming Code.
- Repetition code — The triple repetition code \([3,1,3]\) is the smallest Hamming code.
- \([[2^r-1, 2^r-2r-1, 3]]\) Hamming-based CSS code — Quantum Hamming codes result from applying the CSS construction to Hamming codes.
- \([[2^r, 2^r-r-2, 3]]\) quantum Hamming code — \([[2^r, 2^r-r-2, 3]]\) quantum Hamming codes are analogues of Hamming codes in that they saturate the asymptotic Hamming bound.
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]
- H. Cohn and Y. Zhao, “Energy-Minimizing Error-Correcting Codes”, IEEE Transactions on Information Theory 60, 7442 (2014) arXiv:1212.1913 DOI
- [11]
- F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.
- [12]
- 10.1007/978-1-4757-6568-7
Page edit log
- Victor V. Albert (2022-08-12) — most recent
- Victor V. Albert (2022-03-22)
- Dhruv Devulapalli (2021-12-17)
Cite as:
“Hamming code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/hamming