GNU Radio 3.6.1 C++ API
digital_cpmmod_bc Class Reference

Generic CPM modulator. More...

#include <digital_cpmmod_bc.h>

Inheritance diagram for digital_cpmmod_bc:

List of all members.

Public Member Functions

std::vector< float > get_taps ()
 Return the phase response FIR taps.
- Public Member Functions inherited from gr_hier_block2
virtual ~gr_hier_block2 ()
opaque_self self ()
 Return an object, representing the current block, which can be passed to connect.
void connect (gr_basic_block_sptr block)
 Add a stand-alone (possibly hierarchical) block to internal graph.
void connect (gr_basic_block_sptr src, int src_port, gr_basic_block_sptr dst, int dst_port)
 Add gr-blocks or hierarchical blocks to internal graph and wire together.
void disconnect (gr_basic_block_sptr block)
 Remove a gr-block or hierarchical block from the internal flowgraph.
void disconnect (gr_basic_block_sptr src, int src_port, gr_basic_block_sptr dst, int dst_port)
 Disconnect a pair of gr-blocks or hierarchical blocks in internal flowgraph.
void disconnect_all ()
 Disconnect all connections in the internal flowgraph.
virtual void lock ()
virtual void unlock ()
gr_flat_flowgraph_sptr flatten () const
gr_hier_block2_sptr to_hier_block2 ()
- Public Member Functions inherited from gr_basic_block
virtual ~gr_basic_block ()
long unique_id () const
std::string name () const
gr_io_signature_sptr input_signature () const
gr_io_signature_sptr output_signature () const
gr_basic_block_sptr to_basic_block ()
virtual bool check_topology (int ninputs, int noutputs)
 Confirm that ninputs and noutputs is an acceptable combination.
template<typename T >
void set_msg_handler (T msg_handler)
 Set the callback that is fired when messages are available.
- Public Member Functions inherited from gr_msg_accepter
 gr_msg_accepter ()
 ~gr_msg_accepter ()
void post (pmt::pmt_t msg)
 send msg to msg_accepter
- Public Member Functions inherited from gruel::msg_accepter
 msg_accepter ()
virtual ~msg_accepter ()

Protected Member Functions

 digital_cpmmod_bc (gr_cpm::cpm_type type, float h, unsigned samples_per_sym, unsigned L, double beta)
- Protected Member Functions inherited from gr_hier_block2
 gr_hier_block2 (void)
 gr_hier_block2 (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature)
- Protected Member Functions inherited from gr_basic_block
 gr_basic_block (void)
 gr_basic_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature)
 Protected constructor prevents instantiation by non-derived classes.
void set_input_signature (gr_io_signature_sptr iosig)
 may only be called during constructor
void set_output_signature (gr_io_signature_sptr iosig)
 may only be called during constructor
void set_color (vcolor color)
 Allow the flowgraph to set for sorting and partitioning.
vcolor color () const

Friends

DIGITAL_API digital_cpmmod_bc_sptr digital_make_cpmmod_bc (int type, float h, unsigned samples_per_sym, unsigned L, double beta)

Additional Inherited Members

- Public Types inherited from gr_hier_block2
typedef gr_basic_block_sptr opaque_self
 typedef for object returned from self().

Detailed Description

Generic CPM modulator.

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.

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.


Constructor & Destructor Documentation

digital_cpmmod_bc::digital_cpmmod_bc ( gr_cpm::cpm_type  type,
float  h,
unsigned  samples_per_sym,
unsigned  L,
double  beta 
)
protected

Member Function Documentation

std::vector<float> digital_cpmmod_bc::get_taps ( )
inline

Return the phase response FIR taps.


Friends And Related Function Documentation

DIGITAL_API digital_cpmmod_bc_sptr digital_make_cpmmod_bc ( int  type,
float  h,
unsigned  samples_per_sym,
unsigned  L,
double  beta 
)
friend

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