Echo cancellation in Asterisk — ECHO_CAN_MARK
This echo canceller is a simple Least Mean Squares Echo canceller with DoubleTalk detection. It has no Residual Error Supressor, nor does it have a high-pass filter.
It’s based in part on the TI application note Digital Voice Echo Canceller with a TMS32020 using M=1 in equation 6.
Note that the number of taps is fixed at compile time and is not configurable in zapata.conf.
Parameters (in mec.h):
NUM_TAPS_POW2 | log2 of the number of taps |
SIGMA_LU_POW | -log2 of the filter constant for the suppressed signal power estimate |
SIGMA_LY_POW | -log2 of the filter constant for the reference signal power estimate (used to calculate the update stepsize) |
SIGMA_YT_POW | -log2 of the filter constant for the short-term reference signal average |
SIGMA_ST_POW | -log2 of the filter constant for the short-term near-end signal average |
BETA_POW | -log2 of the compromise stepsize constant, beta1 |
MIN_QUALITY | Minimum suppressed/reference power ratio at which to allow updates of the coefficients |
OPTIMIZEDIV | ? Some fudge to improve efficiency of the algorithm ? |
MIN_UPDATE | ? Some fudge to improve efficiency of the algorithm ? |
MIN_SKIP | ? Some fudge to improve efficiency of the algorithm ? |
HANG_T | Number of samples after near-end speech detected to not update the coefficients |
See also