Skip to main content

Module exit

Module exit 

Source
Expand description

Extrinsic information transfer (EXIT) charts of convolutional constituent codes (ten Brink 2001): the mutual information between the bits and their LLRs, the transfer curve $I_{E} = T(I_{A})$ of a BCJR decoder fed with Gaussian a priori LLRs, and the pinch-off $E_{b}/N_{0}$ of a parallel concatenation, below which the decoding tunnel between the two curves closes.

The a priori LLRs are modelled as $A = \mu_{A} x + n_{A}$ with $x = \pm 1$, $n_{A} \sim \mathcal{N}(0, \sigma_{A}^{2})$ and $\mu_{A} = \sigma_{A}^{2}/2$ (eqs. (9)–(11)); their mutual information with the bits is $J(\sigma_{A})$ (eq. (14)), $$J(\sigma) = 1 - \int \frac{e^{-(\xi - \sigma^{2}/2)^{2}/(2\sigma^{2})}}{\sqrt{2\pi\sigma^{2}}}\log_{2}(1 + e^{-\xi}),d\xi$$ (j_function, Gauss–Hermite with 64 nodes; j_inverse by bisection). The extrinsic LLRs of the decoder are $E = D - A - Z$ (eq. (19)), $D$ the a posteriori, $Z$ the channel LLRs of the systematic bits; their mutual information is estimated by the time average $1 - \frac1N\sum_{k}\log_{2}(1 + e^{-x_{k}E_{k}})$ (llr_mutual_information), exact in the mean for consistent LLRs (the paper uses histograms of $E$). ExitCurve::measure simulates a recursive systematic code on the BPSK AWGN channel with its parity punctured by a period, and pinch_off_db bisects the $E_{b}/N_{0}$ at which $T_{2}(T_{1}(I)) > I$ stops holding on $[0, I_{\max}]$, the curves measured on common random numbers.

§Examples

use comnum_fec::exit::{j_function, j_inverse};
// J(0) = 0, J grows to 1; J and its inverse agree
assert!(j_function(0.0).abs() < 1e-12 && j_function(20.0) > 0.999_99);
assert!((j_inverse(j_function(1.7)) - 1.7).abs() < 1e-9);

§References

  1. S. ten Brink, “Convergence behavior of iteratively decoded parallel concatenated codes,” IEEE Trans. Commun. 49(10), 1727–1737, 2001: eqs. (9)–(19), Tables II, IV.

Structs§

ExitCurve
The transfer curve of a constituent decoder on a grid of a priori informations.

Functions§

j_function
$J(\sigma)$, the mutual information between a bit and a consistent Gaussian LLR of standard deviation $\sigma$ and mean $\sigma^{2}/2$ (ten Brink 2001, eq. (14)).
j_inverse
The inverse of j_function on $[0, 1)$, by bisection of $\sigma$ on $[0, 60]$.
llr_mutual_information
The mutual information between the bits bits (0 or 1) and their LLRs llr (positive for 0), by the time average $1 - \frac1N\sum\log_{2}(1 + e^{-x_{k}L_{k}})$, $x_{k} = 1 - 2b_{k}$.
pinch_off_db
The pinch-off $E_{b}/N_{0}$ (dB) of the parallel concatenation of first and second (rate rate, parities punctured by parity_period): the bisection, steps steps on $[$lo$,$ hi$]$, of the $E_{b}/N_{0}$ at which the passes reach $I$ = end (no intersection of the curves before the end of the chart; the curve of a code of small memory reaches 1 only at $I_{A} = 1$, so end stays below 1: 0.97), every curve measured with ExitCurve::measure on n_bits bits and the same seed, on the grid $I_{A} = 0, 0.02, \dots, 0.98$ and 0.995.