Turbo codes are error correcting codes that use feedback techniques to attain high degrees of error correction at higher data transmission rates and/or lower powers than can be obtained with competing technologies. Current data transmission technology frequently transmits at rates where a few errors occur and uses error detection/correction bits to correct errors and, if necessary, require retransmission. Rates obtained in practice from current techniques such as transmission with Reed-Solomon or CRC codes are substantially lower than the theoretical channel limit computed from the equations proposed by Claude Shannon in 1948. The difference is a bit over 3db implying that practical communications today must use twice the power or a lower data rate than theory says a channel should be capable of carrying.
Turbo codes push actual bit rates considerably above the conventional error free rate thereby increasing the probability of bad bits. The data is sent along with two differently derived "CRC" values. Two interacting decoders are used to identify the actual content of the (very probably) somewhat faulty data received. Generally one encoder or the other will be highly certain of the values of some bits. Each bit is assigned a numeric value that gives both the (likely) value of the bit and the likelihood of its being correct. This information is then shared with the other decoder. The decoders then recompute the values based on both their own assessment and the other decoder's assessment. The output of each pass is fed back to the other decoder. Under normal conditions, both decoders will converge to a single -- identical - assessment of the original bit stream after a few (perhaps ten) iterations.
Turbo codes were first proposed by Claude Berrou and Alain Glavieux in 1993. The concept was greeted with very little enthusiasm, but subsequent work has demonstrated that the codes do work and are capable of closely approaching the theoretical Shannon limit for communication channels power-bandwidth. Since the decoding is computationally demanding, turbo codes have generally been used mostly in weak signal, low data rate situations. However, as computing power becomes cheaper turbo codes are finding more use. They are, for example, expected to be used in the next generation of cell phones where they should provide enhanced coverage/lower power operation.
Low Density Parity Codes are a competing, older, technology that also uses feedback to attain very high data rates at the expense of a lot of complexity in decoding. It is not clear that LDPC is superior to Turbo coding, but it is clear that the LDPC patents have expired whereas the Turbo Code patents have not. New attention is being focused on LDPC.
Return To Index Copyright 1994-2008 by Donald Kenney.