Code Design via EXIT Matching

Codes That Fit the Curve

The EXIT chart has so far been a DIAGNOSTIC tool: given a labelling and a code, does the tunnel open at the target SNR? The last step is to turn it into a SYNTHETIC tool: given a labelling at a target SNR, build the code that opens the tunnel at the highest possible rate. This is EXIT matching, and it is the reason EXIT charts took over LDPC-BICM design in the mid-2000s.

The idea is simple. The demapper curve is a fixed shape determined by the constellation, the labelling, and the target SNR. The decoder curve, by contrast, is a DESIGN KNOB: for an irregular LDPC code, the degree distribution {Ξ»i},{ρj}\{\lambda_i\}, \{\rho_j\} reshapes the decoder EXIT curve. The design problem is: pick the degree distribution so the inverted decoder curve tucks just under the demapper curve at every IA∈[0,1)I_A \in [0, 1), with the smallest possible tunnel (largest possible rate). The constraint is a FEASIBILITY condition (tunnel open); the objective is maximum code rate subject to it. This is a linear programme over the degree-distribution polytope β€” the cornerstone of modern LDPC design.

The golden thread through the chapter comes into focus here. BICM gave us the architecture (code + interleaver + modulator); BICM-ID gave us the iterative receiver; EXIT matching tells us, given those choices, WHICH BINARY CODE TO PUT IN THE ARCHITECTURE. That is a design tool, not just an analysis tool, and it is the reason that modern capacity-approaching systems (LDPC-plus-LDPC over 2048- apsk for DVB-S2X, LDPC-plus-64QAM for 5G NR-URLLC) exist at all.

Definition:

LDPC Degree Profile (Edge Perspective)

For an LDPC code, the variable-node degree distribution from the edge perspective is Ξ»(x)β‰œβˆ‘i=2dvΞ»ixiβˆ’1,βˆ‘iΞ»i=1,Ξ»iβ‰₯0,\lambda(x) \triangleq \sum_{i = 2}^{d_v} \lambda_i x^{i - 1}, \quad \sum_i \lambda_i = 1, \quad \lambda_i \geq 0, where Ξ»i\lambda_i is the fraction of EDGES incident to a variable node of degree ii. Analogously, ρ(x)β‰œβˆ‘j=2dcρjxjβˆ’1,βˆ‘jρj=1,\rho(x) \triangleq \sum_{j = 2}^{d_c} \rho_j x^{j - 1}, \quad \sum_j \rho_j = 1, is the check-node degree distribution. The design rate of a code with profile (Ξ»,ρ)(\lambda, \rho) is R(Ξ»,ρ)=1βˆ’βˆ«01ρ(x)dx∫01Ξ»(x)dx=1βˆ’βˆ‘jρj/jβˆ‘iΞ»i/i.R(\lambda, \rho) = 1 - \frac{\int_0^1 \rho(x) dx}{\int_0^1 \lambda(x) dx} = 1 - \frac{\sum_j \rho_j / j}{\sum_i \lambda_i / i}. Under the Gaussian-LLR approximation, the decoder EXIT curve factorises as Tdec(IA,Ξ»,ρ)=βˆ‘iΞ»iβ‹…J ⁣((iβˆ’1)β‹…(Jβˆ’1(1βˆ’rc(IA,ρ)))2+Οƒch2),T_{\rm dec}(I_A, \lambda, \rho) = \sum_i \lambda_i \cdot J\!\left( \sqrt{(i - 1) \cdot (J^{-1}(1 - r_c(I_A, \rho)))^2 + \sigma_{\rm ch}^2}\right), where rc(IA,ρ)=βˆ‘jρjJ((jβˆ’1)Jβˆ’1(IA))r_c(I_A, \rho) = \sum_j \rho_j J(\sqrt{(j-1)} J^{-1}(I_A)) is the check-node sub-curve. The decoder curve is therefore a Ξ»\lambda-weighted sum of shifted J-function evaluations, which is what makes the design problem linear in Ξ»\lambda.

