Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Error control codes add structured redundancy to digital data so a receiver or storage system can detect corruption and, within the code’s capabilities, recover the intended information. Encoding turns data into a valid codeword; decoding checks whether received data fits the code’s structure and may identify or correct errors.

What is an error control code?

An error control code is a method for making digital information more resilient to corruption. It adds extra bits or symbols to the original data, creating valid codewords with structure that a decoder can use to detect inconsistencies or infer damaged information.

In basic coding theory, a block code is a collection of equal-length words over an alphabet. Only some possible words are valid codewords; the gaps between valid words help the system recognize when data has changed. Error control coding is used in communication, where data can be altered in transit, and in storage, where stored bits can become corrupted.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

It is not encryption, which protects confidentiality, or compression, which aims to represent data using fewer bits. Error control adds redundancy, so it generally uses more transmitted or stored symbols for a given amount of original information.

How error control codes work

  1. Encode: A sender or storage system adds structured redundancy to the data, producing a valid codeword.
  2. Transmit or store: Noise, interference, or physical faults may alter one or more bits or symbols.
  3. Decode: The receiver or storage system checks the received word against the code’s valid structure.
  4. Respond: If the code detects a problem, the system may request retransmission or take another action. If the code supports correction and the corruption is within its capability, the decoder attempts to recover the intended data.

Detection and correction are distinct. An error-detecting code can indicate that data may be wrong, but it does not necessarily identify the original data. An error-correcting code can also detect some errors, but its correction capability is bounded by its parameters and the conditions under which it is used.

Error detection versus error correction

Goal What the code does What happens next
Error detection Identifies that received data is inconsistent with the code’s structure. The system can reject the data, request a retransmission, or handle the error by another method; detection alone does not restore the original.
Error correction Uses redundancy to infer and restore data affected by certain errors. The system can recover the intended data when the corruption is within the code’s correction capability.

Simple teaching examples illustrate the difference. A parity bit can detect an odd number of bit flips in a protected word, but does not generally locate and repair the flipped bits. Sending each bit three times and choosing the majority value can correct one error in each three-bit group. These demonstrations explain the principle; they are not recommendations for every real system. The Open University’s explanation of error-detecting codes is available in its section on error control.

Why redundancy has a cost

The added symbols provide evidence that helps a decoder detect or correct corruption, but they consume transmission bandwidth or storage capacity. Consequently, a larger share of the total codeword is overhead rather than original information. Choosing a code involves balancing information rate against error resilience, alongside practical limits such as decoding complexity and the characteristics of the channel or storage medium. The University of Stuttgart summarizes this as a tradeoff between transmission rate and error resilience in its Error Control Coding course overview.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Common families of error control codes

Different code families address different error patterns and engineering constraints. These examples are representative, not an exhaustive or mutually exclusive classification.

  • Parity checks: Add check information that can reveal some errors; a simple parity bit is a basic example.
  • Hamming codes: A family of block codes used to illustrate structured error detection and correction.
  • Cyclic redundancy checks (CRCs): Cyclic codes widely associated with error detection.
  • BCH and Reed–Solomon codes: Algebraic codes used in applications that need error-control capability; Reed–Solomon codes are also used to illustrate error correction in barcodes.
  • Convolutional codes: A distinct coding approach covered alongside algebraic codes in communication-system instruction.
  • Turbo and low-density parity-check (LDPC) codes: Further examples of code families used in modern coding theory and engineering.

When engineers compare candidate codes, relevant considerations include whether detection or correction is required, the expected pattern of errors or erasures, redundancy and information rate, decoding complexity, and system constraints. There is no universal best code, and these families should not be ranked without application-specific, comparable performance evidence. Cambridge University Press gives formal introductory treatment in “Error detection, correction and decoding”; the University of Stuttgart and Wiley also list representative families in their course and book overview.

Where error control codes are used

Error control applies both to data moving through a communication system and to data held in storage. The particular code depends on the system; a device or application should not be assumed to use every family listed here.

  • Communications: Codes help detect or correct corruption introduced while information is transmitted.
  • Memory and storage: Examples in educational materials include computer memories, disks, solid-state drives, flash storage, optical storage, and disk arrays.
  • Barcodes: Error detection and Reed–Solomon error correction provide familiar examples of codes applied to printed data.

The Technion’s Introduction to Coding Theory course page names BCH and Reed–Solomon applications across several memory and storage types, disk arrays, and barcodes. The Open University also uses barcodes to explain error detection in its error-control lesson.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Further reading

For a more mathematical and engineering-focused treatment, Wiley describes Essentials of Error-Control Coding by Jorge Castiñeira Moreira and Patrick Guy Farrell as a resource for students, engineers, and researchers. Its coverage includes block, cyclic, BCH, Reed–Solomon, convolutional, turbo, and LDPC codes. Wiley lists the book as first published on 27 July 2006; check the publisher’s page for current edition and format details.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.