Fact-checked by Grok 2 weeks ago

Low-density parity-check code

Low-density parity-check (LDPC) codes are a of linear error-correcting codes defined by a sparse parity-check H of dimensions m \times n, where n is the codeword length, m = n - k with k information bits, and the matrix has a low density of 1s such that each column has a small fixed weight \rho \geq 3 and each row has weight \gamma \geq 3. This sparsity enables efficient iterative decoding while allowing the codes to approach the theoretical limits of error correction for certain channels. LDPC codes operate on the principle that a received y satisfies H y = 0 for valid codewords, with decoding aiming to find the most likely codeword consistent with the received signal. Invented by in his 1960 MIT Sc.D. thesis and detailed in his 1963 monograph, LDPC codes were initially analyzed for their asymptotic performance on binary symmetric channels using probabilistic decoding methods. analyzed the asymptotic performance of such codes, showing that ensembles exhibit vanishing error probability in the large block length limit for suitable parameters. Despite these theoretical foundations, practical implementation challenges limited their adoption during the 1960s and 1970s. The codes gained prominence in the 1990s through rediscovery by and , who demonstrated via simulations the near-Shannon-limit performance of LDPC codes using decoding. Subsequent work showed performance within 0.0045 dB of the Shannon limit on the binary-input AWGN channel. This work highlighted the efficacy of message-passing algorithms on the Tanner graph representation of LDPC codes, where variable nodes and check nodes exchange probabilistic messages iteratively to resolve uncertainties in the received bits. Subsequent research refined irregular LDPC codes with optimized degree distributions, further improving performance thresholds. The capacity-achieving properties of irregular LDPC ensembles were proven in the early 2000s. Today, LDPC codes are integral to numerous high-speed communication standards due to their capacity-approaching error rates, low decoding latency, and hardware efficiency. They form the basis for in DVB-S2 and satellite broadcasting systems, where quasi-cyclic structures enable parallelizable encoding and decoding. In wireless networks, quasi-cyclic LDPC codes are mandated for data channels in 5G New Radio (NR) standards, supporting rates up to 1 Gbps with block lengths from 40 to 8448 bits. Additional applications include (IEEE 802.11n/ac/ax), 10GBASE-T Ethernet, and deep-space via CCSDS protocols, underscoring their versatility across noisy channels.

Fundamentals

Definition and Basic Properties

Low-density parity-check (LDPC) codes are a class of linear over the binary field GF(2), where the codewords form a of k in the vector space \mathbb{F}_2^n. These codes are defined by a set of linear parity-check equations that the codewords must satisfy, without specifying a explicitly. In general, a linear of length n and k has a R = k/n and can correct up to t = \lfloor (d_{\min} - 1)/2 \rfloor errors, where d_{\min} is the minimum between any two distinct codewords. An LDPC code is specified by an m \times n parity-check matrix H that is sparse, meaning it contains a low density of nonzero entries (typically less than 0.01 for practical codes with large n). The rows of H correspond to m = n - k parity-check equations, and the code rate is R = 1 - m/n. A vector c \in \mathbb{F}_2^n is a valid codeword if and only if it satisfies H c = 0 (modulo 2). For a received vector r = c + e (where e is the error vector), the syndrome is computed as s = H r = H e (modulo 2); a zero syndrome indicates no detectable errors, while a nonzero syndrome signals the presence of errors. The minimum d_{\min} of an LDPC , which determines its error-correcting capability, is closely tied to structural properties of the underlying bipartite Tanner , such as its girth (the length of the shortest ) and (the growth rate of neighborhoods in the ). Larger girth helps avoid short cycles that degrade performance, providing lower bounds on d_{\min}, while good ensures reliable error for a fraction of errors up to the 's design threshold. The Tanner representation, with variable nodes for bits and check nodes for parity equations connected by edges corresponding to nonzero entries in H, illustrates these graph-theoretic features. LDPC codes exhibit capacity-approaching behavior when decoded using iterative message-passing algorithms, achieving rates arbitrarily close to the Shannon limit on the and for sufficiently large block lengths. This performance stems from the sparsity of H, which allows efficient probabilistic decoding that converges to near-optimal maximum-likelihood results in many cases.

Parity-Check Matrix and Tanner Graph

The parity-check matrix H of a low-density parity-check (LDPC) code is an m \times n binary matrix, where each of the m rows corresponds to a parity-check equation that the codeword must satisfy, and each of the n columns corresponds to one of the n bits in the codeword. The codewords \mathbf{c} are those vectors in \mathbb{F}_2^n satisfying H \mathbf{c}^T = \mathbf{0}, ensuring the code rate is at least $1 - m/n. The "low-density" property refers to the sparsity of H, where the density of 1s is very small, typically on the order of 1% or less, meaning each row and each column contains only a small number of 1s relative to m and n. This sparsity is quantified by the row weight (number of 1s per row, denoted d_c for check node degree) and column weight (number of 1s per column, denoted d_v for variable node degree), which are fixed in regular LDPC codes but can vary in irregular ones. The Tanner graph provides a graphical of the parity-check matrix H, introduced as a model for constraint-based codes. It consists of two sets of nodes: n variable nodes (one for each codeword bit) on one side and m check nodes (one for each parity-check equation) on the other, with an edge connecting variable node i to check node j if and only if H_{j,i} = 1. This structure visually encodes the linear constraints imposed by H, facilitating analysis of the code's dependencies. In the Tanner graph, cycles are closed paths of even length (since the graph is bipartite), and the girth is defined as the length of the shortest such cycle, with the minimum possible girth being 4. Short cycles, particularly those of length 4 or 6, can degrade decoding performance by introducing correlations that hinder the propagation of independent information during iterative processing, while larger girth generally improves error-correction capability by enhancing the code's minimum distance. In regular LDPC codes, all variable nodes have the same d_v and all check nodes have the same d_c, leading to , whereas irregular codes allow varying to optimize metrics like or error floor. For illustration, consider a small irregular LDPC code with parameters n=8, m=4 (rate $1/2), and parity-check matrix H = \begin{pmatrix} 1 & 0 & 1 & 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 1 & 1 & 1 \end{pmatrix}. The corresponding Tanner graph has variable nodes V_1 to V_8 connected to check nodes C_1 to C_4 as follows: C_1 to V_1, V_3, V_4; C_2 to V_2, V_3, V_5; C_3 to V_4, V_5, V_6; C_4 to V_1, V_6, V_7, V_8. This graph exhibits irregularity, with column weights ranging from 1 to 2 (e.g., V_7 1, V_3 2), and contains cycles whose lengths influence the code's structural properties.

