计算一个脉冲响应和输入信号的卷积,除了使用原始的时域卷积以外,还有如下方法:
- FFT卷积的方法:对输入信号(长度M)和脉冲响应(长度N)分别补零到K(K>M+N-1),然后分别计算FFT,然后相乘,最后反FFT,取前M+N-1个元素作为最终的卷积结果
- 输入信号很长时,将输入信号分成一帧一帧,使用overlap-add或者overlap-save的方法
- 当脉冲信号和输入信号都很长时,可使用均匀分块卷积
均匀分块卷积
均匀分块卷积与频域自适应滤波(FDAF)结合,就是WebRTC AEC中线性滤波处理中的算法核心。
在介绍PBFDAF之前,我们来看一下均匀分块卷积的计算流程图:

我们分几个部分讲解上图的计算流程:
1、脉冲响应分块

如上图红色矩形部分,将脉冲响应分成P个等长的不重叠的小块,每小块的长度为B,我们把这些小块叫做子滤波器(filter part 1,2...P),将每个小块后面补B个零,分别构成2B长度的序列,然后进行实数FFT。我们知道实数序列的FFT结果具有对称性,因此实数FFT返回B+1个点(类似numpy的rfft.fft)

本文介绍了计算脉冲响应与输入信号卷积的多种方法,包括FFT卷积、帧级处理、均匀分块卷积及其在WebRTCAEC中的线性滤波,重点讲解了PBFDAF算法,涉及NLP、NLMS和频域自适应滤波的实现过程。
最低0.47元/天 解锁文章
2036

被折叠的 条评论
为什么被折叠?



