XCORE SDK
XCORE Software Development Kit
|
Macros | |
#define | IC_INIT_MU 0.369566 |
#define | IC_INIT_EMA_ALPHA 0.9995117188 |
#define | IC_INIT_LEAKAGE_ALPHA 0.995 |
#define | IC_FILTER_PHASES 10 |
#define | IC_Y_CHANNEL_DELAY_SAMPS 180 |
#define | IC_INIT_SIGMA_XX_SHIFT 11 |
#define | IC_INIT_GAMMA_LOG2 1 |
#define | IC_INIT_DELTA 7.450580593454381e-09 |
#define | IC_INIT_ENABLE_FILTER_INSTABILITY_RECOVERY 1 |
#define | IC_INIT_INSTABILITY_RATIO_LIMIT 2.0 |
#define | IC_INIT_SMOOTHED_VOICE_CHANCE_ALPHA 0.99 |
#define | IC_INIT_ENERGY_ALPHA_SLOW 0.999 |
#define | IC_INIT_ENERGY_ALPHA_FAST 0.98 |
#define | IC_INIT_INSTABILITY_RECOVERY_LEAKAGE_ALPHA 0.995 |
#define | IC_INIT_SMOOTHED_VOICE_CHANCE 1.0 |
#define | IC_Y_CHANNELS 1 |
#define | IC_X_CHANNELS 1 |
#define | IC_FRAME_LENGTH 512 |
#define | IC_FRAME_ADVANCE 240 |
IC new samples frame size This is the number of samples of new data that the IC works on every frame. 240 samples at 16kHz is 15msec. Every frame, the IC takes in 15msec of mic data and generates 15msec of interference cancelled output. NOT USER MODIFIABLE. | |
#define | IC_FD_FRAME_LENGTH ((IC_FRAME_LENGTH / 2) + 1) |
#define | FFT_PADDING 2 |
#define FFT_PADDING 2 |
Extra 2 samples you need to allocate in time domain so that the full spectrum (DC to nyquist) can be stored after the in-place FFT. NOT USER MODIFIABLE.
#define IC_FD_FRAME_LENGTH ((IC_FRAME_LENGTH / 2) + 1) |
Number of bins of spectrum data computed when doing a DFT of a IC_FRAME_LENGTH length time domain vector. The IC_FD_FRAME_LENGTH spectrum values represent the bins from DC to Nyquist. NOT USER MODIFIABLE.
#define IC_FILTER_PHASES 10 |
The number of filter phases supported by the IC. Each filter phase represents 15ms of filter length. Hence a 10 phase filter will allow cancellation of noise sources with up to 150ms of echo tail length. There is a tradeoff between adaption speed and maximum cancellation of the filter; increasing the number of phases will increase the maximum cancellation at the cost of increasesed xCORE resource usage and slower adaption times.
#define IC_FRAME_LENGTH 512 |
Time domain samples block length used internally in the IC's block LMS algorithm. NOT USER MODIFIABLE.
#define IC_INIT_DELTA 7.450580593454381e-09 |
Delta value used in denominator to avoid large values when calculating inverse X energy.
#define IC_INIT_EMA_ALPHA 0.9995117188 |
Alpha used for calculating y_ema_energy, x_ema_energy and error_ema_energy.
#define IC_INIT_ENABLE_FILTER_INSTABILITY_RECOVERY 1 |
Boolean which controls whether to enable detection and recovery from instability. Normally this should be enabled.
#define IC_INIT_ENERGY_ALPHA_FAST 0.98 |
Fast alpha used filtering input and output energies of IC used in the adaption controller.
#define IC_INIT_ENERGY_ALPHA_SLOW 0.999 |
Slow alpha used filtering input and output energies of IC used in the adaption controller.
#define IC_INIT_GAMMA_LOG2 1 |
Up scaling factor for X energy calculation for used for LMS normalisation.
#define IC_INIT_INSTABILITY_RATIO_LIMIT 2.0 |
Ratio of the output to input at which the filter will reset. Setting it to 2.0 or above is a good rule of thumb.
#define IC_INIT_INSTABILITY_RECOVERY_LEAKAGE_ALPHA 0.995 |
Leakage alpha used in the case where instability is detected. This allows the filter to stabilise without completely forgetting the adaption.
#define IC_INIT_LEAKAGE_ALPHA 0.995 |
Alpha used for leaking away H_hat, allowing filter to slowly forget adaption. This value is adjusted by the adaption rate controller if instability is detected.
#define IC_INIT_MU 0.369566 |
Initial MU value applied on startup. MU controls the adaption rate of the IC and is normally adjusted by the adaption rate controller during operation.
#define IC_INIT_SIGMA_XX_SHIFT 11 |
Down scaling factor for X energy calculation used for normalisation.
#define IC_INIT_SMOOTHED_VOICE_CHANCE 1.0 |
Initial smoothed voice chance at startup. This value is quickly replaced by the calculated voice change value from the VAD signal.
#define IC_INIT_SMOOTHED_VOICE_CHANCE_ALPHA 0.99 |
Alpha used for low pass filtering the voice chance estimate based on VAD input.
#define IC_X_CHANNELS 1 |
Number of X channels input. This is fixed at 1 for the IC. The X channel is the microphone from which the estimated noise signal is subtracted. In practical terms it does not matter which microphone is X and which is Y. NOT USER MODIFIABLE.
#define IC_Y_CHANNEL_DELAY_SAMPS 180 |
This is the delay, in samples that one of the microphone signals is delayed in order for the filter to be effective. A larger number increases the delay through the filter but may improve cancellation. The group delay through the IC filter is 32 + this number of samples
#define IC_Y_CHANNELS 1 |
Number of Y channels input. This is fixed at 1 for the IC. The Y channel is delayed and used to generate the estimated noise signal to subtract from X. In practical terms it does not matter which microphone is X and which is Y. NOT USER MODIFIABLE.