Historical Development

Early Invention

Low-density parity-check (LDPC) codes were first invented by in his doctoral dissertation at the , completed in 1960. In this work, Gallager proposed these codes as a class of linear defined by sparse parity-check matrices, where each row and column has a low, fixed number of nonzero entries. The motivation stemmed from the desire to create error-correcting codes that could approach the Shannon limit while enabling simpler decoding through the sparsity, which reduces the complexity of processing interdependencies in the parity checks compared to denser matrices. Gallager expanded on these ideas in his seminal 1962 paper, providing a formal definition and analysis of LDPC codes. A key contribution was the theoretical proof that ensembles of random LDPC codes, under maximum-likelihood decoding, exhibit an error exponent matching that of completely random codes, thereby achieving performance approaching as block lengths grow large. Additionally, he introduced simple iterative decoding algorithms based on probabilistic message-passing between variable and check nodes, which approximate the maximum-likelihood solution with significantly lower computational demands. Gallager's LDPC codes represented the earliest known examples of error-correcting codes with decoding thresholds close to the Shannon limit for binary symmetric channels. Initial computer simulations in the early demonstrated their strong performance, with error probabilities dropping exponentially for code rates below at moderate block lengths, outperforming contemporaneous codes like BCH. However, despite these promising results, the codes were largely overlooked for decades due to the era's computational limitations, which made the iterative decoding impractical for applications on available . This neglect persisted until the 1990s, predating the invention of by over three decades.

Modern Rediscovery and Advances

Low-density parity-check (LDPC) codes experienced a significant revival in the late after decades of obscurity following their initial proposal. In , and independently rediscovered Gallager's codes and demonstrated through simulations that LDPC codes, when decoded using , could achieve bit error rates near the limit on binary symmetric and channels for moderate block lengths. This work highlighted the practical potential of iterative decoding, sparking renewed interest in sparse graph-based codes. Concurrently, in , Michael Luby, Michael Mitzenmacher, Amin Shokrollahi, and introduced Tornado codes as a class of highly irregular LDPC codes tailored for efficient correction in scenarios, achieving low encoding and decoding complexity while approaching on binary channels. Key theoretical and design advances followed in the early 2000s, enabling LDPC codes to approach more reliably. In 2001, Tom Richardson, Amin Shokrollahi, and Ruediger Urbanke proposed irregular LDPC codes, where variable and check node are non-uniformly distributed to optimize performance; these codes improved decoding thresholds by up to 1 dB closer to compared to regular counterparts on binary-input symmetric channels. The same year, Richardson and Urbanke developed density , an analytical tool that tracks the of distributions during iterative decoding, allowing precise prediction of code thresholds and guiding the optimization of degree distributions for various channels. These innovations established LDPC codes as capacity-achieving under message-passing decoding, with stability conditions ensuring convergence to low error rates. The practical impact of these rediscoveries materialized through widespread adoption in communication standards. LDPC codes were standardized in the satellite broadcasting system in 2005, providing rates from 1/4 to 9/10 with performance within 0.7 dB of limits at a of 10^{-5}. They became optional in IEEE 802.11n (2009) for high-throughput modes, enhancing reliability at data rates up to 600 Mbps, and were integrated into IEEE 802.11ac/ax for even higher speeds. In New Radio (NR), released in 2018, LDPC codes replaced for data channels, supporting block lengths up to 8448 bits and rates from 1/3 to 8/9 with low latency decoding suitable for enhanced . In the , LDPC research has extended to non-binary fields and quantum settings, alongside hardware optimizations for emerging standards. Non-binary LDPC codes over finite fields like GF(256) have gained traction for short-to-medium block lengths in ultra-reliable low-latency communications, offering 1-2 gains over binary versions due to better minimum distance properties. Quantum LDPC codes, adapted for codes, have advanced with constructions achieving constant relative overhead (e.g., O(1) physical s per logical qubit) while tolerating error rates above 1%, as shown in lifted product constructions. For proposals, enhanced LDPC variants like partially information-coupled designs target extreme reliability (error rates below 10^{-9}) and massive connectivity. Hardware accelerations, particularly FPGA implementations, have enabled real-time decoding at throughputs exceeding 1 Gbps for codes, reducing power consumption by up to 50% through partially parallel architectures.

Code Design and Construction

Matrix Construction Methods

