AFF3CT
A Fast Forward Error Correction Tool!
 All Classes Files Functions Variables Pages
Public Member Functions | Protected Attributes | List of all members
Modulator_i< B, R, Q > Class Template Referenceabstract

Modulates, filters and/or demodulates a signal. More...

#include <Modulator.hpp>

Inheritance diagram for Modulator_i< B, R, Q >:
Module SC_Modulator< B, R, Q > Modulator_BPSK< B, R, Q > Modulator_BPSK_fast< B, R, Q > Modulator_GSM< B, R, Q, MAX > Modulator_PAM< B, R, Q, MAX > Modulator_PSK< B, R, Q, MAX > Modulator_QAM< B, R, Q, MAX > Modulator_user< B, R, Q, MAX > Modulator_GSM_TBLess< B, R, Q, MAX >

Public Member Functions

 Modulator_i (const int N, const int N_mod, const int N_fil, const int n_frames=1, const std::string name="Modulator_i")
 Constructor. More...
 
 Modulator_i (const int N, const int N_mod, const int n_frames=1, const std::string name="Modulator_i")
 Constructor (assumes that nothing is done in the filtering process). More...
 
 Modulator_i (const int N, const int n_frames=1, const std::string name="Modulator_i")
 Constructor (assumes that nothing is done in the filtering process). More...
 
virtual ~Modulator_i ()
 Destructor.
 
virtual void modulate (const mipp::vector< B > &X_N1, mipp::vector< R > &X_N2)=0
 Modulates a vector of bits or symbols. More...
 
virtual void filter (const mipp::vector< R > &Y_N1, mipp::vector< R > &Y_N2)
 Filters a vector of noised and modulated bits/symbols. More...
 
virtual void demodulate (const mipp::vector< Q > &Y_N1, mipp::vector< Q > &Y_N2)=0
 Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required). More...
 
virtual void demodulate_with_gains (const mipp::vector< Q > &Y_N1, const mipp::vector< R > &H_N, mipp::vector< Q > &Y_N2)
 Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required). More...
 
virtual void demodulate (const mipp::vector< Q > &Y_N1, const mipp::vector< Q > &Y_N2, mipp::vector< Q > &Y_N3)
 Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required). More...
 
virtual void demodulate_with_gains (const mipp::vector< Q > &Y_N1, const mipp::vector< R > &H_N, const mipp::vector< Q > &Y_N2, mipp::vector< Q > &Y_N3)
 Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required). More...
 
virtual int get_buffer_size_after_modulation (const int N)
 Gets the vector size after the modulation (considering a given frame size). More...
 
virtual int get_buffer_size_after_filtering (const int N)
 Gets the vector size after the filtering process (considering a given frame size). More...
 
- Public Member Functions inherited from Module
 Module (const int n_frames=1, const std::string name="Module")
 Constructor. More...
 
virtual ~Module ()
 Destructor.
 
virtual void set_n_frames (const int n_frames)
 Set the number of frames. More...
 
virtual int get_n_frames () const
 Get the number of frames. More...
 
void rename (const std::string name)
 Rename the Module. More...
 

Protected Attributes

const int N
 
const int N_mod
 
const int N_fil
 
- Protected Attributes inherited from Module
int n_frames
 
std::string name
 

Detailed Description

template<typename B, typename R, typename Q>
class Modulator_i< B, R, Q >

Modulates, filters and/or demodulates a signal.

Template Parameters
Btype of the bits or symbols to modulate.
Rtype of the reals (floating-point representation) in the modulation and in the filtering process.
Qtype of the reals (floating-point or fixed-point representation) in the demodulation.

Please use Modulator for inheritance (instead of Modulator_i)

Constructor & Destructor Documentation

template<typename B, typename R, typename Q>
Modulator_i< B, R, Q >::Modulator_i ( const int  N,
const int  N_mod,
const int  N_fil,
const int  n_frames = 1,
const std::string  name = "Modulator_i< B, R, Q >" 
)
inline

Constructor.

Parameters
Nsize of one frame (= number of bits in one frame).
N_modnumber of transmitted elements after the modulation (could be smaller, bigger or equal to N).
N_filnumber of transmitted elements after the filtering process.
n_framesnumber of frames to process in the Modulator.
nameModulator's name.
template<typename B, typename R, typename Q>
Modulator_i< B, R, Q >::Modulator_i ( const int  N,
const int  N_mod,
const int  n_frames = 1,
const std::string  name = "Modulator_i< B, R, Q >" 
)
inline

Constructor (assumes that nothing is done in the filtering process).

Parameters
Nsize of one frame (= number of bits in one frame).
N_modnumber of transmitted elements after the modulation (could be smaller, bigger or equal to N).
n_framesnumber of frames to process in the Modulator.
nameModulator's name.
template<typename B, typename R, typename Q>
Modulator_i< B, R, Q >::Modulator_i ( const int  N,
const int  n_frames = 1,
const std::string  name = "Modulator_i< B, R, Q >" 
)
inline

