You are on page 1of 5

Turbo Codes

Lovely Professional University, Punjab


Aman Gahoi, 11111771
A54
Abstract:-This paper present a new family of
convolutional code, nicknamed turbo-codes ,build from
a particular concatenation of two recursive systematic
codes, linked together by non-uniform interleaving.
Decoding calls on iterative processing in which each
component decodes takes advantage of work of the
other at previous step, with the aid of original concept
of extrinsic information. For sufficiently large
interleaving size, the correcting performance of turbo
codes, investigated by simulation, appear to be close to
the theoretical limit predicted by Shannon.

I.

Introduction:-

In 1949 Claude Shannon published a classic paper1 that


established a mathematical basis for the consideration of
the noisy communications channel. In his analysis he
quantified the maximum theoretical capacity for a
communications channel, the Shannon limit, and
indicated that error-correcting channel codes must exist
that allowed this maximum capacity to be achieved. The
intervening years have seen many well-considered
channel codes inch towards the Shannon limit, but all
contenders have required large block lengths to perform
close to the limit. The consequent complexity, cost, and
signal latency of these codes have made them
impractical within 3 to 5 dB of the limit, but they
provide useful coding gain at higher values of Eb/No
and bit error rate. In 1993 Berrou, Glavieux and
Thitimajshima2 proposed a new class of convolution
codes called turbo codes whose performance in terms of
Bit Error Rate (BER) are close to the Shannon limit .

II.

Principles of Turbo Codes:-

It is theoretically possible to approach the Shannon limit


by using a block code with large block length or a
convolutional code with a large constraint length. The
processing power required to decode such long codes
makes this approach impractical. Turbo codes overcome
this limitation by using recursive coders and iterative
soft decoders. The recursive coder makes convolutional
codes with short constraint length appear to be block
codes with a large block length, and the iterative soft
decoder progressively improves the estimate of the
received message.

III.

Type of Turbo Codes:-

There are two type of turbo code we have


studied
a) Convolutional turbo code:By
applying
systematic
recursive
convolutional codes in an iterative scheme
and by introducing an interleaver between
the two parallel encoders, promising results
can be obtained with so-called convolutional
Turbo codes. Convolutional Turbo codes are
of great interest because of their good
performance at low SNRs.
Convolutional Encoder:-

Figure1-1:- Convolutional turbo

encoder
Figure 1-1 shows the block diagram of a convolutional
Turbo encoder. The code structure consists of two
parallel recursive systematic punctured convolutional
codes. A block of encoded bits consists of three parts, the
two parity bit parts and the systematic part. The
systematic part is the same in both code bit streams and,
hence, has to be transmitted only once. The code bit
sequence at the output of the Turbo encoder is given by
the vector b(k).
Convolutional Decoder:-

Figure 1-2:- convolution turbo decoder


In the receiver, the decoding is performed iteratively.
Figure 1-2 shows the block diagram of the convolutional
Turbo decoder. The component decoders are soft output
decoders providing log-likelihood ratios (LLRs) of the
decoded bits. The basic idea of iterative decoding is to
feed-forward/backward the soft decoder output in the
form of LLRs, improving the next decoding step. In the
initial stage, the non-interleaved part of the coded bits
b(k) is decoded. Only the LLRs given by the vector l(k)
at the input of the Turbo decoder are used. In the second
stage, the interleaved part is decoded. In addition to the
LLRs given by l(k), the decoder uses the output of the
first decoding step as a priori information about the
coded bits. This is possible due to the separation of the
two codes by the interleaver. In the next iteration cycle,
this procedure is repeated, but now the non-interleaved
part can be decoded using the a priori information
delivered by the last decoding step. Hence, this decoding
run has a better performance than the first one and the
decoding improves.
The size of the Turbo code interleaver and the number of
iterations essentially determine the performance of the
Turbo coding scheme.
Interleaving:An interleaver is a device that rearranges the ordering of
sequence of symbols in a deterministic manner.
Associated with the interleaver is a deinterleaver that
applies the inverse permutation to restore the original
sequence. The most critical part in the design of a turbo
code is the interleaver. The two main issues in the
interleaver design are the interleaver size and the
interleaver map.
The size of the interleaver plays an important role in the
tradeoff between performance and time (delay) since
both of them are directly proportional to the size. On the
other hand, the map of the interleaver plays an important
role in setting the code performance. Conventionally,
interleaving is used to spread out the errors occurring in

