Turbo Code: Technical Seminar Report On
Turbo Code: Technical Seminar Report On
TURBO CODE
A technical seminar report submitted in partial fulfillment of the
requirement for the degree of bachelor of engineering under BPUT
SUBMITTED BY:
HOD,Department of CSE
Turbo Code
ABSTRACT
CSE-0701106246
INDEX
CHAPTER PAGE NO
I.Introduction 1
Backword Correction
Decoding
Perfomance
Example
IV. Conclusion 16
V. Reference 17
Turbo Code
Turbo Codes
1.Introduction
The task of channel coding is to encode the information sent over a communication
channel in such a way that in the presence of channel noise, errors can be
detected and/or corrected. We distinguish between two coding methods:
[Type a quote from the document or the summary of an interesting point. You can position the
text box anywhere in the document. Use the Text Box Tools tab to change the formatting of the pull
quote text box.]
+ +
+ +
For this encoder, M = 3, since the ith bits of output depend on input bit i, as well
as three previous bits i − 1, i − 2, i − 3. The encoder is nonsystematic, since the
input bits do not appear explicitly in its output.
An important parameter of a channel code is the code rate. If the input size (or
message size) of the encoder is k bits and the output size (the code word size) is n
bits, then the ratio k
n is called the code rate r. Since our sample convolutional encoder
produces two output bits for every input bit, its rate is 1
2 . Code rate expresses
the amount of redundancy in the code—the lower the rate, the more redundant the
code.
Finally, the Hamming weight or simply the weight of a code word is the number
of non-zero symbols in the code word. In the case of binary codes, dealt with in
this paper, the weight of a code word is the number of ones in the word.
S
(
R<W log 2 1+
N)[bits/second]
The first turbo code, based on convolutional encoding, was introduced in 1993 by
Berrou et al. Since then, several schemes have been proposed and the term
“turbo codes” has been generalized to cover block codes as well as convolutional
codes. Simply put,
a turbo code is formed from the parallel concatenation of two codes separated by
an interleaver.
The generic design of a turbo code is depicted in Figure. Although the general
concept allows for free choice of the encoders and the interleaver, most designs
follow the ideas presented
• The two encoders used are normally identical;
• The code is in a systematic form, i.e. the input bits also occur in the output
• The interleaver reads the bits in a pseudo-random order.
The choice of the interleaver is a crucial part in the turbo code design . The task
of the interleaver is to “scramble” bits in a (pseudo-)random, albeit predetermined
*A decibel is a relative measure. If E is the actual energy and Eref is the theoretical
lower
bound, then the relative energy increase in decibels is
E
10 log 10
Eref
.
Sincelog 10 2 ≅ 0.3,
Encoder 1 Output 1
Interleaver
Encoder 2
Output 2
fashion. This serves two purposes. Firstly, if the input to the second encoder is
interleaved,its output is usually quite different from the output of the first encoder.
This means that even if one of the output code words has low weight, the other
usually does not, and there is a smaller chance of producing an output with very
low weight. Higher weight, as we saw above, is beneficial for the performance of
the decoder. Secondly, since the code is a parallel concatenation of two codes, the
divide-and-conquer strategy can be employed for decoding. If the input to the
second decoder is scrambled, also its output will be different, or “uncorrelated”
from the output of the first encoder. This means that the corresponding two
decoders will gain more from information exchange.
We now briefly review some interleaver design ideas, stressing that the list is by no
means complete. The first three designs are illustrated in Figure 3 with a sample
input size of 15 bits.
Turbo Code
4. A pseudo-random interleaver defined by a pseudo-random number generator
or a look-up table.
Turbo Codes 6
Input
X1 X2 X3 X4 X5
X6 X7 X8 X9 X10
X11 X12 X13 X14 X15
X1 X1 X1 X1
X1 X2 X3 X4 X5 X6 X7 X8 X9 X14 X15
0 1 2 3
Y1 Y1
Y1 - Y3 - Y5 - Y7 - Y9 - - - Y15
1 3
Encoder output with row-column interleaving
X1
X1 X6 X11 X2 X7 X12 X3 X8 X13 X4 X9 X5 X10 X15
4
- Z6 - Z2 - Z12 - Z8 - Z4 - Z14 - Z10 -
Final output of the encoder
Y1 Y1
Y1 Z6 Y3 Z2 Y5 Z12 Y7 Z8 Y9 Z4 Z14 Z10 Y15
1 3
Figure 3: Interleaver designs
There is no such thing as a universally best interleaver. For short block sizes, the
odd-even interleaver has been found to outperform the pseudo-random interleaver,
and vice versa. The choice of the interleaver has a key part in the success of the
code and the best choice is dependent on the code design. For further reading,
several articles on interleaver design can be found.
+ g1
x D D
+
g2
Turbo Code
The conventional convolutional encoder is represented by the generator sequences
g1 =[111] and g2 =[101] and can be equivalently represented in a more compact
form as G=[g1, g2]. The RSC encoder of this conventional convolutional encoder
is represented as G=[1, g2 / g1] where the first output (represented by g1) is fed
back to the input. In the above representation, 1 denotes the systematic output, g2
denotes the feedforward output, and g1 is the feedback to the input of the RSC
encoder. Figure 4.2 shows the resulting RSC encoder.
+ D D
Figure 4.2: The RSC encoder obtained from the previous figure
6.Turbo Codes: Some Notes on Decoding
Turbo Code
7.Working Of Turbo Code with the Example
Turbo Code
8.Turbo Codes: Performance
We have seen that the conventional codes left a 3dB gap between theory and
practice. After bringing out the arguments for the efficiency of turbo codes, one
clearly wants to ask: how efficient are they?
Already the first rate 1/3 code proposed in 1993 made a huge improvement: the
gap between Shannon’s limit and implementation practice was only 0.7dB, giving
a less than 1.2-fold overhead. (In the authors’ measurements, the allowed bit error
rate BER was 10−5). In [2], a thorough comparison between convolutional codes
and turbo codes is given. In practice, the code rate usually varies between 1/2 and
1/6 . Let the allowed bit error rate be 10−6. For code rate 1/2 , the relative increase
in energy consumption is then 4.80dB for convolutional codes, and 0.98dB for
turbo codes. For code rate 1/6 , the respective numbers are 4.28dB and -0.12dB2. It
can also be noticed, that turbo codes gain significantly more from lowering the
code rate than conventional convolutional codes.
Figure 6: Perfomance
9.The UMTS Turbo Code
+ +
Input Xi Xi-1 Xi-2 Xi-3
Interleaver + ++
+ +
+ +
Turbo Code
The UMTS turbo encoder closely follows the design ideas presented in the original
1993 paper .The starting building block of the encoder is the simple convolutional
encoder depicted in Figure 1. This encoder is used twice, once without
interleaving and once with the use of an interleaver, exactly as described above.
In order to obtain a systematic code, desirable for better decoding, the following
modifications are made to the design. Firstly, a systematic output is added to the
encoder. Secondly, the second output from each of the two encoders is fed back
to the corresponding encoder’s input. The resulting turbo encoder
is a rate 1/3 encoder, since for each input bit it produces one systematic
output bit and two parity bits. Details on the interleaver design can be found in
the corresponding specification .
Although the relative value is negative, it does not actually violate the Shannon’s
limit. The negative value is due to the fact that we allow for a small error, whereas
Shannon’s capacity applies for perfect error-free transmission.
260 1
<
456 2
10.Conclusions
Turbo Code
11.References