发布网友 发布时间:2025-01-02 18:03
共1个回答
热心网友 时间:2025-01-07 10:54
WebRTC AEC3算法原理详解
AEC3延迟估计算法在计算滤波器能量最大块作为延迟估计值,与AEC的非线性处理的延迟估计算法思想一致。该算法由步长为0.7的5个时域NLMS自适应滤波器组成,每个滤波器默认32块,每块16个sample共512点,5个滤波器之间互相重叠8块。输入信号在时间上重叠,滤波器的输入信号是经过分频后的0~16kHz低频段信号然后经过4倍下采样,采样率为4000Hz。通过计算,最多能估计2048/4000 = 512ms的延迟。
滤波器更新使用NLMS更新公式,根据滤波器更新条件计算每个滤波器的延时值。延时值的可信度也是需要考虑的因素。从5个滤波器中挑选最佳延时值估计,挑选方法为滤波器更新且可信度为真,且accuracy最大作为延时值估计。accuracy为近端能量与误差能量之差。
使用大小为250的历史窗口统计历史延时值,当出现次数大于20次,认为这是一个质量较高的估计值。延时值过滤也需考虑,质量好的延时值和质量差的延时值都会用来进行远端对齐,当上一次延时值和当前延时值的质量都是高的情况下会有一个迟滞量,即延迟增量小于某一阈值时认为延时相较于上一次没有改变。
时钟漂移检测使用大小为3的历史窗口判断时钟漂移是否产生,窗口内的值时前3个历史时刻延时估计值。判断标准为d1,d2,d3分别时历史窗口历史值与当前时刻延时值之差。增量漂移和减量漂移的判断标准分别为d1==-1且d2==-2 或d1==-2且d2==-1 d3==-3确认产生,d1==1且d2==2 或 d1==2且d2==1 d3==3确认产生。目前aec3只做了时钟漂移检测,没有做相应处理。
线性回声消除使用主辅滤波器结构,主滤波器是一个精简版的频域分块的kalman滤波器,计算的是滤波器抽头系数误差协方差的平均,而不是计算每块滤波器抽头系数的误差协方差,回声路径跟踪能力和双工效果比PBFDAF效果要好一些,但比起kalman滤波器又差了点,相当于在计算量上和效果上做了权衡。辅滤波器是PBFDAF,会一直更新,能快速对回声路径进行追踪,当辅滤波器发散时主滤波器系数拷贝至辅滤波器。
窄带信号检测算法是自适应滤波器对窄带信号的处理,主要原因是窄带信号会导致自适应滤波器朝着错误的方向收敛,最终导致滤波器发散和回声泄漏。主滤波器更新方式包括通过计算主滤波器系数的失调增益调整滤波器系数和通过系数更新公式更新滤波器系数。
选择线性回声消除结果使用主滤波器误差还是使用辅滤波器误差,然后进行平滑过渡。非线性回声消除原理主要思想是通过估计残余回声以及噪声,设计一个滤波器,以达到去除残余回声的目的,这实际上与降噪算法非常类似。AEC3算法对工程化做了大量的处理,包括延迟估计算法、处理回声路径变化、初始状态设置、线性回声消除以及非线性回声消除,其中的每一部分内还有更多复杂的细节及逻辑。
热心网友 时间:2025-01-07 10:59
WebRTC AEC3算法原理详解
AEC3延迟估计算法在计算滤波器能量最大块作为延迟估计值,与AEC的非线性处理的延迟估计算法思想一致。该算法由步长为0.7的5个时域NLMS自适应滤波器组成,每个滤波器默认32块,每块16个sample共512点,5个滤波器之间互相重叠8块。输入信号在时间上重叠,滤波器的输入信号是经过分频后的0~16kHz低频段信号然后经过4倍下采样,采样率为4000Hz。通过计算,最多能估计2048/4000 = 512ms的延迟。
滤波器更新使用NLMS更新公式,根据滤波器更新条件计算每个滤波器的延时值。延时值的可信度也是需要考虑的因素。从5个滤波器中挑选最佳延时值估计,挑选方法为滤波器更新且可信度为真,且accuracy最大作为延时值估计。accuracy为近端能量与误差能量之差。
使用大小为250的历史窗口统计历史延时值,当出现次数大于20次,认为这是一个质量较高的估计值。延时值过滤也需考虑,质量好的延时值和质量差的延时值都会用来进行远端对齐,当上一次延时值和当前延时值的质量都是高的情况下会有一个迟滞量,即延迟增量小于某一阈值时认为延时相较于上一次没有改变。
时钟漂移检测使用大小为3的历史窗口判断时钟漂移是否产生,窗口内的值时前3个历史时刻延时估计值。判断标准为d1,d2,d3分别时历史窗口历史值与当前时刻延时值之差。增量漂移和减量漂移的判断标准分别为d1==-1且d2==-2 或d1==-2且d2==-1 d3==-3确认产生,d1==1且d2==2 或 d1==2且d2==1 d3==3确认产生。目前aec3只做了时钟漂移检测,没有做相应处理。
线性回声消除使用主辅滤波器结构,主滤波器是一个精简版的频域分块的kalman滤波器,计算的是滤波器抽头系数误差协方差的平均,而不是计算每块滤波器抽头系数的误差协方差,回声路径跟踪能力和双工效果比PBFDAF效果要好一些,但比起kalman滤波器又差了点,相当于在计算量上和效果上做了权衡。辅滤波器是PBFDAF,会一直更新,能快速对回声路径进行追踪,当辅滤波器发散时主滤波器系数拷贝至辅滤波器。
窄带信号检测算法是自适应滤波器对窄带信号的处理,主要原因是窄带信号会导致自适应滤波器朝着错误的方向收敛,最终导致滤波器发散和回声泄漏。主滤波器更新方式包括通过计算主滤波器系数的失调增益调整滤波器系数和通过系数更新公式更新滤波器系数。
选择线性回声消除结果使用主滤波器误差还是使用辅滤波器误差,然后进行平滑过渡。非线性回声消除原理主要思想是通过估计残余回声以及噪声,设计一个滤波器,以达到去除残余回声的目的,这实际上与降噪算法非常类似。AEC3算法对工程化做了大量的处理,包括延迟估计算法、处理回声路径变化、初始状态设置、线性回声消除以及非线性回声消除,其中的每一部分内还有更多复杂的细节及逻辑。