| Preface | p. xi |
| Notation | p. xv |
| Commonly used abbreviations | p. xix |
| Channels, codes and capacity | p. 1 |
| Binary input memoryless channels | p. 2 |
| Entropy, mutual information and capacity | p. 8 |
| A measure of information | p. 8 |
| Entropy | p. 10 |
| Capacity | p. 13 |
| Codes and decoding | p. 16 |
| Decoding | p. 18 |
| Performance measures | p. 24 |
| Bibliographic notes | p. 29 |
| Exercises | p. 30 |
| Low-density parity-check codes | p. 34 |
| Introduction | p. 34 |
| Error correction using parity checks | p. 34 |
| Low-density parity-check codes | p. 37 |
| Encoding | p. 40 |
| (Almost) linear-time encoding for LDPC codes | p. 44 |
| Repeat-accumulate codes | p. 48 |
| Decoding | p. 48 |
| Message passing on the binary erasure channel | p. 50 |
| Bit-flipping decoding | p. 54 |
| Sum-product decoding | p. 61 |
| Bibliographic notes | p. 71 |
| Exercises | p. 72 |
| Low-density parity-check codes: properties and constructions | p. 75 |
| Introduction | p. 75 |
| LDPC properties | p. 75 |
| Choosing the degree distribution | p. 76 |
| Girth and expansion | p. 82 |
| Codeword and pseudo-codeword weights | p. 84 |
| Cyclic and quasi-cyclic codes | p. 89 |
| Implementation and complexity | p. 95 |
| LDPC constructions | p. 97 |
| Pseudo-random constructions | p. 97 |
| Structured LDPC codes | p. 105 |
| LDPC design rules | p. 114 |
| Bibliographic notes | p. 117 |
| Exercises | p. 118 |
| Convolutional codes | p. 121 |
| Introduction | p. 121 |
| Convolutional encoders | p. 121 |
| Memory order and impulse response | p. 125 |
| Recursive convolutional encoders | p. 127 |
| Puncturing | p. 131 |
| Convolutional code trellises | p. 132 |
| Minimum free distance | p. 135 |
| Decoding convolutional codes | p. 136 |
| Maximum a posteriori (BCJR) decoding | p. 136 |
| Log MAP decoding | p. 148 |
| Maximum likelihood (Viterbi) decoding | p. 156 |
| Bibliographic notes | p. 160 |
| Exercises | p. 161 |
| Turbo codes | p. 165 |
| Introduction | p. 165 |
| Turbo encoders | p. 165 |
| Iterative turbo decoding | p. 169 |
| Turbo code design | p. 176 |
| Interleaving gain | p. 176 |
| Choosing the component codes | p. 178 |
| Interleaver design | p. 182 |
| Design rules | p. 188 |
| Factor graphs and implementation | p. 190 |
| Implementation and complexity | p. 191 |
| Stopping criteria | p. 194 |
| Bibliographic notes | p. 196 |
| Exercises | p. 198 |
| Serial concatenation and RA codes | p. 201 |
| Serial concatenation | p. 201 |
| Serially concatenated turbo codes | p. 203 |
| Turbo decoding of SC codes | p. 203 |
| Code design | p. 207 |
| Repeat-accumulate codes | p. 209 |
| Encoding RA codes | p. 211 |
| Turbo decoding of RA codes | p. 212 |
| Sum-product decoding of RA codes | p. 217 |
| Irregular RA codes | p. 220 |
| Weight-3 IRA codes | p. 224 |
| Accumulate-repeat-accumulate codes | p. 226 |
| Code design | p. 227 |
| Bibliographic notes | p. 232 |
| Exercises | p. 234 |
| Density evolution and EXIT charts | p. 237 |
| Introduction | p. 237 |
| Density evolution | p. 238 |
| Density evolution on the BEC | p. 239 |
| Ensemble thresholds | p. 243 |
| Density evolution and repeat-accumulate codes | p. 247 |
| Density evolution on general binary input memoryless channels | p. 249 |
| Density evolution and turbo codes | p. 254 |
| Designing ensembles with good thresholds | p. 256 |
| Approximations to density evolution | p. 260 |
| EXIT charts | p. 261 |
| Mutual information | p. 262 |
| EXIT charts for turbo codes | p. 264 |
| EXIT charts for RA codes | p. 273 |
| EXIT charts for LDPC codes | p. 276 |
| Code design and analysis using EXIT charts | p. 279 |
| Bibliographic notes | p. 279 |
| Exercises | p. 281 |
| Error floor analysis | p. 283 |
| Introduction | p. 283 |
| Maximum likelihood analysis | p. 283 |
| Input-output weight enumerating functions for convolutional codes | p. 285 |
| Parallel concatenated code ensembles | p. 290 |
| Serially concatenated code ensembles | p. 296 |
| The error floor of irregular block codes | p. 301 |
| Designing iterative codes to improve the interleaving gain and error floor | p. 305 |
| Asymptotic (in the code length) performance of iterative ensembles | p. 306 |
| Finite-length analysis | p. 309 |
| Bibliographic notes | p. 318 |
| Exercises | p. 320 |
| References | p. 322 |
| Index | p. 331 |
| Table of Contents provided by Ingram. All Rights Reserved. |