Check Node
Understanding Check Node
An LDPC code is fully described by its sparse parity-check matrix H, where each row corresponds to one check node and each column to one variable node (coded bit). A "1" at position (i, j) means check node i is connected to variable node j in the Tanner graph, and the parity constraint requires that the XOR of all variable nodes connected to check node i equals zero. The sparsity of H (typically 3 to 20 ones per row) is what makes iterative decoding practical: each check node processes only a small subset of the total codeword bits.
During decoding, messages flow between check nodes and variable nodes in alternating half-iterations. The check-to-variable message from check node c to variable node v conveys the check node's belief about bit v, computed from all other variable nodes connected to c. In the sum-product algorithm (optimal for memoryless channels), this involves products of hyperbolic tangent values. In the min-sum approximation (dominant in hardware), the check node output magnitude is simply the minimum of the incoming LLR magnitudes, and the sign is the product of the incoming signs. This approximation reduces gate count by 40 to 60% with only 0.1 to 0.3 dB performance loss, which normalized or offset min-sum variants can partially recover.
Check Node Message Computation
Lc→v = 2 atanh(Πv'≠v tanh(Lv'→c / 2))
Min-Sum (approximation):
|Lc→v| = minv'≠v |Lv'→c|
sign(Lc→v) = Πv'≠v sign(Lv'→c)
Normalized Min-Sum:
|Lc→v| = α × minv'≠v |Lv'→c| (α = 0.75 to 0.875)
Where Lv'→c = incoming LLR from variable node v' to check node c, and the product/min runs over all variable nodes connected to c except the target v.
LDPC Check Node Parameters by Standard
| Standard | Base Graph | Check Rows | Max Degree | Decoding Algorithm |
|---|---|---|---|---|
| 5G NR | BG1 | 46 | 19 | Layered NMS |
| 5G NR | BG2 | 42 | 10 | Layered NMS |
| Wi-Fi 6/7 | 802.11ax/be | 12 to 24 | 7 to 8 | Flooding/Layered MS |
| DVB-S2X | ETSI | varies | 30+ | Offset Min-Sum |
| 10G-PON | ITU-T G.9807 | varies | 6 | Min-Sum |
Frequently Asked Questions
What is the difference between a check node and a variable node?
Variable nodes represent coded bits (columns of H) and collect channel LLRs plus extrinsic messages from check nodes. Check nodes represent parity-check equations (rows of H) and enforce the constraint that the XOR of all connected bits equals zero. Variable nodes pass updated total LLRs to check nodes, which compute extrinsic reliability and send it back. The iterative exchange converges toward the correct codeword over 5 to 25 iterations.
How does the min-sum algorithm simplify check node processing?
The exact sum-product algorithm uses tanh/atanh functions requiring lookup tables or expensive multiplications. Min-sum approximates the output by taking the minimum absolute LLR among incoming messages and multiplying by the product of signs. This replaces transcendental operations with comparisons and XORs, reducing hardware complexity by 40 to 60% with only 0.1 to 0.3 dB loss. Normalized min-sum (scaling by 0.75 to 0.875) recovers most of the gap.
How many check nodes does a 5G NR LDPC code have?
5G NR Base Graph 1 has 46 check rows with lifting sizes Z from 2 to 384, supporting up to 17,664 check nodes for the largest code block. BG2 has 42 rows for shorter blocks. Each check node connects to 3 to 19 variable nodes depending on row position, with an average degree around 8 for BG1. Modern baseband chips process all check nodes in parallel using layered scheduling, completing one iteration in a single clock cycle per layer.