IEEE Press / John Wiley, 2004. — 393 pp.
In 1997 I completed my book Trellis Coding, which contained a single chapter on turbo coding. Since then, turbo coding and its associated iterative decoding method, the turbo principle, has swept through the communications society like a wildfire and established itself as the error coding method of choice. Its ease of implementation and its phenomenal performance, which in many cases pushes right up to Shannon’s theoretical limits, lets one speculate that turbo coding is the right way to encode and decode digital data. Any potentially new method would have to measure itself against turbo coding and thus have virtually no chance of providing further gains. In recent years the implementation of turbo codes has also made great strides, and practically any decoding speeds can now be achieved by suitable parallelization of the decoding algorithms, leaving data storage and memory access as the limiting functions. Storage, however, is always necessary according to the requirements of Shannon’s theory to process large blocks of data in order to approach a channel’s capacity limit.
The turbo principle has found application even outside the narrow field of error control coding, in multiple access channel communications, in signalling over channels with intersymbol or interchannel interference, and, more recently, in source coding. In all these applications the principle has established itself quickly as a very powerful processing method, leading to the design of receivers which are far superior to conventional methods.
Since the publication of Trellis Coding, it has become evident that turbo coding had to be given central treatment, and Lance Pérez and I have embarked on writing up the material on turbo coding to fit together with the already existing material on trellis coding. Some of the less central parts of the old book have been discarded, the remainder has been updated and prepared to match the new chapters on turbo coding. Trellis and Turbo Coding is the result and reflects the fact that these two methods closely operate together. Most turbo codes use small trellis codes as their constituent building blocks. What we have learned from the last decade of intensive research is that we only want to use trellis codes with small state-space complexities, and if stronger codes are needed, to wire up trellis codes into concatenated turbo systems.
The first part of the book follows largely the original material in Trellis Coding, enhanced with many updates. It not only covers independent trellis coding methods, such as trellis coded modulation and its use in voiceband modems, but also lays the foundation for the component decoding methodology for turbo coded systems. The second part is completely new and deals with all major forms of turbo coding, viz. parallel and serial concatenated systems, low-density parity check coding, and iterative decoding of product codes. These methods and the material on trellis coding comprise the majority of channel coding strategies in use today, and likely for a long time to come.
Since turbo coding has achieved theoretical limits with manageable effort, any possible future advances are necessarily very limited, and we will undoubtedly see a migration of research and development from designing codes to building codecs. In that sense we believe that the topic of error control coding has reached a level of maturity and completion which will elevate it from a research domain to a classic theory. We hope that this book covers this theory in a comprehensive and accessible manner, and that the reader will experience the same awe and fascination that we felt researching the material for it.
Communication Theory Basics
Trellis-Coded Modulation
Convolutional Codes
Link to Block Codes
Performance Bounds
Decoding Strategies
Factor Graphs
Low-Density Parity-Check Codes
Parallel Concatenation (Turbo Codes)
Serial Concatenation
Turbo-Coded Modulation