#include <itpp/comm/modulator.h>
Inheritance diagram for itpp::BPSK:
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
It is assumed that what is received is the complex-valued model: | |
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. |
Symbols used are . Bit mapping:
and
. 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.
itpp::BPSK::BPSK | ( | ) | [inline] |
virtual itpp::BPSK::~BPSK | ( | ) | [inline, virtual] |
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
It is assumed that what is received is .
rx_symbols | The received noisy constellation symbols, ![]() | |
N0 | The single sided spectral density of the AWGN noise, ![]() | |
soft_bits | The soft bits calculated using the expression above |
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
It is assumed that what is received is .
rx_symbols | The received noisy constellation symbols, ![]() | |
N0 | The single sided spectral density of the AWGN noise, ![]() | |
soft_bits | The soft bits calculated using the expression above |
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
It is assumed that what is received is the complex-valued model: .
rx_symbols | The received noisy constellation symbols, ![]() | |
channel | The channel coefficients, ![]() | |
N0 | The single sided spectral density of the AWGN noise, ![]() | |
soft_bits | The soft bits calculated using the expression above |
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().
Generated on Fri Jun 8 02:09:04 2007 for IT++ by Doxygen 1.5.2