Iterative decoding may be defined as a technique employing a soft-output decoding algorithm that is iterated several times to improve the error performance of a coding scheme, with the aim of approaching true maximum-likelihood decoding (MLD) with least complexity. When the underlying error correcting code is well designed, increasing the number of iterations results in an improvement of the error performance. Iterative decoding techniques date back to 1954 with the work of Elias (1954) on iterated codes. Later, in the 1960s, Gallager (1962) and Massey (1963) made important contributions. Iterative decoding in those days was referred to as probabilistic decoding. The main concept was then, as it is today, to maximize the a posteriori probability of a symbol being sent, given a noisy version of the coded sequence.