Low-density parity-check (LDPC) codes are defined by their sparse parity-check matrix H, and various methods have been developed to construct H such that the resulting code exhibits strong error-correcting performance. The original construction method, proposed by Robert G. Gallager, generates regular LDPC codes by ensuring fixed column and row weights while maintaining sparsity. In Gallager's approach for a (d_v, d_c)-regular code (where d_v is the column weight and d_c is the row weight), the m rows of H (with m = n(1 - R), n the block length, and R the rate) are partitioned into d_v equal-sized subsets, each containing m/d_v rows. For each subset, exactly one 1 is placed in every column, with positions chosen randomly across the rows in that subset; to achieve the target row weight d_c, this submatrix effectively comprises d_c disjoint permutation matrices summed together, ensuring no multiple 1's in the same row-column pair within the subset. The columns are then randomly permuted within each subset to distribute the 1's evenly and reduce the likelihood of short cycles in the corresponding Tanner graph. This method produces codes with good average performance for large block lengths but can introduce short cycles in smaller codes due to the random placement. A more refined general method is the progressive edge-growth (PEG) algorithm, which constructs the Tanner graph representation of H by incrementally adding edges in a greedy manner to locally maximize the girth (the length of the shortest ). Introduced by , Eleftheriou, and , the PEG algorithm begins with isolated variable and check nodes corresponding to the desired degrees, then adds edges one at a time, starting from the highest-degree nodes. For each new edge connecting a variable node v to an available check node, it selects the check node that results in the longest possible shortest involving the local neighborhood of v, computed via up to a depth related to the target girth. This process continues until all edges are placed, yielding a parity-check matrix with improved distribution compared to purely random methods, particularly for short-to-moderate block lengths. Simulation results demonstrate that PEG-constructed codes achieve thresholds close to density-evolution limits with fewer iterations in decoding. Structured constructions offer deterministic and hardware-efficient alternatives to random methods. Protograph-based LDPC codes start with a small protograph—a compact base bipartite graph with a few variable and check node types—and expand it by replacing each edge with a bundle of parallel edges, typically implemented as permutation matrices to preserve sparsity. A prominent example is the accumulate-repeat-accumulate (ARA) code family, developed by Divsalar, Dolinar, and Thorpe, where the protograph incorporates accumulator nodes for rate control and repetition for diversity, resulting in linear-time encodable LDPC codes with thresholds near the Shannon limit. Quasi-cyclic (QC) LDPC codes further enhance structure by composing H from circulant permutation matrices (cyclic shifts of identity matrices), which facilitate parallel hardware implementations and memory-efficient storage. These are particularly adopted in standards like 5G New Radio (NR), where QC-LDPC codes for the physical downlink shared channel support high-throughput rates from 1/3 to 8/9, with base matrices optimized for low latency and flexibility across lifting sizes. In 5G NR, the parity-check matrix is built from a quasi-cyclic structure with two submatrices for systematic encoding, ensuring minimal short cycles through careful shift selections. Key optimization criteria in matrix construction focus on graph properties that enhance decoding convergence. Avoiding short cycles (girth at least 6 or higher) prevents premature convergence in message-passing decoders by reducing correlations in iterative updates on the graph. Good expansion properties ensure that small sets of variable nodes connect to sufficiently many check nodes, promoting reliable propagation and approaching . Density evolution serves as a primary validation tool, tracking the probability distribution of log-likelihood ratios during decoding iterations in the asymptotic block-length limit to compute the noise beyond which errors vanish; constructions are refined (e.g., via degree distribution optimization or cycle removal) until this threshold meets or exceeds target performance. As an illustrative example, consider step-by-step construction of a small (3,6)-regular LDPC code with block length n=12 (m=6, rate $1/2) using Gallager's method. Divide the 6 rows into d_v=3 subsets, each with 2 rows (subsets A: rows 1-2, B: rows 3-4, C: rows 5-6). For subset A, partition the 12 columns into two groups of 6 (e.g., columns 1-6 to row 1, 7-12 to row 2) and place 1's in those positions, ensuring one 1 per column; this forms a 2×12 submatrix with row weight 6. Randomly permute the columns within subset A to decorrelate positions (e.g., swap columns 3 and 8). Repeat for subset B: assign another partitioning (e.g., columns 1-3 and 7-9 to row 3, 4-6 and 10-12 to row 4), place 1's, and permute (e.g., cycle shift by 2). For subset C, use a different random partitioning and permutation. The full H combines these submatrices vertically, resulting in a sparse matrix where each column has exactly three 1's (one per subset) and each row has six 1's, with the permutations helping to elongate cycles. For instance, after permutations, a partial H might appear as:
H = [
  [1,1,1,1,1,1,0,0,0,0,0,0],  // row 1 ([subset](/page/Subset) A, permuted)
  [0,0,0,0,0,0,1,1,1,1,1,1],  // row 2
  [1,0,1,0,1,0,1,0,1,0,1,0],  // row 3 ([subset](/page/Subset) B, example perm)
  [0,1,0,1,0,1,0,1,0,1,0,1],  // row 4
  [1,1,0,0,1,1,0,0,1,1,0,0],  // row 5 ([subset](/page/Subset) C, example)
  [0,0,1,1,0,0,1,1,0,0,1,1]   // row 6
]
This toy example has some structure for clarity but illustrates the process; in practice, random permutations yield a more irregular placement to better avoid 4-cycles.

Regular and Irregular Codes

Low-density parity-check (LDPC) codes are classified into regular and irregular variants based on the uniformity of degrees in their associated bipartite Tanner graphs. Regular LDPC codes maintain a fixed variable node degree d_v and a fixed check node degree d_c for all nodes, resulting in a parity-check matrix where each column has exactly d_v ones and each row has exactly d_c ones. A canonical example is the (3,6)-regular LDPC code, where variable nodes connect to three checks and checks connect to six variables, promoting balanced message propagation during decoding. This regularity simplifies matrix construction—often via progressive edge growth or cyclic shifts—and reduces decoding complexity, as all nodes follow identical update rules. However, such codes typically yield performance thresholds that lag behind channel capacity by several decibels, limiting their efficiency in capacity-approaching scenarios. Irregular LDPC codes, by contrast, permit varying degrees among variable and check nodes, allowing tailored distributions that enhance overall error-correcting capability. These are defined by the variable degree distribution \lambda(x) = \sum_{i=2}^{d_v^{\max}} \lambda_i x^{i-1}, where \lambda_i denotes the fraction of edges connected to degree-i variable nodes, and the check degree distribution \rho(x) = \sum_{j=2}^{d_c^{\max}} \rho_j x^{j-1}, defined analogously for checks. Optimization of \lambda(x) and \rho(x) occurs through methods like density evolution-guided , which minimizes bit error rates by concentrating low-degree variable nodes for reliable initial messages and higher-degree checks for constraint enforcement. This irregularity produces steeper waterfall performance—rapid error rate drops at moderate signal-to-noise ratios—and suppresses error floors by mitigating sets, outperforming regular codes in both aspects. When comparing the two, irregular LDPC codes achieve error rates substantially closer to limits, often within 0.1 for optimized designs, but incur higher decoding from heterogeneous node processing and larger requirements for schedules. The distinguishing their efficacy is the \epsilon^*, the highest level (e.g., erasure probability on the ) under which density evolution predicts vanishing error probability for infinite block lengths. For the , \epsilon^* solves as the supremum of \epsilon ensuring convergence to zero in the density evolution recursion: x_{\ell+1} = \epsilon \, \lambda \bigl( 1 - \rho(1 - x_\ell) \bigr), with initial condition x_0 = 0, where x_\ell tracks the average erasure probability after \ell iterations. Irregular distributions can push \epsilon^* near the capacity threshold of $1 - R (for rate R), while regular ones plateau lower. Irregular LDPC codes address limitations in outdated regular designs by enabling modern high-throughput applications; for instance, quasi-cyclic irregular constructions are standardized in IEEE 802.11ax (Wi-Fi 6) and IEEE 802.11be (Wi-Fi 7) to deliver robust error correction at multi-gigabit rates over wireless channels.

