#include <uhd/rfnoc/vector_iir_block_control.hpp>
Public Member Functions | |
virtual void | set_alpha (const double alpha, const size_t chan)=0 |
virtual double | get_alpha (const size_t chan) const =0 |
virtual void | set_beta (const double beta, const size_t chan)=0 |
virtual double | get_beta (const size_t chan) const =0 |
virtual void | set_delay (const uint16_t delay, const size_t chan)=0 |
virtual uint16_t | get_delay (const size_t chan) const =0 |
virtual uint16_t | get_max_delay (const size_t chan) const =0 |
Public Member Functions inherited from uhd::rfnoc::noc_block_base | |
~noc_block_base () override | |
std::string | get_unique_id () const override |
Unique ID for an RFNoC block is its block ID. More... | |
size_t | get_num_input_ports () const override |
Number of input ports. Note: This gets passed into this block from the. More... | |
size_t | get_num_output_ports () const override |
Number of output ports. Note: This gets passed outto this block from the. More... | |
noc_id_t | get_noc_id () const |
const block_id_t & | get_block_id () const |
double | get_tick_rate () const |
size_t | get_mtu (const res_source_info &edge) |
size_t | get_chdr_hdr_len (const bool account_for_ts=true) const |
size_t | get_max_payload_size (const res_source_info &edge, const bool account_for_ts=true) |
uhd::device_addr_t | get_block_args () const |
uhd::property_tree::sptr & | get_tree () const |
Return a reference to this block's subtree. More... | |
uhd::property_tree::sptr & | get_tree () |
Return a reference to this block's subtree (non-const version) More... | |
std::shared_ptr< mb_controller > | get_mb_controller () |
Public Member Functions inherited from uhd::rfnoc::node_t | |
node_t () | |
virtual | ~node_t () |
std::vector< std::string > | get_property_ids () const |
template<typename prop_data_t > | |
void | set_property (const std::string &id, const prop_data_t &val, const size_t instance=0) |
void | set_properties (const uhd::device_addr_t &props, const size_t instance=0) |
template<typename prop_data_t > | |
const prop_data_t & | get_property (const std::string &id, const size_t instance=0) |
virtual void | set_command_time (uhd::time_spec_t time, const size_t instance) |
virtual uhd::time_spec_t | get_command_time (const size_t instance) const |
virtual void | clear_command_time (const size_t instance) |
Public Member Functions inherited from uhd::rfnoc::register_iface_holder | |
register_iface_holder (register_iface::sptr reg) | |
virtual | ~register_iface_holder ()=default |
register_iface & | regs () |
Static Public Attributes | |
static const uint32_t | REG_BLOCK_SIZE |
static const uint32_t | REG_DELAY_OFFSET |
static const uint32_t | REG_ALPHA_OFFSET |
static const uint32_t | REG_BETA_OFFSET |
Static Public Attributes inherited from uhd::rfnoc::node_t | |
static const size_t | ANY_PORT = size_t(~0) |
Additional Inherited Members | |
Public Types inherited from uhd::rfnoc::noc_block_base | |
using | sptr = std::shared_ptr< noc_block_base > |
using | make_args_ptr = std::unique_ptr< make_args_t > |
Opaque pointer to the constructor arguments. More... | |
Public Types inherited from uhd::rfnoc::node_t | |
enum | forwarding_policy_t { forwarding_policy_t::ONE_TO_ONE, forwarding_policy_t::ONE_TO_FAN, forwarding_policy_t::ONE_TO_ALL_IN, forwarding_policy_t::ONE_TO_ALL_OUT, forwarding_policy_t::ONE_TO_ALL, forwarding_policy_t::DROP, forwarding_policy_t::USE_MAP } |
Types of property/action forwarding for those not defined by the block itself. More... | |
using | resolver_fn_t = std::function< void(void)> |
using | resolve_callback_t = std::function< void(void)> |
using | graph_mutex_callback_t = std::function< std::recursive_mutex &(void)> |
using | action_handler_t = std::function< void(const res_source_info &, action_info::sptr)> |
using | forwarding_map_t = std::unordered_map< res_source_info, std::vector< res_source_info > > |
Protected Types inherited from uhd::rfnoc::node_t | |
using | prop_ptrs_t = std::vector< property_base_t * > |
Protected Member Functions inherited from uhd::rfnoc::noc_block_base | |
noc_block_base (make_args_ptr make_args) | |
void | set_num_input_ports (const size_t num_ports) |
Update number of input ports. More... | |
void | set_num_output_ports (const size_t num_ports) |
Update number of output ports. More... | |
void | set_tick_rate (const double tick_rate) |
void | set_mtu_forwarding_policy (const forwarding_policy_t policy) |
void | set_mtu (const res_source_info &edge, const size_t new_mtu) |
property_base_t * | get_mtu_prop_ref (const res_source_info &edge) |
virtual void | deinit () |
Protected Member Functions inherited from uhd::rfnoc::node_t | |
void | register_property (property_base_t *prop, resolve_callback_t &&clean_callback=nullptr) |
void | add_property_resolver (prop_ptrs_t &&inputs, prop_ptrs_t &&outputs, resolver_fn_t &&resolver_fn) |
void | set_prop_forwarding_policy (forwarding_policy_t policy, const std::string &prop_id="") |
void | set_prop_forwarding_map (const forwarding_map_t &map) |
template<typename prop_data_t > | |
void | set_property (const std::string &id, const prop_data_t &val, const res_source_info &src_info) |
template<typename prop_data_t > | |
const prop_data_t & | get_property (const std::string &id, const res_source_info &src_info) |
void | register_action_handler (const std::string &id, action_handler_t &&handler) |
void | set_action_forwarding_policy (forwarding_policy_t policy, const std::string &action_key="") |
void | set_action_forwarding_map (const forwarding_map_t &map) |
void | post_action (const res_source_info &edge_info, action_info::sptr action) |
virtual bool | check_topology (const std::vector< size_t > &connected_inputs, const std::vector< size_t > &connected_outputs) |
Protected Member Functions inherited from uhd::rfnoc::register_iface_holder | |
void | update_reg_iface (register_iface::sptr new_iface=nullptr) |
Static Protected Attributes inherited from uhd::rfnoc::node_t | |
static dirtifier_t | ALWAYS_DIRTY |
A dirtifyer object, useful for properties that always need updating. More... | |
Vector IIR Block Control Class
The Vector IIR Block is an RFNoC block that implements an infinite impulse filter with a variable length delay line. The transfer function is defined as follows:
beta
H(z) = ---------------------— 1 - alpha * z ^ -delay
where
|
pure virtual |
Return the feedback tap value
Returns the feedback tap value for channel chan
of the IIR filter.
chan | The channel to retrieve the feedback tap value from |
|
pure virtual |
Return the feedforward tap value
Returns the feedforward tap value for channel chan
of the IIR filter.
chan | The channel to retrieve the feedforward tap value from |
|
pure virtual |
Return the feedback tap delay
Returns the feedback tap delay value in samples for channel chan
of the IIR filter.
chan | The channel to retrieve the feedback tap delay value from |
|
pure virtual |
Return the maximum filter delay
Returns the maximum allowable filter delay value, in samples, for channel chan
.
chan | The channel to retrieve the maximum delay from |
|
pure virtual |
Set the feedback tap value
Sets the feedback tap value for channel chan
of the IIR filter.
alpha | The feedback tap value for the filter |
chan | The channel to apply the feedback tap value to |
|
pure virtual |
Set the feedforward tap value
Sets the feedforward tap value for channel chan
of the IIR filter.
beta | The feedforward tap value for the filter |
chan | The channel to apply the feedforward tap value to |
|
pure virtual |
Set the feedback tap delay
Sets the feedback tap delay in samples for channel chan
of the IIR filter. The delay value for the filter must be less than or equal to the maximum delay length supported by the filter.
delay | The feedback tap delay of the filter in samples |
chan | The channel to apply the feedback tap delay to |
|
static |
|
static |
|
static |
|
static |