IT++ Logo Newcom Logo

itpp::Modulator_ND Class Reference
[Digital Modulation]

Base class for an N-dimensional (ND) vector ("MIMO") modulator. See ND_UPAM for examples. More...

#include <itpp/comm/modulator_nd.h>

Inheritance diagram for itpp::Modulator_ND:

itpp::Modulator_NCD itpp::Modulator_NRD itpp::ND_UPSK itpp::ND_UQAM itpp::ND_UPAM List of all members.

Public Member Functions

 Modulator_ND (LLR_calc_unit llrcalc_in=LLR_calc_unit())
 Constructor.
 ~Modulator_ND ()
 Destructor.
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

QLLRvec probabilities (QLLR l)
 Convert LLR to log-probabilities.
Vec< QLLRvecprobabilities (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

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< bmatbitmap
 Bit mapping table (one table per dimension).
Vec< ivecbits2symbols
 Bit pattern in decimal form ordered and the corresponding symbols (one pattern per dimension).

Detailed Description

Base class for an N-dimensional (ND) vector ("MIMO") modulator. See ND_UPAM for examples.

Definition at line 49 of file modulator_nd.h.


Constructor & Destructor Documentation

itpp::Modulator_ND::Modulator_ND LLR_calc_unit  llrcalc_in = LLR_calc_unit()  )  [inline]
 

Constructor.

Definition at line 52 of file modulator_nd.h.

References llrcalc.

itpp::Modulator_ND::~Modulator_ND  )  [inline]
 

Destructor.

Definition at line 54 of file modulator_nd.h.


Member Function Documentation

int itpp::Modulator_ND::get_dim  )  [inline]
 

Get number of dimensions.

Definition at line 57 of file modulator_nd.h.

References nt.

LLR_calc_unit itpp::Modulator_ND::get_llrcalc  )  const [inline]
 

Get LLR calculation unit.

Definition at line 60 of file modulator_nd.h.

References llrcalc.

ivec itpp::Modulator_ND::get_k  )  [inline]
 

Get number of bits per modulation symbol.

Definition at line 63 of file modulator_nd.h.

References k.

ivec itpp::Modulator_ND::get_M  )  [inline]
 

Get number of modulation symbols per dimension.

Definition at line 66 of file modulator_nd.h.

References M.

QLLRvec itpp::Modulator_ND::probabilities QLLR  l  )  [protected]
 

Convert LLR to log-probabilities.

Definition at line 44 of file modulator_nd.cpp.

References itpp::LLR_calc_unit::jaclog(), and llrcalc.

Referenced by itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), and probabilities().

Vec< QLLRvec > itpp::Modulator_ND::probabilities QLLRvec l  )  [protected]
 

Convert LLR to log-probabilities, vector version.

Definition at line 58 of file modulator_nd.cpp.

References itpp::length(), and probabilities().

void itpp::Modulator_ND::update_LLR Vec< QLLRvec > &  logP_apriori,
QLLRvec numerator,
QLLRvec denominator,
ivec s,
QLLR  x
[protected]
 

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) \]

Parameters:
logP_apriori vector of a priori probabilities per bit
numerator the logarithm of the numerator in the above expression
denominator the logarithm of the denominator in the above expression
s the symbol vector

Definition at line 87 of file modulator_nd.cpp.

References bitmap, k, and nt.

Referenced by itpp::Modulator_NCD::map_demod(), and itpp::Modulator_NRD::map_demod().

void itpp::Modulator_ND::update_LLR Vec< QLLRvec > &  logP_apriori,
QLLRvec numerator,
QLLRvec denominator,
int  s,
QLLR  scaled_norm,
int  j
[protected]
 

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) \]

Parameters:
logP_apriori vector of a priori probabilities per bit
numerator the logarithm of the numerator in the above expression
denominator the logarithm of the denominator in the above expression
s the symbol vector

Definition at line 67 of file modulator_nd.cpp.

References bitmap, and k.


Member Data Documentation

int itpp::Modulator_ND::nt [protected]
 

Number of dimensions.

Definition at line 70 of file modulator_nd.h.

Referenced by get_dim(), and update_LLR().

LLR_calc_unit itpp::Modulator_ND::llrcalc [protected]
 

LLR calculation unit.

Definition at line 72 of file modulator_nd.h.

Referenced by get_llrcalc(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), Modulator_ND(), and probabilities().

ivec itpp::Modulator_ND::k [protected]
 

Number of bits per modulation symbol.

Definition at line 74 of file modulator_nd.h.

Referenced by 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(), itpp::ND_UQAM::set_Gray_QAM(), and update_LLR().

ivec itpp::Modulator_ND::M [protected]
 

Number of modulation symbols along each dimension.

Definition at line 76 of file modulator_nd.h.

Referenced by get_M(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), itpp::ND_UQAM::set_Gray_QAM(), and itpp::ND_UPAM::sphere_decoding().

Vec<bmat> itpp::Modulator_ND::bitmap [protected]
 

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(), itpp::ND_UQAM::set_Gray_QAM(), and update_LLR().

Vec<ivec> itpp::Modulator_ND::bits2symbols [protected]
 

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 itpp::ND_UQAM::set_Gray_QAM().


The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Thu Apr 19 14:20:42 2007 for IT++ by Doxygen 1.4.6