# Repetition code

## Description

\([n,1,n]\) binary linear code encoding one bit of information into an \(n\)-bit string. The length \(n\) needs to be an odd number, since the receiver will pick the majority to recover the information. The idea is to increase the code distance by repeating the logical information several times. It is a \((n,1)\)-Hamming code.

## Protection

Detects errors on up to \(\frac{n-1}{2}\) coordinates, corrects erasure errors on up to \(\frac{n-1}{2}\) coordinates. The generator matrix is \(G=\left[\begin{smallmatrix}1 & 1&\cdots& 1 & 1 \end{smallmatrix}\right]\).

## Rate

Code rate is \(\frac{1}{n}\), code distance is \(n\).

## Decoding

Calculate the Hamming weight \(d_H\) of the code. If \(d_H\leq \frac{n-1}{2}\), decode the code as 0. If \(d_H\geq \frac{n+1}{2}\), decode the code as 1.Automaton-like decoders for the repetition code on a 2D lattice, otherwise known as the classical 2D Ising model, were developed by Toom [1][2]. An automaton by Gacs yields a decoder for a 1D lattice [3].

## Fault Tolerance

Triple modular redundancy (TMR) error-correction protocol [4]; see Ref. [5] for a pedagogical explanation.

## Threshold

Suppose each bit has probability \(p\) of being received correctly, independent for each bit. The probability that a repetition code is received correctly is \(\sum_{k=0}^{(n-1)/2}\frac{n!}{k!(n-k)!}p^{n-k}(1-p)^{k}\). If \(\frac{1}{2}\leq p\), then people can always increase the probability of success by increasing the number of physical bit \(n\).

## Realizations

Repetition codes, in conjunction with other codes, were used in magnetic disks [6].

## Parents

## Cousins

- Perfect code — Repetition codes are perfect for odd \(n\).
- Quantum repetition code
- Hamming code — The triple repetition code \([3,1,3]\) is the smallest Hamming code.
- Parity-check code — Binary parity-check codes and repetition codes are dual to each other.
- Self-correcting quantum code — The repetition code associated with the 2D classical Ising model is a self-correcting classical memory [7; Sec. V.A].
- Simplex code — \(S(2,1)\) reduces to the repetition code.

## References

- [1]
- A. L. Toom, “Nonergodic Multidimensional System of Automata”, Probl. Peredachi Inf., 10:3 (1974), 70–79; Problems Inform. Transmission, 10:3 (1974), 239–246
- [2]
- L. F. Gray, “Toom’s Stability Theorem in Continuous Time”, Perplexing Problems in Probability 331 (1999). DOI
- [3]
- P. Gács, “[]”, Journal of Statistical Physics 103, 45 (2001). DOI
- [4]
- R. E. Lyons and W. Vanderkulk, “The Use of Triple-Modular Redundancy to Improve Computer Reliability”, IBM Journal of Research and Development 6, 200 (1962). DOI
- [5]
- Steven M. Girvin, “Introduction to Quantum Error Correction and Fault Tolerance”. 2111.08894
- [6]
- T. Klove and M. Miller, “The Detection of Errors After Error-Correction Decoding”, IEEE Transactions on Communications 32, 511 (1984). DOI
- [7]
- B. J. Brown et al., “Quantum memories at finite temperature”, Reviews of Modern Physics 88, (2016). DOI; 1411.6643

## Page edit log

- Victor V. Albert (2022-09-28) — most recent
- Victor V. Albert (2022-05-27)
- Victor V. Albert (2021-12-15)
- Yijia Xu (2021-12-14)

## Zoo code information

## Cite as:

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

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