Base class for an N-dimensional (ND) vector (MIMO) modulator. More...
#include <itpp/comm/modulator_nd.h>
Public Types | |
| enum | Soft_Demod_Method { FULL_ENUM_LOGMAP, FULL_ENUM_MAXLOG, ZF_LOGMAP } |
| Soft demodulation method. More... | |
Public Member Functions | |
| Modulator_ND (LLR_calc_unit llrcalc_in=LLR_calc_unit()) | |
| Default constructor. | |
| virtual | ~Modulator_ND () |
| Destructor. | |
| void | set_llrcalc (LLR_calc_unit llrcalc_in) |
| Set LLR calculation unit. | |
| LLR_calc_unit | get_llrcalc () const |
| Get LLR calculation unit. | |
| int | get_dim () const |
| Get number of dimensions. | |
| ivec | get_k () const |
| Get number of bits per modulation symbol per dimension. | |
| ivec | bits_per_symbol () const |
| Get number of bits per modulation symbol per dimension. | |
| ivec | get_M () const |
| Get number of modulation symbols per dimension. | |
| Array< ivec > | get_bits2symbols () const |
| Get bit pattern in decimal. | |
| Array< bmat > | get_bitmap () const |
| Get Bit mapping table. | |
Protected Member Functions | |
| QLLRvec | probabilities (QLLR l) |
| Convert LLR to log-probabilities. | |
| Array< QLLRvec > | probabilities (const QLLRvec &l) |
| Convert LLR to log-probabilities, vector version. | |
| void | marginalize_bits (itpp::QLLRvec &llr, Soft_Demod_Method method) const |
| Marginalize (sum) over the bits. | |
| void | demodllrbit0 (itpp::QLLR &llr) const |
| Hardcoded implementation of 1:st bit demodulation. | |
| void | demodllrbit1 (itpp::QLLR &llr) const |
| Hardcoded implementation of 2:nd bit demodulation. | |
| void | demodllrbit2 (itpp::QLLR &llr) const |
| Hardcoded implementation of 3:rd bit demodulation. | |
| void | demodmaxbit0 (itpp::QLLR &maxllr) const |
| Hardcoded implementation of 1:st bit demodulation. | |
| void | demodmaxbit1 (itpp::QLLR &maxllr) const |
| Hardcoded implementation of 2:nd bit demodulation. | |
| void | demodmaxbit2 (itpp::QLLR &maxllr) const |
| Hardcoded implementation of 3:rd bit demodulation. | |
| void | update_LLR (const Array< QLLRvec > &logP_apriori, const ivec &s, QLLR scaled_norm, QLLRvec &num, QLLRvec &denom) |
| Update LLR (for internal use) | |
| void | update_LLR (const Array< QLLRvec > &logP_apriori, int s, QLLR scaled_norm, int j, QLLRvec &num, QLLRvec &denom) |
| Update LLR, for scalar channel (for internal use) | |
Protected Attributes | |
| int | nt |
| Number of dimensions. | |
| int | nb |
| Number of bits in the symbol vector. | |
| LLR_calc_unit | llrcalc |
| LLR calculation unit. | |
| ivec | k |
| Number of bits per modulation symbol. | |
| ivec | M |
| Number of modulation symbols along each dimension. | |
| bool | demod_initialized |
| Flag indicating whether the demodulator has been initialized. | |
| Array< bmat > | bitmap |
| Bit mapping table (one table per dimension) | |
| Array< ivec > | bits2symbols |
| Bit pattern in decimal form ordered and the corresponding symbols (one pattern per dimension) | |
| double | gaussnorm |
| The normalization factor in the exponent (in front of the square norm) in the Gaussian distribution. | |
| itpp::vec | hnorms |
| Norms part dependent on H. | |
| itpp::QLLRvec | Qnorms |
| Norms part depending on both H and y. | |
| itpp::QLLRvec | llrapr |
| A prioi information. | |
| itpp::ivec | bpos2cpos |
| The bit to column mapping. | |
| itpp::ivec | bitcumsum |
| The cumulative sum of bits in the symbol vector. | |
|
itpp::Array< itpp::Vec < unsigned > > | gray2dec |
| The Gray to decimal mapping. | |
Base class for an N-dimensional (ND) vector (MIMO) modulator.
See ND_UPAM class for examples.
Modulator_1D or Modulator_2D. Mixed use of Modulator_1D or Modulator_2D and Modulator_ND is not advised.LLR_calc_unit Definition at line 63 of file modulator_nd.h.
Soft demodulation method.
Definition at line 67 of file modulator_nd.h.
|
protected |
Update LLR (for internal use)
This function updates the numerator and denominator in the expression
| [in] | logP_apriori | Vector of a priori probabilities per bit |
| [in] | s | Symbol vector |
| [in] | scaled_norm | Argument of the exponents in the above equation |
| [out] | num | Logarithm of the numerator in the above expression |
| [out] | denom | Logarithm of the denominator in the above expression |
Definition at line 94 of file modulator_nd.cpp.
References bitmap, itpp::LLR_calc_unit::jaclog(), k, llrcalc, and nt.
Referenced by itpp::Modulator_NRD::demodulate_soft_bits(), and itpp::Modulator_NCD::demodulate_soft_bits().
|
protected |
Update LLR, for scalar channel (for internal use)
This function updates the numerator and denominator in the expression
| [in] | logP_apriori | Vector of a priori probabilities per bit |
| [in] | s | Symbol |
| [in] | scaled_norm | Argument of the exponents in the above equation |
| [in] | j | Channel index (dimension) |
| [out] | num | Logarithm of the numerator in the above expression |
| [out] | denom | Logarithm of the denominator in the above expression |
Definition at line 68 of file modulator_nd.cpp.
References bitmap, itpp::LLR_calc_unit::jaclog(), k, and llrcalc.
Generated on Sat May 25 2013 16:32:31 for IT++ by Doxygen 1.8.2