Advanced Error Correction Coding (Reed Solomon, turbo-coding, etc.)

In telecommunication, forward error correction (FEC) is a system of error control for data transmission wherein the receiving device has the capability to detect and correct fewer than a predetermined number or fraction of bits or symbols corrupted by transmission errors. FEC is accomplished by adding redundancy to the transmitted information using a predetermined algorithm. Each redundant bit is invariably a complex function of many original information bits. The original information may or may not appear in the encoded output; codes that include the unmodified input in the output are systematic, while those that do not are nonsystematic.

FEC could be said to work by "averaging noise"; since each data bit affects many transmitted symbols, the corruption of some symbols by noise usually allows the original user data to be extracted from the other, uncorrupted received symbols that also depend on the same user data. This is somewhat analogous to the way that insurance companies and mutual funds manage and spread risk. Because of this "risk-pooling" effect, digital communication systems that use FEC tend to work perfectly above a certain minimum signal-to-noise ratio and not at all below it, and this all-or-nothing tendency becomes more pronounced as stronger codes are used that more closely approach the theoretical limit imposed by the Shannon limit.