Error-correcting code (original) (raw)
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, Golay Code, and others. The simplest error correcting codes can correct single-bit errors (single error correction or SEC) and detect double-bit errors (double error detection or DED). Other codes can detect or correct multi-bit errors.
Note 1: If the number of errors is less than or equal to the maximum correctable threshold of the code, all errors will be corrected.
Note 2: Error-correcting codes require more signal elements than are necessary to convey the basic information.
Note 3: The two main classes of error-correcting codes are block codes and convolutional codes.
See also Hamming code and Reed-Solomon code; or, for state-of-the-art codes developed from 1993 to 2003, see sparse graph codes, specifically low-density parity-check codes, turbo codes, and digital fountain codes.
Source: from Federal Standard 1037C and from MIL-STD-188
External links
- The on-line textbook: Information Theory, Inference, and Learning Algorithms, by David MacKay, contains chapters on elementary error-correcting codes; on the theoretical limits of error-correction; and on the latest state-of-the-art error-correcting codes, including low-density parity-check codes, turbo codes, and digital fountain codes.