Encoding Techniques

General Encoding Algorithms

Low-density parity-check (LDPC) codes are linear defined by a sparse parity-check matrix \mathbf{H} of size m \times n, where n is the code length and m = n - k with k being the , assuming \mathbf{H} has full row . Encoding involves generating a codeword \mathbf{c} = [\mathbf{u} \ | \ \mathbf{p}] from an information \mathbf{u} of length k, such that \mathbf{H} \mathbf{c}^T = \mathbf{0}, where \mathbf{p} is the parity of length m. In the systematic form, the parity-check matrix is partitioned as \mathbf{H} = [\mathbf{H}_1 \ | \ \mathbf{H}_2], with \mathbf{H}_1 of size m \times k corresponding to information bits and \mathbf{H}_2 of size m \times m to parity bits. This leads to the \mathbf{H}_1 \mathbf{u}^T + \mathbf{H}_2 \mathbf{p}^T = \mathbf{0}, which is solved for \mathbf{p}^T = -\mathbf{H}_2^{-1} \mathbf{H}_1 \mathbf{u}^T. The of full row in \mathbf{H} ensures the has the desired k and that \mathbf{H}_2 is invertible. A straightforward approach to encoding uses the systematic generator matrix \mathbf{G} = [\mathbf{I}_k \ | \ \mathbf{P}], where \mathbf{P} = \mathbf{H}_2^{-1} \mathbf{H}_1 ( 2 for codes), yielding \mathbf{c} = \mathbf{u} \mathbf{G}. However, since \mathbf{H} is sparse but \mathbf{P} is typically dense, this results in quadratic complexity O(kn), which is inefficient for large n. Direct inversion of \mathbf{H}_2 via also incurs O(m^3) complexity, making it impractical for long codes. To exploit the sparsity of \mathbf{H}, efficient algorithms avoid explicit construction of the dense generator matrix. One seminal method, developed by Richardson and Urbanke, transforms \mathbf{H} into an approximate lower triangular form through column permutations, partitioning it into submatrices where a core block is lower triangular. Parity bits are then computed sequentially via back-substitution, solving the system row by row while leveraging sparsity to minimize operations. This achieves near-linear complexity O(n + g^2), where g is a small gap parameter measuring the approximation quality, often approaching O(n) for well-designed codes. For general sparse \mathbf{H}, the overall complexity scales as O(n d_v), with d_v denoting the average column weight (variable node degree). For structured LDPC codes, such as quasi-cyclic constructions where \mathbf{H} comprises circulant permutation matrices, encoding can be further optimized to strict linear time O(n). These methods use cyclic shifts and precomputed scalar multiplications over finite fields (or modulo 2 for binary cases), avoiding matrix-vector multiplications altogether and enabling hardware-efficient implementations via shift registers.

Practical Encoder Example

To illustrate the encoding process for a low-density parity-check (LDPC) code, consider the (7,4) Hamming code as a simple example, where the parity-check matrix is sparse with a density of approximately 0.57 ones per entry, qualifying it as a trivial LDPC code. The code has length n=7, dimension k=4, and minimum distance d=3, with the parity-check matrix H defined over GF(2) as follows: H = \begin{bmatrix} 1 & 0 & 1 & 0 & 1 & 0 & 1 \\ 0 & 1 & 1 & 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \end{bmatrix} This matrix can be partitioned as H = [H1 | H2], where H1 is the 3×4 submatrix corresponding to the information bits and H2 is the 3×3 submatrix for the parity bits, assuming a systematic encoding where the codeword c = [u | p] with information vector u ∈ GF(2)4 and parity vector p ∈ GF(2)3. For u = [1, 0, 1, 1]T, the parity bits are computed by solving the linear system H2 p = H1 u (mod 2). First, compute the syndrome-like vector s = H1 u (mod 2): H_1 = \begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad s = H_1 u = \begin{bmatrix} 0 \\ 1 \\ 1 \end{bmatrix} \pmod{2}. Next, solve H2 p = s (mod 2), where H_2 = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}. The solution yields p = [0, 1, 0]T, so the codeword is c = [1, 0, 1, 1, 0, 1, 0]. To verify, compute H cT = 0 (mod 2), confirming c lies in the code: H c^T = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} \pmod{2}. The following table summarizes the matrices and vectors in this example:
ComponentValue
H1\begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
H2\begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}
u[1, 0, 1, 1]
p[0, 1, 0]
c[1, 0, 1, 1, 0, 1, 0]
This back-substitution approach for solving the parity equations scales to larger LDPC codes, where sparse matrix techniques like or approximate methods are used for efficiency in practice, though the core remains solving H2 p = s (mod 2).

Decoding Algorithms

Belief Propagation Decoding

