USRP Hardware Driver and USRP Manual: uhd::rfnoc::vector_iir_block_control Class Reference

| USRP Hardware Driver and USRP Manual Version: 4.9.0.makepkg-0-g9ec1f582 UHD and USRP Manual |

Loading...
Searching...
No Matches
uhd::rfnoc::vector_iir_block_control Class Referenceabstract
RFNoC » RFNoC Blocks

`#include <uhd/rfnoc/vector_iir_block_control.hpp>`

Inheritance diagram for uhd::rfnoc::vector_iir_block_control:

## 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.
size_t | get_num_input_ports () const override
size_t | get_num_output_ports () const override
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.
uhd::property_tree::sptr & | get_tree ()
| Return a reference to this block's subtree (non-const version).
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.
Public Types inherited from uhd::rfnoc::node_t
enum class | forwarding_policy_t { ONE_TO_ONE , ONE_TO_FAN , ONE_TO_ALL_IN , ONE_TO_ALL_OUT , ONE_TO_ALL , DROP , 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
using | forwarding_map_t
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)
void | set_num_output_ports (const size_t num_ports)
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.

## 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

  chan | The 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

  chan | The 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

  chan | The 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

  chan | The 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

  alpha | The feedback tap value for the filter
  chan | The 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

  beta | The feedforward tap value for the filter
  chan | The 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

  delay | The feedback tap delay of the filter in samples
  chan | The 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:

- vector_iir_block_control.hpp