GNU Radio 3.7.1 C++ API
gr::digital::cpmmod_bc Class Reference

Generic CPM modulator. More...

#include <cpmmod_bc.h>

Inheritance diagram for gr::digital::cpmmod_bc:

List of all members.

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)

Detailed Description

Generic CPM modulator.

Examples:

  • Setting h = 0.5, L = 1, type = LREC yields MSK.
  • Setting h = 0.5, type = GAUSSIAN and beta = 0.3 yields GMSK as used in GSM.

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.


Member Typedef Documentation


Member Function Documentation

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.

Parameters:
typeThe modulation type. Can be one of LREC, LRC, LSRC, TFM or GAUSSIAN. See gr_cpm::phase_response() for a detailed description.
hThe modulation index. $ h \cdot \pi$ is the maximum phase change that can occur between two symbols, i.e., if you only send ones, the phase will increase by $ h \cdot \pi$ every samples_per_sym samples. Set this to 0.5 for Minimum Shift Keying variants.
samples_per_symSamples per symbol.
LThe length of the phase duration in symbols. For L=1, this yields full- response CPM symbols, for L > 1, partial-response.
betaFor 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.

Parameters:
samples_per_symSamples per symbol.
LThe length of the phase duration in symbols. For L=1, this yields full- response CPM symbols, for L > 1, partial-response.
betaFor 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.


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