XCORE SDK
XCORE Software Development Kit
Public Attributes | List of all members
aec_shared_state_t Struct Reference

AEC shared state structure. More...

#include <aec_state.h>

Public Attributes

bfp_complex_s32_t X_fifo [AEC_LIB_MAX_X_CHANNELS][AEC_LIB_MAX_PHASES]
 
bfp_complex_s32_t X [AEC_LIB_MAX_X_CHANNELS]
 
bfp_complex_s32_t Y [AEC_LIB_MAX_Y_CHANNELS]
 
bfp_s32_t y [AEC_LIB_MAX_Y_CHANNELS]
 
bfp_s32_t x [AEC_LIB_MAX_X_CHANNELS]
 
bfp_s32_t prev_y [AEC_LIB_MAX_Y_CHANNELS]
 
bfp_s32_t prev_x [AEC_LIB_MAX_X_CHANNELS]
 
bfp_s32_t sigma_XX [AEC_LIB_MAX_X_CHANNELS]
 
float_s32_t y_ema_energy [AEC_LIB_MAX_Y_CHANNELS]
 
float_s32_t x_ema_energy [AEC_LIB_MAX_X_CHANNELS]
 
float_s32_t overall_Y [AEC_LIB_MAX_Y_CHANNELS]
 
float_s32_t sum_X_energy [AEC_LIB_MAX_X_CHANNELS]
 
coherence_mu_params_t coh_mu_state [AEC_LIB_MAX_Y_CHANNELS]
 
shadow_filter_params_t shadow_filter_params
 
aec_config_params_t config_params
 
unsigned num_y_channels
 
unsigned num_x_channels
 

Detailed Description

AEC shared state structure.

Data structures holding AEC persistant state that is common between main filter and shadow filter. aec_state_t::shared_state for both main and shadow filter point to the common aec_shared_t structure. [aec_shared_state_t]

Member Data Documentation

◆ coh_mu_state

coherence_mu_params_t aec_shared_state_t::coh_mu_state[AEC_LIB_MAX_Y_CHANNELS]

Structure containing coherence mu calculation related parameters.

◆ config_params

aec_config_params_t aec_shared_state_t::config_params

Structure containing AEC control parameters. These are initialised to the default values and can be changed at runtime by the user.

◆ num_x_channels

unsigned aec_shared_state_t::num_x_channels

Number of reference input channels that the AEC is configured for. This is the input parameter num_x_channels that aec_init() gets called with.

◆ num_y_channels

unsigned aec_shared_state_t::num_y_channels

Number of mic input channels that the AEC is configured for. This is the input parameter num_y_channels that aec_init() gets called with.

◆ overall_Y

float_s32_t aec_shared_state_t::overall_Y[AEC_LIB_MAX_Y_CHANNELS]

Energy of the mic input spectrum. This is calculated by calculating the energy per bin and summing across all bins. Stored in a y channels array with every value stored as a 32bit integer mantissa and exponent.

◆ prev_x

bfp_s32_t aec_shared_state_t::prev_x[AEC_LIB_MAX_X_CHANNELS]

BFP array pointing to time domain reference input values from the previous frame. These are put together with the new samples received in the current frame to make a AEC_PROC_FRAME_LENGTH processing block. The prev_x data values are stored as length (AEC_PROC_FRAME_LENGTH - AEC_FRAME_ADVANCE), 32bit integer array per x channel.

◆ prev_y

bfp_s32_t aec_shared_state_t::prev_y[AEC_LIB_MAX_Y_CHANNELS]

BFP array pointing to time domain mic input values from the previous frame. These are put together with the new samples received in the current frame to make a AEC_PROC_FRAME_LENGTH processing block. The prev_y data values are stored as length (AEC_PROC_FRAME_LENGTH - AEC_FRAME_ADVANCE), 32bit integer array per y channel.

◆ shadow_filter_params

shadow_filter_params_t aec_shared_state_t::shadow_filter_params

Structure containing shadow filter related parameters.

◆ sigma_XX

bfp_s32_t aec_shared_state_t::sigma_XX[AEC_LIB_MAX_X_CHANNELS]

BFP array pointing to sigma_XX values which are the weighted average of the X_energy signal. The sigma_XX data is stored as 32bit integer array of length AEC_FD_FRAME_LENGTH

◆ sum_X_energy

float_s32_t aec_shared_state_t::sum_X_energy[AEC_LIB_MAX_X_CHANNELS]

Sum of the X_energy across all bins for a given x channel. Stored in a x channels array with every value stored as a 32bit integer mantissa and exponent.

◆ X

bfp_complex_s32_t aec_shared_state_t::X[AEC_LIB_MAX_X_CHANNELS]

BFP array pointing to reference input signal spectrum. The X data values are stored as a length AEC_FD_FRAME_LENGTH complex 32bit array per x channel.

◆ x

bfp_s32_t aec_shared_state_t::x[AEC_LIB_MAX_X_CHANNELS]

BFP array pointing to time domain reference input processing block. The x data values are stored as length AEC_PROC_FRAME_LENGTH, 32bit integer array per x channel.

◆ x_ema_energy

float_s32_t aec_shared_state_t::x_ema_energy[AEC_LIB_MAX_X_CHANNELS]

Exponential moving average of the time domain reference signal energy. This is calculated by calculating energy per sample and summing across all samples. Stored in a x channels array with every value stored as a 32bit integer mantissa and exponent.

◆ X_fifo

BFP array pointing to the reference input spectrum phases. The term phase refers to the spectrum data for a frame. Multiple phases means multiple frames of data.

For example, 10 phases would mean the 10 most recent frames of data. Each phase spectrum, pointed to by X_fifo[i][j]->data is stored as a length AEC_FD_FRAME_LENGTH, complex 32bit array.

The phases are ordered from most recent to least recent in the X_fifo. For example, for an AEC configuration of 2 x-channels and 10 phases per x channel, 10 frames of X data spectrum is stored in the X_fifo. For a given x channel, say x channel 0, X_fifo[0][0] points to the most recent frame's X spectrum and X_fifo[0][9] points to the last phase, i.e the least recent frame's X spectrum.

◆ Y

bfp_complex_s32_t aec_shared_state_t::Y[AEC_LIB_MAX_Y_CHANNELS]

BFP array pointing to mic input signal spectrum. The Y data values are stored as a length AEC_FD_FRAME_LENGTH complex 32bit array per y channel.

◆ y

bfp_s32_t aec_shared_state_t::y[AEC_LIB_MAX_Y_CHANNELS]

BFP array pointing to time domain mic input processing block. The y data values are stored as length AEC_PROC_FRAME_LENGTH, 32bit integer array per y channel.

◆ y_ema_energy

float_s32_t aec_shared_state_t::y_ema_energy[AEC_LIB_MAX_Y_CHANNELS]

Exponential moving average of the time domain mic signal energy. This is calculated by calculating energy per sample and summing across all samples. Stored in a y channels array with every value stored as a 32bit integer mantissa and exponent.


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