GNU Radio 3.7.1 C++ API
|
Generic CPM modulator. More...
#include <cpmmod_bc.h>
Public Types | |
typedef boost::shared_ptr < cpmmod_bc > | sptr |
Public Member Functions | |
virtual std::vector< float > | taps () const =0 |
Return the phase response FIR taps. | |
virtual int | type () const =0 |
Return the type of CPM modulator. | |
virtual float | index () const =0 |
Return the modulation index of the modulator. | |
virtual int | samples_per_sym () const =0 |
Return the number of samples per symbol. | |
virtual int | length () const =0 |
Return the length of the phase duration (in symbols) | |
virtual double | beta () const =0 |
Return the value of beta for the modulator. | |
Static Public Member Functions | |
static sptr | make (analog::cpm::cpm_type type, float h, int samples_per_sym, int L, double beta=0.3) |
static sptr | make_gmskmod_bc (int samples_per_sym=2, int L=4, double beta=0.3) |
Generic CPM modulator.
Examples:
The input of this block are symbols from an M-ary alphabet +/-1, +/-3, ..., +/-(M-1). Usually, M = 2 and therefore, the valid inputs are +/-1. The modulator will silently accept any other inputs, though. The output is the phase-modulated signal.
virtual double gr::digital::cpmmod_bc::beta | ( | ) | const [pure virtual] |
Return the value of beta for the modulator.
virtual float gr::digital::cpmmod_bc::index | ( | ) | const [pure virtual] |
Return the modulation index of the modulator.
virtual int gr::digital::cpmmod_bc::length | ( | ) | const [pure virtual] |
Return the length of the phase duration (in symbols)
static sptr gr::digital::cpmmod_bc::make | ( | analog::cpm::cpm_type | type, |
float | h, | ||
int | samples_per_sym, | ||
int | L, | ||
double | beta = 0.3 |
||
) | [static] |
Make CPM modulator block.
type | The modulation type. Can be one of LREC, LRC, LSRC, TFM or GAUSSIAN. See gr_cpm::phase_response() for a detailed description. |
h | The modulation index. is the maximum phase change that can occur between two symbols, i.e., if you only send ones, the phase will increase by every samples_per_sym samples. Set this to 0.5 for Minimum Shift Keying variants. |
samples_per_sym | Samples per symbol. |
L | The length of the phase duration in symbols. For L=1, this yields full- response CPM symbols, for L > 1, partial-response. |
beta | For LSRC, this is the rolloff factor. For Gaussian pulses, this is the 3 dB time-bandwidth product. |
static sptr gr::digital::cpmmod_bc::make_gmskmod_bc | ( | int | samples_per_sym = 2 , |
int | L = 4 , |
||
double | beta = 0.3 |
||
) | [static] |
Make GMSK modulator block.
The type is GAUSSIAN and the modulation index for GMSK is 0.5. This are populated automatically by this factory function.
samples_per_sym | Samples per symbol. |
L | The length of the phase duration in symbols. For L=1, this yields full- response CPM symbols, for L > 1, partial-response. |
beta | For LSRC, this is the rolloff factor. For Gaussian pulses, this is the 3 dB time-bandwidth product. |
virtual int gr::digital::cpmmod_bc::samples_per_sym | ( | ) | const [pure virtual] |
Return the number of samples per symbol.
virtual std::vector<float> gr::digital::cpmmod_bc::taps | ( | ) | const [pure virtual] |
Return the phase response FIR taps.
virtual int gr::digital::cpmmod_bc::type | ( | ) | const [pure virtual] |
Return the type of CPM modulator.