All Topics  
Error detection and correction

 

   Email Print
   Bookmark   Link






 

Error detection and correction



 
 
In mathematics
Mathematics

Mathematics is the study of quantity, structure, space, change, and related topics of pattern and form. Mathematicians seek out patterns whether found in numbers, space, natural science, computers, imaginary abstractions, or elsewhere....
, computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, telecommunication
Telecommunication

Telecommunication is the assisted Transmission of Signal over a distance for the purpose of communication. In earlier times, this may have involved the use of smoke signals, Drum , Semaphore line, flag signals or heliograph....
, and information theory
Information theory

Information theory is a branch of applied mathematics and electrical engineering involving the quantification of information. Historically, information theory was developed by Claude E....
, error detection and correction has great practical importance in maintaining data (information) integrity across noisy channels and less-than-reliable storage media.

nitions of error detection and error correction:

There are two basic ways to design the channel code
Channel code

In computer science, a channel code is a broadly used term mostly referring to the forward error correction code and bit interleaving in communication and storage where the communication media or storage media is viewed as a channel....
 and protocol
Protocol (computing)

In computer science, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints....
 for an error correcting system:

It is possible to combine the two, so that minor errors are corrected without retransmission, and major errors are detected and a retransmission requested.






Discussion
Ask a question about 'Error detection and correction'
Start a new discussion about 'Error detection and correction'
Answer questions from other users
Full Discussion Forum



Encyclopedia


In mathematics
Mathematics

Mathematics is the study of quantity, structure, space, change, and related topics of pattern and form. Mathematicians seek out patterns whether found in numbers, space, natural science, computers, imaginary abstractions, or elsewhere....
, computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, telecommunication
Telecommunication

Telecommunication is the assisted Transmission of Signal over a distance for the purpose of communication. In earlier times, this may have involved the use of smoke signals, Drum , Semaphore line, flag signals or heliograph....
, and information theory
Information theory

Information theory is a branch of applied mathematics and electrical engineering involving the quantification of information. Historically, information theory was developed by Claude E....
, error detection and correction has great practical importance in maintaining data (information) integrity across noisy channels and less-than-reliable storage media.

General definitions of terms

Definitions of error detection and error correction:
  • Error detection is the ability to detect the presence of errors caused by noise or other impairments during transmission from the transmitter to the receiver.
  • Error correction is the additional ability to reconstruct the original, error-free data.


There are two basic ways to design the channel code
Channel code

In computer science, a channel code is a broadly used term mostly referring to the forward error correction code and bit interleaving in communication and storage where the communication media or storage media is viewed as a channel....
 and protocol
Protocol (computing)

In computer science, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints....
 for an error correcting system:
  • Automatic repeat-request (ARQ): The transmitter sends the data and also an error detection code, which the receiver uses to check for errors, and requests retransmission of erroneous data. In many cases, the request is implicit; the receiver sends an acknowledgement (ACK) of correctly received data, and the transmitter re-sends anything not acknowledged within a reasonable period of time.
  • Forward error correction
    Forward error correction

    In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
     (FEC): The transmitter encodes the data with an error-correcting code (ECC) and sends the coded message. The receiver never sends any messages back to the transmitter. The receiver decodes what it receives into the "most likely" data. The codes are designed so that it would take an "unreasonable" amount of noise to trick the receiver into misinterpreting the data.


It is possible to combine the two, so that minor errors are corrected without retransmission, and major errors are detected and a retransmission requested. The combination is called hybrid automatic repeat-request.

Error detection schemes

In telecommunication
Telecommunication

Telecommunication is the assisted Transmission of Signal over a distance for the purpose of communication. In earlier times, this may have involved the use of smoke signals, Drum , Semaphore line, flag signals or heliograph....
, a redundancy check is extra data added to a message for the purposes of error detection.

Several schemes exist to achieve error detection, and generally they are quite simple. All error detection codes (which include all error-detection-and-correction codes) transmit more bits than were in the original data. Most codes are "systematic
Systematic code

In coding theory, a systematic code is one in which the input data are embedded in the encoded output. Similarly, a non-systematic code is one in which the output does not contain the input bits....
": the transmitter sends a fixed number of original data bits, followed by fixed number of check bits (usually referred to as redundancy in the literature) which are derived from the data bits by some deterministic algorithm
Deterministic algorithm

In computer science, a deterministic algorithm is an algorithm which, in informal terms, behaves predictably. Given a particular input, it will always produce the same output, and the underlying machine will always pass through the same sequence of states....
. The receiver applies the same algorithm to the received data bits and compares its output to 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, such as some raptor codes, data bits are transformed into at least as many code bits, and the transmitter sends only the code bits.

Repetition schemes

Variations on this theme exist. Given a stream of data that is to be sent, the data is broken up into blocks of bits, and in sending, each block is sent some predetermined number of times. For example, if we want to send "1011", we may repeat this block three times each.

Suppose we send "1011 1011 1011", and this is received as "1010 1011 1011". As one group is not the same as the other two, we can determine that an error has occurred. This scheme is not very efficient, and can be susceptible to problems if the error occurs in exactly the same place for each group (e.g. "1010 1010 1010" in the example above will be detected as correct in this scheme).

The scheme however is extremely simple, and is in fact used in some transmissions of numbers station
Numbers station

Numbers stations are shortwave radio stations of uncertain origin. They generally broadcast Speech synthesis generated voices reading streams of numbers, words, letters , tunes or Morse code....
s.

Parity schemes

Main article: Parity bit
Parity bit

A parity bit is a bit that is added to ensure that the number of bits with value of 1 in a given set of bits is always even number or odd number....
A parity bit
Parity bit

A parity bit is a bit that is added to ensure that the number of bits with value of 1 in a given set of bits is always even number or odd number....
 is an error detection mechanism that can only detect an odd number of errors.

The stream of data is broken up into blocks of bits, and the number of 1 bits is counted. Then, a "parity bit" is set (or cleared) if the number of one bits is odd (or even). (This scheme is called even parity; odd parity can also be used.) If the tested blocks overlap, then the parity bits can be used to isolate the error, and even correct it if the error affects a single bit: this is the principle behind the Hamming code
Hamming code

