Real-valued MIMO channel with uniform PAM along each dimension. 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 | |
| ND_UPAM (int nt=1, int Mary=2) | |
| Constructor. | |
| virtual | ~ND_UPAM () |
| Destructor. | |
| void | set_M (int nt=1, int Mary=2) |
| Set component modulators to M-PAM with Gray mapping. | |
| void | set_M (int nt=1, ivec Mary="2") |
| Set component modulators to M-PAM with Gray mapping, different M per component. | |
| int | sphere_decoding (const vec &y, const mat &H, double rmin, double rmax, double stepup, QLLRvec &detected_bits) |
| Sphere decoding. | |
| Array< vec > | get_symbols () const |
| Get modulation symbols per dimension. | |
| void | modulate_bits (const bvec &bits, vec &symbols) const |
Modulate bits into symbols. | |
| vec | modulate_bits (const bvec &bits) const |
Modulate bits vector. Symbols are returned. | |
| void | init_soft_demodulator (const itpp::mat &H, const double &sigma2) |
| Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points. | |
| void | demodulate_soft_bits (const vec &y, const QLLRvec &LLR_apriori, QLLRvec &LLR_aposteriori, Soft_Demod_Method method=FULL_ENUM_LOGMAP) |
| Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points. | |
| void | demodulate_soft_bits (const vec &y, const mat &H, double sigma2, const QLLRvec &LLR_apriori, QLLRvec &LLR_aposteriori, Soft_Demod_Method method=FULL_ENUM_LOGMAP) |
| Soft demodulation wrapper function for various methods. | |
| QLLRvec | demodulate_soft_bits (const vec &y, const mat &H, double sigma2, const QLLRvec &LLR_apriori, Soft_Demod_Method method=FULL_ENUM_LOGMAP) |
| Soft demodulation wrapper function for various methods. | |
| void | demodulate_soft_bits (const vec &y, const vec &h, double sigma2, const QLLRvec &LLR_apriori, QLLRvec &LLR_aposteriori) |
| Soft MAP demodulation for parallelchannels without crosstalk. | |
| 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 | |
| void | update_norm (double &norm, int k, int sold, int snew, const vec &ytH, const mat &HtH, const ivec &s) |
| Update residual norm (for internal use). | |
| void | hxnormupdate (itpp::vec &Hx, unsigned &bitstring, unsigned &ind, unsigned bit) |
| Calculation of the part of the norms that depends on H. | |
| void | yxnormupdate (double &yx, itpp::QLLR &lapr, unsigned &bitstring, unsigned &ind, unsigned bit) |
| Calculation of the remaining part of the norms that depends both on H and y. | |
| 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 | |
| Array< vec > | symbols |
| Vectors of modulation symbols (along each dimension) | |
| itpp::mat | H |
| Real channel matrix. | |
| itpp::Array< itpp::Array< itpp::vec > > | hspacings |
| The spacing between different constellation points multiplied by the different H columns. | |
| itpp::Array< itpp::vec > | yspacings |
| The spacing between different constellation points scaled by different y elements. | |
| 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. | |
Related Symbols | |
(Note that these are not member symbols.) | |
| ITPP_EXPORT std::ostream & | operator<< (std::ostream &os, const Modulator_NRD &m) |
| Print some properties of the MIMO modulator (mainly to aid debugging) | |
Real-valued MIMO channel with uniform PAM along each dimension.
Example: (4 x 3 matrix channel with 4-PAM)
Example: (scalar channel with 8-PAM)
LLR_calc_unit Definition at line 654 of file modulator_nd.h.
|
inherited |
Soft demodulation method.
Definition at line 67 of file modulator_nd.h.
| itpp::ND_UPAM::ND_UPAM | ( | int | nt = 1, |
| int | Mary = 2 ) |
Constructor.
Definition at line 943 of file modulator_nd.cpp.
References itpp::Modulator_ND::nt, and set_M().
|
inlinevirtual |
Destructor.
Definition at line 660 of file modulator_nd.h.
| void itpp::ND_UPAM::set_M | ( | int | nt = 1, |
| int | Mary = 2 ) |
Set component modulators to M-PAM with Gray mapping.
Definition at line 948 of file modulator_nd.cpp.
References itpp::Modulator_ND::nt, and set_M().
| void itpp::ND_UPAM::set_M | ( | int | nt = 1, |
| ivec | Mary = "2" ) |
Set component modulators to M-PAM with Gray mapping, different M per component.
Definition at line 956 of file modulator_nd.cpp.
References itpp::bin2dec(), itpp::Modulator_ND::bitmap, itpp::Modulator_ND::bits2symbols, itpp::graycode(), it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::log2(), itpp::Modulator_ND::M, itpp::Modulator_ND::nt, itpp::round_i(), itpp::Array< T >::set_size(), and itpp::Modulator_NRD::symbols.
| int itpp::ND_UPAM::sphere_decoding | ( | const vec & | y, |
| const mat & | H, | ||
| double | rmin, | ||
| double | rmax, | ||
| double | stepup, | ||
| QLLRvec & | detected_bits ) |
Sphere decoding.
This function solves the integer-constrained minimization problem
![\[
\mbox{min} |y - Hs|
\]](form_195.png)
with respect to 
stepup) until the search succeeds.
| [in] | y | received data vector ( ![]() |
| [in] | H | channel matrix ( ![]() |
| [in] | rmax | maximum possible sphere radius to try |
| [in] | rmin | sphere radius in the first try |
| [in] | stepup | factor with which the sphere radius is increased if the search fails |
| [out] | detected_bits | result of the search (hard decisions only, QLLR for a sure "1" is set to 1000) |
Definition at line 1087 of file modulator_nd.cpp.
References itpp::Modulator_ND::bitmap, itpp::Modulator_NRD::H, it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::Modulator_ND::M, itpp::Modulator_ND::nt, and itpp::sum().
|
inherited |
Get modulation symbols per dimension.
Definition at line 452 of file modulator_nd.cpp.
References it_assert, itpp::Array< T >::left(), itpp::Array< T >::length(), itpp::Modulator_ND::M, itpp::Modulator_ND::nt, and itpp::Modulator_NRD::symbols.
|
inherited |
Modulate bits into symbols.
Definition at line 463 of file modulator_nd.cpp.
References itpp::bin2dec(), itpp::Modulator_ND::bits2symbols, it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::Modulator_ND::nt, itpp::sum(), and itpp::Modulator_NRD::symbols.
Referenced by itpp::Modulator_NRD::modulate_bits().
|
inherited |
Modulate bits vector. Symbols are returned.
Definition at line 478 of file modulator_nd.cpp.
References itpp::Modulator_NRD::modulate_bits(), and itpp::Modulator_ND::nt.
|
inherited |
Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points.
This function precomputes the norms
![\[\frac{|Hs|^2}{2\sigma^2}\]](form_190.png)
used to compute the LLR values
![\[
LLR(k) = \log \left( \frac
{\sum_{s:b_k=0} \exp \left( -\frac{|y - Hs|^2}{2\sigma^2} \right) P(s)}
{\sum_{s:b_k=1} \exp \left( -\frac{|y - Hs|^2}{2\sigma^2} \right) P(s)}
\right)
\]](form_191.png)
without approximations. It is assumed that H is real-valued. Complex-valued channels can be handled using the Modulator_NCD class.
Definition at line 486 of file modulator_nd.cpp.
References itpp::Modulator_ND::bitcumsum, itpp::Modulator_ND::bits2symbols, itpp::Modulator_ND::bpos2cpos, itpp::cumsum(), itpp::Modulator_ND::demod_initialized, itpp::Modulator_ND::gaussnorm, itpp::Modulator_ND::gray2dec, itpp::Modulator_NRD::H, itpp::Modulator_ND::hnorms, itpp::Modulator_NRD::hspacings, itpp::Modulator_NRD::hxnormupdate(), it_assert, itpp::Modulator_ND::k, itpp::Modulator_ND::M, itpp::Modulator_ND::nb, itpp::Modulator_ND::nt, itpp::pow2i(), itpp::prod(), itpp::Modulator_ND::Qnorms, itpp::reverse(), itpp::Array< T >::set_size(), itpp::sum(), itpp::Modulator_NRD::symbols, and itpp::Modulator_NRD::yspacings.
Referenced by itpp::Modulator_NRD::demodulate_soft_bits().
|
inherited |
Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points.
This function computes the LLR values
![\[
LLR(k) = \log \left( \frac
{\sum_{s:b_k=0} \exp \left( -\frac{|y - Hs|^2}{2\sigma^2} \right) P(s)}
{\sum_{s:b_k=1} \exp \left( -\frac{|y - Hs|^2}{2\sigma^2} \right) P(s)}
\right)
\]](form_191.png)
without approximations. It is assumed that H, y and s are real-valued. Complex-valued channels can be handled using the Modulator_NCD class. Currently the following two demodulation methods are supported:
| [in] | y | Received vector (typically ![]() |
| [in] | LLR_apriori | Vector of a priori LLR values per bit |
| [out] | LLR_aposteriori | Vector of a posteriori LLR values |
| [in] | method | Soft demodulation method |
The function performs an exhaustive search over all possible points s in the n-dimensional constellation. This is only feasible for relatively small constellations. The Jacobian logarithm is used to compute the sum-exp expression.
References itpp::operator<<().
Referenced by itpp::Modulator_NRD::demodulate_soft_bits(), and itpp::Modulator_NRD::demodulate_soft_bits().
|
inherited |
Soft demodulation wrapper function for various methods.
Currently the following three demodulation methods are supported:
| [in] | y | Received vector |
| [in] | H | Channel matrix |
| [in] | sigma2 | Noise variance per real dimension (typically ![]() |
| [in] | LLR_apriori | Vector of a priori LLR values per bit |
| [out] | LLR_aposteriori | Vector of a posteriori LLR values |
| [in] | method | Soft demodulation method |
Definition at line 560 of file modulator_nd.cpp.
References itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::H, itpp::Modulator_NRD::init_soft_demodulator(), itpp::inv(), it_assert, itpp::Modulator_ND::k, itpp::ones(), itpp::sum(), itpp::zeros_i(), and itpp::Modulator_ND::ZF_LOGMAP.
|
inherited |
Soft demodulation wrapper function for various methods.
Currently the following two demodulation methods are supported:
| [in] | y | Received vector |
| [in] | H | Channel matrix |
| [in] | sigma2 | Noise variance per real dimension (typically ![]() |
| [in] | LLR_apriori | Vector of a priori LLR values per bit |
| [in] | method | Soft demodulation method |
Definition at line 591 of file modulator_nd.cpp.
References itpp::Modulator_NRD::demodulate_soft_bits(), and itpp::Modulator_NRD::H.
|
inherited |
Soft MAP demodulation for parallelchannels without crosstalk.
This function is a much faster equivalent to demodulate_soft_bits with 
Definition at line 601 of file modulator_nd.cpp.
References it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::M, itpp::Modulator_ND::nt, itpp::ones_i(), itpp::Modulator_ND::probabilities(), itpp::sqr(), itpp::sum(), itpp::Modulator_NRD::symbols, itpp::LLR_calc_unit::to_qllr(), and itpp::Modulator_ND::update_LLR().
|
protectedinherited |
Update residual norm (for internal use).
Update the residual norm 
| [in,out] | norm | Norm to be updated |
| [in] | k | Position where s changed |
| [in] | sold | Old value of s[k] |
| [in] | snew | New value of s[k] |
| [in] | ytH | y'H vector |
| [in] | HtH | Grammian matrix H'H |
| [in] | s | Symbol vector |
|
protectedinherited |
Calculation of the part of the norms that depends on H.
Definition at line 632 of file modulator_nd.cpp.
References itpp::Modulator_ND::bitcumsum, itpp::Modulator_ND::bpos2cpos, itpp::Modulator_ND::gray2dec, itpp::Modulator_ND::hnorms, itpp::Modulator_NRD::hspacings, itpp::Modulator_NRD::hxnormupdate(), and itpp::Modulator_ND::M.
Referenced by itpp::Modulator_NRD::hxnormupdate(), and itpp::Modulator_NRD::init_soft_demodulator().
|
protectedinherited |
Calculation of the remaining part of the norms that depends both on H and y.
Definition at line 653 of file modulator_nd.cpp.
References itpp::Modulator_ND::bitcumsum, itpp::Modulator_ND::bpos2cpos, itpp::Modulator_ND::gaussnorm, itpp::Modulator_ND::gray2dec, itpp::Modulator_ND::hnorms, itpp::Modulator_ND::llrapr, itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::M, itpp::Modulator_ND::Qnorms, itpp::LLR_calc_unit::to_qllr(), itpp::Modulator_NRD::yspacings, and itpp::Modulator_NRD::yxnormupdate().
Referenced by itpp::Modulator_NRD::yxnormupdate().
|
inlineinherited |
Set LLR calculation unit.
Definition at line 83 of file modulator_nd.h.
|
inlineinherited |
Get LLR calculation unit.
Definition at line 88 of file modulator_nd.h.
|
inlineinherited |
Get number of dimensions.
Definition at line 93 of file modulator_nd.h.
|
inlineinherited |
Get number of bits per modulation symbol per dimension.
Definition at line 98 of file modulator_nd.h.
|
inlineinherited |
Get number of bits per modulation symbol per dimension.
Definition at line 103 of file modulator_nd.h.
|
inlineinherited |
Get number of modulation symbols per dimension.
Definition at line 108 of file modulator_nd.h.
|
inlineinherited |
Get bit pattern in decimal.
Definition at line 113 of file modulator_nd.h.
Get Bit mapping table.
Definition at line 118 of file modulator_nd.h.
|
protectedinherited |
Convert LLR to log-probabilities.
Definition at line 53 of file modulator_nd.cpp.
References itpp::LLR_calc_unit::jaclog(), and itpp::Modulator_ND::llrcalc.
Referenced by itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), and itpp::Modulator_ND::probabilities().
|
protectedinherited |
Convert LLR to log-probabilities, vector version.
Definition at line 437 of file modulator_nd.cpp.
References itpp::length(), and itpp::Modulator_ND::probabilities().
|
protectedinherited |
Marginalize (sum) over the bits.
Definition at line 124 of file modulator_nd.cpp.
References itpp::Modulator_ND::demodllrbit0(), itpp::Modulator_ND::demodllrbit1(), itpp::Modulator_ND::demodllrbit2(), itpp::Modulator_ND::demodmaxbit0(), itpp::Modulator_ND::demodmaxbit1(), itpp::Modulator_ND::demodmaxbit2(), itpp::Modulator_ND::FULL_ENUM_LOGMAP, itpp::Modulator_ND::FULL_ENUM_MAXLOG, it_error, itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
|
protectedinherited |
Hardcoded implementation of 1:st bit demodulation.
Definition at line 203 of file modulator_nd.cpp.
References itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Hardcoded implementation of 2:nd bit demodulation.
Definition at line 222 of file modulator_nd.cpp.
References itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Hardcoded implementation of 3:rd bit demodulation.
Definition at line 250 of file modulator_nd.cpp.
References itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Hardcoded implementation of 1:st bit demodulation.
Definition at line 294 of file modulator_nd.cpp.
References itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Hardcoded implementation of 2:nd bit demodulation.
Definition at line 320 of file modulator_nd.cpp.
References itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Hardcoded implementation of 3:rd bit demodulation.
Definition at line 362 of file modulator_nd.cpp.
References itpp::Modulator_ND::nb, and itpp::Modulator_ND::Qnorms.
Referenced by itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
Update LLR (for internal use)
This function updates the numerator and denominator in the expression
![\[
\log \left( \frac {\sum_{s:b_k=0} \exp(-x^2) P(s)}
{\sum_{s:b_k=1} \exp(-x^2) P(s)} \right)
\]](form_188.png)
| [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 itpp::Modulator_ND::bitmap, itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::k, itpp::Modulator_ND::llrcalc, and itpp::Modulator_ND::nt.
Referenced by itpp::Modulator_NCD::demodulate_soft_bits(), and itpp::Modulator_NRD::demodulate_soft_bits().
|
protectedinherited |
Update LLR, for scalar channel (for internal use)
This function updates the numerator and denominator in the expression
![\[
\log \left( \frac {\sum_{s:b_k=0} \exp (-x^2) P(s)}
{\sum_{s:b_k=1} \exp (-x^2) P(s)} \right)
\]](form_189.png)
| [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 itpp::Modulator_ND::bitmap, itpp::LLR_calc_unit::jaclog(), itpp::Modulator_ND::k, and itpp::Modulator_ND::llrcalc.
|
related |
Print some properties of the MIMO modulator (mainly to aid debugging)
Definition at line 679 of file modulator_nd.cpp.
|
protectedinherited |
Vectors of modulation symbols (along each dimension)
Definition at line 390 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::get_symbols(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::Modulator_NRD::modulate_bits(), and set_M().
|
protectedinherited |
Real channel matrix.
Definition at line 416 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::init_soft_demodulator(), and sphere_decoding().
|
protectedinherited |
The spacing between different constellation points multiplied by the different H columns.
Definition at line 418 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::hxnormupdate(), and itpp::Modulator_NRD::init_soft_demodulator().
|
protectedinherited |
The spacing between different constellation points scaled by different y elements.
Definition at line 420 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
Number of dimensions.
Definition at line 124 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NCD::get_symbols(), itpp::Modulator_NRD::get_symbols(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), ND_UPAM(), itpp::ND_UPSK::ND_UPSK(), itpp::ND_UQAM::ND_UQAM(), itpp::ND_UQAM::set_constellation_points(), set_M(), set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UQAM::set_M(), itpp::ND_UQAM::set_M(), sphere_decoding(), and itpp::Modulator_ND::update_LLR().
|
protectedinherited |
Number of bits in the symbol vector.
Definition at line 126 of file modulator_nd.h.
Referenced by itpp::Modulator_ND::demodllrbit0(), itpp::Modulator_ND::demodllrbit1(), itpp::Modulator_ND::demodllrbit2(), itpp::Modulator_ND::demodmaxbit0(), itpp::Modulator_ND::demodmaxbit1(), itpp::Modulator_ND::demodmaxbit2(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_ND::marginalize_bits().
|
protectedinherited |
LLR calculation unit.
Definition at line 128 of file modulator_nd.h.
Referenced by itpp::Modulator_ND::demodllrbit0(), itpp::Modulator_ND::demodllrbit1(), itpp::Modulator_ND::demodllrbit2(), itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_ND::marginalize_bits(), itpp::Modulator_ND::probabilities(), itpp::Modulator_ND::update_LLR(), itpp::Modulator_ND::update_LLR(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
Number of bits per modulation symbol.
Definition at line 130 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::ND_UQAM::set_constellation_points(), set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UQAM::set_M(), sphere_decoding(), itpp::Modulator_ND::update_LLR(), and itpp::Modulator_ND::update_LLR().
|
protectedinherited |
Number of modulation symbols along each dimension.
Definition at line 132 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::demodulate_soft_bits(), itpp::Modulator_NRD::demodulate_soft_bits(), itpp::Modulator_NCD::get_symbols(), itpp::Modulator_NRD::get_symbols(), itpp::Modulator_NRD::hxnormupdate(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::ND_UQAM::set_constellation_points(), set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UQAM::set_M(), sphere_decoding(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
Flag indicating whether the demodulator has been initialized.
Definition at line 134 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::init_soft_demodulator(), and itpp::Modulator_NRD::init_soft_demodulator().
Bit mapping table (one table per dimension)
Definition at line 136 of file modulator_nd.h.
Referenced by itpp::ND_UQAM::set_constellation_points(), set_M(), itpp::ND_UPSK::set_M(), itpp::ND_UQAM::set_M(), sphere_decoding(), itpp::Modulator_ND::update_LLR(), and itpp::Modulator_ND::update_LLR().
|
protectedinherited |
Bit pattern in decimal form ordered and the corresponding symbols (one pattern per dimension)
Definition at line 138 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::ND_UQAM::set_constellation_points(), set_M(), itpp::ND_UPSK::set_M(), and itpp::ND_UQAM::set_M().
|
protectedinherited |
The normalization factor in the exponent (in front of the square norm) in the Gaussian distribution.
Definition at line 140 of file modulator_nd.h.
Referenced by itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
Norms part dependent on H.
Definition at line 142 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::hxnormupdate(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
Norms part depending on both H and y.
Definition at line 144 of file modulator_nd.h.
Referenced by itpp::Modulator_ND::demodllrbit0(), itpp::Modulator_ND::demodllrbit1(), itpp::Modulator_ND::demodllrbit2(), itpp::Modulator_ND::demodmaxbit0(), itpp::Modulator_ND::demodmaxbit1(), itpp::Modulator_ND::demodmaxbit2(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), itpp::Modulator_ND::marginalize_bits(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
A prioi information.
Definition at line 146 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
The bit to column mapping.
Definition at line 148 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::hxnormupdate(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
The cumulative sum of bits in the symbol vector.
Definition at line 150 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::hxnormupdate(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
|
protectedinherited |
The Gray to decimal mapping.
Definition at line 152 of file modulator_nd.h.
Referenced by itpp::Modulator_NRD::hxnormupdate(), itpp::Modulator_NCD::init_soft_demodulator(), itpp::Modulator_NRD::init_soft_demodulator(), and itpp::Modulator_NRD::yxnormupdate().
Generated on Tue Dec 10 2024 04:49:37 for IT++ by Doxygen 1.12.0