一、speex回声消除aec小析:
频域自适应算法采用了分块处理的思想,以减少高阶自适应滤波器的计算复杂度,多延迟自适应滤波器(MDF)则更一般可以分M块来处理,其中块的长度比自适应滤波器的阶数更小。
后置滤波器系数一直在更新,单讲时前置滤波器用后置滤波器系数更新,双讲时前置滤波器系数不更新。
如果近端远端的数据线性比较好的话,用speex处理回声效果还不错。若是非线性严重效果就差了。另外memath认为相比其它的回声消除算法,speex对在滤波器更新时做了远端检测,回声估计比较好些。
以前写的文章,分享下,不当之处,请指正。
二、源码解读:
标记:N=2*frame_size 其中frame_size为帧长
M= filter_length/frame_size,其中filter_length为回声消除拖尾
1、按照公式(1)把近端信号in[frame_size]直流去除掉,存入缓存input[frame_size]。
2、按照公式(2)对远端与近端信号分别进行预加重处理,远端信号存入x[frame_size],并对近端延迟的信号进行frame_size的交叠,以下均按预加重处理后信号处理。