Error Control

Introduction

Errors happen in digital data when a bit that is meant to be a 0 is 'flipped' to be a 1 and vice-versa. Error detection and correction is enormously important in data storage and transmission. All digital (and analogue) devices rely on the integrity of data. For example, when a cellphone user sends a text message they have to be confident that the message will get to the right number, and that the text will be exactly the same as when they sent it. Another example is Internet banking where the user has to be confident that an extra zero is not going to be added to a debit from their account. They do not want to pay $1000 instead of $100.

The transmission medium or channel that data is transmitted over is inherently error prone. The margin of error may be quite small, but it is always present to some degree. This is particularly true of the Internet.

Yet another example of the need for data integrity is uncertain communication across vast distances of space by explorer craft such as Voyager 2. The error prone nature of the channel in this instance was high due to the great distance, time for a signal to reach earth, its low power, and interference. Data from the space craft had to use complex error correction coding to insure that any corrupted data could be corrected (as much as it could be) as there would be little chance of the data being resent.

As well as the need for reliable transmission of data across channels such as the Internet and the wireless spectrum, storage and retrieval of data on devices and networks has to be sound. A computer user needs to know that their files will not become corrupted when being written to or from the hard disk. Also, a network user needs to know if the server their files are stored on has a hard disk failure the lost data can be recovered. The Internet banking user mentioned above would fall into this category. Their bank account details need to be safely stored and not likely to be lost due to hardware or network system failure.

The source of the information on this page is the Wikipedia page Error detection and correction

To quote from the beginning of this page:

  • 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.

Error correction may generally be realized in two different ways:

  • Automatic repeat request (ARQ) (sometimes also referred to as backward error correction): This is an error control technique whereby an error detection scheme is combined with requests for retransmission of erroneous data. Every block of data received is checked using the error detection code used, and if the check fails, retransmission of the data is requested – this may be done repeatedly, until the data can be verified.
  • Forward error correction (FEC): The sender encodes the data using an error-correcting code (ECC) prior to transmission. The additional information (redundancy) added by the code is used by the receiver to recover the original data. In general, the reconstructed data is what is deemed the "most likely" original data.

ARQ and FEC may be combined, such that minor errors are corrected without retransmission, and major errors are corrected via a request for retransmission: this is called hybrid automatic repeat-request (HARQ).




Comments