Error-correcting code
![]() |
In information theory and coding, an error-correcting code or ECC is a code in which each data signal conforms to specific rules of construction so that departures from this construction in the received signal can generally be automatically detected and corrected. It is used in computer data storage, for example in dynamic RAM, and in data transmission. Examples include Hamming code, Reed-Solomon code, Reed-Muller code, Binary Golay code, convolutional code, turbo code and others. The simplest error correcting codes can correct single-bit errors (single error correction) and detect double-bit errors (double error detection). Other codes can detect or correct multi-bit errors. ECC memory provides greater data accuracy and system uptime by protecting against soft errors in computer memory.
Shannon's theorem is an important theory in error correction which describes the maximum attainable efficiency of an error-correcting scheme versus the levels of noise interference expected.
Principle
In general, these methods put redundant information into the data stream following certain algebraic or geometric relations so that the decoded stream, if damaged in transmission, can be corrected.
The effectiveness of the coding scheme is measured in terms of the Coding gain, which is the difference of the SNR levels of the uncoded and coded systems required to reach the same BER levels.
Notes
- If the number of errors is less than or equal to the maximum correctable threshold of the code, all errors will be corrected.
- Error-correcting codes require more signal elements than are necessary to convey the basic information.
- The two main classes of error-correcting codes are block codes and convolutional codes.
See also
- Hamming code
- Reed-Solomon code
- sparse graph codes for state-of-the-art codes developed from 1993 to 2003
- low-density parity-check codes
- turbo codes
- digital fountain codes
- Error detection and correction