pub struct ExitCurve {
pub apriori: Vec<f64>,
pub extrinsic: Vec<f64>,
}Expand description
The transfer curve of a constituent decoder on a grid of a priori informations.
Fields§
§apriori: Vec<f64>The a priori informations $I_{A}$, increasing.
extrinsic: Vec<f64>The extrinsic informations $I_{E} = T(I_{A})$.
Implementations§
Source§impl ExitCurve
impl ExitCurve
Sourcepub fn measure(
trellis: &Trellis,
parity_period: usize,
ebn0_db: f64,
rate: f64,
n_bits: usize,
apriori: &[f64],
seed: u64,
) -> Result<ExitCurve>
pub fn measure( trellis: &Trellis, parity_period: usize, ebn0_db: f64, rate: f64, n_bits: usize, apriori: &[f64], seed: u64, ) -> Result<ExitCurve>
Measure the transfer curve of the recursive systematic code trellis (rate $1/2$:
systematic and parity bits) whose parity is kept once every parity_period bits
(2: a rate-2/3 constituent), at the $E_{b}/N_{0}$ ebn0_db of the concatenated
code of rate rate, on a block of n_bits information bits (unterminated,
log-MAP BCJR), at the a priori informations apriori. The bits, the channel and
the a priori noise are drawn from seed: two curves of the same seed share them.
§Errors
Error::Config for a trellis that is not of rate 1/2, a period of 0, no bit, or
a rate outside $(0, 1]$; as bcjr.
Sourcepub fn transfer(&self, i: f64) -> f64
pub fn transfer(&self, i: f64) -> f64
$T(I)$ by linear interpolation on the grid (clamped at its ends).
Sourcepub fn tunnel_open(&self, second: &ExitCurve, target: f64) -> bool
pub fn tunnel_open(&self, second: &ExitCurve, target: f64) -> bool
Whether the tunnel between this curve (first decoder) and second is open: the
alternating passes $I \to T_{2}(T_{1}(I))$ from $I = 0$ reach target.