
In
information theory
Information theory is the scientific study of the quantification, storage, and communication of information. The field was originally established by the works of Harry Nyquist and Ralph Hartley, in the 1920s, and Claude Shannon in the 1940s. ...
and
coding theory
Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are stud ...
with applications in
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
and
telecommunication
Telecommunication is the transmission of information by various types of technologies over wire, radio, optical, or other electromagnetic systems. It has its origin in the desire of humans for communication over a distance greater than tha ...
, error detection and correction (EDAC) or error control are techniques that enable
reliable delivery of
digital data
Digital data, in information theory and information systems, is information represented as a string of discrete symbols each of which can take on one of only a finite number of values from some alphabet, such as letters or digits. An example is ...
over unreliable
communication channel
A communication channel refers either to a physical transmission medium such as a wire, or to a logical connection over a multiplexed medium such as a radio channel in telecommunications and computer networking. A channel is used for inform ...
s. Many communication channels are subject to
channel noise
In electronics, noise is an unwanted disturbance in an electrical signal.
Noise generated by electronic devices varies greatly as it is produced by several different effects.
In particular, noise is inherent in physics, and central to the ...
, and thus errors may be introduced during transmission from the source to a receiver. Error detection techniques allow detecting such errors, while error correction enables reconstruction of the original data in many cases.
Definitions
''Error detection'' is the detection of errors caused by noise or other impairments during transmission from the transmitter to the receiver.
''Error correction'' is the detection of errors and reconstruction of the original, error-free data.
History
In classical antiquity,
copyist
A copyist is a person that makes duplications of the same thing. The term is sometimes used for artists who make copies of other artists' paintings. However, the modern use of the term is almost entirely confined to music copyists, who are emplo ...
s of the
Hebrew Bible
The Hebrew Bible or Tanakh (;["Tanach"](_blank)
''Random House Webster's Unabridged Dictionary''. Hebrew: ''Tān ...
were paid for their work according to the number of
stich Stich is a surname. Notable people with the surname include:
* Giovanni Punto, born Jan Václav Stich (1746–1803), Czech horn player and composer
* David Štich (born 1989), Czech athlete
* Michael Stich (born 1968), German professional tennis p ...
s (lines of verse). As the prose books of the Bible were hardly ever written in stichs, the copyists, in order to estimate the amount of work, had to count the letters.
This also helped ensure accuracy in the transmission of the text with the production of subsequent copies. Between the 7th and 10th centuries CE a
group of Jewish scribes formalized and expanded this to create the
Numerical Masorah to ensure accurate reproduction of the sacred text. It included counts of the number of words in a line, section, book and groups of books, noting the middle stich of a book, word use statistics, and commentary.
Standards became such that a deviation in even a single letter in a Torah scroll was considered unacceptable. The effectiveness of their error correction method was verified by the accuracy of copying through the centuries demonstrated by discovery of the
Dead Sea Scrolls
The Dead Sea Scrolls (also the Qumran Caves Scrolls) are ancient Jewish and Hebrew religious manuscripts discovered between 1946 and 1956 at the Qumran Caves in what was then Mandatory Palestine, near Ein Feshkha in the West Bank, on the ...
in 1947–1956, dating from c.150 BCE-75 CE.
The modern development of
error correction code
In computing, telecommunication, information theory, and coding theory, an error correction code, sometimes error correcting code, (ECC) is used for controlling errors in data over unreliable or noisy communication channels. The central idea i ...
s is credited to
Richard Hamming
Richard Wesley Hamming (February 11, 1915 – January 7, 1998) was an American mathematician whose work had many implications for computer engineering and telecommunications. His contributions include the Hamming code (which makes use of a Ha ...
in 1947.
A description of
Hamming's code appeared in
Claude Shannon
Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American mathematician, electrical engineer, and cryptographer known as a "father of information theory".
As a 21-year-old master's degree student at the Massachusetts In ...
's ''A Mathematical Theory of Communication'' and was quickly generalized by
Marcel J. E. Golay
Marcel Jules Edouard Golay (; May 3, 1902 – April 27, 1989) was a Swiss mathematician, physicist, and information theorist, who applied mathematics to real-world military and industrial problems. He was born in Neuchâtel, Switzerland. ...
.
Introduction
All error-detection and correction schemes add some
redundancy (i.e., some extra data) to a message, which receivers can use to check consistency of the delivered message, and to recover data that has been determined to be corrupted. Error-detection and correction schemes can be either
systematic
Systematic may refer to:
Science
* Short for systematic error
* Systematic fault
* Systematic bias, errors that are not determined by chance but are introduced by an inaccuracy (involving either the observation or measurement process) inheren ...
or non-systematic. In a systematic scheme, the transmitter sends the original data, and attaches a fixed number of ''check bits'' (or ''parity data''), which are derived from the data bits by some
deterministic algorithm
In computer science, a deterministic algorithm is an algorithm that, given a particular input, will always produce the same output, with the underlying machine always passing through the same sequence of states. Deterministic algorithms are by far ...
. If only error detection is required, a receiver can simply apply the same algorithm to the received data bits and compare its output with the received check bits; if the values do not match, an error has occurred at some point during the transmission. In a system that uses a non-systematic code, the original message is transformed into an encoded message carrying the same information and that has at least as many bits as the original message.
Good error control performance requires the scheme to be selected based on the characteristics of the communication channel. Common
channel model
A communication channel refers either to a physical transmission medium such as a wire, or to a logical connection over a multiplexed medium such as a radio channel in telecommunications and computer networking. A channel is used for info ...
s include
memoryless
In probability and statistics, memorylessness is a property of certain probability distributions. It usually refers to the cases when the distribution of a "waiting time" until a certain event does not depend on how much time has elapsed alread ...
models where errors occur randomly and with a certain probability, and dynamic models where errors occur primarily in
bursts. Consequently, error-detecting and correcting codes can be generally distinguished between ''random-error-detecting/correcting'' and ''burst-error-detecting/correcting''. Some codes can also be suitable for a mixture of random errors and burst errors.
If the channel characteristics cannot be determined, or are highly variable, an error-detection scheme may be combined with a system for retransmissions of erroneous data. This is known as
automatic repeat request (ARQ), and is most notably used in the Internet. An alternate approach for error control is
hybrid automatic repeat request (HARQ), which is a combination of ARQ and error-correction coding.
Types of error correction
There are three major types of error correction.
Automatic repeat request
Automatic repeat request (ARQ) is an error control method for data transmission that makes use of error-detection codes, acknowledgment and/or negative acknowledgment messages, and
timeouts to achieve reliable data transmission. An ''acknowledgment'' is a message sent by the receiver to indicate that it has correctly received a
data frame.
Usually, when the transmitter does not receive the acknowledgment before the timeout occurs (i.e., within a reasonable amount of time after sending the data frame), it retransmits the frame until it is either correctly received or the error persists beyond a predetermined number of retransmissions.
Three types of ARQ protocols are
Stop-and-wait ARQ,
Go-Back-N ARQ, and
Selective Repeat ARQ.
ARQ is appropriate if the communication channel has varying or unknown
capacity, such as is the case on the Internet. However, ARQ requires the availability of a
back channel, results in possibly increased
latency due to retransmissions, and requires the maintenance of buffers and timers for retransmissions, which in the case of
network congestion
Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking ...
can put a strain on the server and overall network capacity.
[A. J. McAuley, ''Reliable Broadband Communication Using a Burst Erasure Correcting Code'', ACM SIGCOMM, 1990.]
For example, ARQ is used on shortwave radio data links in the form of
ARQ-E, or combined with multiplexing as
ARQ-M.
Forward error correction
Forward error correction
In computing, telecommunication, information theory, and coding theory, an error correction code, sometimes error correcting code, (ECC) is used for controlling errors in data over unreliable or noisy communication channels. The central idea is ...
(FEC) is a process of adding
redundant data such as an
error-correcting code
In computing, telecommunication, information theory, and coding theory, an error correction code, sometimes error correcting code, (ECC) is used for controlling errors in data over unreliable or noisy communication channels. The central idea i ...
(ECC) to a message so that it can be recovered by a receiver even when a number of errors (up to the capability of the code being used) are introduced, either during the process of transmission or on storage. Since the receiver does not have to ask the sender for retransmission of the data, a
backchannel is not required in forward error correction. Error-correcting codes are used in
lower-layer communication such as
cellular network
A cellular network or mobile network is a communication network where the link to and from end nodes is wireless. The network is distributed over land areas called "cells", each served by at least one fixed-location transceiver (typically th ...
, high-speed
fiber-optic communication
Fiber-optic communication is a method of transmitting information from one place to another by sending pulses of infrared light through an optical fiber. The light is a form of carrier wave that is modulated to carry information. Fiber is pr ...
and
Wi-Fi
Wi-Fi () is a family of wireless network protocols, based on the IEEE 802.11 family of standards, which are commonly used for local area networking of devices and Internet access, allowing nearby digital devices to exchange data by radio w ...
, as well as for reliable storage in media such as
flash memory
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both u ...
,
hard disk
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platte