Error correction code: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: template type. Add: arxiv, bibcode, volume. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_webform 454/1972
This is all a hacking project
Tags: Reverted section blanking Mobile edit Mobile web edit
Line 9:
The maximum fractions of errors or of missing bits that can be corrected is determined by the design of the ECC code, so different error correcting codes are suitable for different conditions. In general, a stronger code induces more redundancy that needs to be transmitted using the available bandwidth, which reduces the effective bit-rate while improving the received effective signal-to-noise ratio. The [[noisy-channel coding theorem]] of [[Claude Shannon]] can be used to compute the maximum achievable communication bandwidth for a given maximum acceptable error probability. This establishes bounds on the theoretical maximum information transfer rate of a channel with some given base noise level. However, the proof is not constructive, and hence gives no insight of how to build a capacity achieving code. After years of research, some [[Polar code (coding theory)|advanced ECC systems as of 2016]]<ref name=":0" /> come very close to the theoretical maximum.
 
==Forward error correction==
In [[telecommunication]], [[information theory]], and [[coding theory]], '''forward error correction''' ('''FEC''') or '''channel coding'''<ref>{{cite journal |author1=Charles Wang |author2=Dean Sklar |author3=Diana Johnson |title=Forward Error-Correction Coding |journal=Crosslink |publisher=The Aerospace Corporation |volume=3 |issue=1 |date=Winter 2001–2002 |url=http://www.aero.org/publications/crosslink/winter2002/04.html |quote=[http://www.aero.org/publications/crosslink/winter2002/04_sidebar1.html How Forward Error-Correcting Codes Work] |access-date=5 March 2006 |archive-url=https://www.webcitation.org/65iNkn800?url=http://www.aero.org/publications/crosslink/winter2002/04.html |archive-date=25 February 2012 |url-status=dead }}</ref><ref name=":0">{{Cite web|url=https://www.accelercomm.com/overview-channel-coding|title=Overview of Channel Coding|last=Maunder|first=Robert|date=2016}}</ref> is a technique used for [[error control|controlling errors]] in [[data transmission]] over unreliable or noisy [[communication channel]]s. The central idea is that the sender encodes the message in a [[Redundancy (information theory)|redundant]] way, most often by using an ECC.
 
The redundancy allows the receiver to detect a limited number of errors that may occur anywhere in the message, and often to correct these errors without re-transmission. FEC gives the receiver the ability to correct errors without needing a [[reverse channel]] to request re-transmission of data, but at the cost of a fixed, higher forward channel bandwidth. FEC is therefore applied in situations where re-transmissions are costly or impossible, such as one-way communication links and when transmitting to multiple receivers in [[multicast]]. FEC information is usually added to [[mass storage]] (magnetic, optical and solid state/flash based) devices to enable recovery of corrupted data, is widely used in [[modem]]s, is used on systems where the primary memory is [[ECC memory]] and in broadcast situations, where the receiver does not have capabilities to request re-transmission or doing so would induce significant latency. For example, in the case of a satellite orbiting [[Uranus]], a re-transmission because of decoding errors would create a delay of at least 5 hours.
 
FEC processing in a receiver may be applied to a digital bit stream or in the demodulation of a digitally modulated carrier. For the latter, FEC is an integral part of the initial [[Analog-to-digital converter|analog-to-digital conversion]] in the receiver. The [[Viterbi decoder]] implements a [[Soft-decision decoder|soft-decision algorithm]] to demodulate digital data from an analog signal corrupted by noise. Many FEC coders can also generate a [[bit-error rate]] (BER) signal which can be used as feedback to fine-tune the analog receiving electronics.
The maximum proportion of errors or missing bits that can be corrected is determined by the design of the ECC, so different forward error correcting codes are suitable for different conditions. In general, a stronger code induces more redundancy that needs to be transmitted using the available bandwidth, which reduces the effective bit-rate while improving the received effective signal-to-noise ratio. The [[noisy-channel coding theorem]] of Claude Shannon answers the question of how much bandwidth is left for data communication while using the most efficient code that turns the decoding error probability to zero. This establishes bounds on the theoretical maximum information transfer rate of a channel with some given base noise level. His proof is not constructive, and hence gives no insight of how to build a capacity achieving code. However, after years of research, some advanced FEC systems like [[Polar code (coding theory)|polar code]]<ref name=":0" /> achieve the Shannon channel capacity under the hypothesis of an infinite length frame.
 
==How it works==