Book ... - IEEE Xplore

22 downloads 0 Views 43KB Size Report
This was followed by the jointly authored volume Error Control Coding: Fundamentals and. Applications (Shu Lin and Daniel J. Costello, Jr., Englewood Cliffs,.
1616

IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 51, NO. 4, APRIL 2005

Book Review_____________________________________________________________________________ Error Control Coding—Shu Lin and Daniel J. Costello, 2nd ed., ISBN 0-13-042672-5 (Upper Saddle River, NJ: Prentice-Hall, 2004, 1272 pp., $124.00) Reviewed by Ian F. Blake, Fellow, IEEE The origins of this volume can be traced back some 35 years to the appearance of the single-authored volume An Introduction to Error-Correcting Codes (Shu Lin, Englewood Cliffs, NJ: Prentice-Hall, 1970, 330 pp., $12.95), reviewed by James L. Massey in the TRANSACTIONS (November 1971). This was followed by the jointly authored volume Error Control Coding: Fundamentals and Applications (Shu Lin and Daniel J. Costello, Jr., Englewood Cliffs, NJ: Prentice-Hall, 1983, 720 pp., $39.95), reviewed by P. Vijay Kumar (IEEE Communications Magazine, September, 1983). Both books were warmly reviewed, with reviewers noting the strengths of the books, particularly as they relate to their usefulness to the designer/practitioner as well as to graduate students. This new edition is true to the path set by its predecessors, yet goes much further, providing an encyclopedic treatment of the evolution of coding over the past several decades. It focuses in a consistent manner on those aspects of the subject that pertain to real applications and especially on the construction and application of modern error control techniques, including virtually all of the topics of current interest to practice. A superficial look through the book will quickly convince the reader of several of its characteristics. As with its predecessors, it deals mainly with binary codes and finite fields with characteristic two. This detracts little from the treatment since most of the practical aspects of the subject fall into this category. Even when talking about nonbinary codes, it invariably keeps with fields of characteristic two. The book consistently gives detailed encoding and decoding circuits, a feature that will be valued by the practitioner. Although it is likely that actual implementations will depend very much on the technology used, such circuits will still serve as a valuable guide to the designer. It also gives a very large number of detailed examples that examine and extend, in many cases, the theoretical treatment. The examples are in many instances interrupted as more of the theoretical groundwork is laid, and continued as the theory is developed. This pedagogical approach will undoubtedly be valued by readers. This volume, in addition to updating and considerably expanding the chapters of the previous edition, has added seven new chapters. The added chapters cover such topics as trellis and block coding techniques, three chapters on soft decoding methods for block codes and substantial chapters on turbo and low-density parity-check (LDPC) coding. These chapters are clearly the most up-to-date and comprehensive textbook treatments of these subjects that I am aware of (although new books on LDPC codes are forthcoming). A detailed discussion of the 22 chapters and over 1200 pages is not feasible and a more selective description is called for. The first seven chapters are very much as in the previous edition, suitably updated and expanded. Chapter 2 on algebra is true to the stated aims of the book in treating finite fields of characteristic 2 almost exclusively. There is emphasis on decoding in these initial chapters, going Manuscript received January 6, 2005. The reviewer is with the Department of Electrical and Computer Engineering, University of Toronto, Toronto ON M5S 3A4, Canada (e-mail: [email protected]). Communicated by S. Verdú, Associate Editor for Book Reviews. Digital Object Identifier 10.1109/TIT.2005.844056

into some depth in Chapter 5 on cyclic code decoding by error trapping and the Kasami decoder, the Berlekamp decoder for the binary BCH case and the Berlekamp, Euclidean, and frequency-domain decoders for the nonbinary case in Chapter 7. This Chapter 7 on nonbinary BCH and RS codes is somewhat abbreviated and the discussion on the Euclidean decoding algorithm is limited. It nonetheless achieves its aims. The treatment on finite geometries, both Euclidean and projective, in order to construct multiple step majority logic decodable codes, is quite unique and impressive. The use of maximum-length codes and difference sets to construct these majority logic decoding is also discussed. The finite geometries play a further role in this volume in their use to construct effective LDPC codes later in Chapter 17. Chapter 9 on trellises for linear block codes gives a more detailed description of this topic than I have seen elsewhere. It is not only of interest in its own right, but sets the stage for their use on soft-decision decoding of linear block codes for Chapter 14. All of the important aspects of the subject are fully developed here. Chapter 10, written by Marc Fossorier, gives a detailed treatment of reliability-based methods for soft-decision decoding algorithms, including such topics as the generalized minimum distance and Chase decoding algorithms and gives an excellent introduction to iterative decoding techniques. However, the Koetter–Vardy soft-decision decoding algorithm for RS codes is not covered. The next three chapters, 11 through 13, give the fundamentals of convolutional codes and again are replete with examples and circuit diagrams for implementation. Chapter 12 includes, in addition to the standard treatment of the Viterbi algorithm and its performance, a very nice description of the soft-output Viterbi algorithm (SOVA) and the BCJR algorithm which is the MAP decoder for both block or convolutional codes. It also discusses punctured and tail-biting convolutional codes. Chapter 13 considers suboptimum techniques for decoding convolutional codes, including the Fano and ZJ (Zigangirov/Jelinek) sequential decoding techniques. Chapter 14 returns to a detailed discussion of using the trellis structure of block codes for their soft-decision decoding. The next three chapters go into the notions of concatenated codes, the decomposition of codes, and iterative multistage decoding, leading to a nice treatment of turbo decoding and LDPC decoding. This last chapter (about 100 pages) covers the basics of the subject, such as the original work of Gallager, the sum–product algorithm, and the like and has quite a heavy emphasis on the algebraic, combinatorial, and random irregular constructions and their performance, achieved through simulation. A concern of the work is the error floor of the codes and such performance issues are very difficult to resolve theoretically. Extensive probability of error curves, obtained by simulation, are given. A discussion of tools such as EXIT charts and stopping sets for LDPC codes, for example, is not given (although they are mentioned in Chapter 16 on turbo codes). The next four chapters give an up-to-date treatment of, respectively, trellis-coded modulation (TCM), block-coded modulation, and burst error correcting block and convolutional codes. The final chapter of the book considers ARQ systems. All of these final five chapters are eminently readable, informative, and cover the major recent developments of the subjects. The volume concludes with three appendices on tables of Galois fields (characteristic two-representation of field elements as binary n-tuples for the power of a primitive element for the given primitive polynomial, of degree n up to 10), minimal polynomials for all field

0018-9448/$20.00 © 2005 IEEE

IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 51, NO. 4, APRIL 2005

1617

elements for fields up to GF (210 ), and generator polynomials for binary primitive BCH codes of length up to 1023. As a matter of personal preference, a table of (i; j ) pairs, where 1 + i = j , is a more economical representation with similar efficiency for hand computation. The problems at the end of the chapters go well beyond the trivial and add significantly to the work when using the book for a graduate course. This is especially true of the earlier chapters but seems to be generally true of the problems I scanned in the later chapters also. A solutions manual will be available shortly. The book has remarkable breadth and depth and an almost overwhelming amount of detail. Yet it remains very focused an those aspects of the subject that relate to practice, resisting any temptation to wander into areas that are perhaps of mainly academic interest. Thus, virtually all of the chapters stress performance curves and their use in gaining insight into complex system behavior. Topics such as asymptotically good codes, bounds on codes (beyond those actually needed for other purposes or that arise incidentally in the development of other topics), algebraic-geometry codes, quadratic residue codes, the Sudan algorithm, and as already noted, the Koetter-Vardy soft-decision decoding of RS codes, are not present. Likewise, a discussion on the recent developments on coding for the erasure channel, which would have been an interesting contribution to go with the chapter on LDPC codes, is not included. On the other hand, it goes into great depth in finite geometries, both Euclidean and projective, and uses this material exten-

sively both for the construction of majority logic decodable codes and for LDPC codes. The book will certainly be popular as a graduate text for a course on coding. A basic course on coding theory that covers the first seven chapters plus a selection of material from later chapters, would work well. My experience in using the book indicates a certain agility in determining which examples and circuits to discuss in detail is required, in the interests of time. As mentioned, the book will certainly find great use as a reference for practitioners for its in-depth treatment of many of the practical details that need to be addressed in implementing these systems—not only for coding but also for such subjects as TCM, ARQ, soft-decision decoding, and the many other areas that are covered where coding has made inroads and finds significant application. The wealth of information, including in most cases, extensive use of performance graphs and discussion of design criteria, will be invaluable. The authors have managed to digest the most recent results in so many areas into a unified and coherent treatment and provided such insight into the design and performance aspects of the subject, that a practitioner faced with implementing a coding standard or other system will be very well served by studying this volume. By any measure this is a remarkable volume which goes far beyond its predecessors. Its drawing together into one volume a coherent account of so many diverse yet related topics, at the depth that it does, from their historical roots to current research, is an astonishing and impressive achievement.