Turbo Codes are new class of error correction codes that were introduced by a group of researchers from France Telecom. Error correction is one of the fundamental building blocks of all types of digital communications.

The importance of turbo codes is that they enable reliable communications with power efficiencies close to the theoretical limit, as predicted by Claude Shannon. Since their introduction, turbo codes have been proposed for low-power applications such as deep-space and satellite communications, as well as for interference limited applications such as third generation cellular and personal communication services.

Turbo codes typically consist of a decoder which is made up of 2 component codes, separated by an interleaver. These encoders have generally been recursive systematic convolutional (RSC) codes. Because of the interleaver, the two encoders are excited by two different input sequences, and thus need two separate decoders, these also being separated by interleavers.

The information provided by the first decoder may then be used in the second decoder, and since there is now more confidence in the decoder bits, the whole decoding procedure is repeated again, by forming another iteration.

There can be any number of iterations in the decoder, thereby increasing the complexity. With the benefit of hindsight, it can be shown that turbo coding has evolved through the interaction of the field of error control coding with the analysis of hidden Markov models. One of the key results in the latter area was the development by Baum and Welch of a recursive algorithm for estimating the parameters of hidden Markov models.