| Preface | p. xi |
| Introduction | p. 1 |
| The discrete communication channel | p. 2 |
| The history of data-transmission codes | p. 4 |
| Applications | p. 6 |
| Elementary concepts | p. 7 |
| Elementary codes | p. 14 |
| Problems | p. 17 |
| Introduction to Algebra | p. 20 |
| Fields of characteristic two | p. 20 |
| Groups | p. 23 |
| Rings | p. 28 |
| Fields | p. 30 |
| Vector spaces | p. 32 |
| Linear algebra | p. 37 |
| Problems | p. 45 |
| Notes | p. 48 |
| Linear Block Codes | p. 49 |
| Structure of linear block codes | p. 49 |
| Matrix description of linear block codes | p. 50 |
| Hamming codes | p. 54 |
| The standard array | p. 56 |
| Hamming spheres and perfect codes | p. 59 |
| Simple modifications to a linear code | p. 62 |
| Problems | p. 63 |
| Notes | p. 66 |
| The Arithmetic of Galois Fields | p. 67 |
| The integer ring | p. 67 |
| Finite fields based on the integer ring | p. 70 |
| Polynomial rings | p. 72 |
| Finite fields based on polynomial rings | p. 79 |
| Primitive elements | p. 83 |
| The structure of finite fields | p. 86 |
| Problems | p. 92 |
| Notes | p. 95 |
| Cyclic Codes | p. 96 |
| Viewing a code from an extension field | p. 96 |
| Polynomial description of cyclic codes | p. 99 |
| Minimal polynomials and conjugates | p. 104 |
| Matrix description of cyclic codes | p. 111 |
| Hamming codes as cyclic codes | p. 113 |
| Cyclic codes for correcting double errors | p. 116 |
| Quasi-cyclic codes and shortened cyclic codes | p. 118 |
| The Golay code as a cyclic code | p. 119 |
| Cyclic codes for correcting burst errors | p. 123 |
| The Fire codes as cyclic codes | p. 125 |
| Cyclic codes for error detection | p. 127 |
| Problems | p. 128 |
| Notes | p. 130 |
| Codes Based on the Fourier Transform | p. 131 |
| The Fourier transform | p. 131 |
| Reed-Solomon codes | p. 138 |
| Conjugacy constraints and idempotents | p. 143 |
| Spectral description of cyclic codes | p. 148 |
| BCH codes | p. 152 |
| The Peterson-Gorenstein-Zierler decoder | p. 159 |
| The Reed-Muller codes as cyclic codes | p. 166 |
| Extended Reed-Solomon codes | p. 169 |
| Extended BCH codes | p. 172 |
| Problems | p. 175 |
| Notes | p. 177 |
| Algorithms Based on the Fourier Transform | p. 179 |
| Spectral estimation in a finite field | p. 179 |
| Synthesis of linear recursions | p. 183 |
| Decoding of binary BCH codes | p. 191 |
| Decoding of nonbinary BCH codes | p. 193 |
| Decoding with erasures and errors | p. 201 |
| Decoding in the time domain | p. 206 |
| Decoding within the BCH bound | p. 210 |
| Decoding beyond the BCH bound | p. 213 |
| Decoding of extended Reed-Solomon codes | p. 216 |
| Decoding with the euclidean algorithm | p. 217 |
| Problems | p. 223 |
| Notes | p. 226 |
| Implementation | p. 228 |
| Logic circuits for finite-field arithmetic | p. 228 |
| Shift-register encoders and decoders | p. 235 |
| The Meggitt decoder | p. 237 |
| Error trapping | p. 244 |
| Modified error trapping | p. 250 |
| Architecture of Reed-Solomon decoders | p. 254 |
| Multipliers and inverters | p. 258 |
| Bit-serial multipliers | p. 262 |
| Problems | p. 267 |
| Notes | p. 269 |
| Convolutional Codes | p. 270 |
| Codes without a block structure | p. 270 |
| Trellis description of convolutional codes | p. 273 |
| Polynomial description of convolutional codes | p. 278 |
| Check matrices and inverse matrices | p. 282 |
| Error correction and distance notions | p. 287 |
| Matrix description of convolutional codes | p. 289 |
| The Wyner-Ash codes as convolutional codes | p. 291 |
| Syndrome decoding algorithms | p. 294 |
| Convolutional codes for correcting error bursts | p. 298 |
| Algebraic structure of convolutional codes | p. 303 |
| Problems | p. 309 |
| Notes | p. 311 |
| Beyond BCH Codes | p. 313 |
| Product codes and interleaved codes | p. 314 |
| Bicyclic codes | p. 318 |
| Concatenated codes | p. 321 |
| Cross-interleaved codes | p. 323 |
| Turbo codes | p. 326 |
| Justesen codes | p. 329 |
| Problems | p. 332 |
| Notes | p. 334 |
| Codes and Algorithms Based on Graphs | p. 335 |
| Distance, probability, and likelihood | p. 336 |
| The Viterbi algorithm | p. 340 |
| Sequential algorithms to search a trellis | p. 343 |
| Trellis description of linear block codes | p. 350 |
| Gallager codes | p. 354 |
| Tanner graphs and factor graphs | p. 355 |
| Posterior probabilities | p. 357 |
| The two-way algorithm | p. 359 |
| Iterative decoding of turbo codes | p. 362 |
| Tail-biting representations of block codes | p. 364 |
| The Golay code as a tail-biting code | p. 368 |
| Problems | p. 372 |
| Notes | p. 374 |
| Performance of Error-Control Codes | p. 375 |
| Weight distributions of block codes | p. 375 |
| Performance of block codes | p. 383 |
| Bounds on minimum distance of block codes | p. 386 |
| Binary expansions of Reed-Solomon codes | p. 394 |
| Symbol error rates on a gaussian-noise channel | p. 399 |
| Sequence error rates on a gaussian-noise channel | p. 403 |
| Coding gain | p. 406 |
| Capacity of a gaussian-noise channel | p. 411 |
| Problems | p. 414 |
| Notes | p. 416 |
| Codes and Algorithms for Majority Decoding | p. 418 |
| Reed-Muller codes | p. 418 |
| Decoding by majority vote | p. 426 |
| Circuits for majority decoding | p. 430 |
| Affine permutations for cyclic codes | p. 433 |
| Cyclic codes based on permutations | p. 437 |
| Convolutional codes for majority decoding | p. 441 |
| Generalized Reed-Muller codes | p. 442 |
| Euclidean-geometry codes | p. 447 |
| Projective-geometry codes | p. 456 |
| Problems | p. 460 |
| Notes | p. 461 |
| Bibliography | p. 463 |
| Index | p. 473 |
| Table of Contents provided by Rittenhouse. All Rights Reserved. |