The factorisation above is Gaussian-LLR's gift: the messy densities of belief propagation collapse to a linear combination of J-function values. For BICM-ID, the channel LLR enters only through Οƒch2\sigma_{\rm ch}^2, which is replaced by the a-priori variance Jβˆ’1(IAdem)2J^{-1}(I_A^{\rm dem})^2 where IAdemI_A^{\rm dem} is the MI DELIVERED BY THE DEMAPPER. The LDPC-BICM-ID decoder curve is therefore a linear function of Ξ»i\lambda_i's with coefficients that depend on the demapper curve β€” exactly the structure needed for linear programming.

,

Definition:

EXIT-Matched Code and Matched Rate Rβˆ—R^*

Fix a labelling ΞΌ\mu and operating SNR Ξ³\gamma. Let Tdem(IA,Ξ³)T_{\rm dem}(I_A, \gamma) be the demapper EXIT curve. A code with degree profile (Ξ»,ρ)(\lambda, \rho) is EXIT-matched to the demapper at Ξ³\gamma if the inverted decoder curve lies below TdemT_{\rm dem} on [0,1][0, 1]: Tdecβˆ’1(IE,Ξ»,ρ)≀Tdemβˆ’1(IE,Ξ³)forΒ allΒ IE∈[0,1].T_{\rm dec}^{-1}(I_E, \lambda, \rho) \leq T_{\rm dem}^{-1}(I_E, \gamma) \quad \text{for all } I_E \in [0, 1]. Equivalently, at every IAI_A the decoder's extrinsic MI exceeds what the demapper needs, so the tunnel is open. The matched rate Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) is Rβˆ—(Ξ³,ΞΌ)β‰œsup⁑{R(Ξ»,ρ):(Ξ»,ρ)Β isΒ EXIT-matchedΒ atΒ (Ξ³,ΞΌ)},R^*(\gamma, \mu) \triangleq \sup\{R(\lambda, \rho) : (\lambda, \rho) \text{ is EXIT-matched at } (\gamma, \mu)\}, the largest code rate achievable with an EXIT-matched LDPC at this SNR and labelling.

Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) is a BICM-ID-specific capacity-like quantity. It is upper-bounded by the BICM capacity CBICM(Ξ³,ΞΌ)C_{\rm BICM}(\gamma, \mu) (that is the Gallager-ML bound on achievable rate with any code), and lower-bounded by what a specific EXIT-matched LDPC achieves. The gap between Rβˆ—R^* and CBICMC_{\rm BICM} is the "Gaussian-LLR penalty" β€” typically 0.05–0.15 bits/channel use, which translates to 0.1–0.3 dB of SNR.

Theorem: EXIT Matching Maximises the BICM-ID Rate

Under the Gaussian-LLR assumption, the matched rate Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) is achieved by the degree profile (Ξ»βˆ—,Οβˆ—)(\lambda^*, \rho^*) that solves max⁑λ,ρR(Ξ»,ρ)=1βˆ’βˆ‘jρj/jβˆ‘iΞ»i/is.t.βˆ‘iΞ»iβ‹…J ⁣((iβˆ’1)β‹…Jβˆ’1(IAdem))β‰₯IEdec(IA)βˆ€IA∈[0,1],βˆ‘iΞ»i=1,βˆ‘jρj=1,Ξ»i,ρjβ‰₯0,\begin{aligned} \max_{\lambda, \rho} \quad & R(\lambda, \rho) = 1 - \frac{\sum_j \rho_j/j}{\sum_i \lambda_i/i} \\ \text{s.t.} \quad & \sum_i \lambda_i \cdot J\!\left(\sqrt{(i-1)} \cdot J^{-1}(I_A^{\rm dem}) \right) \geq I_E^{\rm dec}(I_A) \quad \forall I_A \in [0, 1], \\ & \sum_i \lambda_i = 1, \sum_j \rho_j = 1, \quad \lambda_i, \rho_j \geq 0, \end{aligned} where the constraint encodes EXIT matching at every IAI_A. For fixed ρ\rho, the optimisation is a linear programme in Ξ»\lambda; alternating minimisation over ρ\rho and Ξ»\lambda converges rapidly (3–5 outer iterations). The resulting Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) is monotonically increasing in Ξ³\gamma and is the OPERATIONAL capacity of BICM-ID under the Gaussian-LLR model.

