利用FFT实现快速卷积Word格式文档下载.docx
《利用FFT实现快速卷积Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《利用FFT实现快速卷积Word格式文档下载.docx(6页珍藏版)》请在冰豆网上搜索。
现以FFT求有限长序列间的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT的快速卷积方法。
(1)序列x(n)和h(n)的长差不多。
设x(n)的长为N1,h(n)的长为N2,要求
用FFT完成这一卷积的具体步骤如下:
①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度
,若采用基2-FFT完成卷积运算,要求
(
为整数)。
②用补零方法使x(n)和h(n)变成列长为N的序列。
③用FFT计算x(n)和h(n)的N点离散傅里叶变换
④完成X(k)和H(k)乘积,
⑤用FFT计算Y(k)的离散傅里叶反变换得
yn=real(yn);
end
y=conv(x,h);
n=0:
N-1;
subplot(2,1,1);
stem(n,y);
ylabel('
时域计算'
);
subplot(2,1,2);
stem(n,yn,'
.'
FFT快速'
n=[0:
1:
15];
m=[0:
16];
N1=length(n);
N2=length(m);
xn=ones(1,N1);
hn=(-0.5).^m;
N=N1+N2-1;
XK=fft(xn,N);
HK=fft(hn,N);
YK=XK.*HK;
yn=ifft(YK,N);
ifall(imag(xn)==0)&
(all(imag(hn)==0))
stem(x,yn,'
xn=cos(2*pi*n/N1);
(all(imag(hn)==0))
x=0:
xn=(1/3).^n;