USRP Hardware Driver and USRP Manual  Version: 4.2.0.0-143-g2ad30980f
UHD and USRP Manual
uhd::rfnoc::vector_iir_block_control Class Referenceabstract

#include <uhd/rfnoc/vector_iir_block_control.hpp>

Inheritance diagram for uhd::rfnoc::vector_iir_block_control:
uhd::rfnoc::noc_block_base uhd::rfnoc::node_t uhd::rfnoc::register_iface_holder

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_tget_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::sptrget_tree () const
 Return a reference to this block's subtree. More...
 
uhd::property_tree::sptrget_tree ()
 Return a reference to this block's subtree (non-const version) More...
 
std::shared_ptr< mb_controllerget_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_ifaceregs ()
 

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 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_tget_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...
 

Detailed Description

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

  • beta is the feedforward tap
  • alpha is the feedback tap
  • delay (a.k.a. vector length) is the feedback tap delay

Member Function Documentation

◆ get_alpha()

virtual double uhd::rfnoc::vector_iir_block_control::get_alpha ( const size_t  chan) const
pure virtual

Return the feedback tap value

Returns the feedback tap value for channel chan of the IIR filter.

Parameters
chanThe channel to retrieve the feedback tap value from
Returns
The feedback tap value for the filter

◆ get_beta()

virtual double uhd::rfnoc::vector_iir_block_control::get_beta ( const size_t  chan) const
pure virtual

Return the feedforward tap value

Returns the feedforward tap value for channel chan of the IIR filter.

Parameters
chanThe channel to retrieve the feedforward tap value from
Returns
The feedforward tap value for the filter

◆ get_delay()

virtual uint16_t uhd::rfnoc::vector_iir_block_control::get_delay ( const size_t  chan) const
pure virtual

Return the feedback tap delay

Returns the feedback tap delay value in samples for channel chan of the IIR filter.

Parameters
chanThe channel to retrieve the feedback tap delay value from
Returns
The feedback tap delay of the filter in samples

◆ get_max_delay()

virtual uint16_t uhd::rfnoc::vector_iir_block_control::get_max_delay ( const size_t  chan) const
pure virtual

Return the maximum filter delay

Returns the maximum allowable filter delay value, in samples, for channel chan.

Parameters
chanThe channel to retrieve the maximum delay from
Returns
The maximum filter delay

◆ set_alpha()

virtual void uhd::rfnoc::vector_iir_block_control::set_alpha ( const double  alpha,
const size_t  chan 
)
pure virtual

Set the feedback tap value

Sets the feedback tap value for channel chan of the IIR filter.

Parameters
alphaThe feedback tap value for the filter
chanThe channel to apply the feedback tap value to

◆ set_beta()

virtual void uhd::rfnoc::vector_iir_block_control::set_beta ( const double  beta,
const size_t  chan 
)
pure virtual

Set the feedforward tap value

Sets the feedforward tap value for channel chan of the IIR filter.

Parameters
betaThe feedforward tap value for the filter
chanThe channel to apply the feedforward tap value to

◆ set_delay()

virtual void uhd::rfnoc::vector_iir_block_control::set_delay ( const uint16_t  delay,
const size_t  chan 
)
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.

Parameters
delayThe feedback tap delay of the filter in samples
chanThe channel to apply the feedback tap delay to

Member Data Documentation

◆ REG_ALPHA_OFFSET

const uint32_t uhd::rfnoc::vector_iir_block_control::REG_ALPHA_OFFSET
static

◆ REG_BETA_OFFSET

const uint32_t uhd::rfnoc::vector_iir_block_control::REG_BETA_OFFSET
static

◆ REG_BLOCK_SIZE

const uint32_t uhd::rfnoc::vector_iir_block_control::REG_BLOCK_SIZE
static

◆ REG_DELAY_OFFSET

const uint32_t uhd::rfnoc::vector_iir_block_control::REG_DELAY_OFFSET
static

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