(BP) decoding is a soft-decision iterative for low-density parity-check (LDPC) codes, operating on the Tanner graph representation of the code to exchange probabilistic messages between variable and check nodes. It initializes messages from variable nodes based on the channel outputs, typically represented as log-likelihood ratios (LLRs), where the LLR for a bit v_i is L_{ch}(v_i) = \log \frac{P(y_i | v_i = 0)}{P(y_i | v_i = 1)}, with y_i denoting the received signal. This approach leverages the sparse structure of the parity-check matrix to approximate maximum a posteriori decoding efficiently. The proceeds in iterations, alternating between variable-to-check (V2C) and check-to-variable (C2V) message updates until is achieved—such as when all checks are satisfied—or a maximum number of iterations is reached. In the sum-product variant, the core of , V2C messages convey extrinsic information excluding the target check node, while C2V messages enforce constraints. Practical implementations often employ the min-sum approximation to the sum-product , which replaces nonlinear operations with simpler min and sign computations to reduce complexity while maintaining near-optimal performance. Messages are defined in terms of LLRs for . The total LLR at a variable node v is computed as
L_v = L_{ch}(v) + \sum_{c \in N(v)} L_{c \to v},
where N(v) is the set of neighboring check nodes, and L_{c \to v} are incoming C2V messages; the outgoing V2C message to a specific check c' excludes L_{c' \to v} to provide extrinsic information. For the C2V message from check node c to variable v, the sum-product update uses the hyperbolic rule:
L_{c \to v} = 2 \tanh^{-1} \left( \prod_{v' \in N(c) \setminus v} \tanh \left( \frac{L_{v' \to c}}{2} \right) \right),
where N(c) denotes neighboring variables; the min-sum simplifies this to
L_{c \to v} = \prod_{v' \in N(c) \setminus v} \operatorname{sign}(L_{v' \to c}) \cdot \min_{v' \in N(c) \setminus v} |L_{v' \to c}|.
After each iteration, hard decisions are made from the total LLRs, and the process repeats.
The success of BP decoding depends on the channel noise level relative to the code's design , determined via density evolution analysis, which tracks message distributions over iterations assuming a tree-like structure. If the noise (e.g., standard deviation \sigma in AWGN channels) is below this , the bit approaches zero as block length increases; otherwise, decoding fails with positive error probability. For well-designed irregular LDPC codes, thresholds can approach the Shannon limit within 0.06 .

Message Passing and Node Updates

In belief propagation decoding of low-density parity-check (LDPC) codes, messages are represented as log-likelihood ratios (LLRs), where a positive value indicates a higher probability of the bit being 0 and a negative value indicates 1. The variable update computes the outgoing message to a connected by adding the LLR to the sum of incoming LLRs from all other connected , excluding the recipient . This rule follows from the independence assumption in the sum-product algorithm and is exact for tree-structured graphs. The update equation is L_{v \to c} = L_{\text{ch}} + \sum_{c' \in \mathcal{N}(v) \setminus c} L_{c' \to v}, where \mathcal{N}(v) denotes the neighboring check nodes of variable node v, L_{\text{ch}} is the channel LLR, and the sum excludes the message to check node c. The check node update enforces the parity constraint and is more computationally intensive. The exact sum-product rule uses the product of transformed incoming messages: \tanh\left( \frac{L_{c \to v}}{2} \right) = \prod_{v' \in \mathcal{N}(c) \setminus v} \tanh\left( \frac{L_{v' \to c}}{2} \right), which is solved for the outgoing LLR as L_{c \to v} = 2 \tanh^{-1} \left( \prod \tanh(\cdot) \right), where \mathcal{N}(c) are the neighboring variable nodes of check node c. This formulation arises from the tanh rule for multiplying probabilities under the even-parity assumption. For hardware implementations, the hyperbolic functions are expensive, so approximations are used, such as the min-sum algorithm, which sets the magnitude of L_{c \to v} to the minimum absolute value of incoming LLRs (excluding the recipient) and the sign to the product of incoming signs. To reduce the performance gap from this approximation, the offset min-sum variant subtracts a fixed or adaptive offset from the minimum magnitude, improving accuracy at low complexity. Message passing schedules determine the order of updates and affect speed. The traditional flooding schedule performs updates: all variable-to-check messages are computed simultaneously using the prior iteration's check-to-variable messages, followed by all check-to-variable updates. This nature suits but requires more iterations for . Layered (or horizontal/vertical) scheduling processes check nodes sequentially, immediately updating affected variable nodes after each check node computation and using the latest values. Layered scheduling accelerates , often requiring roughly half the iterations of flooding while maintaining similar . To illustrate, consider a small example using the (7,4) , whose Tanner graph has 7 variable nodes and 3 check nodes (simplified for clarity, assuming with initial received vector [0, ?, 0, ?, 0, ?, 1], where ? denotes erasures with LLR 0). In 1 (flooding schedule), check node 1 (connecting variables 1,2,4) receives messages [0, 0, 0] (channel values or prior erasures); it outputs erasure to variable 2. Variable 2 updates to 0 using this and other incoming erasures. Check node 2 (variables 1,2,3,5) then outputs 0 to variable 3, resolving it. In 2, check node 3 (variables 3,4,5,6,7) receives updated non-erasures and outputs 1 to variable 6, resolving the last erasure. By 3, all variables converge to [0, 0, 0, 0, 0, 1, 1], satisfying all checks. Layered scheduling would resolve this in fewer global iterations by propagating updates sequentially.

Performance and Analysis

Error Correction Capabilities

