#include <itpp/comm/modulator_nd.h>
Inheritance diagram for itpp::ND_UQAM:
Public Member Functions | |
ND_UQAM (int nt_in=1, int Mary=4) | |
Constructor. | |
~ND_UQAM () | |
Destructor. | |
void | set_Gray_QAM (int nt_in=1, int Mary=4) |
Set component modulators to M-QAM with Gray mapping. | |
void | set_Gray_QAM (int nt_in=1, ivec Mary="4") |
Set component modulators to M-QAM with Gray mapping, different M per component. | |
Vec< cvec > | get_symbols () |
Get modulation symbols per dimension. | |
cvec | modulate_bits (const bvec &bits) const |
Modulation of bits. | |
void | map_demod (QLLRvec &LLR_apriori, QLLRvec &LLR_aposteriori, double sigma2, cmat &H, cvec &y) |
Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points. | |
void | map_demod (QLLRvec &LLR_apriori, QLLRvec &LLR_aposteriori, double sigma2, cvec &H, cvec &y) |
Soft MAP demodulation for diagonal channels (without crosstalk). | |
int | get_dim () |
Get number of dimensions. | |
LLR_calc_unit | get_llrcalc () const |
Get LLR calculation unit. | |
ivec | get_k () |
Get number of bits per modulation symbol. | |
ivec | get_M () |
Get number of modulation symbols per dimension. | |
Protected Member Functions | |
void | update_norm (double &norm, int k, int sold, int snew, cvec &ytH, cmat &HtH, ivec &s) |
QLLRvec | probabilities (QLLR l) |
Convert LLR to log-probabilities. | |
Vec< QLLRvec > | probabilities (QLLRvec &l) |
Convert LLR to log-probabilities, vector version. | |
void | update_LLR (Vec< QLLRvec > &logP_apriori, QLLRvec &numerator, QLLRvec &denominator, ivec &s, QLLR x) |
Update LLR (for internal use). | |
void | update_LLR (Vec< QLLRvec > &logP_apriori, QLLRvec &numerator, QLLRvec &denominator, int s, QLLR scaled_norm, int j) |
Update LLR, for scalar channel (for internal use). | |
Protected Attributes | |
ivec | L |
Vec< cvec > | symbols |
Vector of modulation symbols (along each dimension). | |
int | nt |
Number of dimensions. | |
LLR_calc_unit | llrcalc |
LLR calculation unit. | |
ivec | k |
Number of bits per modulation symbol. | |
ivec | M |
Number of modulation symbols along each dimension. | |
Vec< bmat > | bitmap |
Bit mapping table (one table per dimension). | |
Vec< ivec > | bits2symbols |
Bit pattern in decimal form ordered and the corresponding symbols (one pattern per dimension). | |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Modulator_NCD &mod) |
Print some properties of the MIMO modulator in plain text (mainly to aid debugging). |
Definition at line 389 of file modulator_nd.h.
|
Constructor.
Definition at line 611 of file modulator_nd.cpp. References set_Gray_QAM(). |
|
Destructor.
Definition at line 394 of file modulator_nd.h. |
|
Set component modulators to M-QAM with Gray mapping.
Definition at line 617 of file modulator_nd.cpp. Referenced by ND_UQAM(). |
|
Set component modulators to M-QAM with Gray mapping, different M per component.
Definition at line 627 of file modulator_nd.cpp. References itpp::bin2dec(), itpp::Modulator_ND::bitmap, itpp::Modulator_ND::bits2symbols, itpp::concat(), itpp::gray_code(), itpp::graycode(), it_assert, itpp::Modulator_ND::k, L, itpp::length(), itpp::levels2bits(), itpp::log2(), itpp::Modulator_ND::M, itpp::round_i(), itpp::Vec< Num_T >::set_size(), itpp::sqrt(), and itpp::Modulator_NCD::symbols. |
|
Get modulation symbols per dimension.
Definition at line 244 of file modulator_nd.h. References itpp::Modulator_NCD::symbols. |
|
Modulation of bits.
Definition at line 355 of file modulator_nd.cpp. References itpp::bin2dec(), itpp::Modulator_ND::bits2symbols, it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::sum(), and itpp::Modulator_NCD::symbols. |
|
Soft MAP demodulation for multidimensional channel, by "brute-force" enumeration of all constellation points. This function computes the LLR values
without approximations. It is assumed that H, y and s are complex-valued.
Definition at line 264 of file modulator_nd.cpp. References it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::Modulator_ND::M, and itpp::sum(). |
|
Soft MAP demodulation for diagonal channels (without crosstalk).
This function is equivalent to Definition at line 165 of file modulator_nd.cpp. References it_assert, itpp::Modulator_ND::k, itpp::length(), itpp::Modulator_ND::llrcalc, itpp::Modulator_ND::M, itpp::ones_i(), itpp::Modulator_ND::probabilities(), QLLR_MAX, itpp::sqr(), itpp::sum(), itpp::Modulator_NCD::symbols, itpp::LLR_calc_unit::to_qllr(), and itpp::Modulator_ND::update_LLR(). |
|
Get number of dimensions.
Definition at line 57 of file modulator_nd.h. References itpp::Modulator_ND::nt. |
|
Get LLR calculation unit.
Definition at line 60 of file modulator_nd.h. References itpp::Modulator_ND::llrcalc. |
|
Get number of bits per modulation symbol.
Definition at line 63 of file modulator_nd.h. References itpp::Modulator_ND::k. |
|
Get number of modulation symbols per dimension.
Definition at line 66 of file modulator_nd.h. References itpp::Modulator_ND::M. |
|
Convert LLR to log-probabilities.
Definition at line 44 of file modulator_nd.cpp. References itpp::LLR_calc_unit::jaclog(), and itpp::Modulator_ND::llrcalc. Referenced by itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), and itpp::Modulator_ND::probabilities(). |
|
Convert LLR to log-probabilities, vector version.
Definition at line 58 of file modulator_nd.cpp. References itpp::length(), and itpp::Modulator_ND::probabilities(). |
|
Update LLR (for internal use). This function updates the numerator and denominator in the expression
Definition at line 87 of file modulator_nd.cpp. References itpp::Modulator_ND::bitmap, itpp::Modulator_ND::k, and itpp::Modulator_ND::nt. Referenced by itpp::Modulator_NCD::map_demod(), and itpp::Modulator_NRD::map_demod(). |
|
Update LLR, for scalar channel (for internal use). This function updates the numerator and denominator in the expression
Definition at line 67 of file modulator_nd.cpp. References itpp::Modulator_ND::bitmap, and itpp::Modulator_ND::k. |
|
Print some properties of the MIMO modulator in plain text (mainly to aid debugging).
Definition at line 389 of file modulator_nd.cpp. |
|
Vector of modulation symbols (along each dimension).
Definition at line 290 of file modulator_nd.h. Referenced by itpp::Modulator_NCD::get_symbols(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NCD::modulate_bits(), itpp::ND_UPSK::set_Gray_PSK(), set_Gray_QAM(), and itpp::Modulator_NCD::update_norm(). |
|
Number of dimensions.
Definition at line 70 of file modulator_nd.h. Referenced by itpp::Modulator_ND::get_dim(), and itpp::Modulator_ND::update_LLR(). |
|
LLR calculation unit.
Definition at line 72 of file modulator_nd.h. Referenced by itpp::Modulator_ND::get_llrcalc(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), itpp::Modulator_ND::Modulator_ND(), and itpp::Modulator_ND::probabilities(). |
|
Number of bits per modulation symbol.
Definition at line 74 of file modulator_nd.h. Referenced by itpp::Modulator_ND::get_k(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), set_Gray_QAM(), and itpp::Modulator_ND::update_LLR(). |
|
Number of modulation symbols along each dimension.
Definition at line 76 of file modulator_nd.h. Referenced by itpp::Modulator_ND::get_M(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), set_Gray_QAM(), and itpp::ND_UPAM::sphere_decoding(). |
|
Bit mapping table (one table per dimension).
Definition at line 78 of file modulator_nd.h. Referenced by itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), set_Gray_QAM(), and itpp::Modulator_ND::update_LLR(). |
|
Bit pattern in decimal form ordered and the corresponding symbols (one pattern per dimension).
Definition at line 80 of file modulator_nd.h. Referenced by itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), and set_Gray_QAM(). |
Generated on Thu Apr 19 14:20:42 2007 for IT++ by Doxygen 1.4.6