Skip to main content

The Art of Error Correcting Coding, 2nd Edition

The Art of Error Correcting Coding, 2nd Edition

Robert H. Morelos-Zaragoza

ISBN: 978-0-470-03570-2 October 2006 278 Pages

Description

Building on the success of the first edition, which offered a practical introductory approach to the techniques of error concealment, this book, now fully revised and updated, provides a comprehensive treatment of the subject and includes a wealth of additional features. The Art of Error Correcting Coding, Second Edition explores intermediate and advanced level concepts as well as those which will appeal to the novice.

All key topics are discussed, including Reed-Solomon codes, Viterbi decoding, soft-output decoding algorithms, MAP, log-MAP and MAX-log-MAP.  Reliability-based algorithms GMD and Chase are examined, as are turbo codes, both serially and parallel concatenated, as well as low-density parity-check (LDPC) codes and their iterative decoders.

  • Features additional problems at the end of each chapter and an instructor’s solutions manual
  • Updated companion website offers new C/C ++programs and MATLAB scripts, to help with the understanding and implementation of basic ECC techniques
  • Easy to follow examples illustrate the fundamental concepts of error correcting codes
  • Basic analysis tools are provided throughout to help in the assessment of the error performance block and convolutional codes of a particular error correcting coding (ECC) scheme for a selection of the basic channel models

This edition provides an essential resource to engineers, computer scientists and graduate students alike for understanding and applying ECC techniques in the transmission and storage of digital information.

Preface.

Foreword.

The ECC web site.

1. Introduction.

1.1 Error correcting coding: Basic concepts.

1.1.1 Block codes and convolutional codes.

1.1.2 Hamming distance, Hamming spheres and error correcting capability.

1.2 Linear block codes.

1.2.1 Generator and parity-check matrices.

1.2.2 The weight is the distance.

1.3 Encoding and decoding of linear block codes.

1.3.1 Encoding with G and H.

1.3.2 Standard array decoding.

1.3.3 Hamming spheres, decoding regions and the standard array.

1.4 Weight distribution and error performance.

1.4.1 Weight distribution and undetected error probability over a BSC.

1.4.2 Performance bounds over BSC, AWGN and fading channels.

1.5 General structure of a hard-decision decoder of linear codes.

Problems.

2. Hamming, Golay and Reed–Muller codes.

2.1 Hamming codes.

2.1.1 Encoding and decoding procedures.

2.2 The binary Golay code.

2.2.1 Encoding.

2.2.2 Decoding.

2.2.3 Arithmetic decoding of the extended (24, 12, 8) Golay code.

2.3 Binary Reed–Muller codes.

2.3.1 Boolean polynomials and RM codes.

2.3.2 Finite geometries and majority-logic decoding.

Problems.

3. Binary cyclic codes and BCH codes.

3.1 Binary cyclic codes.

3.1.1 Generator and parity-check polynomials.

3.1.2 The generator polynomial.

3.1.3 Encoding and decoding of binary cyclic codes.

3.1.4 The parity-check polynomial.

3.1.5 Shortened cyclic codes and CRC codes.

3.1.6 Fire codes.

3.2 General decoding of cyclic codes.

3.2.1 GF(2m) arithmetic.

3.3 Binary BCH codes.

3.3.1 BCH bound.

3.4 Polynomial codes.

3.5 Decoding of binary BCH codes.

3.5.1 General decoding algorithm for BCH codes.

3.5.2 The Berlekamp–Massey algorithm (BMA).

3.5.3 PGZ decoder.

3.5.4 Euclidean algorithm.

3.5.5 Chien search and error correction.

3.5.6 Errors-and-erasures decoding.

3.6 Weight distribution and performance bounds.

3.6.1 Error performance evaluation.

Problems.

4. Nonbinary BCH codes: Reed–Solomon codes.

4.1 RS codes as polynomial codes.

4.2 From binary BCH to RS codes.

4.3 Decoding RS codes.

4.3.1 Remarks on decoding algorithms.

4.3.2 Errors-and-erasures decoding.

4.4 Weight distribution.

Problems.

5. Binary convolutional codes.

5.1 Basic structure.

5.1.1 Recursive systematic convolutional codes.

5.1.2 Free distance.

5.2 Connections with block codes.

5.2.1 Zero-tail construction.

5.2.2 Direct-truncation construction.

5.2.3 Tail-biting construction.

5.2.4 Weight distributions.

5.3 Weight enumeration.

5.4 Performance bounds.

5.5 Decoding: Viterbi algorithm with Hamming metrics.

5.5.1 Maximum-likelihood decoding and metrics.

5.5.2 The Viterbi algorithm.

5.5.3 Implementation issues.

5.6 Punctured convolutional codes.

5.6.1 Implementation issues related to punctured convolutional codes.

5.6.2 RCPC codes.

Problems.

6. Modifying and combining codes.

6.1 Modifying codes.

6.1.1 Shortening.

6.1.2 Extending.

6.1.3 Puncturing.

6.1.4 Augmenting, expurgating and lengthening.

6.2 Combining codes.

6.2.1 Time sharing of codes.

6.2.2 Direct sums of codes.

6.2.3 The |u|u + v|-construction and related techniques.

6.2.4 Products of codes.

6.2.5 Concatenated codes.

6.2.6 Generalized concatenated codes.

7. Soft-decision decoding.

7.1 Binary transmission over AWGN channels.

7.2 Viterbi algorithm with Euclidean metric.

7.3 Decoding binary linear block codes with a trellis.

7.4 The Chase algorithm.

7.5 Ordered statistics decoding.

7.6 Generalized minimum distance decoding.

7.6.1 Sufficient conditions for optimality.

7.7 List decoding.

7.8 Soft-output algorithms.

7.8.1 Soft-output Viterbi algorithm.

7.8.2 Maximum-a posteriori (MAP) algorithm.

7.8.3 Log-MAP algorithm.

7.8.4 Max-Log-MAP algorithm.

7.8.5 Soft-output OSD algorithm.

Problems.

8. Iteratively decodable codes.

8.1 Iterative decoding.

8.2 Product codes.

8.2.1 Parallel concatenation: Turbo codes.

8.2.2 Serial concatenation.

8.2.3 Block product codes.

8.3 Low-density parity-check codes.

8.3.1 Tanner graphs.

8.3.2 Iterative hard-decision decoding: The bit-flip algorithm.

8.3.3 Iterative probabilistic decoding: Belief propagation.

Problems.

9. Combining codes and digital modulation.

9.1 Motivation.

9.1.1 Examples of signal sets.

9.1.2 Coded modulation.

9.1.3 Distance considerations.

9.2 Trellis-coded modulation (TCM).

9.2.1 Set partitioning and trellis mapping.

9.2.2 Maximum-likelihood.

9.2.3 Distance considerations and error performance.

9.2.4 Pragmatic TCM and two-stage decoding.

9.3 Multilevel coded modulation.

9.3.1 Constructions and multistage decoding.

9.3.2 Unequal error protection with MCM.

9.4 Bit-interleaved coded modulation.

9.4.1 Gray mapping.

9.4.2 Metric generation: De-mapping.

9.4.3 Interleaving.

9.5 Turbo trellis-coded modulation.

9.5.1 Pragmatic turbo TCM.

9.5.2 Turbo TCM with symbol interleaving.

9.5.3 Turbo TCM with bit interleaving.

Problems.

Appendix A: Weight distributions of extended BCH codes.

A.1 Length 8.

A.2 Length 16.

A.3 Length 32.

A.4 Length 64.

A.5 Length 128.

Bibliography.

Index.