11.4 Error-correction code types 225
of the corresponding strategy. The main task of the convolutional decoder is to compute
an integer number I for each received bit. This number, called a soft bit, which is output
in the interval [−127, 127], measures the likelihood for the received bit to bea0ora1.
The likelihood is measured as follows: I =−127 means certainly 0, I =−100 means
very probably 0, I = 0 means equally likely to be either 0 or 1, I =+100 means very
likelytobe1,andI =+127 means certainly likely to be 1. In the implementation, two
parallel convolutional decoders are used to generate such likelihood measures for each of
the m/2 bit parity sub-blocks and for the k-bit payload sub-block. Using their likelihood
data, the two decoders can then construct two hypotheses for the k-bit payload pattern.
These bit-pattern hypotheses are then compared. If they do match exactly, the bit pattern
is output as representing the final decision. In the opposite case, the decoders exchange
their likelihood measures. Each decoder includes the likelihood measure from the other
decoder, which makes it possible for each of them to generate, once again, a new payload
hypothesis. If the hypothesis comparison is not successful, the process is continued; it
may take typically up to 15 to 18 iterations to converge! For turbo code designers, the
matter and mission is to optimize the convolutional codes for efficient error correction,
with maximal code rates (or minimal redundancy) and coding gains. In wireless-cellular
applications, for instance, the two convolutional encoders are typically recursive, with
a constraint length m = 4 and a code rate 1/3, yielding overheads better than 20%.
To quote some representative figures, the coding gain of turbo codes at BER = 10
−6
and after 10 iterations may be over 2 dB better than that of concatenated codes, 4.5 dB
better than that of convolutional codes, and represent a 10 dB SNR improvement with
respect to the uncoded BER case.
9
As two illustrative examples, suffice it to mention
here the significant applications of turbo codes in the fields of aerospace and satellite
communications
10
and 3G/cellular telephony (UMTS, cdma2000).
11
This completes our “high-level” overview of the various ECC types and families.
Since ECCs can only correct error patterns with up to w ={(d
min
− 1)/2} bit errors,
it is clear that, in the general case, the bit-error rate (BER) is never identical to zero.
Bit errors are generated when the receiver makes the “wrong decision,” namely out-
puts a 1 when the payload bit under consideration was a 0, and the reverse. Here, I
shall not describe the different types of receiver architectures and decision techniques.
Both are intimately dependent upon the type of signal modulation formats, the method
of encoding bits into actual physical signal waveforms, whether electrical, radio, or
optical. The ECC algorithms pervade all communication and information systems, and
at practically all protocol layers: in point-to-point radio links (ground, aeronautical,
satellite, and deep-space), in optical links (from fiber-to-the-home to metropolitan or
core networks and undersea cable systems), in mobile cellular networks (GSM, GPRS,
CDMA, UMTS/3G), in broadband wireless or wireline access (ADSL, 802.11/WiFi),
in metropolitan, regional, and global voice or data transport (Ethernet, ATM, TCP/IP, or
9
www.aero.org/publications/crosslink/winter2002/04.html.
10
www.aero.org/publications/crosslink/winter2002/04.html.
11
See, for instance: http://users.tkk.fi/∼pat/coding/essays/turbo.pdf; http://www.csee.wvu.edu/∼mvalenti/
documents/valenti01.pdf.