In telecommunication, a Hamming code is a linear code error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; thus, reliable communication is possible when the Hamming distance between the transmitted and received bit patterns is less than or e...
.

There is a limitation to parity schemes. A parity bit is only guaranteed to detect an odd number of bit errors (one, three, five, and so on). If an even number of bits (two, four, six and so on) are flipped, the parity bit appears to be correct, even though the data is corrupt.

Checksum

Main article: Checksum
Checksum

A checksum or hash sum is a fixed-size data computed from an arbitrary block of digital data for the purpose of error detection that may have been introduced during its telecommunications or computer storage....
A checksum
Checksum

A checksum or hash sum is a fixed-size data computed from an arbitrary block of digital data for the purpose of error detection that may have been introduced during its telecommunications or computer storage....
 of a message is an arithmetic sum of message code words of a certain word length, for example byte values, and their carry value. The sum is negated by means of ones-complement, and stored or transferred as an extra code word extending the message.

On the receiver side, a new checksum may be calculated from the extended message. If the new checksum is not 0, an error has been detected.

Checksum schemes include parity bit
Parity bit

A parity bit is a bit that is added to ensure that the number of bits with value of 1 in a given set of bits is always even number or odd number....
s, check digit
Check digit

A check digit is a form of redundancy check used for error detection, the decimal equivalent of a binary checksum. It consists of a single digit computed from the other digits in the message....
s, and longitudinal redundancy check
Longitudinal redundancy check

In telecommunication, a longitudinal redundancy check or horizontal redundancy check is a form of redundancy check that is applied independently to each of a parallel group of bit streams....
.

Cyclic redundancy checks

Main article: Cyclic redundancy check
Cyclic redundancy check

A cyclic redundancy check is a type of function that takes as input a data stream of any length, and produces as output a value of a certain space, commonly a 32-bit integer....
More complex error detection (and correction) methods make use of the properties of finite fields and polynomials over such fields.

The cyclic redundancy check considers a block of data as the coefficients to a polynomial and then divides by a fixed, predetermined polynomial. The coefficients of the result of the division is taken as the redundant data bits, the CRC.

On reception, one can recompute the CRC from the payload bits and compare this with the CRC that was received. A mismatch indicates that an error occurred.

Hamming distance based checks

If we want to detect d bit errors in an n bit word we can map every n bit word into a bigger n+d+1 bit word so that the minimum Hamming distance
Hamming distance

In information theory, the Hamming distance between two String s of equal length is the number of positions for which the corresponding symbols are different....
 between each valid mapping is d+1. This way, if one receives a n+d+1 word that doesn't match any word in the mapping (with a Hamming distance x <= d+1 from any word in the mapping) it can successfully detect it as an erroneous word. Even more, d or fewer errors will never transform a valid word into another, because the Hamming distance between each valid word is at least d+1, and such errors only lead to invalid words that are detected correctly. Given a stream of m*n bits, we can detect x <= d bit errors successfully using the above method on every n bit word. In fact, we can detect a maximum of m*d errors if every n word is transmitted with maximum d errors.

Hash function

Any hash function
Hash function

A hash function is any algorithm or function which converts a large, possibly variable-sized amount of data into a small datum, usually a single integer that may serve as an array index into an array....
 can be used as a redundancy check.

Horizontal and vertical redundancy check

Other types of redundancy check include horizontal redundancy check, vertical redundancy check and "double", "dual" or "diagonal" parity (used in RAID-DP
Non-standard RAID levels

Although all implementations of RAID differ from the idealized specification to some extent, some companies have developed non-standard RAID implementations that differ substantially from the rest of the crowd....
).

Polarity schemes

One less commonly used form of error correction and detection is transmitting a polarity reversed bitstream simultaneously with the bitstream it is meant to correct. This scheme is very weak at detecting bit errors, and marginally useful for byte or word error detection and correction. However, at the physical layer
Physical layer

The Physical Layer is the first and lowest layer in the seven-layer OSI model of computer networking.The Physical Layer comprises the basic hardware transmission technologies of a network....
 in the OSI model
OSI model

The Open Systems Interconnection Reference Model is an abstract description for layered communications and computer network protocol design. It was developed as part of the Open Systems Interconnection initiative....
, this scheme can aid in error correction and detection.

Polarity symbol reversal is (probably) the simplest form of Turbo code
Turbo code

In electrical engineering and digital communications, turbo codes are a class of high-performance error-correcting code developed in 1993 which are finding use in deep space satellite telecommunication and other applications where designers seek to achieve maximal information transfer over a limited-bandwidth communication link in the prese...
, but technically not a Turbo code at all.
  • Turbo codes DO NOT work at the bit level.
  • Turbo codes typically work at the character or symbol level depending on their placement in the OSI model.
  • Character here refers to Baudot
    Baudot

    Baudot:*Marc Antoine Baudot , French deputy during the French Revolution*?mile Baudot , French telegraph engineer, inventor of the Baudot code...
    , ASCII
    ASCII

    American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
    -7, the 8-bit byte
    Byte

    A byte is a basic unit of measurement of Computer storage in computer science. In many computer architectures it is a Byte addressing memory address space....
     or the 16-bit word
    Word

    A word is a unit of language that represents a concept which can be expressively communication with Meaning . A word consists of one or more morphemes which are linked more or less tightly together, and has a phonetic value....
    .


Original transmitted symbol 1011
  • transmit 1011 on carrier wave 1 (CW1)
  • transmit 0100 on carrier wave 2 (CW2)


Receiver end
  • do bits polarities of (CW1) <> (CW2)?
  • if CW1

CW2, signal bit error (triggers more complex ECC)

This polarity reversal scheme works fairly well at low data rates (below 300 baud) with very redundant data like telemetry
Telemetry

Telemetry is a technology that allows the remote measurement and reporting of information of interest to the system designer or operator. The word is derived from Greek language roots tele = remote, and metron = measure....
 data.