A code with TOO MUCH redundancy has an inverted decoder curve that sits far below the demapper β€” the tunnel is wide, the iteration converges fast, but the rate is low. A code with TOO LITTLE redundancy has an inverted decoder curve that peeks above the demapper somewhere β€” the tunnel is closed, BER does not go to zero. EXIT matching threads the needle: the INVERTED decoder curve sits EXACTLY at the demapper curve, leaving an infinitesimal tunnel that still permits convergence. That is the maximum rate compatible with open-tunnel convergence β€” the matched rate.

,

EXIT-Matched LDPC Degree Profile Design

Complexity: Dominant cost is the LP solve, O(Kβ‹…dv)O(K \cdot d_v) constraints and dvd_v variables, polynomial in both. Outer loop over ρ\rho: ∼10\sim 10 candidate profiles. Total: seconds to minutes on a desktop CPU for typical K=100K = 100, dv=30d_v = 30.
Input: demapper curve T_dem(I_A, gamma) on grid {I_A^(k)}, k = 1, ..., K
maximum variable-node degree d_v_max
check-node degree distribution family {rho(d_c)}
EXIT-matching margin epsilon > 0
Output: optimal variable-node edge distribution lambda*
optimal check-node distribution rho*
maximum achievable rate R*
# ---- Step 1: Precompute J-function table ----
for sigma in sigma_grid:
J_table[sigma] = numerical_mutual_info_gaussian_llr(sigma)
# ---- Step 2: Outer loop over rho ----
R_best = 0
for rho_candidate in rho_family:
# Check-node sub-curve for this rho
for k in 1, ..., K:
I_A_k = grid[k]
sigma_A_k = J_inverse(I_A_k)
r_c[k] = sum_j rho_candidate_j * J(sqrt(j - 1) * sigma_A_k)
# ---- Step 3: Inner LP over lambda ----
# Variables: lambda_2, lambda_3, ..., lambda_{d_v_max}
# Objective: min sum_i lambda_i / i (equivalent to max rate)
# Constraints:
# sum_i lambda_i * J(sqrt(i - 1) * J^{-1}(1 - r_c[k])) >= T_dem(I_A_k) + epsilon
# for k = 1, ..., K
# sum_i lambda_i = 1
# lambda_i >= 0
(lambda_star, obj) = solve_LP(objective, constraints)
if LP_infeasible:
continue
# ---- Step 4: Compute rate ----
ell = sum_i lambda_star[i] / i
r = sum_j rho_candidate_j / j
R = 1 - r / ell
if R > R_best:
R_best = R
lambda_best = lambda_star
rho_best = rho_candidate
return lambda_best, rho_best, R_best

Production implementations (e.g., the EXIT-chart toolbox at ten Brink's group) use sparse LP solvers and include additional constraints for minimum girth, stability at IA=0I_A = 0 (avoid flat decoder at the origin), and maximum Ξ»2\lambda_2 (to preserve the error floor). The academic LP gives an upper bound; a small degradation from finite block length and implementation constraints brings the achievable rate to about Rβˆ—βˆ’0.02R^* - 0.02 bits/channel use.

Matched Rate Rβˆ—(SNR)R^*(\mathrm{SNR}) for EXIT-Matched LDPC

For each candidate SNR, compute Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) by the EXIT- matching LP. The resulting curve Rβˆ—(Ξ³)R^*(\gamma) is plotted alongside the BICM-ID capacity CBICM(Ξ³,ΞΌ)C_{\rm BICM}(\gamma, \mu) (which is the upper bound, attainable by any code) and the one-shot BICM capacity CBICM(noβˆ’iter)(Ξ³,ΞΌ)C_{\rm BICM}^{\rm (no-iter)}(\gamma, \mu) (which the one-shot receiver can achieve). The gap CBICMβˆ’Rβˆ—C_{\rm BICM} - R^* is the Gaussian-LLR penalty β€” typically 0.05–0.1 bits. The gap Rβˆ—βˆ’CBICM(noβˆ’iter)R^* - C_{\rm BICM}^{\rm (no-iter)} is the value added by iterative decoding β€” up to 0.5 bits/channel use at low SNR for SP labelling. Use the labelling switch to see how SP dominates Gray in the matched-rate sense for all SNRβ‰₯2\mathrm{SNR} \geq 2 dB.

Parameters
4

Density Evolution over BICM-ID Iterations