Low-density parity-check (LDPC) codes exhibit strong error correction capabilities, particularly when analyzed over the (AWGN) channel, where their performance is evaluated through determined by density evolution techniques. Density evolution tracks the evolution of probability distributions of messages during iterative decoding, allowing the identification of the noise below which the approaches zero as block length increases. For regular LDPC codes, are limited, but irregular LDPC codes, with varying degrees in the Tanner graph, achieve significantly better performance by optimizing degree distributions to approach more closely. A seminal of irregular LDPC codes for 1/2 achieves a within 0.0045 of the Shannon limit on the binary-input AWGN channel, demonstrating near-capacity operation under decoding. Despite these asymptotic advantages, LDPC codes can suffer from an error floor at high signal-to-noise ratios (SNR), where the (BER) or frame error rate (FER) fails to decrease further despite increasing SNR. This phenomenon arises primarily from trapping sets—subsets of variable nodes with specific connectivity in the graph that lead to persistent decoding errors under message-passing algorithms—and pseudo-codewords, which are non-zero codewords in the that confound relaxations of decoding. Optimized code constructions mitigate error floors by minimizing the number and impact of small trapping sets through techniques such as protograph optimization or quasi-cyclic structures that avoid short cycles and low-weight patterns. Simulations of LDPC codes over AWGN channels reveal BER and FER curves that drop sharply with increasing SNR in the waterfall region, approaching the Shannon capacity limit for sufficiently large block lengths. For instance, rate-1/2 irregular LDPC codes with block lengths around 10^5 bits achieve BER below 10^{-5} at Eb/N0 values within 0.1 of capacity, with the gap narrowing as length grows. These simulated performances under decoding closely approach maximum-likelihood (ML) decoding bounds, which provide the theoretical error probability limit, especially for ensembles with girth-optimized graphs that reduce short cycles.

Comparison with Turbo Codes

Low-density parity-check (LDPC) codes and represent two prominent classes of iterative error-correcting codes that achieve near-capacity performance on (AWGN) channels, but they differ fundamentally in structure. LDPC codes are defined by a sparse consisting of variable nodes and check nodes, enabling global across the entire codeword during decoding. In contrast, employ a parallel concatenation of two or more systematic convolutional encoders separated by an interleaver, with decoding performed via iterative exchanges between component decoders using the BCJR algorithm. This structural distinction allows LDPC codes to leverage a unified for the entire parity-check matrix, while rely on localized processing within smaller constituent codes. In terms of performance, both code families approach the Shannon limit closely, but LDPC codes often exhibit superior thresholds, particularly for longer block lengths and higher code rates. For instance, optimized irregular LDPC codes can achieve bit error rates (BER) within 0.04 dB of at BER = 10^{-6} for block lengths around 10^7, surpassing ' typical 1-2 dB gap at moderate lengths (10^3 to 10^4). Turbo codes, introduced in 1993, initially demonstrated remarkable performance within 0.7 dB of at rate 1/2, sparking interest in iterative decoding, but LDPC codes—rediscovered in the mid-1990s—have since shown advantages in simulations, with threshold gaps 0.1-0.3 dB better than for rates like 1/2 and 2/3 under AWGN conditions. However, turbo codes maintain strong performance at low rates (e.g., 1/3 to 1/6), where LDPC codes may require more complex designs to match. Practical trade-offs highlight a historical rivalry, with dominating early standards due to their invention in 1993 and simpler initial implementation, while LDPC codes gained traction post-1998 for their scalability. LDPC decoding via is highly parallelizable, supporting linear-time complexity and avoiding the error floors common in at high signal-to-noise ratios (SNR), where turbo minimum distances are limited by the interleaver. Conversely, offer lower through fewer iterations (typically 10-20) and constant complexity, but at the cost of higher serial processing and potential error floors around word error rates (WER) of 10^{-5} to 10^{-6}. For high-rate scenarios (e.g., 3/4 or 7/8), LDPC codes provide better performance and 5-13% complexity reduction compared to , making them preferable in modern systems like and deep-space communications. At moderate rates like 1/2, edge out in BER performance but with increased computational demands.

Applications and Implementations

Communication Systems

Low-density parity-check (LDPC) codes play a pivotal role in modern communication systems, particularly in broadcasting, wireless local area networks (WLAN), and cellular networks, where they enable reliable high-speed data transmission over noisy s. In communications, LDPC codes were first standardized in the () specification in 2005, marking the initial adoption of these codes in a major broadcasting standard. This implementation pairs LDPC inner codes with Bose-Chaudhuri-Hocquenghem (BCH) outer codes to achieve near-Shannon-limit performance, supporting () for and data services. The extension, introduced in 2014, further enhances LDPC capabilities by adding support for very low (VL-SNR) modes down to -10 dB, enabling applications in challenging environments such as mobile maritime and aeronautical links. A key feature is adaptive coding and (ACM), which dynamically adjusts LDPC code rates—from 1/4 to 9/10—and schemes (e.g., QPSK to 256-APSK) on a frame-by-frame basis to optimize throughput under varying conditions, thereby improving by up to 30% compared to constant coding modes. In wireless local area networks, LDPC codes are integral to the IEEE 802.11 standards, starting with the 802.11n amendment in 2009, which introduced them as an optional FEC scheme alongside convolutional codes to boost data rates in the 2.4 GHz and 5 GHz bands. Subsequent standards, IEEE 802.11ac (2013) and 802.11ax (2019), mandate LDPC for high-throughput operations, supporting code rates of 1/2, 2/3, 3/4, and 5/6 with block lengths of 648, 1296, and 1944 bits to accommodate MIMO configurations and wider channels up to 160 MHz. These codes enable peak throughputs exceeding 10 Gbps in 802.11ax by providing superior error correction at high signal-to-noise ratios, reducing packet error rates and enhancing reliability in dense user environments like enterprise WLANs. The quasi-cyclic structure of these LDPC codes facilitates efficient hardware implementations, contributing to low-latency decoding suitable for real-time applications such as video streaming. The fifth-generation (5G) New Radio (NR) standard, specified in 3GPP Release 15 and released in 2018, extensively employs LDPC codes for data channels in both downlink and uplink transmissions, specifically for the Physical Downlink Shared Channel (PDSCH) and Physical Uplink Shared Channel (PUSCH). LDPC encoding uses two base graphs to handle varying sizes, supporting code rates up to 8/9 and sizes up to 8448 bits, which allows for high-throughput operation with spectral efficiencies approaching 6 bits per symbol when paired with high-order modulations like 1024-QAM. This configuration delivers benefits such as multi-Gbps throughputs and reduced decoding latency—typically under 1 ms for short blocks—essential for ultra-reliable low-latency communications (URLLC) in industrial and vehicular networks. In the uplink, LDPC handles user data while polar codes manage control information, forming a hybrid scheme that balances complexity and performance; for instance, LDPC processes large transport blocks efficiently, whereas polar codes suit shorter control s. Enhancements in 3GPP Release 17 (2022) further optimize LDPC through improved rate matching for multi-slot processing, advanced uplink control information (UCI) multiplexing, and support for higher modulations, enhancing coverage and efficiency in non-terrestrial networks and reduced-capability devices.