Error correction


Automatic repeat request


Automatic Repeat-reQuest (ARQ) is an error control method for data transmission which makes use of error detection codes, acknowledgment and/or negative acknowledgement messages and timeouts to achieve reliable data transmission. An acknowledgment is a message sent by the receiver to the transmitter 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.

A few types of ARQ protocols are Stop-and-wait ARQ
Stop-and-wait ARQ

Stop-and-wait ARQ is the simplest kind of automatic repeat-request method. A stop-and-wait ARQ sender sends one frame at a time. After sending each frame, the sender doesn't send any further frames until it receives an ACK signal....
, Go-Back-N ARQ
Go-Back-N ARQ

Go-Back-N ARQ is a specific instance of the Automatic_repeat-request Protocol, in which the sending process continues to send a number of Data frame specified by a window size even without receiving an ACK packet from the receiver....
 and Selective Repeat ARQ
Selective Repeat ARQ

------------Selective Repeat ARQ is a specific instance of the Automatic_repeat-request Protocol. It may be utilized as a protocol for the delivery and acknowledgement of message units, or it may be utilized as a protocol for the delivery of subdivided message sub-units....
.

Hybrid ARQ
Hybrid ARQ

Hybrid ARQ is a variation of the ARQ error control method. In standard ARQ, error correction and detection bits are added to data to be transmitted ....
 is a combination of ARQ and forward error correction.

Error-correcting code


An error-correcting code (ECC) or forward error correction (FEC) code is a code
Code

In communications, a code is a Operator for converting a piece of information into another form or representation , not necessarily of the same type....
 in which each data signal conforms to specific rules of construction such that departures from that construction in the received signal can be automatically detected and corrected. Error-correcting codes are used in computer data storage, for example in dynamic RAM, and in data transmission
Data transmission

Data transmission is the physical transfer of data from point-to-point often represented as an electro-magnetic Signal over a point-to-point or point-to-multipoint communication channel....
.

The basic strategy is for the transmitter to apply one or more error detecting codes; then the receiver uses the same codes to narrow down exactly where in the message the error (if any) is located. If there is a single bit error in transmission, the decoder can fix the error by flipping that bit. (Some codes can also address more than one error per message.)

  • Repetition schemes: If the transmitter repeats each data bit at least three times (triple modular redundancy
    Triple modular redundancy

    In computing, triple modular redundancy is a fault tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a voting system to produce a single output....
    ), the receiver can correct any single-bit error by taking a majority vote of the received data bits.
  • Parity schemes: If the transmitter sends parity bits covering overlapping groups of data bits, a single-bit error will cause a parity error in every group that includes the erroneous bit. The receiver can correct any single-bit error by flipping the one bit that is in every group that fails the check, but not in any group that passes the check. There are a wide variety of parity-based codes, differing in exactly how groups of data bits are chosen.
  • Cyclic redundancy checks: When a transmitter adds a CRC code to a message, a single-bit error will cause the received CRC to differ from the receiver-calculated CRC. If the message is short enough, the receiver can determine exactly which bit was flipped, and correct it (Header Error Correction
    Header Error Correction

    This is a bit error detection and correction mechanism used in data transmitter and receiver.The Header Error Correction is the last field in the Asynchronous Transfer Mode cell consisting of an 8-bit Cyclic redundancy check of the cell's header only....
    ).
  • Hamming distance based checks: Since it takes many bit errors to convert one valid Hamming code word to any other valid Hamming code word, the receiver can correct any single-bit error in a word by finding the "closest" valid Hamming code, the one code word that has only one bit different from the received word.


Some codes can correct a certain number of bit errors and only detect further numbers of bit errors. Codes which can correct one error are termed single error correcting (SEC), and those which detect two are termed double error detecting (DED). Hamming code
Hamming code

In telecommunication, a Hamming code is a linear code error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; thus, reliable communication is possible when the Hamming distance between the transmitted and received bit patterns is less than or e...
s can correct single-bit errors and detect double-bit errors (SEC-DED) – more sophisticated codes can correct and detect more errors.

An error-correcting code which corrects all errors of up to n bits correctly is also an error-detecting code which can detect at least all errors of up to 2n bits.

Two main categories are convolutional code
Convolutional code

In telecommunication, a convolutional code is a type of error-correcting code in which each m-bit information symbol to be encoded is transformed into an n-bit symbol, where m/n is the code rate and the transformation is a function of the last k information symbols, where k is the constraint length of the code....
s and block code
Block code

In computer science, a block code is a type of channel coding. It adds redundancy to a message so that, at the receiver, one can decode with minimal errors, provided that the information rate would not exceed the channel capacity....
s. Examples of the latter are Hamming code
Hamming code

In telecommunication, a Hamming code is a linear code error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; thus, reliable communication is possible when the Hamming distance between the transmitted and received bit patterns is less than or e...
, BCH code
BCH code

In coding theory the BCH codes form a class of parameterised Error detection and correction which have been the subject of much academic attention in the last fifty years....
, Reed-Solomon code, Reed-Muller code, Binary Golay code
Binary Golay code

In mathematics and computer science, a binary Golay code is a type of error-correcting code used in digital communications. The binary Golay code, along with the ternary Golay code, has a particularly deep and interesting connection to the theory of finite sporadic groups in mathematics....
, and low-density parity-check code
Low-density parity-check code

In information theory, a low-density parity-check code is an error correcting code, a method of transmitting a message over a signal noise transmission channel....
s.

Shannon's theorem is an important theorem in error correction which describes the maximum attainable efficiency of an error-correcting scheme versus the expected levels of noise interference. In general, these methods put redundant information into the data stream following certain algebraic or geometric relations so that the decoded stream can be corrected if damaged in transmission. The effectiveness of the coding scheme is measured in terms of code rate
Code rate

The code rate or information rate of a forward error correction code, for example a convolutional code, states what portion of the total amount of information that is useful ....
, which is the code length divided by the useful information, and the coding gain
Coding gain

