Preface |
|
xv | |
Contributors |
|
xvii | |
|
Chapter 1 Turbo Codes: From First Principles to Recent Standards |
|
|
1 | (52) |
|
|
2 | (1) |
|
|
2 | (6) |
|
2.1 The origins of turbo codes |
|
|
3 | (1) |
|
|
3 | (1) |
|
2.3 Negative feedback in the decoder and recursive systematic convolutional codes |
|
|
3 | (1) |
|
2.4 Extrinsic information and iterative decoding |
|
|
4 | (2) |
|
2.5 Parallel concatenation |
|
|
6 | (2) |
|
3 Fundamentals of turbo coding |
|
|
8 | (18) |
|
3.1 Recursive systematic convolutional (RSC) component codes |
|
|
8 | (5) |
|
3.2 Block coding with turbo codes |
|
|
13 | (5) |
|
|
18 | (8) |
|
4 Fundamentals of turbo decoding |
|
|
26 | (12) |
|
|
26 | (4) |
|
4.2 Soft-input soft-output decoding |
|
|
30 | (8) |
|
5 Industrial impacts of turbo codes |
|
|
38 | (9) |
|
5.1 The very first implementations of turbo codecs |
|
|
38 | (3) |
|
5.2 Early applications of turbo codes |
|
|
41 | (2) |
|
5.3 Turbo codes in standards |
|
|
43 | (4) |
|
|
47 | (6) |
|
|
47 | (6) |
|
Chapter 2 Turbo-Like Codes Constructions |
|
|
53 | (88) |
|
1 Introduction and bibliography survey |
|
|
55 | (4) |
|
|
55 | (4) |
|
2 Structure of concatenated codes |
|
|
59 | (14) |
|
2.1 Main characteristics of turbo encoding structures |
|
|
59 | (3) |
|
|
62 | (1) |
|
|
63 | (3) |
|
|
66 | (1) |
|
2.5 Rate conversion modules |
|
|
67 | (1) |
|
|
68 | (1) |
|
2.7 Summary of encoding modules |
|
|
68 | (1) |
|
2.8 Some turbo encoder structures and their main properties |
|
|
68 | (3) |
|
2.9 Convolutional versus block encoding |
|
|
71 | (2) |
|
3 ML analysis and design of constituent codes |
|
|
73 | (16) |
|
3.1 Maximum-likelihood analysis |
|
|
74 | (6) |
|
3.2 Design criteria for constituent encoders |
|
|
80 | (7) |
|
3.3 Comparison between parallel and serially concatenated codes |
|
|
87 | (1) |
|
3.4 Finding the optimum constituent encoders |
|
|
88 | (1) |
|
|
89 | (11) |
|
4.1 Messages in iterative decoders and independence assumption |
|
|
90 | (3) |
|
4.2 Soft-input soft-output modules |
|
|
93 | (1) |
|
4.3 The SISO for the data ordering encoding modules |
|
|
93 | (2) |
|
4.4 The SISO module for the trellis encoder |
|
|
95 | (2) |
|
4.5 The SISO module for the mapper |
|
|
97 | (2) |
|
4.6 Multiple code representations |
|
|
99 | (1) |
|
|
100 | (21) |
|
|
100 | (1) |
|
5.2 Interleaves: basic definitions |
|
|
100 | (6) |
|
5.3 Connections among interleaver parameters |
|
|
106 | (1) |
|
5.4 Convolutional and block interleavers |
|
|
107 | (5) |
|
5.5 Some practical interleavers |
|
|
112 | (9) |
|
|
121 | (20) |
|
|
121 | (1) |
|
6.2 Iterative decoding versus ML upper bounds |
|
|
122 | (1) |
|
6.3 Optimality of constituent encoders |
|
|
123 | (1) |
|
6.4 Performance versus number of iterations |
|
|
123 | (3) |
|
6.5 Comparison between PCCC and SCCC |
|
|
126 | (3) |
|
6.6 Other concatenated structures |
|
|
129 | (9) |
|
|
138 | (3) |
|
Chapter 3 Low-Density Parity-Check Code Constructions |
|
|
141 | (70) |
|
|
142 | (1) |
|
2 LDPC codes and ensembles |
|
|
143 | (13) |
|
|
144 | (1) |
|
2.2 Unstructured irregular ensemble |
|
|
145 | (1) |
|
2.3 Repeat-accumulate code ensemble |
|
|
146 | (2) |
|
2.4 Multi-edge type ensemble |
|
|
148 | (3) |
|
|
151 | (3) |
|
2.6 LDPC convolutional code ensemble |
|
|
154 | (2) |
|
3 Asymptotic analysis and optimization |
|
|
156 | (10) |
|
|
156 | (5) |
|
|
161 | (3) |
|
3.3 Optimization via differential evolution |
|
|
164 | (2) |
|
4 Finite-length construction |
|
|
166 | (23) |
|
|
167 | (18) |
|
|
185 | (4) |
|
5 LDPC codes in standards |
|
|
189 | (22) |
|
5.1 IEEE 802.16-2009 LDPC codes |
|
|
189 | (2) |
|
5.2 ITU-T G.9960 LDPC codes |
|
|
191 | (2) |
|
|
193 | (1) |
|
5.4 Other standards including LDPC codes |
|
|
194 | (1) |
|
5.5 Details of parity-check matrices |
|
|
195 | (8) |
|
|
203 | (1) |
|
|
203 | (8) |
|
|
211 | (50) |
|
|
212 | (6) |
|
1.1 A decoding-oriented approach to coding |
|
|
212 | (1) |
|
1.2 Decoding complexity, long codes, and Shannon limit |
|
|
213 | (1) |
|
1.3 Evolution of LDPC decoding from Gallager to our days |
|
|
214 | (4) |
|
1.4 Chapter's organization |
|
|
218 | (1) |
|
2 Notation and terminology |
|
|
218 | (3) |
|
|
221 | (18) |
|
3.1 Bit-flipping decoding |
|
|
221 | (1) |
|
3.2 Hard-decision MP decoders |
|
|
222 | (4) |
|
3.3 Belief-propagation decoding |
|
|
226 | (4) |
|
|
230 | (2) |
|
3.5 Min-sum-based decoding |
|
|
232 | (3) |
|
|
235 | (3) |
|
|
238 | (1) |
|
4 Non-binary LDPC decoders |
|
|
239 | (22) |
|
|
240 | (1) |
|
4.2 Belief-propagation decoding |
|
|
241 | (3) |
|
|
244 | (2) |
|
4.4 Extended-min-sum decoding |
|
|
246 | (1) |
|
|
247 | (2) |
|
|
249 | (2) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
252 | (9) |
|
Chapter 5 Code Design with EXIT Charts |
|
|
261 | (38) |
|
|
262 | (1) |
|
|
262 | (1) |
|
|
263 | (1) |
|
2 Parallel concatenated codes |
|
|
263 | (11) |
|
|
263 | (2) |
|
|
265 | (6) |
|
2.3 Code analysis and design |
|
|
271 | (3) |
|
3 Serially concatenated codes |
|
|
274 | (6) |
|
|
275 | (1) |
|
|
276 | (3) |
|
3.3 Code analysis and design |
|
|
279 | (1) |
|
|
280 | (11) |
|
4.1 Decoder and decoding models |
|
|
281 | (5) |
|
4.2 Analysis and design for the BEC |
|
|
286 | (3) |
|
4.3 Analysis and design for the AWGN channel |
|
|
289 | (2) |
|
5 Comments and generalizations |
|
|
291 | (3) |
|
5.1 Estimation of mutual information |
|
|
291 | (1) |
|
5.2 Theory of EXIT analysis |
|
|
292 | (1) |
|
5.3 EXIT analysis for other codes or coded systems |
|
|
293 | (1) |
|
|
294 | (5) |
|
|
294 | (5) |
|
Chapter 6 Failures and Error Floors of Iterative Decoders |
|
|
299 | (44) |
|
|
300 | (6) |
|
|
306 | (3) |
|
|
306 | (1) |
|
|
306 | (1) |
|
2.3 Message passing decoding algorithms |
|
|
307 | (1) |
|
2.4 Bit flipping algorithms |
|
|
308 | (1) |
|
3 Overview of decoding failures |
|
|
309 | (4) |
|
4 Combinatorial characterization of decoding failures |
|
|
313 | (2) |
|
4.1 Trapping sets on the BEC |
|
|
313 | (1) |
|
4.2 Trapping sets on the BSC |
|
|
313 | (2) |
|
4.3 Trapping sets on the AWGNC |
|
|
315 | (1) |
|
5 Case study: Column-weight-three codes with the Gallager A/B algorithm on the BSC |
|
|
315 | (6) |
|
5.1 Graphical representation |
|
|
315 | (1) |
|
|
316 | (1) |
|
5.3 Evolution of trapping sets |
|
|
317 | (1) |
|
|
318 | (3) |
|
|
321 | (10) |
|
6.1 Improving error floor performance by constructing better Tanner graphs |
|
|
321 | (6) |
|
6.2 Improving error floor performance by designing better decoders |
|
|
327 | (4) |
|
7 Connections to LP decoding |
|
|
331 | (3) |
|
7.1 Pseudo-codewords for LP decoders |
|
|
332 | (2) |
|
|
334 | (9) |
|
|
335 | (1) |
|
|
335 | (8) |
|
Chapter 7 Rate-Compatible LDPC and Turbo Codes for Link Adaptivity and Unequal Error Protection |
|
|
343 | (26) |
|
1 Unequal error protection Turbo codes |
|
|
344 | (11) |
|
1.1 Puncturing and pruning |
|
|
344 | (3) |
|
1.2 Hybrid Turbo codes and their convergence |
|
|
347 | (4) |
|
1.3 Interleaver structures |
|
|
351 | (4) |
|
2 Unequal error protection LDPC codes based on puncturing and pruning |
|
|
355 | (6) |
|
2.1 Density evolution for general RC-LDPC codes |
|
|
356 | (1) |
|
2.2 Design of good puncturing patterns for a given mother code |
|
|
357 | (1) |
|
2.3 Pruning for creating irregular UEP check-node profiles |
|
|
358 | (1) |
|
2.4 Structured RC-LDPC codes |
|
|
359 | (2) |
|
3 Unequal error protection LDPC codes based on degree distribution optimization ' |
|
|
361 | (8) |
|
3.1 Multi-edge-type UEP LDPC codes |
|
|
362 | (1) |
|
|
363 | (6) |
|
Chapter 8 Rateless Coding |
|
|
369 | (30) |
|
|
370 | (1) |
|
|
370 | (3) |
|
2.1 Fountain coding and decoding: definitions and principles |
|
|
370 | (1) |
|
2.2 The random binary fountain code |
|
|
371 | (2) |
|
3 Rateless sparse-graph codes for the binary erasure channel: LT and Raptor codes |
|
|
373 | (5) |
|
|
373 | (2) |
|
|
375 | (2) |
|
3.3 Decoding algorithms for the BEC |
|
|
377 | (1) |
|
3.4 Raptor codes in standards |
|
|
378 | (1) |
|
4 Extensions to noisy channels |
|
|
378 | (4) |
|
4.1 The additive white Gaussian noise channel |
|
|
378 | (2) |
|
|
380 | (1) |
|
|
381 | (1) |
|
4.4 Link to fixed rate counterparts |
|
|
381 | (1) |
|
5 Advanced sparse-graph based rateless coding schemes |
|
|
382 | (4) |
|
5.1 LT/Raptor codes extensions |
|
|
382 | (3) |
|
5.2 Other rateless coding schemes: beyond sparse-graph codes |
|
|
385 | (1) |
|
6 Applications of rateless coding |
|
|
386 | (13) |
|
6.1 Rateless coding versus IR-HARQ |
|
|
386 | (1) |
|
6.2 Multimedia communications and broadcasting |
|
|
387 | (1) |
|
6.3 Wireless networks and relays |
|
|
387 | (1) |
|
6.4 Distributed storage and data dissemination |
|
|
387 | (1) |
|
6.5 Source and source-channel coding |
|
|
387 | (1) |
|
|
387 | (12) |
|
Chapter 9 An Introduction to Distributed Channel Coding |
|
|
399 | (52) |
|
|
400 | (3) |
|
1.1 Distributed channel coding |
|
|
402 | (1) |
|
1.2 Outline of this chapter |
|
|
402 | (1) |
|
|
403 | (1) |
|
2 The three-node relay channel |
|
|
403 | (13) |
|
|
403 | (2) |
|
|
405 | (1) |
|
2.3 Fundamental coding strategies for decode-and-forward relaying |
|
|
406 | (10) |
|
3 Distributed coding for the three-node relay channel |
|
|
416 | (20) |
|
3.1 LDPC code designs for the relay channel |
|
|
416 | (17) |
|
3.2 Distributed turbo-codes and related code structures |
|
|
433 | (3) |
|
4 Relaying with uncertainty at the relay |
|
|
436 | (2) |
|
4.1 Compress-and-forward relaying |
|
|
437 | (1) |
|
4.2 Soft-information forwarding and estimate-and-forward |
|
|
438 | (1) |
|
5 Cooperation with multiple sources |
|
|
438 | (5) |
|
5.1 Two-user cooperative network: coded cooperation |
|
|
438 | (2) |
|
5.2 Multi-source cooperative relay network |
|
|
440 | (3) |
|
6 Summary and conclusions |
|
|
443 | (8) |
|
|
444 | (1) |
|
|
444 | (7) |
|
Chapter 10 Space-Time Block Codes |
|
|
451 | (46) |
|
1 Introduction and preliminaries |
|
|
452 | (5) |
|
2 STBCs with low ML decoding complexity |
|
|
457 | (6) |
|
2.1 Encoding complexity, decoding complexity and diversity gain |
|
|
458 | (5) |
|
3 Full-rate full-diversity STBCs |
|
|
463 | (5) |
|
3.1 STBCs from division algebras |
|
|
464 | (3) |
|
3.2 Embedding cyclic division algebras into matrices over the maximal cyclic subfield |
|
|
467 | (1) |
|
4 Perfect space-time block codes |
|
|
468 | (4) |
|
5 Diversity and multiplexing gain trade-off of space-time codes |
|
|
472 | (6) |
|
6 Space-time codes for asymmetric MIMO systems |
|
|
478 | (4) |
|
6.1 Fast-decodable MIDO codes with large coding gain |
|
|
478 | (2) |
|
6.2 DMT-optimal LSTBC-schemes for asymmetric MIMO systems |
|
|
480 | (2) |
|
7 Distributed space-time codes |
|
|
482 | (6) |
|
7.1 Communication with relays |
|
|
482 | (4) |
|
7.2 Space-time codes for wireless two-way relaying |
|
|
486 | (2) |
|
|
488 | (9) |
|
|
488 | (9) |
|
Chapter 11 Coded Modulation |
|
|
497 | (38) |
|
|
498 | (1) |
|
|
499 | (6) |
|
2.1 Gaussian and Rayleigh fading channels |
|
|
499 | (1) |
|
2.2 Capacity of signal sets over the Gaussian channel |
|
|
499 | (2) |
|
2.3 Overview of coded modulation schemes |
|
|
501 | (3) |
|
|
504 | (1) |
|
3 Trellis coded modulation |
|
|
505 | (7) |
|
|
506 | (1) |
|
3.2 Encoder and decoder for trellis codes |
|
|
507 | (4) |
|
3.3 Concatenated trellis coded modulation |
|
|
511 | (1) |
|
4 Multilevel codes and multistage decoding |
|
|
512 | (10) |
|
|
513 | (1) |
|
|
513 | (3) |
|
4.3 Code design for multilevel codes and multistage decoding |
|
|
516 | (3) |
|
4.4 Iterative decoding of multilevel codes |
|
|
519 | (1) |
|
4.5 Multilevel codes for unequal error protection |
|
|
520 | (2) |
|
5 Bit-interleaved coded modulation |
|
|
522 | (13) |
|
|
522 | (1) |
|
|
522 | (2) |
|
5.3 BICM capacity and capacity-approaching codes |
|
|
524 | (1) |
|
5.4 BICM with iterative decoding |
|
|
525 | (2) |
|
|
527 | (1) |
|
|
528 | (7) |
|
Chapter 12 Joint Source-Channel Coding and Decoding |
|
|
535 | (48) |
|
1 Why joint source-channel coding/decoding |
|
|
536 | (1) |
|
2 Joint source-channel decoding basics |
|
|
537 | (10) |
|
2.1 Various types of redundancy |
|
|
538 | (2) |
|
2.2 Decoders to exploit the redundancy |
|
|
540 | (2) |
|
2.3 Reducing the decoding complexity |
|
|
542 | (5) |
|
3 Joint source-channel coding basics |
|
|
547 | (5) |
|
|
548 | (1) |
|
3.2 Simple (counter-)example |
|
|
549 | (1) |
|
3.3 To code or not to code |
|
|
550 | (2) |
|
4 Modified source encoders |
|
|
552 | (10) |
|
4.1 Variable-length error-correcting codes |
|
|
552 | (3) |
|
4.2 Redundant signal representations |
|
|
555 | (5) |
|
4.3 Hierarchical and high-density constellations |
|
|
560 | (2) |
|
5 Accounting for the presence of a network |
|
|
562 | (8) |
|
5.1 Redundancy in the protocol stack |
|
|
562 | (1) |
|
5.2 Protocol-assisted channel decoding |
|
|
563 | (2) |
|
5.3 Reliable header recovery |
|
|
565 | (1) |
|
5.4 Reliable burst segmentation |
|
|
566 | (4) |
|
|
570 | (13) |
|
|
570 | (13) |
|
Chapter 13 Hardware Design and Realization for Iteratively Decodable Codes |
|
|
583 | (70) |
|
|
584 | (1) |
|
2 Standard implementation |
|
|
585 | (14) |
|
2.1 Quantization of input LLR |
|
|
586 | (1) |
|
2.2 Standard turbo decoder architecture |
|
|
587 | (6) |
|
2.3 Standard LDPC decoder architecture |
|
|
593 | (6) |
|
|
599 | (9) |
|
3.1 Internal precision optimization |
|
|
600 | (1) |
|
3.2 Precision optimization in turbo decoder |
|
|
600 | (1) |
|
3.3 Sliding-window technique in turbo decoder |
|
|
601 | (1) |
|
3.4 Algorithm simplifications |
|
|
602 | (6) |
|
3.5 Scheduling of Turbo-Code |
|
|
608 | (1) |
|
4 High throughput architectures |
|
|
608 | (11) |
|
4.1 Basic solutions to increase decoding speed |
|
|
609 | (1) |
|
4.2 Average vs. worst case number of iteration |
|
|
610 | (1) |
|
4.3 Parallel error-free memory access |
|
|
610 | (5) |
|
4.4 High-speed Turbo-Code |
|
|
615 | (2) |
|
|
617 | (2) |
|
5 Energy efficient architectures |
|
|
619 | (12) |
|
5.1 General purpose methods |
|
|
620 | (5) |
|
5.2 Application-specific methods |
|
|
625 | (6) |
|
|
631 | (3) |
|
|
631 | (1) |
|
|
632 | (2) |
|
|
634 | (1) |
|
7 A survey of relevant implementations |
|
|
634 | (7) |
|
7.1 High throughput implementations |
|
|
635 | (1) |
|
7.2 Low energy and low area implementations |
|
|
636 | (1) |
|
|
637 | (4) |
|
7.4 Hardware accelerators |
|
|
641 | (1) |
|
|
641 | (12) |
|
|
642 | (11) |
Subject Index |
|
653 | |