## Description

A binary linear code with a sparse parity-check matrix. Alternatively, a member of an infinite family of \([n,k,d]\) codes for which the number of nonzero entries in each row and column of the parity-check matrix are both bounded above by a constant as \(n\to\infty\).

An LDPC code is \((j,k)\)-regular if the parity-check matrix has a fixed number of \(j\) nonzero entries in each row and \(k\) entries in each column; otherwise, the LDPC code is irregular. Irregular LDPC codes are characterized by the fractions \(v_j\) of columns of weight \(j\) as well as likewise fractions \(h_j\) for rows of weight \(j\); these are collectively called the degree distribution.

A parity check is performed by taking the inner product of a row of the parity-check matrix with a codeword that has been affected by a noise channel. A parity check yields either zero (no error) or one (error).

In alternative conventions (not used here), LDPC codes are referred to as simple LDPC codes, as opposed to generalized LDPC codes, alternatively named as Tanner codes.

## Rate

## Encoding

## Decoding

## Notes

## Parents

## Children

## Cousins

- Tensor-product code — Tensor products of random LDPC codes are robustly testable [38,39].
- Low-density generator-matrix (LDGM) code — The dual of an LDPC code has a sparse generator matrix and is called an LDGM code.
- Random code — LDPC codes are often constructed non-determinisitically.
- Tornado code — Tornado codes are similar to LDPC codes, but they use a highly irregular weight distribution for the underlying graphs [40].
- Low-rank parity-check (LRPC) code — LRPC codes are rank-metric analogues of LDPC codes [41].
- LDPC convolutional code (LDPC-CC) — LDPC-CCs are convolutional analogues of LDPC codes.
- DNA storage code — LDPC codes are potentially relevant for DNA storage [42].
- Quantum low-density parity-check (QLDPC) code

## References