In coding theory and related engineering problems, coding gain is the measure in the difference between the signal to noise ratio levels between the uncoded system and coded system required to reach the same bit error rate levels when used with the error correcting code ....
, which is the difference of the signal-to-noise ratio
Signal-to-noise ratio

Signal-to-noise ratio is an electrical engineering measurement, also used in other fields , defined as the ratio of a signal power to the noise power corrupting the signal....
 levels of the uncoded and coded systems required to reach the same bit error rate levels.

Error-correcting memory
Because soft error
Soft error

In electronics and computing, an error is a signal or datum which is wrong. Errors may be caused by a defect, usually understood either to be a mistake in design or construction, or a broken component....
s are extremely common in the DRAM of computers used in satellites and space probes, such memory is structured as ECC memory (also called "EDAC protected memory"). Such memory controllers traditionally use a Hamming code
Hamming code

In telecommunication, a Hamming code is a linear code error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; thus, reliable communication is possible when the Hamming distance between the transmitted and received bit patterns is less than or e...
, although some use triple modular redundancy
Triple modular redundancy

In computing, triple modular redundancy is a fault tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a voting system to produce a single output....
. Even though a single cosmic ray can upset many physically neighboring bits in a DRAM, such memory systems are designed so that neighboring bits belong to different words, so that a single event upset
Single event upset

A single event upset is a change of state caused by ions or electro-magnetic radiation striking a sensitive node in a micro-electronic device, such as in a microprocessor, semiconductor memory, or power transistors....
 (SEU) causes only a single error in any particular word, and so can be corrected by a single-bit error correcting code. As long as no more than a single bit in any particular word is affected by an error between accesses, such a memory system presents the illusion of an error-free memory.

Applications



Applications that require low latency (such as telephone conversations) cannot use Automatic Repeat reQuest
ARQ

Automatic Repeat reQuest is an error control method for data transmission which uses acknowledgments and timeouts to achieve reliable data transmission over an unreliable service....
 (ARQ); they must use Forward Error Correction
Forward error correction

In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
 (FEC). By the time an ARQ
ARQ

Automatic Repeat reQuest is an error control method for data transmission which uses acknowledgments and timeouts to achieve reliable data transmission over an unreliable service....
 system discovers an error and re-transmits it, the re-sent data will arrive too late to be any good.

Applications where the transmitter immediately forgets the information as soon as it is sent (such as most television cameras) cannot use ARQ
ARQ

Automatic Repeat reQuest is an error control method for data transmission which uses acknowledgments and timeouts to achieve reliable data transmission over an unreliable service....
; they must use FEC
Forward error correction

In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
 because when an error occurs, the original data is no longer available. (This is also why FEC
Forward error correction

In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
 is used in data storage systems such as RAID
RAID

RAID is an acronym first defined by David A. Patterson , Garth A. Gibson and Randy Katz at the University of California, Berkeley in 1987 to describe a Redundant Array of Inexpensive Disks, a technology that allowed computer users to achieve mainframe-class storage reliability from low-cost and less reliable PC-class disk-drive componen...
 and distributed data store
Distributed data store

A distributed data store is a network in which a user stores his or her information on a number of peer network nodes. The user also usually reciprocates and allows users to use his or her computer as a storage node as well....
).

Applications that use ARQ must have a return channel
Return channel

In communications systems that use star network, the return channel is the transmission link from a user terminal to the central hub.Return links are often, but not always, slower than the corresponding forward link....
. Applications that have no return channel cannot use ARQ.

Applications that require extremely low error rates (such as digital money transfers) must use ARQ
ARQ

Automatic Repeat reQuest is an error control method for data transmission which uses acknowledgments and timeouts to achieve reliable data transmission over an unreliable service....
.

The Internet

In a typical TCP/IP stack, error detection is performed at multiple levels:
  • Each Ethernet
    Ethernet

    Ethernet is a family of Data frame-based computer networking technologies for local area networks . The name comes from the physical concept of the Luminiferous aether....
     frame
    Data frame

    In computer networking, a frame is a digital data transmission unit on the Data Link Layer of the OSI model. It is used for data exchange between two points via a direct physical or logical link....
     carries a CRC-32
    Cyclic redundancy check

    A cyclic redundancy check is a type of function that takes as input a data stream of any length, and produces as output a value of a certain space, commonly a 32-bit integer....
     checksum
    Checksum

    A checksum or hash sum is a fixed-size data computed from an arbitrary block of digital data for the purpose of error detection that may have been introduced during its telecommunications or computer storage....
    . The receiver discards frames if their checksums do not match.
  • The IPv4
    IPv4

    Internet Protocol version 4 is the fourth revision in the development of the Internet Protocol and it is the first version of the protocol to be widely deployed....
     header contains a header checksum of the contents of the header (excluding the checksum field). Packets with checksums that don't match are discarded.
  • The checksum was omitted from the IPv6
    IPv6

    Internet Protocol version 6 is the next-generation Internet layer protocol for packet -switched internetworking and the Internet. IPv4 is the dominant Internet Protocol version, and was the first to receive widespread use....
     header, because most current link layer
    Link layer

    In computer networking, the Link Layer is the lowest layer in the Internet Protocol Suite, the networking architecture of the Internet . It is the group of methods or Communications protocol that only operate on a host's link....
     protocols have error detection.
  • UDP
    User Datagram Protocol

    The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, sometimes known as datagram, to other hosts on an Internet Protocol network without requiring prior communications to set up special transmission cha...
     has an optional checksum. Packets with wrong checksums are discarded.
  • TCP
    Transmission Control Protocol

    The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is so central that the entire suite is often referred to as "TCP/IP"....
     has a checksum of the payload, TCP header (excluding the checksum field) and source- and destination addresses of the IP header. Packets found to have incorrect checksums are discarded and eventually get retransmitted when the sender receives a triple-ack or a timeout
    Timeout (telecommunication)

    In telecommunication and related engineering , the term timeout or time-out has several meanings, not very unlike those of a sporting-oriented Time-out :...
     occurs.


Deep-space telecommunications

