|
C(++)ECCO
C++ Error Control COding: a header-only library for ECC simulations and experiments, modeling complete coding systems across arbitrary finite fields and complex inter-field relationships - Christian Senger <senger@inue.uni-stuttgart.de>
|
Workspace for BCJR forward-backward decoding. More...
#include <graphs.hpp>
Public Member Functions | |
| BCJR_Workspace (const Trellis &tr) | |
| Allocate metric arrays for tr. | |
| void | calculate_edge_costs (const Trellis &trellis, const Matrix< double > &llrs) |
| Set BCJR edge costs from symbol-level LLRs. | |
Public Attributes | |
| std::vector< std::vector< double > > | alpha |
| Forward metrics by layer and vertex id. | |
| std::vector< std::vector< double > > | beta |
| Backward metrics by layer and vertex id. | |
| std::vector< std::vector< double > > | edge_costs |
| Edge cost for each segment and edge index. | |
| std::optional< std::variant< Vector< T >, Matrix< double > > > | v |
| Optional received word (hard symbols or LLR matrix) shown in TikZ output. | |
Static Public Attributes | |
| static constexpr bool | is_soft = true |
| BCJR uses floating-point soft metrics. | |
Workspace for BCJR forward-backward decoding.
Stores α and β metrics by layer and edge costs by segment. It is used by LinearCode<T>::dec_BCJR.
Definition at line 345 of file graphs.hpp.
|
explicit |
Allocate metric arrays for tr.
| tr | Trellis whose layer and edge sizes define the workspace |
Definition at line 643 of file graphs.hpp.
| void CECCO::Trellis< T >::BCJR_Workspace::calculate_edge_costs | ( | const Trellis & | trellis, |
| const Matrix< double > & | llrs ) |
Set BCJR edge costs from symbol-level LLRs.
| trellis | Trellis whose edges define candidate symbols |
| llrs | Symbol-level LLR matrix with q−1 rows and one column per segment |
| std::invalid_argument | if the LLR matrix has the wrong number of rows or columns |
Edge costs are the symbol costs of CECCO::details::symbol_costs_from_llrs.
Definition at line 655 of file graphs.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::alpha |
Forward metrics by layer and vertex id.
Definition at line 369 of file graphs.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::beta |
Backward metrics by layer and vertex id.
Definition at line 371 of file graphs.hpp.
| std::vector<std::vector<double> > CECCO::Trellis< T >::BCJR_Workspace::edge_costs |
Edge cost for each segment and edge index.
Definition at line 373 of file graphs.hpp.
|
staticconstexpr |
BCJR uses floating-point soft metrics.
Definition at line 347 of file graphs.hpp.
| std::optional<std::variant<Vector<T>, Matrix<double> > > CECCO::Trellis< T >::BCJR_Workspace::v |
Optional received word (hard symbols or LLR matrix) shown in TikZ output.
Definition at line 375 of file graphs.hpp.