Tous nos rayons

Déjà client ? Identifiez-vous

Mot de passe oublié ?

Nouveau client ?

CRÉER VOTRE COMPTE
Error Correction Coding: Mathematical Methods and Algorithms
Ajouter à une liste

Librairie Eyrolles - Paris 5e
Indisponible

Error Correction Coding: Mathematical Methods and Algorithms

Error Correction Coding: Mathematical Methods and Algorithms

Todd K. Moon

992 pages, parution le 04/04/2021

Résumé

Providing in-depth treatment of error correction Error Correction Coding: Mathematical Methods and Algorithms, 2nd Edition provides a comprehensive introduction to classical and modern methods of error correction. The presentation provides a clear, practical introduction to using a lab-oriented approach. Readers are encouraged to implement the encoding and decoding algorithms with explicit algorithm statements and the mathematics used in error correction, balanced with an algorithmic development on how to actually do the encoding and decoding. Both block and stream (convolutional) codes are discussed, and the mathematics required to understand them are introduced on a "just-in-time" basis as the reader progresses through the book. The second edition increases the impact and reach of the book, updating it to discuss recent important technological advances. New material includes: Extensive coverage of LDPC codes, including a variety of decoding algorithms. A comprehensive introduction to polar codes, including systematic encoding/decoding and list decoding. An introduction to fountain codes. Modern applications to systems such as HDTV, DVBT2, and cell phones Error Correction Coding includes extensive program files (for example, C++ code for all LDPC decoders and polar code decoders), laboratory materials for students to implement algorithms, and an updated solutions manual, all of which are perfect to help the reader understand and retain the content. The book covers classical BCH, Reed Solomon, Golay, Reed Muller, Hamming, and convolutional codes which are still component codes in virtually every modern communication system. There are also fulsome discussions of recently developed polar codes and fountain codes that serve to educate the reader on the newest developments in error correction.Preface v List of Program Files xxxiii List of Laboratory Exercises xxxiv List of Algorithms xxxvi List of Figures xliv List of Tables xlvi List of Boxes xlvii Part I Introduction and Foundations 1 1 A Context for Error Correction Coding 3 1.1 Purpose of This Book 3 1.2 Introduction: Where Are Codes? 3 1.3 The Communications System 5 1.4 Basic Digital Communications 11 1.4.1 Binary Phase-Shift Keying 11 1.4.2 More General Digital Modulation 12 1.5 Signal Detection 15 1.5.1 The Gaussian Channel 15 1.5.2 MAP and ML Detection 17 1.5.3 Special Case: Binary Detection 19 1.5.4 Probability of Error for Binary Detection 21 1.5.5 Bounds on Performance: The Union Bound 22 1.5.6 The Binary Symmetric Channel 24 1.5.7 The BSC and the Gaussian Channel Model 26 1.6 Memoryless Channels 26 1.7 Simulation and Energy Considerations for Coded Signals 26 1.8 Some Important Definitions 29 1.8.1 Detection of Repetition Codes Over a BSC 30 1.8.2 Soft-Decision Decoding of Repetition Codes Over the AWGN 33 1.8.3 Simulation of Results 34 1.8.4 Summary 35 1.9 Hamming Codes 35 1.9.1 Hard-Input Decoding Hamming Codes 36 1.9.2 Other Representations of the Hamming Code 38 1.9.2.1 An Algebraic Representation 39 1.9.2.2 A Polynomial Representation 39 1.9.2.3 A Trellis Representation 40 1.9.2.4 The Tanner Graph Representation 41 1.10 The Basic Questions 41 1.11 Historical Milestones of Coding Theory 42 1.12 A Bit of Information Theory 42 1.12.1 Definitions for Discrete Random Variables 43 1.12.1.1 Entropy and Conditional Entropy 43 1.12.1.2 Relative Entropy, Mutual Information, and Channel Capacity 44 1.12.2 Data Processing Inequality 46 1.12.3 Channels 47 1.12.3.1 Binary Symmetric Channel 47 1.12.3.2 Binary Erasure Channel 48 1.12.3.3 Noisy Typewriter 49 1.12.3.4 Symmetric Channels 49 1.12.4 Channel Capacity 49 1.12.5 Definitions for Continuous Random Variables 50 1.12.6 The Channel Coding Theorem 52 1.12.7 "Proof" of the Channel Coding Theorem 52 1.12.8 Capacity for the Continuous-Time AWGN Channel 57 1.12.9 Transmission at Capacity with Errors 58 1.12.10 The Implication of the Channel Coding Theorem 59 1.12.11 Non-Asymptotic Information Theory 59 1.12.11.1 Discrete Channels 61 1.12.11.2 The AWGN Channel 62 1.12.11.3 Comparison of Codes 63 Lab 1 Simulating a Communications Channel 63 Objective 63 Background 63 Use of Coding in Conjunction with the BSC 64 Assignment 65 Programming Part 65 Resources and Implementation Suggestions 66 1.13 Exercises 67 1.14 References 71 Part II Block Codes 73 2 Groups and Vector Spaces 74 2.1 Introduction 74 2.2 Groups 74 2.2.1 Subgroups 78 2.2.2 Cyclic Groups and the Order of an Element 79 2.2.3 Cosets 80 2.2.4 Lagrange's Theorem 81 2.2.5 Induced Operations; Isomorphism 82 2.2.6 Homomorphism 86 2.3 Fields: A Prelude 87 2.4 Review of Linear Algebra 89 2.5 Exercises 95 2.6 References 96 3 Linear Block Codes 97 3.1 Basic Definitions 97 3.2 The Generator Matrix Description of Linear Block Codes 98 3.2.1 Rudimentary Implementation 100 3.3 The Parity Check Matrix and Dual Codes 100 3.3.1 Some Simple Bounds on Block Codes 103 3.4 Error Detection and Correction over Hard-Output Channels 104 3.4.1 Error Detection 104 3.4.2 Error Correction: The Standard Array 105 3.5 Weight Distributions of Codes and Their Duals 109 3.6 Binary Hamming Codes and Their Duals 112 3.7 Performance of Linear Codes 113 3.7.1 Error detection performance 114 3.7.2 Error Correction Performance 115 3.7.3 Performance for Soft-Decision Decoding 118 3.8 Erasure Decoding 119 3.8.1 Binary Erasure Decoding 120 3.9 Modifications to Linear Codes 121 3.10 Best Known Linear Block Codes 123 3.11 Exercises 123 3.12 References 128 4 Cyclic Codes, Rings, and Polynomials 129 4.1 Introduction 129 4.2 Basic Definitions 129 4.3 Rings 130 4.3.1 Rings of Polynomials 132 4.4 Quotient Rings 133 4.5 Ideals in Rings 135 4.6 Algebraic Description of Cyclic Codes 137 4.7 Nonsystematic Encoding and Parity Check 138 4.8 Systematic Encoding 141 4.9 Some Hardware Background 143 4.9.1 Computational Building Blocks 143 4.9.2 Sequences and Power series 144 4.9.3 Polynomial Multiplication 146 4.9.3.1 Last-Element-First Processing 146 4.9.3.2 First-Element-First Processing 146 4.9.4 Polynomial division 147 4.9.4.1 Last-Element-First Processing 147 4.9.5 Simultaneous Polynomial Division and Multiplication 149 4.9.5.1 First-Element-First Processing 149 4.10 Cyclic Encoding 152 4.11 Syndrome Decoding 155 4.12 Shortened Cyclic Codes 160 4.12.0.1 Method 1: Simulating the Extra Clock Shifts 161 4.12.0.2 Method 2: Changing the Error Pattern Detection Circuit 162 4.13 Binary CRC Codes 165 4.13.1 Byte-Oriented Encoding and Decoding Algorithms 167 4.13.2 CRC Protecting Data Files or Data Packets 171 Appendix 4.A Linear Feedback Shift Registers 172 Appendix 4.A.1 Basic Concepts 172 Appendix 4.A.2 Connection With Polynomial Division 175 Appendix 4.A.3 Some Algebraic Properties of Shift Sequences 178 Lab 2 Polynomial Division and Linear Feedback Shift Registers 179 Objective 179 Preliminary Exercises 179 Programming Part: BinLFSR 179 Resources and Implementation Suggestions 180 Programming Part: BinPolyDiv 180 Follow-On Ideas and Problems 180 Lab 3 CRC Encoding and Decoding 181 Objective 181 Preliminary 181 Programming Part 181 Resources and Implementation Suggestions 183 4.14 Exercises 184 4.15 References 189 5 Rudiments of Number Theory and Algebra 191 5.1 Motivation 191 5.2 Number Theoretic Preliminaries 195 5.2.1 Divisibility 195 5.2.2 The Euclidean Algorithm and Euclidean Domains 198 5.2.3 The Sugiyama Algorithm 203 5.2.4 Congruence 206 5.2.5 The ? Function 207 5.2.6 Some Cryptographic Payoff 208 5.2.6.1 Fermat's Little Theorem 208 5.2.6.2 RSA Encryption 209 5.3 The Chinese Remainder Theorem 210 5.3.1 The CRT and Interpolation 213 5.3.1.1 The Evaluation Homomorphism 213 5.3.1.2 The Interpolation Problem 213 5.4 Fields 215 5.4.1 An Examination of R and C 216 5.4.2 Galois Field Construction: An Example 219 5.4.3 Connection with Linear Feedback Shift Registers 222 5.5 Galois Fields: Mathematical Facts 223 5.6 Implementing Galois Field Arithmetic 227 5.6.1 Zech Logarithms 227 5.6.2 Hardware Implementations 228 5.7 Subfields of Galois Fields 229 5.8 Irreducible and Primitive polynomials 230 5.9 Conjugate Elements and Minimal Polynomials 232 5.9.1 Minimal Polynomials 235 5.10 Factoring x n 1 238 5.11 Cyclotomic Cosets 241 Appendix 5.A How Many Irreducible Polynomials Are There? 241 Appendix 5.A.1 Solving for Im Explicitly: The Moebius Function 245 Lab 4 Programming the Euclidean Algorithm 246 Objective 246 Preliminary Exercises 246 Background 246 Programming Part 246 Lab 5 Programming Galois Field Arithmetic 247 Objective 247 Preliminary Exercises 247 Programming Part 247 5.12 Exercises 249 5.13 References 258 6 BCH and Reed-Solomon Codes: Designer Cyclic Codes 259 6.1 BCH Codes 259 6.1.1 Designing BCH Codes 259 6.1.2 The BCH Bound 262 6.1.3 Weight Distributions for Some Binary BCH Codes 265 6.1.4 Asymptotic Results for BCH Codes 266 6.2 Reed-Solomon Codes 267 6.2.1 Reed-Solomon Construction 1 267 6.2.2 Reed-Solomon Construction 2 268 6.2.3 Encoding Reed-Solomon Codes 269 6.2.4 MDS Codes and Weight Distributions for RS Codes 270 6.3 Decoding BCH and RS Codes: The General Outline 272 6.3.1 Computation of the Syndrome 273 6.3.2 The Error Locator Polynomial 274 6.3.3 Chien Search 274 6.4 Finding the Error Locator Polynomial 276 6.4.1 Simplifications for Narrow-Sense Binary Codes; Peterson's Algorithm 277 6.4.2 Berlekamp-Massey Algorithm 280 6.4.3 Characterization of LFSR Length in Massey's Algorithm 28 6.4.4 Simplifications for Binary Codes 286 6.5 Non-Binary BCH and RS Decoding 288 6.5.1 Forney's Algorithm 288 6.6 Euclidean Algorithm for the Error Locator Polynomial 293 6.7 Erasure Decoding for Nonbinary BCH or RS codes 294 6.8 Galois Field Fourier Transform Methods 297 6.8.1 Equivalence of the Two Reed-Solomon Code Constructions 302 6.8.2 Frequency-Domain Decoding 302 6.9 Variations and Extensions of Reed-Solomon Codes 303 6.9.1 Simple Modifications 303 6.9.2 Generalized Reed-Solomon Codes and Alternant Codes 304 6.9.3 Goppa Codes 306 6.9.4 Decoding Alternant Codes 307 6.9.5 The McEliece Public Key Cryptosystem 308 Lab 6 Programming the Berlekamp-Massey Algorithm 308 Background 308 Assignment 309 Preliminary Exercises 309 Programming Part 309 Resources and Implementation Suggestions 309 Lab 7 Programming the BCH Decoder 310 Objective 310 Preliminary Exercises 310 Programming Part 310 Resources and Implementation Suggestions 311 Follow-On Ideas and Problems 311 Lab 8 Reed-Solomon Encoding and Decoding 311 Objective 311 Background 311 Programming Part 311 Appendix 6.A Proof of Newton's Identities 313 6.10 Exercises 314 6.11 References 319 7 Alternate Decoding Algorithms for Reed-Solomon Codes 320 7.1 Introduction: Workload for Reed-Solomon Decoding 320 7.2 Derivations of Welch-Berlekamp Key Equation 321 7.2.1 The Welch-Berlekamp Derivation of the WB Key Equation 321 7.2.2 Derivation From the Conventional Key Equation 325 7.3 Finding the Error Values 327 7.4 Methods of Solving the WB Key Equation 329 7.4.1 Background: Modules 329 7.4.2 The Welch-Berlekamp Algorithm 330 7.4.3 Modular Solution of the WB Key Equation 337 7.5 Erasure Decoding with the Welch-Berlekamp Key Equation 348 7.6 The Guruswami-Sudan Decoding Algorithm and Soft RS Decoding 349 7.6.1 Bounded Distance, ML, and List Decoding 349 7.6.2 Error Correction by Interpolation 350 7.6.3 Polynomials in Two Variables 351 7.6.3.1 Degree and Monomial Order 351 7.6.3.2 Zeros and Multiple Zeros 355 7.6.4 The GS Decoder: The Main Theorems 357 7.6.4.1 The Interpolation Theorem 358 7.6.4.2 The Factorization Theorem 358 7.6.4.3 The Correction Distance 359 7.6.4.4 The Number of Polynomials in the Decoding List 362 7.6.5 Algorithms for Computing the Interpolation Step 364 7.6.5.1 Finding Linearly Dependent Columns: The FengTzeng Algorithm 365 7.6.5.2 Finding the Intersection of Kernels: The Koetter Algorithm 369 7.6.6 A Special Case: m D 1 and L D 1 375 7.6.7 The Roth-Ruckenstein Algorithm 377 7.6.7.1 What to Do with Lists of Factors? 384 7.6.8 Soft-Decision Decoding of Reed-Solomon Codes 385 7.6.8.1 Notation 386 7.6.8.2 A Factorization Theorem 388 7.6.8.3 Mapping from Reliability to Multiplicity 388 7.6.8.4 The Geometry of the Decoding Regions 390 7.6.8.5 Computing the Reliability Matrix 391 7.7 Exercises 392 7.8 References 395 8 Other Important Block Codes 397 8.1 Introduction 397 8.2 Hadamard Matrices, Codes, and Transforms 397 8.2.1 Introduction to Hadamard Matrices 397 8.2.2 The Paley Construction of Hadamard Matrices 399 8.2.3 Hadamard Codes 402 8.3 Reed-Muller Codes 403 8.3.1 Boolean Functions 403 8.3.2 Definition of the Reed-Muller Codes 404 8.3.3 Encoding and Decoding Algorithms for First-Order RM Codes 407 8.3.3.1 Encoding RM.1; m/ Codes 407 8.3.3.2 Decoding RM.1; m/ Codes 408 8.3.3.3 Expediting Decoding Using the Fast Hadamard Transform 410 8.3.4 The Reed Decoding Algorithm for RM.r; m/ Codes, r 1 412 8.3.4.1 Details for an RM.2; 4/ Code 412 8.3.4.2 A Geometric Viewpoint 415 8.3.5 Other Constructions of Reed-Muller Codes 419 8.4 Building Long Codes from Short Codes: The Squaring Construction 420 8.5 Quadratic Residue Codes 424 8.6 Golay Codes 426 8.6.1 Decoding the Golay Code 427 8.6.1.1 Algebraic Decoding of the G23 Golay Code 428 8.6.1.2 Arithmetic Decoding of the G24 Code 429 8.7 Exercises 430 8.8 References 432 9 Bounds on Codes 434 9.1 The Gilbert-Varshamov Bound 437 9.2 The Plotkin Bound 438 9.3 The Griesmer Bound 439 9.4 The Linear Programming and Related Bounds 441 9.4.1 Krawtchouk Polynomials 443 9.4.2 Character 443 9.4.3 Krawtchouk Polynomials and Characters 444 9.5 The McEliece-Rodemich-Rumsey-Welch Bound 446 9.6 Exercises 448 9.7 References 452 10 Bursty Channels, Interleavers, and Concatenation 453 10.1 Introduction to Bursty Channels 453 10.2 Interleavers 453 10.3 An Application of Interleaved RS Codes: Compact Discs 455 10.4 Product Codes 458 10.5 Reed-Solomon Codes 459 10.6 Concatenated Codes 460 10.7 Fire Codes 461 10.7.1 Fire Code Definition 461 10.7.2 Decoding Fire Codes: Error Trapping Decoding 463 10.8 Exercises 465 10.9 References 466 11 Soft-Decision Decoding Algorithms 467 11.1 Introduction and General Notation 467 11.2 Generalized Minimum Distance Decoding 469 11.2.1 Distance Measures and Properties 470 11.3 The Chase Decoding Algorithms 473 11.4 Halting the Search: An Optimality Condition 473 11.5 Ordered Statistic Decoding 475 11.6 The Hartmann Rudolph Algorithm 477 11.7 Exercises 479 11.8 References 480 Part III Codes on Graphs 482 12 Convolutional Codes 483 12.1 Introduction and Basic Notation 483 12.1.1 The State 487 12.2 Definition of Codes and Equivalent Codes 490 12.2.1 Catastrophic Encoders 493 12.2.2 Polynomial and Rational Encoders 495 12.2.3 Constraint Length and Minimal Encoders 497 12.2.4 Systematic Encoders 500 12.3 Decoding Convolutional Codes 500 12.3.1 Introduction and Notation 500 12.3.2 The Viterbi Algorithm 504 12.3.3 Some Implementation Issues 514 12.3.3.1 The Basic Operation: Add-Compare-Select 514 12.3.3.2 Decoding Streams of Data: Windows on the Trellis 514 12.3.3.3 Output Decisions 515 12.3.3.4 Hard and Soft Decoding; Quantization 517 12.3.3.5 Synchronization Issues 519 12.4 Some Performance Results 520 12.5 Error Analysis for Convolutional Codes 524 12.5.1 Enumerating Paths Through the Trellis 526 12.5.1.1 Enumerating on More Complicated Graphs: Mason's Rule 529 12.5.2 Characterizing Node Error Probability Pe and Bit Error Rate Pb 532 12.5.3 A Bound on Pd for Discrete Channels 534 12.5.3.1 Performance Bound on the BSC 536 12.5.4 A Bound on Pd for BPSK Signaling Over the AWGN Channel 536 12.5.5 Asymptotic Coding Gain 538 12.6 Tables of Good Codes 539 12.7 Puncturing 539 12.7.1 Puncturing to Achieve Variable Rate 542 12.8 Suboptimal Decoding Algorithms for Convolutional Codes 543 12.8.1 Tree Representations 544 12.8.2 The Fano Metric 545 12.8.3 The Stack Algorithm 548 12.8.4 The Fano Algorithm 549 12.8.5 Other Issues for Sequential Decoding 554 12.8.6 A Variation on the Viterbi Algorithm: The M Algorithm 555 12.9 Convolutional Codes as Block Codes and Tailbiting Codes 556 12.10 A modified expression for the the path metric 557 12.11 Soft Output Viterbi Algorithm (SOVA) 559 12.12 Trellis Representations of Block and Cyclic Codes 564 12.12.1 Block Codes 565 12.12.2 Cyclic Codes 565 12.12.3 Trellis Decoding of Block Codes 566 Lab 9 Programming Convolutional Encoders 567 Objective 567 Background 567 Programming Part 568 Lab 10 Convolutional Decoders: The Viterbi Algorithm 569 Objective 570 Background 570 Programming Part 570 12.13 Exercises 572 12.14 References 576 13 Trellis Coded Modulation 578 13.1 Adding Redundancy by Adding Signals 578 13.2 Background on Signal Constellations 578 13.3 TCM Example 580 13.3.1 The General Ungerboeck Coding Framework 587 13.3.2 The Set Partitioning Idea 587 13.4 Some Error Analysis for TCM Codes 589 13.4.1 General Considerations 589 13.4.2 A Description of the Error Events 590 13.4.3 Known Good TCM Codes 594 13.5 Decoding TCM Codes 596 13.6 Rotational Invariance 598 13.6.0.1 Differential Encoding 601 13.6.0.2 Constellation Labels and Partitions 602 13.7 Multidimensional TCM 604 13.7.1 Some Advantages of Multidimensional TCM 604 13.7.2 Lattices and Sublattices 605 13.7.2.1 Basic Definitions 605 13.7.2.2 Common Lattices 608 13.7.2.3 Sublattices and Cosets 609 13.7.2.4 The Lattice Code Idea 610 13.7.2.5 Sources of Coding Gain in Lattice Codes 610 13.7.2.6 Some Good Lattice Codes 613 13.8 The V.34 Modem Standard 613 13.9 Exercises 621 Lab 11 Trellis-Coded Modulation Encoding and Decoding 622 Objective 622 Background 622 Programming Part 623 13.10 References 623 Part IV Iteratively Decoded Codes 624 14 Turbo Codes 625 14.1 Introduction 625 14.2 Encoding Parallel Concatenated Codes 627 14.3 Turbo Decoding Algorithms 629 14.3.1 The MAP Decoding Algorithm 631 14.3.2 Notation 631 14.3.3 Posterior Probability 633 14.3.4 Computing ?t and ?t635 14.3.5 Computing 636 CONTENTS xxi 14.3.6 Normalization 637 14.3.7 Summary of the BCJR Algorithm 638 14.3.8 A Matrix/Vector Formulation 640 14.3.9 Comparison of the Viterbi and BCJR Algorithms 641 14.3.10 The BCJR Algorithm for Systematic Codes 641 14.3.11 Turbo Decoding Using the BCJR Algorithm 643 14.3.11.1 The Terminal State of the Encoders 645 14.3.12 Likelihood Ratio Decoding 645 14.3.12.1 Log Prior Ratio p;t 646 14.3.12.2 Log Posterior .0/ s;t 648 14.3.13 Statement of the Turbo Decoding Algorithm 648 14.3.14 Turbo Decoding Stopping Criteria 648 14.3.14.1 The Cross Entropy Stopping Criterion 649 14.3.14.2 The Sign Change Ratio (SCR) Criterion 650 14.3.14.3 The Hard Decision Aided (HDA) Criterion 651 14.3.15 Modifications of the MAP Algorithm 651 14.3.15.1 The Max-Log-MAP Algorithm 651 14.3.16 Corrections to the Max-Log-MAP Algorithm 652 14.3.17 The Soft Output Viterbi Algorithm 653 14.4 On the Error Floor and Weight Distributions 653 14.4.1 The Error Floor 653 14.4.2 Spectral Thinning and Random Permuters 655 14.4.3 On Permuters 658 14.5 EXIT Chart Analysis 660 14.5.1 The EXIT Chart 662 14.6 Block Turbo Coding 664 14.7 Turbo Equalization 667 14.7.1 Introduction to Turbo Equalization 667 14.7.2 The Framework for Turbo Equalization 668 Lab 12 Turbo Code Decoding 670 Objective 670 Background 670 Programming Part 670 14.8 Exercises 670 14.9 References 673 15 Low-Density Parity-Check Codes: Introduction, Decoding, and Analysis 675 15.1 Introduction 675 15.2 LDPC Codes: Construction and Notation 676 15.3 Tanner Graphs 679 15.4 Decoding LDPC Codes 681 15.4.1 Decoding Using Log Likelihood Ratios 681 15.4.1.1 Log-Likelihood ratios 681 15.4.1.2 Log Likelihood Ratio of the Sum of Bits 682 15.4.1.3 Decoding: Message from a Check Node to a Variable Node 683 15.4.1.4 Log Likelihood of Repeated Observations About a Bit 685 15.4.1.5 Decoding: Message from a Variable Node to a Check Node 685 15.4.1.6 Inputs to the LDPC Decoding Algorithm 686 15.4.1.7 Terminating the Decoding Algorithm 688 15.4.1.8 Summary of Decoding: The Belief Propagation Algorithm 688 15.4.1.9 Messages on the Tanner Graph 691 15.4.2 Decoding Using Probabilities 692 15.4.2.1 Probability of Even Parity: Decoding at the Check Nodes 692 15.4.2.2 Probability of Independent Observerations Decoding at a Variable Node 694 15.4.2.3 Computing the Leave-One-Out Product 697 15.4.2.4 Sparse Memory Organization 698 15.4.3 Variations on Decoding Algorithms: The Min-Sum Decoder 698 15.4.3.1 The Operation and the ?.x/ Function 699 15.4.3.2 Attenuated and Offset Min-sum Decoders 700 15.4.4 Variations on Decoding Algorithms: Min-Sum with Correction 701 15.4.4.1 Approximate min Decoder 704 15.4.4.2 The Reduced Complexity Box-Plus Decoder 705 15.4.4.3 The Richardson-Novichkov Decoder 707 15.4.5 Hard Decision Decoding 710 15.4.5.1 Bit Flipping 710 15.4.5.2 Gallager's Algorithms A and B 711 15.4.5.3 Weighted Bit Flipping 712 15.4.5.4 Gradient Descent Bit Flipping 713 15.4.6 Divide and Concur Decoding 715 15.4.6.1 Summary of the Divide and Concur Algorithm 715 15.4.6.2 DC Applied to LDPC Decoding 716 15.4.6.3 The Divide Projections 719 15.4.6.4 The Concur Projection 721 15.4.6.5 A Message Passing Viewpoint of DC Decoding 722 15.4.7 Difference Map Belief Propagation Decoding 722 15.4.8 Linear Programming Decoding 723 15.4.8.1 Background on Linear Programming 723 15.4.8.2 Formulation of the Basic LP Decoding Algorithm 724 15.4.8.3 LP Relaxation 727 15.4.8.4 Examples and Discussion 731 15.4.9 Decoding on the Binary Erasure Channel 732 15.4.10 BEC Channels and Stopping Sets 734 15.5 Why Low-Density Parity-Check Codes? 736 15.6 The Iterative Decoder on General Block Codes 737 15.7 Density Evolution 738 15.8 EXIT Charts for LDPC Codes 742 15.9 Irregular LDPC Codes 744 15.9.1 Degree Distribution Pairs 745 15.9.2 Density Evolution for Irregular Codes 747 15.9.3 Computation and Optimization of Density Evolution 750 15.9.4 Using Irregular Codes 750 15.10 More on LDPC Code Construction 750 15.11 Encoding LDPC Codes 751 15.12 A Variation: Low-Density Generator Matrix Codes 753 Lab 13 Programming an LDPC Decoder 753 Objective 753 Background 753 Assignment 754 Numerical Considerations 755 15.13 Exercises 756 15.14 References 759 16 Low-Density Parity-Check Codes: Designs and Variations 760 16.1 Introduction 760 16.2 Repeat-Accumulate Codes 760 16.2.1 Decoding RA Codes 763 16.2.2 Irregular RA Codes 764 16.2.3 RA Codes with Multiple Accumulators 766 16.3 LDPC Convolutional Codes 766 16.4 Quasi-Cyclic Codes 769 16.4.1 QC Generator matrices 769 16.4.2 Constructing QC Generator Matrices from QC Parity Check Matrices 771 16.4.2.1 Full Rank Case 772 16.4.2.2 Non-Full Rank Case 773 16.5 Construction of LDPC codes based on Finite Fields 774 16.5.1 I. Construction of QC-LDPC Codes Based on the MinimumWeight Codewords of a Reed-Solomon Code with Two Information Symbols 776 16.5.2 II. Construction of QC-LDPC Codes Based on a Special Subclass of RS Codes 777 16.5.3 III. Construction of QC-LDPC Codes Based on Subgroups of a Finite Field 779 16.5.4 IV. Construction of QC-LDPC Codes Based on Subgroups of the Multiplicative Group of a Finite Field 780 16.5.5 V. Construcion of QC-LDPC Codes Based on Primitive Elements of a Field 781 16.6 Code Design Based on Finite Geometries 781 16.6.1 Rudiments of Euclidan Geometry 781 16.6.1.1 Points in EG.m; q/ 781 16.6.1.2 Lines in EG.m; q/ 783 16.6.1.3 Incidence vectors in EG .m; q/ 784 16.6.2 A Family of Cyclic EG-LDPC Codes 785 16.6.3 Construction of LDPC codes based on Parallel Bundles of Lines787 16.6.4 Constructions Based on Other Combinatoric Objects 787 16.7 Ensembles of LDPC Codes 787 16.7.1 Regular ensembles 788 16.7.2 Irregular Ensembles 789 16.7.3 Multi-edge type ensembles 791 16.8 Constructing LDPC Codes by Progressive Edge Growth (PEG) 792 16.9 Protograph and Multi-Edge Type LDPC Codes 795 16.10 Error Floors and Trapping Sets 797 16.11 Importance Sampling 798 16.11.1 Importance Sampling: General Principles 799 16.11.2 Importance Sampling for Estimating Error Probability 801 16.11.3 Importance Sampling for Tanner Trees 813 16.11.3.1 Single Parity Check Codes 813 16.11.3.2 Symmetric Tanner Trees 816 16.11.3.3 General Trees 818 16.11.3.4 Importance Sampling for LDPC Codes 819 16.12 Fountain Codes 819 16.12.1 Conventional Erasure Correction Codes 820 16.12.2 Tornado Codes 820 16.12.3 Luby Transform Codes 821 16.12.4 Raptor Codes 821 16.13 References 823 Part V Polar Codes 825 17 Polar Codes 826 17.1 Introduction and Preview 826 17.2 Notation and Channels 828 17.3 Channel Polarization, N D 2 Channel 830 17.3.1 Encoding 830 17.3.2 Synthetic Channels and Mutual Information 831 17.3.3 Synthetic Channel Transition Probabilities 834 17.3.4 An example with N D 2 using the binary erasure channel 834 17.3.5 Successive Cancellation Decoding 835 17.3.5.1 Log Likelihood Ratio Computations 837 17.3.5.2 Computing the Log Likelihood function with lower complexity 839 17.3.6 Tree Representation 840 17.3.7 The Polar Coding Idea 841 17.4 Channel Polarization, N > 2 channels 842 17.4.1 Channel Combining: Extension from N=2 to N channels842 17.4.2 Pseudocode for Encoder for Arbitrary N 846 17.4.3 Transition probabilities and channel splitting 846 17.4.4 An example using the BEC for N > 2 850 17.4.5 Polar Coding 856 17.4.6 Tree Representation 857 17.4.7 Successive Cancellation Decoding 857 17.4.8 SC Decoding from a Message Passing Point of View on the Tree861 17.4.9 A Decoding Example with N D 4 861 17.4.10 A Decoding Example with N D 8 865 17.4.11 Pseudo-Code Description of Successive Cancellation Algorithm874 17.5 Some Theorems of Polar Coding Theory 877 17.5.1 I.W / and Z.W / for general B-DMCs 877 17.5.2 Channel Polarization 879 17.5.3 The Polarization Theorem 881 17.5.4 A few facts about martingales 881 17.5.5 Proof of the Polarization Theorem 882 17.5.6 Another Polarization Theorem 883 17.5.7 Rate of Polarization 887 17.5.8 Probability of Error Performance 887 17.6 Designing Polar Codes 888 17.6.1 Code Design by Battacharyya Bound 889 17.6.2 Monte-Carlo Estimation of Z.W .i/ N/ 890 17.7 Perspective: The Channel Coding Theorem 891 17.8 Systematic Encoding of Polar Codes 891 17.8.1 Polar Systematic Encoding via the Encoder Graph 892 17.8.2 Polar Systematic Encoding via Ar?kan's Method 895 17.8.3 Systematic Encoding: The Bit Reverse Permutation 895 17.8.4 Decoding Systematically Encoded Codes 895 17.8.5 Flexible Systematic Encoding 895 17.8.6 Involutions and Domination Contiguity 898 17.8.7 Polar Codes and Domination Contiguity 900 17.8.8 Modifications for Polar Codes with Bit-Reverse Permutation 903 17.9 List Decoding of Polar Codes 903 17.9.1 The Likelihood Data Structure P 905 17.9.2 Normalization 907 17.9.3 Code to Compute P 907 17.9.4 The Bits Data Structure C 908 17.9.5 Code to Compute C 910 17.9.6 Supporting Data Structures 911 17.9.7 Code for Polar List Decoding 912 17.9.8 An Example of List Decoding 917 17.9.9 Computational Complexity 919 17.9.10 Modified Polar Codes 920 17.10 LLR-Based Successive Cancellation List Decoding 921 17.10.1 Implementation Considerations 922 17.11 Simplified Successive Cancellation Decoding 922 17.11.1 Modified SC Decoding 926 17.12 Relations with Reed-Muller Codes 926 17.13 Hardware and Throughput Performance Results 926 17.14 Generalizations, Extensions, and Variations 927 Appendix 17.A BN is a Bit-Reverse Permutation 927 Appendix 17.B The Relationship of the Battacharyya Parameter to Channel Capacity 928 Appendix 17.B.1 Error probability for Two Codewords 928 Appendix 17.B.2 Proof of Inequality (17.59) 930 Appendix 17.B.3 Proof of Inequality (17.60) [17] 934 Appendix 17.C Proof of Theorem 17.12 936 17.15 Exercises 938 17.16 References 938 Part VI Applications 939 18 Some Applications of Error Correction in Modern Communication Systems 940 18.1 Introduction 940 18.2 Digital Video Broadcast T2 (DVB-T2) 940 18.2.1 BCH Outer Encoding 940 18.2.2 LDPC Inner Encoding 942 18.3 Digital Cable Television 944 18.4 E-UTRA and Long Term Evolution 948 18.4.1 LTE Rate 1/3 Convolutional Encoder 949 18.4.2 LTE Turbo Code 949 18.5 References 951 Part VII Space-Time Coding 953 19 Fading Channels and Space-Time Codes 954 19.1 Introduction 954 19.2 Fading Channels 954 19.2.1 Rayleigh Fading 957 19.3 Diversity Transmission and Reception: The MIMO Channel 958 19.3.1 The Narrowband MIMO Channel 960 19.3.2 Diversity Performance with Maximal-Ratio Combining 961 19.4 Space-Time Block Codes 962 19.4.1 The Alamouti Code 963 19.4.2 A More General Formulation 964 19.4.3 Performance Calculation 965 19.4.3.1 Real Orthogonal Designs 967 19.4.3.2 Encoding and Decoding Based on Orthogonal Designs 968 19.4.3.3 Generalized Real Orthogonal Designs 969 19.4.4 Complex Orthogonal Designs 970 19.4.4.1 Future Work 971 19.5 Space-Time Trellis Codes 972 19.5.1 Concatenation 973 19.6 How Many Antennas? 973 19.7 Estimating Channel Information 977 19.8 Exercises 977 19.9 References 978 References 979 Index 999TODD K. MOON is a Professor in the Electrical and Computer Engineering Department at Utah State University. His research interests include information systems (communications, signal processing, and controls) and the application of principles of mathematics to problems involving the transmission, extraction, modeling, compression, or analysis of signals. He is the author of numerous journal and conference articles and graduate level texts on signal processing and error correction coding.

Caractéristiques techniques

  PAPIER
Éditeur(s) Wiley
Auteur(s) Todd K. Moon
Parution 04/04/2021
Nb. de pages 992
EAN13 9781119567479

Avantages Eyrolles.com

Livraison à partir de 0,01 en France métropolitaine
Paiement en ligne SÉCURISÉ
Livraison dans le monde
Retour sous 15 jours
+ d'un million et demi de livres disponibles
satisfait ou remboursé
Satisfait ou remboursé
Paiement sécurisé
modes de paiement
Paiement à l'expédition
partout dans le monde
Livraison partout dans le monde
Service clients sav.client@eyrolles.com
librairie française
Librairie française depuis 1925
Recevez nos newsletters
Vous serez régulièrement informé(e) de toutes nos actualités.
Inscription