|
| | LLRCalculator (const NRZMapper &nrz, const AWGN &transmission) noexcept |
| | Construct a BI-AWGN calculator from a matching mapper and channel.
|
| | LLRCalculator (const BI_AWGN &bi_awgn) noexcept |
| | Construct a BI-AWGN calculator from a BI-AWGN channel (convenience).
|
| | LLRCalculator (const SDMEC< T > &channel) noexcept |
| | Construct an SDMEC calculator from a discrete channel.
|
| double | operator() (const std::complex< double > &in) |
| | Compute the LLR of a received complex symbol (BI-AWGN model).
|
| Vector< double > | operator() (const Vector< std::complex< double > > &in) |
| | Compute LLRs for a received complex word (BI-AWGN model).
|
| Matrix< double > | operator() (const Matrix< std::complex< double > > &in) |
| | Compute the symbol-level LLR matrix of a received binary image (BI-AWGN model).
|
| Vector< double > | operator() (const T &r) |
| | Compute symbol LLRs for one received field symbol (SDMEC model).
|
| Matrix< double > | operator() (const Vector< T > &r) |
| | Compute the symbol-LLR matrix of a received word (SDMEC model).
|
template<FiniteFieldType T = Fp<2>>
class CECCO::LLRCalculator< T >
Compute symbol-level log-likelihood ratios.
- Template Parameters
-
Produces a (q โ 1) ร n matrix whose entry (a โ 1, j) is ln(P(r_j | 0) / P(r_j | a)). Positive values favor zero; magnitude is reliability.
Supports prime-field SDMEC observations and binary-image BI-AWGN observations. BI-AWGN requires characteristic two and combines the independent bit LLRs of each extension-field symbol.
Definition at line 811 of file blocks.hpp.
template<FiniteFieldType T = Fp<2>>
Compute the symbol-level LLR matrix of a received binary image (BI-AWGN model).
- Parameters
-
| in | Received complex matrix; the [T:๐ฝ_2]-row binary image of the code word, column j holding the bits of symbol j in as_vector()/CECCO::DEMUX order |
- Returns
- (qโ1) ร n matrix; entry (aโ1, j) = ln(P(r_j|0)/P(r_j|a)) for symbol a = 1, โฆ, qโ1
- Exceptions
-
| std::logic_error | if this calculator was constructed from an SDMEC |
| std::invalid_argument | if the input does not have [T:๐ฝ_2] rows |
The bits of a symbol are transmitted over independent channel uses, so a symbol LLR is the sum of the bit LLRs selected by its nonzero coordinates. For a binary code (T = ๐ฝ_2) this is one LLR per symbol.
Definition at line 885 of file blocks.hpp.