|
GNU Radio 3.6.2 C++ API
|
Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex tapsThis is a base class to implement an adaptive FIR filter. Generally, another block will inherit from this one to build a new type of adaptive filter such as an equalizer. More...
#include <adaptive_fir_ccc.h>

Public Types | |
| typedef boost::shared_ptr < adaptive_fir_ccc > | sptr |
Public Member Functions | |
| virtual void | set_taps (const std::vector< gr_complex > &taps)=0 |
| virtual std::vector< gr_complex > | taps () const =0 |
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. | |
Public Member Functions inherited from gr_sync_block | |
| virtual int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0 |
| just like gr_block::general_work, only this arranges to call consume_each for you | |
Public Member Functions inherited from gr_block | |
| virtual | ~gr_block () |
| unsigned | history () const |
| void | set_history (unsigned history) |
| bool | fixed_rate () const |
| Return true if this block has a fixed input to output rate. | |
| virtual bool | start () |
| Called to enable drivers, etc for i/o devices. | |
| virtual bool | stop () |
| Called to disable drivers, etc for i/o devices. | |
| void | set_output_multiple (int multiple) |
| Constrain the noutput_items argument passed to forecast and general_work. | |
| int | output_multiple () const |
| bool | output_multiple_set () const |
| void | set_alignment (int multiple) |
| Constrains buffers to work on a set item alignment (for SIMD) | |
| int | alignment () const |
| void | set_unaligned (int na) |
| int | unaligned () const |
| void | set_is_unaligned (bool u) |
| bool | is_unaligned () const |
| void | consume (int which_input, int how_many_items) |
Tell the scheduler how_many_items of input stream which_input were consumed. | |
| void | consume_each (int how_many_items) |
Tell the scheduler how_many_items were consumed on each input stream. | |
| void | produce (int which_output, int how_many_items) |
Tell the scheduler how_many_items were produced on output stream which_output. | |
| void | set_relative_rate (double relative_rate) |
| Set the approximate output rate / input rate. | |
| double | relative_rate () const |
| return the approximate output rate / input rate | |
| uint64_t | nitems_read (unsigned int which_input) |
| Return the number of items read on input stream which_input. | |
| uint64_t | nitems_written (unsigned int which_output) |
| Return the number of items written on output stream which_output. | |
| tag_propagation_policy_t | tag_propagation_policy () |
| Asks for the policy used by the scheduler to moved tags downstream. | |
| void | set_tag_propagation_policy (tag_propagation_policy_t p) |
| Set the policy by the scheduler to determine how tags are moved downstream. | |
| gr_block_detail_sptr | detail () const |
| void | set_detail (gr_block_detail_sptr detail) |
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 () |
Static Public Member Functions | |
| static sptr | make (const char *name, int decimation, const std::vector< gr_complex > &taps) |
| Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex taps. | |
Additional Inherited Members | |
Protected Types inherited from gr_basic_block | |
| enum | vcolor { WHITE, GREY, BLACK } |
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 Attributes inherited from gr_basic_block | |
| std::string | d_name |
| gr_io_signature_sptr | d_input_signature |
| gr_io_signature_sptr | d_output_signature |
| long | d_unique_id |
| vcolor | d_color |
Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex taps
This is a base class to implement an adaptive FIR filter. Generally, another block will inherit from this one to build a new type of adaptive filter such as an equalizer.
This class implements two functions that are designed to be overloaded by the child class: error(gr_complex out) and update_tap(gr_complex tap, gr_complex in).
The error() function calculates the error value that will be used to adjust the taps. The update_tap function then uses the error and the input signal value to update a particular tap. Typically, the error is calculated for a given output and then this is used in a loop to update all of the filter taps in a loop:
See digital::cma_equalizer_cc and digital::lms_dd_equalizer_cc for example usage.
|
static |
Adaptive FIR filter with gr_complex input, gr_complex output and gr_complex taps.
| name | Provides a name to identify this type of algorithm |
| decimation | (interger) decimation rate of the filter |
| taps | (complex) filter taps |
|
pure virtual |
Implemented in gr::filter::adaptive_fir_ccc_impl.
|
pure virtual |
Implemented in gr::filter::adaptive_fir_ccc_impl.