Animated density evolution over 15 BICM-ID iterations for a rate- R=0.6R = 0.6 EXIT-matched LDPC code with 16-QAM SP labelling at Eb/N0=SNRconv+0.3E_b/N_0 = \mathrm{SNR}_{\rm conv} + 0.3 dB. Each frame shows the empirical histogram of decoder-output LLRs after iteration tt, along with the Gaussian approximation. The histogram starts centred near Β±0.5\pm 0.5 (nearly uninformative), then shifts outward and narrows as iterations progress; by t=10t = 10 the density is concentrated near Β±10\pm 10, indicating near-perfect a posteriori. The Gaussian approximation tracks the first two moments well throughout the trajectory.
LLR histogram at iterations t=0,1,5,10,15t = 0, 1, 5, 10, 15. Dashed curve: consistent-Gaussian fit with variance matched by MI. The Gaussian- LLR approximation underlying EXIT matching holds well across the full trajectory.

Example: EXIT-Matched LDPC for 16-QAM SP BICM-ID at Eb/N0=5E_b/N_0 = 5 dB

Design an EXIT-matched LDPC degree profile for 16-QAM with set-partition labelling at Eb/N0=5E_b/N_0 = 5 dB. Report the variable- node profile Ξ»(x)\lambda(x), check-node profile ρ(x)\rho(x), design rate Rβˆ—R^*, and compare with the BICM-ID capacity at the same SNR.

⚠️Engineering Note

DVB-S2X and 5G NR: EXIT-Matched LDPCs in Practice

Both DVB-S2/S2X and 5G NR employ LDPC codes whose degree profiles were designed via EXIT-chart matching to specific modulations. The DVB-S2 FECFRAME (64800,R)(64800, R) LDPCs for R∈{1/4,1/3,...,9/10}R \in \{1/4, 1/3, ..., 9/10\} have profiles hand-crafted from EXIT analysis against the 4-APSK through 32-APSK demapper curves under Gray labelling (non-iterative receiver). The DVB-S2X VL-SNR extension adds rate-1/51/5 to rate-2/92/9 codes explicitly designed against the ITERATIVE-demapper curves of the same APSK constellations β€” this is BICM-ID code design in a standards document. 5G NR's two base graphs (BG1 for high rate, BG2 for low rate) were designed using an EXIT-chart-like procedure targeting QPSK through 256-QAM with Gray labelling and a small fixed iteration count (2–3 passes in typical decoders). The variable-node degree distributions in the 5G NR LDPC base graphs closely match the EXIT-matched profiles derived in the academic literature, confirming that the theory of this section is the design practice of modern wireless.

Practical Constraints
  • β€’

    DVB-S2 LDPC: 64 800-bit FECFRAME, 10 variable-node degrees (2 to 30), EXIT-matched to APSK Gray

  • β€’

    DVB-S2X VL-SNR: EXIT-matched to ITERATIVE APSK (8 iterations)

  • β€’

    5G NR BG1/BG2: designed for 1-shot Gray QAM at 3 iterations, 2-256 QAM

  • β€’

    Short-block caveat: EXIT chart is asymptotic; finite-block LDPC loses 0.2–0.5 dB relative to Rβˆ—R^*

πŸ“‹ Ref: ETSI EN 302 307-2 Annex E (VL-SNR); 3GPP TS 38.212 Β§5.3.2 Table 5.3.2-2
,

EXIT Matching vs. Density Evolution: Which Should You Use?

EXIT matching is fast (linear programme, seconds) and accurate to within a few hundredths of a bit for regular and moderate-irregular codes on BI-AWGN. Density evolution is slow (PDF convolution per iteration, minutes) and exact within the infinite-block limit. The design choice is: use EXIT matching to find the approximate optimum, then polish with 2–3 iterations of density-evolution-based refinement. For very high-rate codes (R>0.9R > 0.9), very low-rate codes (R<0.1R < 0.1), or highly irregular profiles with large maximum degree, density evolution is worth the extra runtime because the Gaussian-LLR approximation starts to fray. For the R∈[0.2,0.9]R \in [0.2, 0.9] range where most standards live, EXIT matching is the right tool.

Common Mistake: Matching Only at IA=0I_A = 0 and IA=1I_A = 1

Mistake:

A tempting shortcut: match the decoder curve to the demapper at the two endpoints IA=0I_A = 0 (one-shot MI) and IA=1I_A = 1 (endpoint MI). If the decoder curve passes through both endpoints below the demapper, surely the tunnel is open?

Correction:

No. The demapper and decoder curves are both non-decreasing, but their SHAPES between endpoints can differ dramatically. A common failure mode: the decoder curve rises steeply at small IAI_A (many degree-2 variable nodes), then plateaus in the middle of the range; the demapper curve is approximately linear throughout. Matched at the endpoints, the decoder curve pokes above the demapper at IAβ‰ˆ0.4I_A \approx 0.4, closing the tunnel. The EXIT-matching LP enforces the constraint on a DENSE grid (typically 100 points) to catch this; a two-point match is insufficient. Always plot the full curves before finalising a design.

Quick Check

In EXIT-matched LDPC design for BICM-ID, what is the optimisation objective?

Minimise the BER at a fixed SNR.

Maximise the code rate subject to the decoder curve lying below the demapper curve.

Minimise the number of iterations to convergence.

Maximise the minimum Hamming distance of the code.

Historical Note: From Luby–Mitzenmacher–Shokrollahi to EXIT-Matched Codes

2001–2004

Irregular LDPC codes were introduced by Luby, Mitzenmacher, Shokrollahi, and Spielman in the late 1990s, initially as a way to approach the BEC capacity with LINEAR-time decoding. The design tool was density evolution: track the full message density through BP iterations, optimise the degree profile for the lowest threshold. The procedure was slow and limited to channels where the density evolution equations were analytically tractable (BEC was the main success story).

ten Brink, Kramer, and Ashikhmin's 2004 paper was a methodological breakthrough: replace density evolution with EXIT chart tracking, and the optimisation becomes a linear programme that can be solved for ANY binary-input channel β€” including the BI-AWGN, the BICM bit channels, and the iterative-demapper-plus-decoder system of BICM-ID. The price paid was the Gaussian-LLR approximation, but for the regime of practical interest the approximation was nearly exact. Within two years, every LDPC code in the DVB-S2 and 802.11n standards had been designed via EXIT matching, and the technique remains the industry standard in 2020s 5G NR LDPC design.

The pattern to notice: a pedagogical tool (EXIT charts as visualisations of iterative decoding) became, in a few years, the design tool (EXIT matching as a linear programme for LDPC profiles). This is exactly the trajectory Caire describes in his lectures when he says "the right theory is the one that makes design tractable." The EXIT chart was that theory for iterative coding.

,

EXIT Matching

The design procedure that optimises an LDPC degree profile (Ξ»,ρ)(\lambda, \rho) so that the inverted decoder EXIT curve lies just below the demapper EXIT curve at every IA∈[0,1]I_A \in [0, 1]. Maximising the code rate subject to this constraint is a linear programme; its solution is the matched rate Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu), the operational capacity of BICM-ID under the Gaussian-LLR model.

Related: Ldpc Degree Profile, Exit Chart, Matched Rate

Matched Rate Rβˆ—R^*

The largest code rate achievable by an EXIT-matched LDPC code at a given SNR and labelling. Upper-bounded by the BICM-ID capacity (the ML random-coding rate) and lower-bounded by any specific LDPC construction. The gap from BICM-ID capacity to Rβˆ—R^* β€” typically 0.05–0.15 bits/channel use β€” is the Gaussian-LLR approximation penalty.

Related: EXIT Matching, Bicm Id Capacity, Ldpc Design

Key Takeaway

EXIT matching turns BICM-ID design into a linear programme. Given a demapper EXIT curve (fixed by constellation, labelling, and SNR), optimise the LDPC degree profile (Ξ»,ρ)(\lambda, \rho) to make the inverted decoder curve lie just below the demapper at every IAI_A. The maximum-rate feasible solution is the matched rate Rβˆ—(Ξ³,ΞΌ)R^*(\gamma, \mu) β€” the operational capacity of BICM-ID under Gaussian-LLR. Modern standards (DVB-S2X, 5G NR LDPC) design their codes this way, and the resulting systems operate within 0.2–0.5 dB of CM capacity β€” closing essentially the entire gap that Ch. 5's BICM-vs-CM analysis identified.