# 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

- Binary code
- Covering code
- Distributed-storage code
- Dual linear code
- Galois-field \(q\)-ary code
- Generalized concatenated code
- Group-based code
- Identifiable parent property (IPP) code
- Lattice-based code — Error-correcting codes are defined for a finite alphabet, so only finite lattice-based codes are children.
- Low-density parity-check (LDPC) code
- Matrix code
- Parallel concatenated code
- Quasi-cyclic code
- Random code
- Ring code
- Spherical code

## Zoo code information

## References

## 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.