burst. For turbo codes, the interleaver has more


functions.
Interleaving is used to feed the encoders with
permutations so that the generated redundancy
sequences can be assumed independent. The validity of
the assumption that the generated redundancy sequences
are independent is a function of the particular interleaver
used.
Another key role of the interleaver is to shape the weight
distribution of the code, which ultimately controls its
performance. This is so because the interleaver will
decide which word of the second encoder will be
concatenated with the current word of the first encoder,
and hence what weight the complete code word will
have. So the aim of the designer is to produce whole
code words with the overall weights as large as possible.
Turbo codes, unlike convolutional codes, make the
distribution of the weight more important than the
minimum distance.
Puncturing:Puncturing is the process of deleting some bits from the
code word according to a puncturing matrix. The
puncturing matrix (P) consists of zeros and ones where
the zero represents an omitted bit and the one represents
an emitted bit. It is usually used to increase the rate of a
given code. Puncturing can be applied to both block and
convolutional codes. An example of the puncturing
matrix to go from rate 1/2 to rate 2/3 is given by
This matrix implies that the first bit is always
transmitted while every other second bit is omitted. For
turbo codes, the same decoder may serve for various
coding rates by means of puncturing, allowing the same
silicon product to be used in different applications.
When the redundant information of a given encoder is
not transmitted, the corresponding decoder input is set to
zero. Of course, the decoder needs to know the current
puncturing table. This function is performed by the
DEMUX/INSERTION block in the turbo decoder. The
DEMUX will demultiplex the stream between the
decoders and the INSERTION will insert an analog zero
if the corresponding bit is omitted. When the code is
punctured, the branch metric corresponding to the
punctured bits need not be computed. Determining the
best puncturing pattern for turbo codes is still an open
problem.
Puncturing is a tradeoff between rate and performance,
but, fortunately, punctured codes come with 0.1 or 0.2
dB of the optimum code.
It is suggested that using unequal puncturing improves
the performance. Caire shows that the performance is
not achieved by considering puncturing alone but the
interleaver should be designed jointly. Caire suggested to
define the puncturing pattern on the interleaver map.
Moreover, adaptive puncturing can be used depending
on the channel noise.

i.
ii.
iii.
iv.

b) Block Turbo Codes:The idea of product block or block Turbo coding is to


use the well-known product codes with block codes as
components for two-dimensional coding (or three
dimensions).
The two-dimensional code is depicted in Figure 1-3. The
kr information bits in the rows are encoded into nr bits
by using a binary block code Cr (nr, kr). The redundancy
of the code is rr = nr kr and dr the minimum distance.
After encoding the rows, the columns are encoded using
another block code Cc (nc, kc), where the check bits of
the first code are also encoded.
The two-dimensional code has the following
characteristics:
Overall block size n = nr nc;
number of information bits kr kc;
code rate R = Rr Rc, where Ri = ki/ni, i = c, r; and
Minimum distance dmin = dr dc.

Figure 1-3:- Two-dimensional product code matrix

IV.

Performance of Turbo Codes:-

Berrous impressive BER of 10-5 at Eb/No of 0.7 dB


does not tell the whole story. To achieve this required 18
iterations and a block length of 65532 data bits. If this
channel supported a speech coder at 4.8 Kbit/s it would
take 15 seconds to receive a block. This latency would
be impractical for telephony, but would be more than
adequate for receiving images from a deep space probe.
Most of the assessments of turbo code performance have
resulted from simulation. In the ideal environment of a
simulation, free of the constraints of real systems, it is
possible to produce highly impressive results.
To apply turbo codes to real systems requires acceptance
of real world constraints such as latency and computing
power.
Wang has explored the performance of codes with
parameters set to values that are more practical. He
determined that the performance of turbo codes was
influenced by four main factors: the number of
iterations, constraint length, interleaver design and
puncturing.

V.

Turbo Code Research & Development:-

It is obvious that turbo codes have the potential to make


