GNU Radio 3.5.3.2 C++ API
digital_cma_equalizer_cc Class Reference

Implements constant modulus adaptive filter on complex streamThe error value and tap update equations (for p=2) can be found in: More...

#include <digital_cma_equalizer_cc.h>

Inheritance diagram for digital_cma_equalizer_cc:
gr_adaptive_fir_ccc gr_sync_decimator gr_sync_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter

Public Member Functions

float get_gain ()
void set_gain (float mu)
float get_modulus ()
void set_modulus (float mod)
- Public Member Functions inherited from gr_adaptive_fir_ccc
void set_taps (const std::vector< gr_complex > &taps)
int work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
 just like gr_block::general_work, only this arranges to call consume_each for you
- Public Member Functions inherited from gr_sync_decimator
unsigned decimation () const
void set_decimation (unsigned decimation)
void forecast (int noutput_items, gr_vector_int &ninput_items_required)
 Estimate input requirements given output request.
int general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
 compute output items from input items
int fixed_rate_ninput_to_noutput (int ninput)
 Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.
int fixed_rate_noutput_to_ninput (int noutput)
 Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.

Protected Member Functions

virtual gr_complex error (const gr_complex &out)
virtual void update_tap (gr_complex &tap, const gr_complex &in)
- Protected Member Functions inherited from gr_adaptive_fir_ccc
gr_complex filter (gr_complex *x)
 gr_adaptive_fir_ccc (const char *name, int decimation, const std::vector< gr_complex > &taps)
- Protected Member Functions inherited from gr_sync_decimator
 gr_sync_decimator (void)
 gr_sync_decimator (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature, unsigned decimation)
- Protected Member Functions inherited from gr_sync_block
 gr_sync_block (void)
 gr_sync_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature)
- Protected Member Functions inherited from gr_block
 gr_block (void)
 gr_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature)
void set_fixed_rate (bool fixed_rate)
void add_item_tag (unsigned int which_output, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F)
 Adds a new tag onto the given output buffer.
void add_item_tag (unsigned int which_output, const gr_tag_t &tag)
 Adds a new tag onto the given output buffer.
void get_tags_in_range (std::vector< gr_tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end)
 Given a [start,end), returns a vector of all tags in the range.
void get_tags_in_range (std::vector< gr_tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key)
 Given a [start,end), returns a vector of all tags in the range with a given key.
- 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_cma_equalizer_cc_sptr 
digital_make_cma_equalizer_cc (int num_taps, float modulus, float mu, int sps)

Additional Inherited Members

- Public Types inherited from gr_block
enum  { WORK_CALLED_PRODUCE = -2, WORK_DONE = -1 }
 Magic return values from general_work. More...
enum  tag_propagation_policy_t { TPP_DONT = 0, TPP_ALL_TO_ALL = 1, TPP_ONE_TO_ONE = 2 }
- Protected Types inherited from gr_basic_block
enum  vcolor { WHITE, GREY, BLACK }
- Protected Attributes inherited from gr_adaptive_fir_ccc
gr_complex d_error
std::vector< gr_complexd_taps

Detailed Description

Implements constant modulus adaptive filter on complex stream

The error value and tap update equations (for p=2) can be found in:

D. Godard, "Self-Recovering Equalization and Carrier Tracking in Two-Dimensional Data Communication Systems," IEEE Transactions on Communications, Vol. 28, No. 11, pp. 1867 - 1875, 1980,

Member Function Documentation

virtual gr_complex digital_cma_equalizer_cc::error ( const gr_complex out)
inlineprotectedvirtual

Implements gr_adaptive_fir_ccc.

References gr_clip().

float digital_cma_equalizer_cc::get_gain ( )
inline
float digital_cma_equalizer_cc::get_modulus ( )
inline
void digital_cma_equalizer_cc::set_gain ( float  mu)
inline
void digital_cma_equalizer_cc::set_modulus ( float  mod)
inline
virtual void digital_cma_equalizer_cc::update_tap ( gr_complex tap,
const gr_complex in 
)
inlineprotectedvirtual

Friends And Related Function Documentation

DIGITAL_API digital_cma_equalizer_cc_sptr digital_make_cma_equalizer_cc ( int  num_taps,
float  modulus,
float  mu,
int  sps 
)
friend

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