The turbo code decoder is an iterative Maximum A posteriori (MAP) algorithm. MAP algorithms use a Bayesian analysis of the channel transition probabilities and the state diagram of the encoder to estimate the most likely transmitted sequence of data bits based on the received sequence of data and code bits. The decoder sequentially decodes the results from each constituent encoder.
The results of each of these steps are fed to the next step as a-priori information called extrinsic data. After processing the results of all constituent codes, the algorithm goes back to the first constituent code and repeats the process see Figure below.
Iterations continue until the decoder cannot improve the estimate of the data bit sequence. Variations of the decoding algorithm have been proposed which trade-off computational complexity for performance.
Each decoder has a number of compute intensive tasks to be done during decoding. There are five main computations to be performed during each iteration in the decoding stage as shown in Figure in the last post. (Detailed derivations of the algorithm and the computations can be found in later chapters). Bit Error Rate (BER) vs ( Eb / No ) .
performance of turbo codes can be significantly better than conventional convolutional codes of similar rate and constraint length employing Viterbi.