Nasa Ecc Codes Imperfection
NASA
NASA

The National Aeronautics and Space Administration is an agency of the Federal government of the United States, responsible for the nation's public list of space agencies....
 has used many different error correcting codes. For missions between 1969 and 1977 the Mariner spacecraft used a Reed-Muller code. The noise these spacecraft were subject to was well approximated by a "bell-curve" (normal distribution
Normal distribution

The normal distribution, also called the Gaussian distribution, is an important family of continuous probability distributions, applicable in many fields....
), so the Reed-Muller codes were well suited to the situation.

The Voyager 1
Voyager 1

The spacecraft is a 722-kilogram Robotic spacecraft space probe of the outer Solar System and beyond, launched September 5, 1977. It remains operational, currently pursuing its extended mission to locate and study the boundaries of the Solar System, including the Kuiper belt and beyond....
 & Voyager 2
Voyager 2

The spacecraft is an Unmanned space mission interplanetary space probe launched on August 20, 1977. Identical in form to its sister Voyager program craft Voyager 1, Voyager 2 followed a slower trajectory that allowed it to be kept in the ecliptic so that it could be sent to Uranus and Neptune by means of gravity assist during...
 spacecraft transmitted color pictures of Jupiter
Jupiter

Jupiter is the fifth planet from the Sun and the Solar system by size planet within the Solar System. It is two and a half times as massive as all of the other planets in our Solar System combined....
 and Saturn
Saturn

Saturn is the sixth planet from the Sun and the second largest planet in the Solar System, after Jupiter. Saturn, along with Jupiter, Uranus and Neptune, is classified as a gas giant....
 in 1979 and 1980.
  • Color image transmission required 3 times the amount of data, so the Golay (24,12,8) code
    Binary Golay code

    In mathematics and computer science, a binary Golay code is a type of error-correcting code used in digital communications. The binary Golay code, along with the ternary Golay code, has a particularly deep and interesting connection to the theory of finite sporadic groups in mathematics....
     was used.
  • This Golay code is only 3-error correcting, but it could be transmitted at a much higher data rate.
  • Voyager 2 went on to Uranus
    Uranus

    Uranus is the seventh planet from the Sun and the third-largest and fourth most massive planet in the Solar System. It is named after the ancient Greek deity of the sky Uranus the father of Kronos and grandfather of Zeus ....
     and Neptune
    NEPTUNE

    =Overview=The project, along with sister project, VENUS, offers a unique approach to ocean science. Traditionally, ocean scientists have relied on infrequent ship cruises or space-based satellites to carry out their research....
     and the code was switched to a concatenated Reed-Solomon code-Convolutional code
    Convolutional code

    In telecommunication, a convolutional code is a type of error-correcting code in which each m-bit information symbol to be encoded is transformed into an n-bit symbol, where m/n is the code rate and the transformation is a function of the last k information symbols, where k is the constraint length of the code....
     for its substantially more powerful error correcting capabilities.
  • Current DSN error correction is done with dedicated hardware.
  • For some NASA deep space craft such as those in the Voyager program
    Voyager program

    The Voyager program is a series of U.S. unmanned space missions that consists of a pair of unmanned scientific Space probes, Voyager 1 and Voyager 2....
    , Cassini-Huygens
    Cassini-Huygens

    Cassini?Huygens is a joint NASA/European Space Agency robotic spacecraft mission currently studying the planet Saturn and Saturn's natural satellites....
     (Saturn
    Saturn

    Saturn is the sixth planet from the Sun and the second largest planet in the Solar System, after Jupiter. Saturn, along with Jupiter, Uranus and Neptune, is classified as a gas giant....
    ), New Horizons
    New Horizons

    New Horizons is a NASA robotic spacecraft mission currently en route to the dwarf planet Pluto. It is expected to be the first spacecraft to fly by and study Pluto and its moons, Charon , Nix , and Hydra ....
     (Pluto
    Pluto

    Pluto , Minor planet names Pluto, is the second-largest known dwarf planet in the Solar System and the tenth-largest body observed directly orbiting the Sun....
    ) and Deep Space 1
    Deep Space 1

    Deep Space 1 is a spacecraft launched on 24 October 1998 as part of NASA's New Millennium program. Its primary goal was the testing of technologies to lower the cost and risk of future missions....
    —the use of hardware ECC may not be feasible for the full duration of the mission.


The different kinds of deep space and orbital missions that are conducted suggest that trying to find a "one size fits all" error correction system will be an ongoing problem for some time to come.
  • For missions close to the earth the nature of the "noise" is different from that on a spacecraft headed towards the outer planets.
  • In particular, if a transmitter on a spacecraft far from earth is operating at a low power, the problem of correcting for noise gets larger with distance from the earth.


Satellite broadcasting (DVB)

Block Ecc Codes 2d 3d Types
The demand for satellite transponder
Transponder

In telecommunication, the term transponder has the following meanings:* An automatic information appliance that receiver , amplifier, and Transmission a Signalling on a different frequency ....
 bandwidth continues to grow, fueled by the desire to deliver television (including new channels and High Definition TV) and IP data. Transponder availability and bandwidth constraints have limited this growth, because transponder capacity is determined by the selected modulation
Modulation

In telecommunications, modulation is the process of varying a Periodic function waveform, i.e. a tone, in order to use that signal to convey a message, in a similar fashion as a musician may modulate the tone from a musical instrument by varying its volume, timing and Pitch ....
 scheme and Forward error correction
Forward error correction

In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
 (FEC) rate.

Overview
  • QPSK coupled with traditional Reed Solomon and Viterbi codes have been used for nearly 20 years for the delivery of digital satellite TV.
  • Higher order modulation schemes such as 8PSK, 16QAM
    Quadrature amplitude modulation

    Quadrature amplitude modulation is a modulation scheme which conveys data by changing the amplitude of two carrier waves. These two waves, usually sinusoids, are out of phase with each other by 90degree and are thus called Quadrature phase carriers?hence the name of the scheme....
     and 32QAM have enabled the satellite industry to increase transponder efficiency by several orders of magnitude.
  • This increase in the information rate in a transponder comes at the expense of an increase in the carrier power to meet the threshold requirement for existing antennas.
  • Tests conducted using the latest chipsets demonstrate that the performance achieved by using Turbo Codes may be even lower than the 0.8 dB
    Decibel

    The decibel is a logarithmic units of measurement that expresses the magnitude of a physical quantity relative to a specified or implied reference level....
     figure assumed in early designs.