Constructor (assumes that nothing is done in the filtering process).

Parameters
Nsize of one frame (= number of bits in one frame).
n_framesnumber of frames to process in the Modulator.
nameModulator's name.

Member Function Documentation

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::demodulate ( const mipp::vector< Q > &  Y_N1,
mipp::vector< Q > &  Y_N2 
)
pure virtual

Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required).

Parameters
Y_N1a vector of noised and modulated bits/symbols.
Y_N2a demodulated vector.

Implemented in Modulator_GSM< B, R, Q, MAX >, Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, Modulator_BPSK< B, R, Q >, Modulator_BPSK_fast< B, R, Q >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::demodulate ( const mipp::vector< Q > &  Y_N1,
const mipp::vector< Q > &  Y_N2,
mipp::vector< Q > &  Y_N3 
)
inlinevirtual

Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required).

Used for the iterative turbo demodulation technique, this type of demodulation takes the decoder information into account.

Parameters
Y_N1a vector of noised and modulated bits/symbols.
Y_N2a vector of extrinsic information coming from a SISO decoder (used in the iterative turbo demodulation technique).
Y_N3a demodulated vector.

Reimplemented in Modulator_GSM< B, R, Q, MAX >, Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, Modulator_BPSK< B, R, Q >, Modulator_BPSK_fast< B, R, Q >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::demodulate_with_gains ( const mipp::vector< Q > &  Y_N1,
const mipp::vector< R > &  H_N,
mipp::vector< Q > &  Y_N2 
)
inlinevirtual

Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required).

Parameters
Y_N1a vector of noised and modulated bits/symbols.
H_Nchannel gains.
Y_N2a demodulated vector.

Reimplemented in Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, and Modulator_BPSK< B, R, Q >.

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::demodulate_with_gains ( const mipp::vector< Q > &  Y_N1,
const mipp::vector< R > &  H_N,
const mipp::vector< Q > &  Y_N2,
mipp::vector< Q > &  Y_N3 
)
inlinevirtual

Demodulates a vector of noised and modulated bits/symbols (after the filtering process if required).

Used for the iterative turbo demodulation technique, this type of demodulation takes the decoder information into account.

Parameters
Y_N1a vector of noised and modulated bits/symbols.
H_Nchannel gains.
Y_N2a vector of extrinsic information coming from a SISO decoder (used in the iterative turbo demodulation technique).
Y_N3a demodulated vector.

Reimplemented in Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, and Modulator_BPSK< B, R, Q >.

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::filter ( const mipp::vector< R > &  Y_N1,
mipp::vector< R > &  Y_N2 
)
inlinevirtual

Filters a vector of noised and modulated bits/symbols.

By default this method does nothing.

Parameters
Y_N1a vector of noised and modulated bits/symbols.
Y_N2a filtered vector.

Reimplemented in Modulator_GSM< B, R, Q, MAX >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

template<typename B, typename R, typename Q>
virtual int Modulator_i< B, R, Q >::get_buffer_size_after_filtering ( const int  N)
inlinevirtual

Gets the vector size after the filtering process (considering a given frame size).

Parameters
Na frame size.
Returns
the vector size after the filtering process.

Reimplemented in Modulator_GSM< B, R, Q, MAX >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

template<typename B, typename R, typename Q>
virtual int Modulator_i< B, R, Q >::get_buffer_size_after_modulation ( const int  N)
inlinevirtual

Gets the vector size after the modulation (considering a given frame size).

Parameters
Na frame size.
Returns
the vector size after the modulation.

Reimplemented in Modulator_GSM< B, R, Q, MAX >, Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

template<typename B, typename R, typename Q>
virtual void Modulator_i< B, R, Q >::modulate ( const mipp::vector< B > &  X_N1,
mipp::vector< R > &  X_N2 
)
pure virtual

Modulates a vector of bits or symbols.

Parameters
X_N1a vector of bits or symbols.
X_N2a vector of modulated bits or symbols.

Implemented in Modulator_GSM< B, R, Q, MAX >, Modulator_user< B, R, Q, MAX >, Modulator_QAM< B, R, Q, MAX >, Modulator_PAM< B, R, Q, MAX >, Modulator_PSK< B, R, Q, MAX >, Modulator_BPSK< B, R, Q >, Modulator_BPSK_fast< B, R, Q >, and Modulator_GSM_TBLess< B, R, Q, MAX >.

Member Data Documentation

template<typename B, typename R, typename Q>
const int Modulator_i< B, R, Q >::N
protected

Size of one frame (= number of bits in one frame)

template<typename B, typename R, typename Q>
const int Modulator_i< B, R, Q >::N_fil
protected

Number of transmitted elements after the filtering process

template<typename B, typename R, typename Q>
const int Modulator_i< B, R, Q >::N_mod
protected

Number of transmitted elements after the modulation (could be smaller, bigger or equal to N)


The documentation for this class was generated from the following file: