IT++ Logo Newcom Logo

itpp::BPSK Class Reference
[Digital Modulation]

BPSK Modulator Class. More...

#include <itpp/comm/modulator.h>

Inheritance diagram for itpp::BPSK:

itpp::Modulator List of all members.

Public Member Functions

 BPSK ()
 Constructor.
virtual ~BPSK ()
 Destructor.
virtual double bits_per_symbol () const
 Returns number of bits per symbol (1 for BPSK).
void modulate_bits (const bvec &bits, vec &out) const
 Modulate bits into BPSK symbols.
virtual void modulate_bits (const bvec &bits, cvec &out) const
 Modulate bits into BPSK symbols and output cvec with real part only.
virtual cvec modulate_bits (const bvec &bits) const
 Modulate bits into BPSK symbols.
void demodulate_bits (const vec &signal, bvec &out) const
 Demodulate noisy BPSK symbols into bits.
virtual bvec demodulate_bits (const vec &signal) const
 Demodulate noisy BPSK symbols into bits.
virtual void demodulate_bits (const cvec &signal, bvec &out) const
 Demodulate noisy BPSK symbols into bits.
virtual bvec demodulate_bits (const cvec &signal) const
 Demodulate noisy BPSK symbols into bits.
void demodulate_soft_bits (const vec &rx_symbols, double N0, vec &soft_bits) const
 Soft demodulator for AWGN channels.
virtual void demodulate_soft_bits (const cvec &rx_symbols, double N0, vec &soft_bits) const
 Soft demodulator for AWGN channel.
virtual void demodulate_soft_bits (const cvec &rx_symbols, const cvec &channel, double N0, vec &soft_bits) const
 Soft demodulator for a known channel in AWGN This function calculates the log-MAP estimate assuming equally likely bits transmitted

\[ \log \left( \frac{\Pr(b=0|r)}{\Pr(b=1|r)} \right) = \frac{ 4 \Re \{r c^{*} \} }{N_0} \]

It is assumed that what is received is the complex-valued model: $r = c b + n$.

virtual void demodulate_soft_bits_approx (const cvec &rx_symbols, double N0, vec &soft_bits) const
 Soft demolulation. Same as the exact given above.
virtual void demodulate_soft_bits_approx (const cvec &rx_symbols, const cvec &channel, double N0, vec &soft_bits) const
 Soft demolulation. Same as the exact given above.

Detailed Description

BPSK Modulator Class.

Symbols used are $\{1, -1\}$. Bit mapping: $0 \rightarrow 1$ and $1 \rightarrow -1$. Example of use:

    BPSK bpsk;
    bvec bits = "1 0 0 1 1 0 1 0 1 0 1 1 1 0";
    vec symbols = bpsk.modulate_bits(bits);

Definition at line 301 of file modulator.h.


Constructor & Destructor Documentation

itpp::BPSK::BPSK (  )  [inline]

Constructor.

Definition at line 304 of file modulator.h.

virtual itpp::BPSK::~BPSK (  )  [inline, virtual]

Destructor.

Definition at line 306 of file modulator.h.


Member Function Documentation

virtual double itpp::BPSK::bits_per_symbol (  )  const [inline, virtual]

Returns number of bits per symbol (1 for BPSK).

Implements itpp::Modulator.

Definition at line 308 of file modulator.h.

void itpp::BPSK::modulate_bits ( const bvec &  bits,
vec &  out 
) const

Modulate bits into BPSK symbols.

Definition at line 397 of file modulator.cpp.

Referenced by modulate_bits().

void itpp::BPSK::modulate_bits ( const bvec &  bits,
cvec &  out 
) const [virtual]

Modulate bits into BPSK symbols and output cvec with real part only.

Implements itpp::Modulator.

Definition at line 406 of file modulator.cpp.

cvec itpp::BPSK::modulate_bits ( const bvec &  bits  )  const [virtual]

Modulate bits into BPSK symbols.

Implements itpp::Modulator.

Definition at line 414 of file modulator.cpp.

References modulate_bits().

void itpp::BPSK::demodulate_bits ( const vec &  signal,
bvec &  out 
) const

Demodulate noisy BPSK symbols into bits.

Definition at line 421 of file modulator.cpp.

Referenced by itpp::Dummy_Code::decode(), and demodulate_bits().

bvec itpp::BPSK::demodulate_bits ( const vec &  signal  )  const [virtual]

Demodulate noisy BPSK symbols into bits.

Definition at line 429 of file modulator.cpp.

References demodulate_bits().

void itpp::BPSK::demodulate_bits ( const cvec &  signal,
bvec &  out 
) const [virtual]

Demodulate noisy BPSK symbols into bits.

Input is cvec but received signals should be multiplied with complex conjugate of channel coefficients before demodulation.

Implements itpp::Modulator.

Definition at line 438 of file modulator.cpp.

References itpp::real().

bvec itpp::BPSK::demodulate_bits ( const cvec &  signal  )  const [virtual]

Demodulate noisy BPSK symbols into bits.

Implements itpp::Modulator.

Definition at line 446 of file modulator.cpp.

References demodulate_bits().

void itpp::BPSK::demodulate_soft_bits ( const vec &  rx_symbols,
double  N0,
vec &  soft_bits 
) const

Soft demodulator for AWGN channels.

This function calculates the log-MAP estimate assuming equally likely bits transmitted

\[ \log \left(\frac{\Pr(b=0|r)}{\Pr(b=1|r)} \right) = \frac{4 r}{N_0} \]

It is assumed that what is received is $r = b + n$.

Parameters:
rx_symbols The received noisy constellation symbols, $r$ (real)
N0 The single sided spectral density of the AWGN noise, $n$
soft_bits The soft bits calculated using the expression above
Note: For soft demodulation it is suggested to use the N-dimensional modulator (Modulator_ND) class instead which is based on QLLR arithmetics and therefore faster and more numerically stable.

Definition at line 454 of file modulator.cpp.

Referenced by demodulate_soft_bits_approx().

void itpp::BPSK::demodulate_soft_bits ( const cvec &  rx_symbols,
double  N0,
vec &  soft_bits 
) const [virtual]

Soft demodulator for AWGN channel.

This function calculates the log-MAP estimate assuming equally likely bits transmitted

\[ \log \left( \frac{\Pr(b=0|r)}{\Pr(b=1|r)} \right) = \frac{4 r}{N_0} \]

It is assumed that what is received is $r = b + n$.

Parameters:
rx_symbols The received noisy constellation symbols, $r$ (complex but symbols in real part)
N0 The single sided spectral density of the AWGN noise, $n$
soft_bits The soft bits calculated using the expression above
Note: For soft demodulation it is suggested to use the N-dimensional modulator (Modulator_ND) class instead which is based on QLLR arithmetics and therefore faster and more numerically stable.

Implements itpp::Modulator.

Definition at line 466 of file modulator.cpp.

References itpp::real().

void itpp::BPSK::demodulate_soft_bits ( const cvec &  rx_symbols,
const cvec &  channel,
double  N0,
vec &  soft_bits 
) const [virtual]

Soft demodulator for a known channel in AWGN This function calculates the log-MAP estimate assuming equally likely bits transmitted

\[ \log \left( \frac{\Pr(b=0|r)}{\Pr(b=1|r)} \right) = \frac{ 4 \Re \{r c^{*} \} }{N_0} \]

It is assumed that what is received is the complex-valued model: $r = c b + n$.

Parameters:
rx_symbols The received noisy constellation symbols, $r$ (complex)
channel The channel coefficients, $c$ (complex)
N0 The single sided spectral density of the AWGN noise, $n$
soft_bits The soft bits calculated using the expression above
Note: For soft demodulation it is suggested to use the N-dimensional modulator (Modulator_ND) class instead which is based on QLLR arithmetics and therefore faster and more numerically stable.

Implements itpp::Modulator.

Definition at line 478 of file modulator.cpp.

References itpp::conj(), and itpp::real().

void itpp::BPSK::demodulate_soft_bits_approx ( const cvec &  rx_symbols,
double  N0,
vec &  soft_bits 
) const [virtual]

Soft demolulation. Same as the exact given above.

Implements itpp::Modulator.

Definition at line 489 of file modulator.cpp.

References demodulate_soft_bits().

void itpp::BPSK::demodulate_soft_bits_approx ( const cvec &  rx_symbols,
const cvec &  channel,
double  N0,
vec &  soft_bits 
) const [virtual]

Soft demolulation. Same as the exact given above.

Implements itpp::Modulator.

Definition at line 495 of file modulator.cpp.

References demodulate_soft_bits().


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

Generated on Wed Apr 18 11:23:41 2007 for IT++ by Doxygen 1.5.2