Data storage


Error detection and correction codes are often used to improve the reliability of data storage media.

A "parity track" was present on the first magnetic tape data storage
Magnetic tape data storage

Magnetic tape has been used for data storage for over 50 years. In this time, many advances in tape formulation, packaging, and data density have been made....
 in 1951. The "Optimal Rectangular Code" used in group code recording
Group Code Recording

In computer science, group code recording refers to several distinct but related encoding methods for magnetic media. The first, used in 6250 Characters Per Inch magnetic tape, is an error-correcting code combined with a run length limited encoding scheme....
 tapes not only detects but also corrects single-bit errors.

Some file format
File format

A file format is a particular way to encode information for storage in a computer file.Since a disk drive, or indeed any computer storage, can store only bits, the computer must have some way of converting information to 0s and 1s and vice-versa....
s, particularly archive formats, include a checksum (most often CRC32) to detect corruption and truncation and can employ redundancy and/or parity files to recover portions of corrupted data.

Reed Solomon codes
Cross-Interleaved Reed-Solomon Coding

In the compact disc system, error correction and detection is provided by interleaving Reed-Solomon error correction. CIRC adds to every three data bytes one redundancy parity bit byte....
 are used in compact disc
Compact Disc

A Compact Disc is an optical disc used to store Data , originally developed for storing digital audio. The CD, available on the market since October 1982, remains the standard physical medium for sale of commercial Sound recording and reproduction to the present day....
s to correct errors caused by scratches.

Modern hard drives use CRC codes to detect and Reed-Solomon codes to correct minor errors in sector reads, and to recover data from sectors that have "gone bad" and store that data in the spare sectors.

RAID
RAID

RAID is an acronym first defined by David A. Patterson , Garth A. Gibson and Randy Katz at the University of California, Berkeley in 1987 to describe a Redundant Array of Inexpensive Disks, a technology that allowed computer users to achieve mainframe-class storage reliability from low-cost and less reliable PC-class disk-drive componen...
 systems use a variety of error correction techniques, to correct errors when a hard drive completely fails.

The Vandermonde matrix
Vandermonde matrix

In linear algebra, a Vandermonde matrix, named after Alexandre-Th?ophile Vandermonde, is a matrix with the terms of a geometric progression in each row, i.e., an m × n matrix...
 is used in some RAID techniques.

Information theory and error detection and correction

Information theory
Information theory

Information theory is a branch of applied mathematics and electrical engineering involving the quantification of information. Historically, information theory was developed by Claude E....
 tells us that whatever the probability of error in transmission or storage, it is possible to construct error-correcting codes in which the likelihood of failure is arbitrarily low, although this requires adding increasing amounts of redundant data to the original, which might not be practical when the error probability is very high. Shannon's theorem sets an upper bound to the error correction rate that can be achieved (and thus the level of noise
Noise

In common use, the word noise means unwanted sound or noise pollution. In electronics noise can refer to the electronic signal corresponding to acoustic noise or the electronic signal corresponding to the noise commonly seen as 'Noise ' on a degraded television or video image....
 that can be tolerated) using a fixed amount of redundancy, but does not tell us how to construct such an optimal encoder.

Error-correcting codes can be divided into block code
Block code

In computer science, a block code is a type of channel coding. It adds redundancy to a message so that, at the receiver, one can decode with minimal errors, provided that the information rate would not exceed the channel capacity....
s and convolutional code
Convolutional code

In telecommunication, a convolutional code is a type of error-correcting code in which each m-bit information symbol to be encoded is transformed into an n-bit symbol, where m/n is the code rate and the transformation is a function of the last k information symbols, where k is the constraint length of the code....
s. Other block error-correcting codes, such as Reed-Solomon codes, transform a chunk of bits into a (longer) chunk of bits in such a way that errors up to some threshold in each block can be detected and corrected.

However, in practice errors often occur in bursts
Error burst

In telecommunication, an error burst is a contiguous sequence of symbols, received over a data transmission channel , such that the first and last symbols are in error and there exists no contiguous subsequence of m correctly received symbols within the error burst....
 rather than at random. This is often compensated for by shuffling (interleaving) the bits in the message after coding. Then any burst of bit-errors is broken up into a set of scattered single-bit errors when the bits of the message are unshuffled (de-interleaved) before being decoded.

List of error-correction, error-detection methods

