长时间序列的卷积运算加速方法
时域卷积
我们对长时间序列做卷积运算时通常伴随着较大的运算量,本文介绍了一种基于信号分段和FFT变换的时间卷积方法,可以有效提高运算效率。
- 时域卷积原理
假设卷积公示为y(n)=x(n)∗h(n),其中x(n)=[x1,x2,...,xN]T,h(n)=[h1,h2,...,hM]T,则y(n)的长度为N+M−1,卷积过程的图解为:

2. 时域卷积原理
该过程包括M∗(N+M−1)次乘法,M∗(N+M−1)次加法。
频域分段卷积
- 频域卷积原理
思路:对长序列x(n)进行分段处理,对每一段序列xi(n)进行FFT变换得到Xi(k),其中i表示第i段。将Xi(k)与h(n)的FFT变换结果相乘得到Yi(k),接着对Yi(k)进行反傅里叶变换yi(n),最后将yi(n)进行整合重构。整个过程的图解为:

要点:
- Nfft应当满足Nfft=Nx+Nh−1,因为分段信号xi(n)和h(n)的卷积结果长度为Nx+Nh−1,如果Nfft<Nx+Nh−1,会出现混叠的现象,无法恢复正确的信号yi(n)。
- 运算量
由于N点FFT的运算量为log2N2/2次复数乘法,log2N2次复数加法,所以分段频域卷积的计算量为:
复数乘法:Nfrm∗(3∗log2Nfft2/2+Nx)复数加法:Nfrm∗(3∗log2Nfft2)
其中Nfrm=⌊N/Nx⌋。所以,频域分段卷积比时域卷积的运算量小许多。
相关文章:
-
2022-12-23
-
2021-12-23
-
2021-08-23
-
2021-12-23
-
2021-12-27
-
2021-11-06
-
2021-08-24