Data Storage and Other Uses

Low-density parity-check (LDPC) codes play a critical role in modern systems, where they provide powerful error correction to combat , defects, and wear in high-density . In hard disk drives (HDDs), LDPC codes are integrated into magnetic recording channels, often combined with partial response signaling and iterative decoding to achieve substantial coding gains. For instance, systems employing LDPC codes with rates around 0.86–0.87 and block lengths of approximately 4300–4400 bits, decoded using log-belief propagation algorithms, deliver a 5.9 gain over uncoded extended partial response class 4 (EPR4) channels at a (BER) of $10^{-5}. This performance stems from the codes' sparse parity-check matrices, which enable efficient iterative message-passing decoding tailored to the bursty and prevalent in perpendicular magnetic recording. In solid-state drives (SSDs) based on NAND flash memory, LDPC codes have emerged as the predominant error-correcting code (ECC) mechanism, supplanting earlier Bose-Chaudhuri-Hocquenghem (BCH) codes to address escalating raw bit error rates (RBER) in multi-level cell (MLC) and triple-level cell (TLC) technologies. These codes support soft-decision decoding, leveraging log-likelihood ratios from read retries and voltage distributions to correct errors that exceed 50 bits per 1 KB sector in advanced nodes. Implementations often incorporate optimizations like layered decoding and early termination to balance latency and throughput, achieving up to 10–20% improvements in uncorrectable BER while maintaining read/write speeds above 500 MB/s in enterprise SSDs. Concatenated LDPC structures further enhance reliability in these environments, offering about 0.5 dB coding gain over standalone LDPC at low BERs. Optical data storage systems, such as holographic media, also utilize LDPC codes for their capacity to approach under multiplicative noise and defects. These codes, with irregular degree distributions optimized for symmetric channels, outperform Reed-Solomon codes by enabling higher densities without excessive decoding complexity. Beyond traditional media, LDPC codes find application in distributed systems, where they facilitate efficient node repair and data reconstruction with minimal bandwidth overhead. In such architectures, properly designed LDPC codes reduce repair bandwidth compared to Reed-Solomon codes while providing superior reliability, as measured by mean time to (MTTDL), through sparse factor graphs that support recovery from a subset of nodes. Emerging uses include DNA-based , where or LDPC variants correct sequencing s and erasures, achieving frame rates below $10^{-15} with turbo-like decoders adapted to asymmetric channels. Additionally, in (ReRAM) arrays, across-array LDPC designs improve bit rates by 1–2 orders of magnitude over intra-array coding, enhancing overall system endurance.