This list contains methods of error correction (Reed-Solomon, for example is a method) and practical techniques for error correction (like the Check digit, a practical method).
  • Berger code
    Berger code

    In telecommunication, a Berger code is a unidirectional error detection and correction, named after its inventor, J. M. Berger. Berger codes can detect all unidirectional errors....
  • Chipkill
    Chipkill

    In computer memory systems, Chipkill is IBM's trademark for a form of advanced Error Checking and Correcting computer memory technology that protects computer memory systems from any single memory chip failure as well as multi-bit errors from any portion of a single memory chip....
    , an application of ECC techniques to volatile system memory.
  • Constant-weight code
  • Convolutional code
    Convolutional code

    In telecommunication, a convolutional code is a type of error-correcting code in which each m-bit information symbol to be encoded is transformed into an n-bit symbol, where m/n is the code rate and the transformation is a function of the last k information symbols, where k is the constraint length of the code....
    s are usually decoded with iterative Viterbi decoding
    Iterative Viterbi Decoding

    Iterative Viterbi decoding is an algorithm that spots the subsequence S of an observation O = having the highest average probability of being generated by a given hidden Markov model M with m states....
     techniques
  • Differential space–time code
    Differential space–time code

    Differential space–time codes are ways of transmitting data in wireless. They are forms of space?time code that do not need to know the channel impairments at the receiver in order to be able to decode the signal....
    s, related to space–time block code
    Space–time block code

    Space?time block coding is a technique used in wireless to transmit multiple copies of a data stream across a number of antenna s and to exploit the various received versions of the data to improve the reliability of data-transfer....
    s.
  • Dual modular redundancy, subset of N-modular redundancy, related to triple modular redundancy
    Triple modular redundancy

    In computing, triple modular redundancy is a fault tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a voting system to produce a single output....
  • Erasure code
    Erasure code

    In computer science, an erasure code transforms a message of n blocks into a message with more than n blocks, such that the original message can be recovered from a subset of those blocks....
    s are a superset of Fountain code
    Fountain code

    In Coding Theory and Communication Theory, fountain codes are a class of erasure codes with the property that a potentially limitless sequence of encoding symbols can be generated from a given set of source symbols such that the original source symbols can be recovered from any subset of the encoding symbols of size equal to or only slightly...
    s
  • Forward error correction
    Forward error correction

    In telecommunication and information theory, forward error correction is a system of error control for data transmission, whereby the sender adds Redundancy to its messages, also known as an error correction code....
  • Group code
    Group code

    In computer science, group codes are a type of coding theory. Group codes consist of linear block codes which are subgroups of , where is a finite Abelian group....
  • Golay code
    Golay code

    Golay code may refer to:* Binary Golay code* Ternary Golay codeExcess long comment to prevent listing on...
    , the Binary Golay code
    Binary Golay code

    In mathematics and computer science, a binary Golay code is a type of error-correcting code used in digital communications. The binary Golay code, along with the ternary Golay code, has a particularly deep and interesting connection to the theory of finite sporadic groups in mathematics....
    s are the most commonly used Golay codes
  • Goppa code
    Goppa code

    In mathematics, an algebraic geometric code , otherwise known as a Goppa code, is a general type of linear code constructed by using an algebraic curve over a finite field ....
     that is used to create the McEliece cryptosystem
    McEliece cryptosystem

    In cryptography, the McEliece cryptosystem is an asymmetric key algorithm developed in 1978 by Robert McEliece. The algorithm has never gained much acceptance in the cryptographic community but is a candidate for 'Post-Quantum Computing' asymmetric system of choice as it is immune to an Integer factorization attack....
  • Hadamard code
    Hadamard code

    The Hadamard code, named after Jacques Hadamard, is a system used for signal error detection and correction. It is one of the family of [2nn + 1, 2n − 1] codes....
  • Hagelbarger code
    Hagelbarger code

    In telecommunication, a Hagelbarger code is a convolutional code that enables error bursts to be corrected provided that there are relatively long error-free intervals between the error bursts....
  • Hamming code
    Hamming code

    In telecommunication, a Hamming code is a linear code error-correcting code named after its inventor, Richard Hamming. Hamming codes can detect up to two simultaneous bit errors, and correct single-bit errors; thus, reliable communication is possible when the Hamming distance between the transmitted and received bit patterns is less than or e...
  • Lexicographic code
    Lexicographic code

    Lexicographic codes or lexicodes are greedily generated error-correcting code with remarkably good properties. They were produced independently by...
  • Longitudinal redundancy check
    Longitudinal redundancy check

    In telecommunication, a longitudinal redundancy check or horizontal redundancy check is a form of redundancy check that is applied independently to each of a parallel group of bit streams....
  • Low-density parity-check code
    Low-density parity-check code

    In information theory, a low-density parity-check code is an error correcting code, a method of transmitting a message over a signal noise transmission channel....
  • LT codes
    LT codes

    In computer science, LT codes are the first class of practical fountain codes that are near optimal erasure correcting codes invented by Michael Luby in 1998 and published in 2002....
     are near optimal rateless erasure correcting codes.
  • m of n codes
    M of n codes

    An m of n code is a separable error detection code with a code word length of n bits, where each code word contains exactly m instances of a "one." A single bit error will cause the code word to have either m + 1 or m – 1 "ones." An example m-of-n code is the Two-out-of-five code used by the U.S....
  • Online codes
    Online codes

    In computer science, online codes are an example of rateless erasure codes. These codes can encode a message into a number of symbols such that knowledge of any fraction of them allows one to recover the original message ....
     are an example of rateless erasure codes.
  • Parity bit
    Parity bit

    A parity bit is a bit that is added to ensure that the number of bits with value of 1 in a given set of bits is always even number or odd number....
  • Raptor codes
    Raptor codes

    In computer science, raptor codes are one of the first known classes of fountain codes with linear time encoding and decoding. They were invented by Amin Shokrollahi in 2000/2001 and were first published in 2004 as an extended abstract....
     are high speed (near real time) fountain codes.
  • Reed-Solomon error correction
  • Reed-Muller code
  • Repeat-accumulate code
    Repeat-Accumulate Code

    In computer science, repeat-accumulate codes are a low complexity class of error-correcting codes. They were devised so that their ensemble weight distributions are easy to derive....
  • Sparse graph code
    Sparse graph code

    A Sparse graph code is a code which is represented by a sparse graph.Any linear code can be represented as a graph, where there are two sets of nodes - a set representing the transmitted bits and another set representing the constraints that the transmitted bits have to satisfy....
  • Space–time code
    Space–time code

    A space–time code is a method employed to improve the reliability of data transmission in wireless using multiple transmit antenna . STCs rely on transmitting multiple, redundancy copies of a data stream to the receiver in the hope that at least some of them may survive the transmission medium between transmission and reception in a...
  • Space–time trellis code
    Space–time trellis code

    Space?time trellis codes are a type of space?time code used in multiple-input multiple-output wireless. This scheme transmits multiple, redundancy copies of a convolutional code distributed over time and a number of antenna ....
  • Tornado codes
    Tornado codes

    In computer science, tornado codes are a class of erasure codes that support error correction and have fast encoding and decoding algorithms. Software-based implementations of tornado codes are about 100 times faster on small lengths and about 10,000 times faster on larger lengths than software-based Reed-Solomon erasure codes while having on...
     are optimal Fountain codes
  • Triple modular redundancy
    Triple modular redundancy

    In computing, triple modular redundancy is a fault tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a voting system to produce a single output....
  • Turbo code
    Turbo code

    In electrical engineering and digital communications, turbo codes are a class of high-performance error-correcting code developed in 1993 which are finding use in deep space satellite telecommunication and other applications where designers seek to achieve maximal information transfer over a limited-bandwidth communication link in the prese...
  • Viterbi algorithm
    Viterbi algorithm

    The Viterbi algorithm is a dynamic programming algorithm for finding the most likelihood function sequence of hidden states – called the Viterbi path – that results in a sequence of observed events, especially in the context of Markov information sources, and more generally, hidden Markov models....
  • Walsh code
    Walsh code

    The Walsh code is used to uniquely define individual telecommunications channel .Walsh codes are mathematically orthogonal codes. As such, if two Walsh codes are correlation, the result is intelligible only if these two codes are the same....
     used in cellular telephony for its high noise immunity, not just its ECC capabilities


