Designers are working overtime to develop next-generation infrastructure that can support faster data rates, enhanced data services, multimedia content, video conferencing capabilities, and much more. Error detection is still one of the major design challenges for engineers working on such infrastructures. A convolutional decoder receives the sequence of coded bits, which are corrupted by noise in the channel. The function of the decoder is to estimate, as best it can, the sequence of information bits. These codes benefit from soft information, where the input is not simply presented as a 1 or a 0, but as a binary number which indicates the probability that a particular bit is a 1 or a 0.
Convolutional codes are good for correcting randomly placed errors in a data sequence.
These codes are also good for noisy channels where a high proportion of bits are in error, and they can make good use of the soft information that is available from the demodulator and channel equalizer. A variety of turbo decoding implementations are similar to other convolutional approaches. Here, however, we are only concerned with turbo decoding techniques that employ parallel-concatenated convolutional codes. Figure 1 shows a diagram of a turbo encoder. In this encoder, the data to be transmitted is partitioned into blocks.