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< 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

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< ivec > bits2symbols
 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, itpp::LLR_calc_unit::jaclog(), k, llrcalc, 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, itpp::LLR_calc_unit::jaclog(), k, and llrcalc.


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(), itpp::Modulator_NCD::map_demod(), itpp::Modulator_NRD::map_demod(), itpp::Modulator_NCD::modulate_bits(), itpp::Modulator_NRD::modulate_bits(), itpp::ND_UPAM::ND_UPAM(), itpp::ND_UPSK::ND_UPSK(), itpp::ND_UQAM::ND_UQAM(), itpp::ND_UPAM::set_Gray_PAM(), itpp::ND_UPSK::set_Gray_PSK(), itpp::ND_UQAM::set_Gray_QAM(), itpp::ND_UPAM::sphere_decoding(), 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(), probabilities(), and update_LLR().

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(), itpp::ND_UPAM::sphere_decoding(), 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(), itpp::ND_UPAM::sphere_decoding(), 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 Fri Jun 8 00:27:27 2007 for IT++ by Doxygen 1.5.2