Practical uses of Error Correction methods
  • Concatenated error correction codes
    Concatenated error correction codes

    In coding theory, concatenated codes form a class of Error detection and correction which are derived by combining an inner code and an outer code....
    , the Compact Disc
    Compact Disc

    A Compact Disc is an optical disc used to store Data , originally developed for storing digital audio. The CD, available on the market since October 1982, remains the standard physical medium for sale of commercial Sound recording and reproduction to the present day....
     and Voyager Program
    Voyager program

    The Voyager program is a series of U.S. unmanned space missions that consists of a pair of unmanned scientific Space probes, Voyager 1 and Voyager 2....
     spacecraft use concatenated error correction technologies
  • Check digit
    Check digit

    A check digit is a form of redundancy check used for error detection, the decimal equivalent of a binary checksum. It consists of a single digit computed from the other digits in the message....
    , commonly used on UPC
    UPC

    UPC can stand for:...
     barcode
    Barcode

    A bar code is an optical machine-readable representation of data. Originally, bar codes represented data in the widths and the spacings of parallel lines and may be referred to as linear or 1D barcodes or symbologies....
    s
  • Luhn algorithm
    Luhn algorithm

    The Luhn algorithm or Luhn formula, also known as the "modular arithmetic 10" or "mod 10" algorithm,is a simple checksum formula used to validate a variety of identification numbers, such as Credit card number, National Provider Identification Number in US and Canada Social Insurance Numbers....
    , the most commonly used base 10 checksum
    Checksum

    A checksum or hash sum is a fixed-size data computed from an arbitrary block of digital data for the purpose of error detection that may have been introduced during its telecommunications or computer storage....
     that can perform limited error detection but not error correction
  • Luhn mod N algorithm
    Luhn mod N algorithm

    The Luhn mod N algorithm is an extension to the Luhn algorithm that allows it to work with sequences of non-numeric characters. This can be useful when a check digit is required to validate an identification string composed of letters, a combination of letters and digits or even any arbitrary set of characters....
    , the above algorithm but implementable in a non base 10 form
  • Verhoeff algorithm
    Verhoeff algorithm

    The Verhoeff algorithm, a checksum formula for error detection first published in 1969, was developed by Dutch mathematician Jacobus Verhoeff . Like the more widely known Luhn algorithm, it works with strings of decimal digits of any length....
    , a modular based form not related to the Luhn algorithm
    Luhn algorithm

    The Luhn algorithm or Luhn formula, also known as the "modular arithmetic 10" or "mod 10" algorithm,is a simple checksum formula used to validate a variety of identification numbers, such as Credit card number, National Provider Identification Number in US and Canada Social Insurance Numbers....
    s that can detect most forms of transposition errors in financial cryptographic applications


See also

  • Repetition schemes
  • Triple modular redundancy
    Triple modular redundancy

    In computing, triple modular redundancy is a fault tolerant form of N-modular redundancy, in which three systems perform a process and that result is processed by a voting system to produce a single output....


  • Error correction standardization
  • Federal Standard 1037C
    Federal Standard 1037C

    Federal Standard 1037C, entitled Telecommunications: Glossary of Telecommunication Terms is a United States Federal Standard, issued by the General Services Administration pursuant to the Federal Property and Administrative Services Act of 1949, as amended....
  • MIL-STD-188
    MIL-STD-188

    MIL-STD-188 is a series of U.S. military standards relating to telecommunications....


  • Errors and residuals in statistics
    Errors and residuals in statistics

    In statistics and Optimization , statistical errors and residuals are two closely related and easily confused measures of "deviation of a sample from the mean": the error of a sample is the deviation of the sample from the population mean or actual function, while the residual of a sample is the difference between the sa...
  • Research Conferences on Error Correction
  • International Symposium On Turbo Codes, http://www-turbo.enst-bretagne.fr/


External links

  • , 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 code
    Low-density parity-check code

    In information theory, a low-density parity-check code is an error correcting code, a method of transmitting a message over a signal noise transmission channel....
    s, turbo code
    Turbo code

    In electrical engineering and digital communications, turbo codes are a class of high-performance error-correcting code developed in 1993 which are finding use in deep space satellite telecommunication and other applications where designers seek to achieve maximal information transfer over a limited-bandwidth communication link in the prese...
    s, and fountain codes.
  • Article:
  • - an on-line interface for generating and computing parameters (e.g. minimum distance
    Minimum distance

    The term minimum distance is used in several ways:* In geometry, the minimum distance of a collection of points P in a space is the smallest distance between any two points of the space....
    , covering radius
    Covering radius

    In mathematics, the covering radius of a collection of points P in a space is the smallest r > 0 such that spheres of radius r around the points P will completely cover the space....
    ) of linear error-correcting codes
    Linear code

    In mathematics and information theory, a linear code is an important type of block code used in error correction and detection schemes. Linear codes allow for more efficient encoding and decoding algorithms than other codes ....
    .