Part 2.4 Turbo codes p. 1
Overview of Turbo Codes The Turbo code concept was first introduced by C. Berrou in 1993. The name was derived from an iterative decoding algorithm used to decode these codes where, like a turbo engine, part of the output is reintroduced at the input and processed again. Performance close to the Shannon limit Drawbacks: high decoding complexity high latency due to interleaving and iterative decoding p. 2
Interleaving (1) Most well known codes have been designed for AWGN (Additive White Gaussian Noise) channels, i.e. the errors caused by the channel are randomly distributed and statistically independent. Thus when the channel is AWGN-channel these codes increase the reliability in the transmission of information. If the channel exhibits burst-error characteristics (due to the time-correlated multipath fading), these error clusters are not usually corrected by these codes. A burst of errors: a sequence of bit errors the 1st and last of which are 1s. p. 3
Solution: an interleaver Interleaving (2) Its objective is to interleave the coded data in such a way that the bursty channel is transformed into a channel having independent errors and thus a code designed for independent channel errors (short burst) can be used. Disadvantages: High latency (the entire interleaved block must be received before the critical data can be returned) In turbo codes, the interleaver is used to permute the input bits such that the two encoders are operating on the same set of input bits, but different input sequences. p. 4
Block Interleaving p. 5
Example of Block Interleaving p. 6
Random Interleaving A block of N input bits is written into the interleaver in the order in which the bits are received, but they are read out in a random manner. (Each bit is read once and only once.) Example: N=16 [a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 ] Permutation [a16 a11 a2 a13 a3 a1 a14 a10 a6 a4 a9 a12 a8 a5 a15 a7] p. 7
Concatenated Codes (1) A concatenated code consists of two separated codes which are combined to form a larger code. Example 1:The convolutional code is well-suited for channels with random errors, and the Reed-Solomon code is well suited to correct the bursty output errors common with a Viterbi decoder. An interleaver is used to spread the Viterbi output error bursts across multiple RS codewords. Data RS Encoder Interleaver Conv. Encoder Channel Viterbi Decoder Outer Code Inner Code De- Interleaver RS Decoder Data p. 8
Concatenated Codes (2) Example 2&3: Parallel and serial concatenated convolutional codes Data CC Encoder1 Interleaver CC Encoder2 Channel Viterbi/APP Decoder Serial Concatenation De- Interleaver Viterbi/APP Decoder Data Data CC Encoder1 Interleaver CC Encoder2 Channel Viterbi/APP Decoder De- Interleaver Viterbi/APP Decoder Combiner Data p. 9
Principles of Turbo Codes Formally, turbo codes should be described as parallelconcatenated systematic convolutional codes Components Two or more systematic convolutional codes (usually identical, rate 1/2) Pseudo-random interleaver Soft-output iterative decoder, etc. Parallel concatenation The encoders operate on the same set of input bits, rather than one encoding the output of the other One reason for excellence performance The interleaver is used to permute the input bits Length of the code is determined by the interleaver p. 10
Turbo Codes : Encoder p. 11
Turbo Codes : Decoder p. 12
Iterative Decoding (1) The decoders should be soft input soft output (SISO) i.e. output information about the reliability of their harddecisions A Posteriori Probability (APP): p(x'=x R), where R is the received sequence Soft information (the logarithm of likelihood ratio (LLR)): Λ = log p( X = 1 R) p( X = 0 R) Outperform the hard-decision decoding p. 13
Iterative Decoding (2) Iterative decoding not only feed output of one decoder to input of the other Decoder One but also feed back output of the second decoder to input of the first decoder, and iterate the decoding Cycle will continue until certain conditions are met Interleaver Decoder Two Deinterleaver The other reason for excellent performance p. 14
Performance of Turbo Codes (1) R c =1/2 L=65536 (interleaver size) G1=37 (Encoder 1 polynomial) G2=21 (Encoder 2 polynomial) M.C. Valenti, ``Turbo codes and iterative processing,'', in Proc. IEEE New Zealand Wireless Commun. Symp. '98, Auckland New Zealand, Nov. 1998. p. 15
Performance of Turbo Codes (2) R c =1/2 G1=37 (Encoder 1 polynomial) G2=21 (Encoder 2 polynomial) (after 18 iterations) M.C. Valenti, ``Turbo codes and iterative processing,'', in Proc. IEEE New Zealand Wireless Commun. Symp. '98, Auckland New Zealand, Nov. 1998. p. 16