References

  1. [1]
    [PDF] Low-Density Parity-Check Codes Robert G. Gallager 1963
    In this section an ensemble of low-density parity-check codes will be defined, and theorems similar to Theorems 2.1 and 2.2 will be proved. Then a new ...
  2. [2]
  3. [3]
    [PDF] LDPC Codes: An Introduction - CMU School of Computer Science
    Apr 2, 2003 · LDPC codes are a hot topic in coding theory, with fast encoding/decoding, and are designed to recover codewords in the face of noise.
  4. [4]
    Design of capacity-approaching irregular low-density parity-check ...
    Feb 28, 2001 · Abstract: We design low-density parity-check (LDPC) codes that perform at rates extremely close to the Shannon capacity. The codes are built ...
  5. [5]
    [PDF] An Introduction to Low-Density Parity Check Codes
    Aug 10, 2009 · Definition: A regular LDPC code is one for which the m×n parity check matrix of interest has wc one's in every column and wr ones in every row.
  6. [6]
    [PDF] Structured low-density parity-check codes
    These graphs are the Tanner graphs associated with the parity-check matrix H of low density parity-check (LDPC) codes or Gallager codes. Larger girth improves ...
  7. [7]
    The Basics of Low-Density Parity Check Codes - LNTwww
    Apr 20, 2023 · The "Low–density Parity–check Codes" (in short: »LDPC codes«) were invented as early as the early 1960s and date back to the dissertation [Gal63] ...
  8. [8]
    Low density parity check codes - DSpace@MIT
    Low density parity check codes. Author(s). Gallager, Robert G. Thumbnail. DownloadFull printable version (7.711Mb). Advisor. Peter Elias. Terms of use. M.I.T. ...
  9. [9]
    [PDF] LDPC Codes: An Introduction - Switzernet
    Apr 2, 2003 · LDPC codes are one of the hottest topics in coding theory today. Originally invented in the early 1960's, they have experienced an amazing ...<|control11|><|separator|>
  10. [10]
  11. [11]
    [PDF] Construction of LDPC codes
    Jul 1, 2009 · Original construction used by Gallager in 1963. To construct a parity-check matrix H with column weight wc and row.
  12. [12]
    [PDF] Regular and Irregular Progressive Edge-Growth Tanner Graphs
    Simulation results show that the PEG algorithm is a powerful algorithm for generating good regular and irregular LDPC codes of short and moderate block lengths.
  13. [13]
  14. [14]
    Quasi-cyclic LDPC (QC-LDPC) code - Error Correction Zoo
    LDPC code that can be put into quasi-cyclic form. Its parity check matrix can be put into the form of a block matrix consisting of either circulant permutation ...
  15. [15]
    Low-density parity-check codes | IEEE Journals & Magazine
    A low-density parity-check code is a code specified by a parity-check matrix with the following properties: each column contains a small fixed number j \geq 3 ...
  16. [16]
    [PDF] HIGH THROUGHPUT OPEN-SOURCE IMPLEMENTATION OF Wi-Fi ...
    Jun 23, 2023 · For practical irregular LDPC codes, the g(m) and f(n) are not constant over m and n, and their average and maximum values are of interest.
  17. [17]
    Request Rejected
    **Summary:**
  18. [18]
    [PDF] Introduction to LDPC Codes - CMRR STAR
    Parity-check matrix is not unique. • Any set of vectors that span the rowspace generated by H can serve as the rows of a parity check matrix (including.
  19. [19]
    [PDF] Hamming codes and some theory of linear error correcting codes
    Mar 21, 2003 · 2 such that P v = 0 for the parity check matrix P. The parity check matrix for the [7,4] Hamming code is,. P =.. 1 0 1 0 1 0 1. 0 1 1 0 0 ...
  20. [20]
    [PDF] Error–correcting codes with linear algebra
    Aug 24, 2012 · We focus on what is known as the “(7,4) Hamming code”, which takes each group of four bits of the sender's message and encodes it as seven bits ...
  21. [21]
    [PDF] Hamming Codes
    Denote by L3 the check matrix that we have been using to describe the [7, 4]. Hamming code: L3 =.. 0 0 0 1 1 1 1. 0 1 1 0 0 1 1. 1 0 1 0 1 0 1... It has ...
  22. [22]
    [PDF] ERROR CONTROL CODING | Fundamentals and Applications
    LIN, SHU. Error control coding. (Prentice-Hall computer applications in electrical engineering series). Includes bibliographical references and index ...
  23. [23]
    Reduced-complexity decoding of LDPC codes - IEEE Xplore
    Reduced-complexity decoding of LDPC codes. Abstract: Various log-likelihood-ratio-based belief-propagation (LLR-BP) decoding algorithms and their reduced- ...
  24. [24]
    [PDF] Lower-Complexity Layered Belief-Propagation Decoding of LDPC ...
    Also, several works show that sequen- tial schedules, such as Layered Belief-Propagation (LBP), converge faster than the traditional flooding schedule. In this ...
  25. [25]
  26. [26]
    [PDF] Error floors of LDPC codes
    Relatively small trapping sets in the graph give rise to failure events that dominate performance in the error floor region. The size of the trapping set is ...
  27. [27]
    [PDF] Capacity-approaching codes
    We use the standard sum-product algorithm, which alternates between sum-product updates of all left nodes and all right nodes. We track the progress of the ...<|control11|><|separator|>
  28. [28]
    [PDF] Evaluation of Complexity Versus Performance for Turbo Code and ...
    It is concluded that the turbo code has better performance in moderate code rate (Rate 1/2) while the LDPC is recommended for higher code rates (3/4,7/8) ...
  29. [29]
    Design and Standardization of Low-Density Parity-Check Codes for ...
    LDPC codes have performance and complexity advantages over turbo codes at high code rates, but turbo codes are currently still the best solution for the lower ...
  30. [30]
    [PDF] EN 302 307 - V1.1.2 - Digital Video Broadcasting (DVB) - ETSI
    DVB-S2 can provide Constant Coding and Modulation (CCM), or Adaptive Coding and Modulation (ACM). In this latter case, a single satellite receiving station ...
  31. [31]
    [PDF] EN 302 307-2 - V1.3.1 - Digital Video Broadcasting (DVB) - ETSI
    The present document can be downloaded from: http://www.etsi.org/standards-search. The present document may be made available in electronic versions and/or ...
  32. [32]
  33. [33]
    Creonic IEEE 802.11 (WiFi) LDPC Decoder and Encoder IP Core
    Features · ​Compliant with IEEE 802.11n, IEEE 802.11ac, IEEE 802.11ax · Support for all LDPC code rates (1/2, 2/3, 3/4, 5/6) · Support for all LDPC block lengths ( ...
  34. [34]
    [PDF] ETSI TS 138 212 V17.1.0 (2022-04)
    TS 138 212 is a technical specification for 5G NR, concerning multiplexing and channel coding, produced by ETSI 3GPP.
  35. [35]
  36. [36]
    Low density parity check codes for magnetic recording channels
    Aug 6, 2025 · We propose a system for magnetic recording, using a low density parity check (LDPC) code as the error-correcting-code, in conjunction with a ...
  37. [37]
    Applications of low-density parity-check codes to magnetic recording channels
    Insufficient relevant content. The provided URL (https://ieeexplore.ieee.org/document/924875) does not display accessible content for extraction or summarization due to access restrictions or lack of visible text in the provided snippet. No verifiable facts or details about LDPC codes, magnetic recording channels, design, performance, or suitability for storage can be extracted.
  38. [38]
    LDPC-in-SSD: Making Advanced Error Correction Codes Work ...
    It is highly desirable to deploy a much more powerful ECC, such as low-density parity-check (LDPC) code, to significantly improve the reliability of SSDs.
  39. [39]
    LDPCin-SSD: Making advanced error correction codes work ...
    Low Density Parity Check Code (LDPC) is the most popular Error Correction Code (ECC) for current NAND flash memory controllers. Next generation flash memory, ...
  40. [40]
    A soft decodable concatenated LDPC code
    **Summary of LDPC Codes in Data Storage Systems:**
  41. [41]
    Low density parity check (LDPC) codes for optical data storage
    Insufficient relevant content. The provided URL (https://ieeexplore.ieee.org/document/1028670) points to an IEEE Xplore page, but no accessible content is available for extraction or summarization based on the input.
  42. [42]
    [1710.05615] LDPC Code Design for Distributed Storage - arXiv
    Oct 16, 2017 · This paper shows that properly designed low-density parity-check (LDPC) codes can substantially reduce the amount of required block downloads for repair.
  43. [43]
    LDPC Codes for Portable DNA Storage - IEEE Xplore
    In this paper, we design binary LDPC codes with a turbo-like decoder for the DNA storage channel.Missing: applications | Show results with:applications
  44. [44]