a significant contribution to communications systems,
particularly those that operate with a low Eb/No. The
last 10 years have seen turbo codes move from theory,
through simulation, to the emergence of the first
products. The key enabling technology has been the
emergence of electronic devices capable of
implementing the required number of operations per
second.
The universities who take an active role in research and
publications in this field include Virginia, South
Australia, Notre Dame, Surrey, Southampton, Kiel, the
Technical University of Denmark, Caltech and Cornell.
JPL are also actively involved in research into turbo
codes, and some of their staff are prolific authors.

Research:A search of the IEEE and IEE websites reveals a rich


vein of papers, reflecting the intensity of research into
turbo codes. Initial research was focused on establishing
the fundamental properties of turbo codes and their
performance envelope. Typical areas of research
included:
i.
applying turbo codes to different modulation
schemes
ii.
establishing the factors that affect code performance
iii.
exploring the effects of interleaver design
iv.
types of decoders
Development:Manufacturers are looking seriously at the advantages of
turbo codes over the well-established Viterbi and ReedSolomon (RS) codes. The initial emphasis has been on
producing chipsets to allow manufacturers to implement
turbo codes in their hardware. High-speed electronics
has aided the development of chips with sufficient
processing power to implement turbo decoders, currently
at data rates of a few tens of Mbit/s. AHA and Comatlas
have produced turbo code chipsets at 36 and 40 Mbit/s
respectively, while Small World Comms have an FPGA
for turbo decoding up to 90
Mbit/s.
These enabling technologies have helped to bring the
first generation of turbo code based equipment to the
marketplace. Comtech have launched a satellite modem
that uses a rate R = 3/4 turbo code claiming significant
bandwidth and BER improvements over modems using
Viterbi and RS codes. Other major satellite modem
manufacturers such as Comsat Labs are introducing
turbo codes into their product. Alantro are developing
turbo code firmware for such diverse roles as satellite
links and hard disk drives.

The mobile phone industry is looking at turbo codes to


provide error correction for third generation handsets.
There have been many recent papers on the subject of
implementing turbo codes in CDMA systems for UMTS.
Turbo codes can operate at reduced power levels
offering improved safety and extended battery life, both
of which are important to the mobile phone user.

VI.

Conclusions:-

Turbo codes are a class of convolution code which


exhibit the properties of large block codes through the
use of recursive coders. Coder performance is heavily
dependent on the design of the interleaver, which must
ensure adequate weight for at least one of the codes. Soft
decoders are used with turbo codes to allow the a
posteriori probability to be passed between decoder
iterations.
Research is now beginning to be directed towards
applying turbo codes to resolve real communications
problems. There are many potential applications for
turbo codes, particularly in the field of radio
communications. With suitable chipsets becoming
available the first products are beginning to be marketed.
The superior performance offered by turbo codes ensures
that they have a good future in information systems.
Several useful introductory texts have been identified in
researching this paper and are recommended to
newcomers to the subject

VII.

Reference:-

[1] Battail, Grard, "A conceptual framework for


understanding turbo codes," IEEE Journal on Selected
Areas in Communications, vol. 16, No. 2, February
1998, pp. 245-254.
[2] Benedetto, Sergio and Montorsi., Guido Unveiling
turbo-codes: some results on parallel concatenated
coding schemes, IEEE Transactions on Information
Theory, vol. 42, No. 2, March 1996, pp. 409-428.
[3] Benedetto, Sergio and Montorsi., Guido Design of
parallel concatenated convolutional codes, IEEE
Transactions on Communications, vol. 44, No. 5, May
1996, pp. 591-600.
[4] Berrou, C., Glavieux, A. and Thitimajhima, P., Near
Shannon limit error correcting coding and decoding :
turbo-codes, Proc. Of ICC 93, Geneva, May 1993, pp.
1064-1070.
[5] Berrou, C. and Glavieux, A.: "Near optimum error
correcting coding and decoding: Turbo-Codes", IEEE
Transactions on Communications, 1996, vol. 44, pp
1261-1271.
[6] Blackert, W. J., Hall, E. K., and Wilson, S. G.,
"Turbo
code termination and interleaver conditions,"
Electronic Letters, vol.31, No.24, November 1995, pp.
2082-2084.

You might also like