Error-correcting code (ECC)

Description

A code is a subset of a set or alphabet, with each element called a codeword. An error-correcting code consists of \(K\) codewords over an alphabet with \(N\) elements such that it is possible to recover the codewords from errors \(E\) from some error set \(\mathcal{E}\).

Protection

A code corrects errors associated with a noise channel if it is possible to recover any codeword after its coordinates have been changed after going through the channel. More technically, an error-correcting code \((u,\mathcal{E})\) is an encoder function \(u:[1\cdots K]\to[1\cdots N]\) with a set of correctable errors \(E:[1\cdots N]\to [1\cdots M]\) with the following property: there exists a decoder function \(d:[1\cdots M]\to [1\cdots K]\) such that for all \(E\in\cal{E}\) and states \(x\in[1\cdots K]\), \(d(E(e(x)))=x\).

Notes

The modern theory of error-correcting codes is rooted in the foundational work of C. Shannon [1], but error-correcting codes have been used prior to that work [2].

Parent

Children

Zoo code information

Internal code ID: ecc

Your contribution is welcome!

on github.com (edit & pull request)

edit on this site

Zoo Code ID: ecc

Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
BibTeX:
@incollection{eczoo_ecc, title={Error-correcting code (ECC)}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/ecc} }
Permanent link:
https://errorcorrectionzoo.org/c/ecc

References

[1]
C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal 27, 379 (1948). DOI
[2]
A. Barg, “At the Dawn of the Theory of Codes”, The Mathematical Intelligencer 15, 20 (1993). DOI

Cite as:

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

Github: https://github.com/errorcorrectionzoo/eczoo_data/tree/main/codes/classical/ecc.yml.