XCORE SDK
XCORE Software Development Kit
|
AEC shared state structure. More...
#include <aec_state.h>
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]
coherence_mu_params_t aec_shared_state_t::coh_mu_state[AEC_LIB_MAX_Y_CHANNELS] |
Structure containing coherence mu calculation related parameters.
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.
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.
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.
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.
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.
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_t aec_shared_state_t::shadow_filter_params |
Structure containing shadow filter related parameters.
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
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.
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.
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.
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.
bfp_complex_s32_t aec_shared_state_t::X_fifo[AEC_LIB_MAX_X_CHANNELS][AEC_LIB_MAX_PHASES] |
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.
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.
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.
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.