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

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

Inheritance diagram for uhd::rfnoc::window_block_control:
[legend]
Collaboration diagram for uhd::rfnoc::window_block_control:
[legend]

## Public Member Functions

virtual size_t | get_max_num_coefficients (const size_t chan) const =0
virtual void | set_coefficients (const std::vector< int16_t > &coeffs, const size_t chan)=0
virtual std::vector< int16_t > | get_coefficients (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_WINDOW_BLOCK_SIZE
static const uint32_t | REG_WINDOW_LEN_OFFSET
static const uint32_t | REG_WINDOW_MAX_LEN_OFFSET
static const uint32_t | REG_WINDOW_LOAD_COEFF_OFFSET
static const uint32_t | REG_WINDOW_LOAD_COEFF_LAST_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

Window Block Control Class

The Window Block is a windowing block for RFNoC that is intended to be used with the FFT block. The block can be configured with coefficients, by which the samples in each input packet are multiplied before begin output. The first sample of the first packet is multiplied by the first first coefficient, the second sample is multiplied by the second coefficient, and so on.

The RFNoC window block supports a configurable number of pairs of input and output ports of sc16 data (16-bit fixed-point complex samples) and a configurable window length and coefficients for each.

## Member Function Documentation

## get_coefficients()

virtual std::vector< int16_t > uhd::rfnoc::window_block_control::get_coefficients | ( | const size_t | chan | ) | const

pure virtual

Get the window coefficients

Return a vector with the current window coefficients for a given channel.

Parameters

  chan | The channel to retrieve the current window coefficients from

Returns
  The vector of current window coefficients

## get_max_num_coefficients()

virtual size_t uhd::rfnoc::window_block_control::get_max_num_coefficients | ( | const size_t | chan | ) | const

pure virtual

Get the maximum number of window coefficients supported by this block

Get the maximum number of window coefficients supported by this block.

Parameters

  chan | The channel to retrieve the maximum number of coefficients from

Returns
  The maximum number of window coefficients supported by this block

## set_coefficients()

virtual void uhd::rfnoc::window_block_control::set_coefficients | ( | const std::vector< int16_t > & | coeffs,
|  | const size_t | chan )

pure virtual

Set the window coefficients

Set the window coefficients for a given channel. The number of coefficients must be equal to or less than the maximum number of coefficients supported by the given channel of the block.

Parameters

  coeffs | A vector of integer coefficients for the window
  chan | The channel to apply the coefficients to

## Member Data Documentation

## REG_WINDOW_BLOCK_SIZE

const uint32_t uhd::rfnoc::window_block_control::REG_WINDOW_BLOCK_SIZE

static

## REG_WINDOW_LEN_OFFSET

const uint32_t uhd::rfnoc::window_block_control::REG_WINDOW_LEN_OFFSET

static

## REG_WINDOW_LOAD_COEFF_LAST_OFFSET

const uint32_t uhd::rfnoc::window_block_control::REG_WINDOW_LOAD_COEFF_LAST_OFFSET

static

## REG_WINDOW_LOAD_COEFF_OFFSET

const uint32_t uhd::rfnoc::window_block_control::REG_WINDOW_LOAD_COEFF_OFFSET

static

## REG_WINDOW_MAX_LEN_OFFSET

const uint32_t uhd::rfnoc::window_block_control::REG_WINDOW_MAX_LEN_OFFSET

static

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

- window_block_control.hpp