- [1]
- R. Gallager, “Low-density parity-check codes”, IEEE Transactions on Information Theory 8, 21 (1962) DOI
- [2]
- R. Gallagher, Low-density parity check codes. 1963. PhD thesis, MIT Cambridge, MA.
- [3]
- D. J. C. MacKay, “Good error-correcting codes based on very sparse matrices”, IEEE Transactions on Information Theory 45, 399 (1999) DOI
- [4]
- V. Guruswami, “Iterative Decoding of Low-Density Parity Check Codes (A Survey)”, (2006) arXiv:cs/0610022
- [5]
- S. Kudekar, T. Richardson, and R. Urbanke, “Spatially Coupled Ensembles Universally Achieve Capacity under Belief Propagation”, (2012) arXiv:1201.2999
- [6]
- J. Mosheiff et al., “LDPC Codes Achieve List Decoding Capacity”, (2021) arXiv:1909.06430
- [7]
- T. J. Richardson and R. L. Urbanke, “Efficient encoding of low-density parity-check codes”, IEEE Transactions on Information Theory 47, 638 (2001) DOI
- [8]
- Pearl, J. (2022). Reverend Bayes on inference engines: A distributed hierarchical approach. In Probabilistic and Causal Inference: The Works of Judea Pearl (pp. 129-138).
- [9]
- Probabilistic Reasoning in Intelligent Systems (Elsevier, 1988) DOI
- [10]
- T. J. Richardson and R. L. Urbanke, “The capacity of low-density parity-check codes under message-passing decoding”, IEEE Transactions on Information Theory 47, 599 (2001) DOI
- [11]
- S. Lin and D. J. Costello, Error Control Coding, 2nd ed. Englewood Cliffs, NJ: Prentice-Hall, 2004.
- [12]
- K. Shimizu et al., “A parallel LSI architecture for LDPC decoder improving message-passing schedule”, 2006 IEEE International Symposium on Circuits and Systems DOI
- [13]
- F. R. Kschischang, B. J. Frey, and H.-A. Loeliger, “Factor graphs and the sum-product algorithm”, IEEE Transactions on Information Theory 47, 498 (2001) DOI
- [14]
- J. Chen et al., “Reduced-Complexity Decoding of LDPC Codes”, IEEE Transactions on Communications 53, 1288 (2005) DOI
- [15]
- J. Feldman. Decoding Error-Correcting Codes via Linear Programming. PhD thesis, Massachusetts Institute of Technology, 2003.
- [16]
- J. Feldman, M. J. Wainwright, and D. R. Karger, “Using Linear Programming to Decode Binary Linear Codes”, IEEE Transactions on Information Theory 51, 954 (2005) DOI
- [17]
- J. Feldman, “LP Decoding”, Encyclopedia of Algorithms 1177 (2016) DOI
- [18]
- Changyan Di et al., “Finite-length analysis of low-density parity-check codes on the binary erasure channel”, IEEE Transactions on Information Theory 48, 1570 (2002) DOI
- [19]
- C. A. Kelley, "Codes over Graphs." Concise Encyclopedia of Coding Theory (Chapman and Hall/CRC, 2021) DOI
- [20]
- M. Schwartz and A. Vardy, “On the stopping distance and the stopping redundancy of codes”, IEEE Transactions on Information Theory 52, 922 (2006) DOI
- [21]
- T. J. Richardson, M. A. Shokrollahi, and R. L. Urbanke, “Design of capacity-approaching irregular low-density parity-check codes”, IEEE Transactions on Information Theory 47, 619 (2001) DOI
- [22]
- S. Habib, A. Beemer, and J. Kliewer, “RELDEC: Reinforcement Learning-Based Decoding of Moderate Length LDPC Codes”, (2023) arXiv:2112.13934
- [23]
- G. A. Margulis, “Explicit constructions of graphs without short cycles and low density codes”, Combinatorica 2, 71 (1982) DOI
- [24]
- D. J. C. MacKay and R. M. Neal, “Near Shannon limit performance of low density parity check codes”, Electronics Letters 33, 457 (1997) DOI
- [25]
- M. Mézard and A. Montanari, “Information, Physics, and Computation”, (2009) DOI
- [26]
- Y. Kabashima and D. Saad, “Statistical mechanics of low-density parity-check codes”, Journal of Physics A: Mathematical and General 37, R1 (2004) DOI
- [27]
- A. Montanari and R. Urbanke, “Course 2 Modern coding theory: The statistical mechanics and computer science point of view”, Complex Systems 67 (2007) DOI
- [28]
- T. Richardson and R. Urbanke, “The renaissance of gallager’s low-density parity-check codes”, IEEE Communications Magazine 41, 126 (2003) DOI
- [29]
- Johnson, Sarah J. "Introducing low-density parity-check codes." University of Newcastle, Australia 1 (2006): 2006.
- [30]
- David J. C. MacKay. Information Theory, Inference and Learning Algorithms. Cambridge university press, 2003.
- [31]
- B. Vasic and E. M. Kurtas, editors , Coding and Signal Processing for Magnetic Recording Systems (CRC Press, 2004) DOI
- [32]
- A. Shokrollahi, “LDPC Codes: An Introduction”, Coding, Cryptography and Combinatorics 85 (2004) DOI
- [33]
- Michael Helmling, Stefan Scholl, Florian Gensheimer, Tobias Dietz, Kira Kraft, Stefan Ruzika, and Norbert Wehn. Database of Channel Codes and ML Simulation Results. URL, 2022.
- [34]
- G. Liva, F. Steiner. “pretty-good-codes.org: Online library of good channel codes”, URL: http://pretty-good-codes.org/
- [35]
- MacKay, David JC. "Encyclopedia of sparse graph codes." (2005).
- [36]
- N. Borisov, I. Petrov, and A. Tayduganov, “Asymmetric Adaptive LDPC-Based Information Reconciliation for Industrial Quantum Key Distribution”, Entropy 25, 31 (2022) arXiv:2212.01121 DOI
- [37]
- A. Cassagne et al., “AFF3CT: A Fast Forward Error Correction Toolbox!”, SoftwareX 10, 100345 (2019) DOI
- [38]
- I. Dinur, M. Sudan, and A. Wigderson, “Robust Local Testability of Tensor Products of LDPC Codes”, Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques 304 (2006) DOI
- [39]
- E. Ben-Sasson and M. Viderman, “Tensor Products of Weakly Smooth Codes Are Robust”, Lecture Notes in Computer Science 290 (2008) DOI
- [40]
- A. Shokrollahi, “Raptor codes”, IEEE Transactions on Information Theory 52, 2551 (2006) DOI
- [41]
- Gaborit, P., Murat, G., Ruatta, O., & Zemor, G. (2013, April). Low rank parity check codes and their application to cryptography. In Proceedings of the Workshop on Coding and Cryptography WCC (Vol. 2013).
- [42]
- X. Lu et al., “Error Rate-Based Log-Likelihood Ratio Processing for Low-Density Parity-Check Codes in DNA Storage”, IEEE Access 8, 162892 (2020) DOI

## Page edit log

- Victor V. Albert (2022-08-17) — most recent
- Victor V. Albert (2022-04-25)
- Armin Gerami (2022-04-23)

## Cite as:

“Low-density parity-check (LDPC) code”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ldpc

Github: https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/bits/tanner/ldpc.yml.