|
GNU Radio 3.6.4.1 C++ API
|
single pole IIR filter with complex input, complex outputThe input and output satisfy a difference equation of the form \f{ y[n] - (1-alpha) y[n-1] = alpha x[n] \f} More...
#include <gr_single_pole_iir_filter_cc.h>
Public Member Functions | |
| ~gr_single_pole_iir_filter_cc () | |
| void | set_taps (double alpha) |
| 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_block | |
| 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_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. | |
| int | min_noutput_items () const |
| Return the minimum number of output items this block can produce during a call to work. | |
| void | set_min_noutput_items (int m) |
| Set the minimum number of output items this block can produce during a call to work. | |
| int | max_noutput_items () |
| Return the maximum number of output items this block will handle during a call to work. | |
| void | set_max_noutput_items (int m) |
| Set the maximum number of output items this block will handle during a call to work. | |
| void | unset_max_noutput_items () |
| Clear the switch for using the max_noutput_items value of this block. | |
| bool | is_set_max_noutput_items () |
| Ask the block if the flag is or is not set to use the internal value of max_noutput_items during a call to work. | |
| void | expand_minmax_buffer (int port) |
| long | max_output_buffer (size_t i) |
Returns max buffer size on output port i. | |
| void | set_max_output_buffer (long max_output_buffer) |
| Sets max buffer size on all output ports. | |
| void | set_max_output_buffer (int port, long max_output_buffer) |
Sets max buffer size on output port port. | |
| long | min_output_buffer (size_t i) |
Returns min buffer size on output port i. | |
| void | set_min_output_buffer (long min_output_buffer) |
| Sets min buffer size on all output ports. | |
| void | set_min_output_buffer (int port, long min_output_buffer) |
Sets min buffer size on output port port. | |
| float | pc_noutput_items () |
| Gets average noutput_items performance counter. | |
| float | pc_noutput_items_var () |
| Gets variance of noutput_items performance counter. | |
| float | pc_nproduced () |
| Gets average num items produced performance counter. | |
| float | pc_nproduced_var () |
| Gets variance of num items produced performance counter. | |
| float | pc_input_buffers_full (int which) |
Gets average fullness of which input buffer. | |
| float | pc_input_buffers_full_var (int which) |
Gets variance of fullness of which input buffer. | |
| std::vector< float > | pc_input_buffers_full () |
| Gets average fullness of all input buffers. | |
| std::vector< float > | pc_input_buffers_full_var () |
| Gets variance of fullness of all input buffers. | |
| float | pc_output_buffers_full (int which) |
Gets average fullness of which input buffer. | |
| float | pc_output_buffers_full_var (int which) |
Gets variance of fullness of which input buffer. | |
| std::vector< float > | pc_output_buffers_full () |
| Gets average fullness of all output buffers. | |
| std::vector< float > | pc_output_buffers_full_var () |
| Gets variance of fullness of all output buffers. | |
| float | pc_work_time () |
| Gets average clock cycles spent in work. | |
| float | pc_work_time_var () |
| Gets average clock cycles spent in work. | |
| void | reset_perf_counters () |
| Resets the performance counters. | |
| void | set_processor_affinity (const std::vector< unsigned int > &mask) |
Set the thread's affinity to processor core n. | |
| void | unset_processor_affinity () |
| Remove processor affinity to a specific core. | |
| std::vector< unsigned int > | processor_affinity () |
| Get the current processor affinity. | |
| 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 |
| long | symbolic_id () const |
| std::string | name () const |
| std::string | symbol_name () const |
| gr_io_signature_sptr | input_signature () const |
| gr_io_signature_sptr | output_signature () const |
| gr_basic_block_sptr | to_basic_block () |
| bool | alias_set () |
| std::string | alias () |
| pmt::pmt_t | alias_pmt () |
| void | set_block_alias (std::string name) |
| void | message_port_register_in (pmt::pmt_t port_id) |
| void | message_port_register_out (pmt::pmt_t port_id) |
| void | message_port_pub (pmt::pmt_t port_id, pmt::pmt_t msg) |
| void | message_port_sub (pmt::pmt_t port_id, pmt::pmt_t target) |
| void | message_port_unsub (pmt::pmt_t port_id, pmt::pmt_t target) |
| virtual bool | message_port_is_hier (pmt::pmt_t port_id) |
| virtual bool | message_port_is_hier_in (pmt::pmt_t port_id) |
| virtual bool | message_port_is_hier_out (pmt::pmt_t port_id) |
| pmt::pmt_t | message_ports_in () |
| Get input message port names. | |
| pmt::pmt_t | message_ports_out () |
| Get output message port names. | |
| void | _post (pmt::pmt_t which_port, pmt::pmt_t msg) |
| bool | empty_p (pmt::pmt_t which_port) |
| is the queue empty? | |
| bool | empty_p () |
| size_t | nmsgs (pmt::pmt_t which_port) |
| How many messages in the queue? | |
| void | insert_tail (pmt::pmt_t which_port, pmt::pmt_t msg) |
| pmt::pmt_t | delete_head_nowait (pmt::pmt_t which_port) |
| pmt::pmt_t | delete_head_blocking (pmt::pmt_t which_port) |
| msg_queue_t::iterator | get_iterator (pmt::pmt_t which_port) |
| void | erase_msg (pmt::pmt_t which_port, msg_queue_t::iterator it) |
| virtual bool | has_msg_port (pmt::pmt_t which_port) |
| virtual bool | check_topology (int ninputs, int noutputs) |
| Confirm that ninputs and noutputs is an acceptable combination. | |
| template<typename T > | |
| void | set_msg_handler (pmt::pmt_t which_port, 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 which_port, pmt::pmt_t msg) |
send msg to msg_accepter on port which_port | |
Public Member Functions inherited from gruel::msg_accepter | |
| msg_accepter () | |
| virtual | ~msg_accepter () |
Friends | |
| GR_CORE_API gr_single_pole_iir_filter_cc_sptr | gr_make_single_pole_iir_filter_cc (double alpha, unsigned int vlen) |
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 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 Attributes inherited from gr_block | |
| std::vector< long > | d_max_output_buffer |
| std::vector< long > | d_min_output_buffer |
| gruel::mutex | d_setlock |
single pole IIR filter with complex input, complex output
The input and output satisfy a difference equation of the form \f{ y[n] - (1-alpha) y[n-1] = alpha x[n] \f}
with the corresponding rational system function \f{ H(z) = \frac{alpha}{1 - (1-alpha) z^{-1}} \f}
Note that some texts define the system function with a + in the denominator. If you're using that convention, you'll need to negate the feedback tap.
| gr_single_pole_iir_filter_cc::~gr_single_pole_iir_filter_cc | ( | ) |
| void gr_single_pole_iir_filter_cc::set_taps | ( | double | alpha | ) |
|
virtual |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
|
friend |