- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
杭电 数字信号处理实验报告六
数字信号处理
实验报告(六)
姓名:王 修 庆
学号利用FFT实现快速卷积
一、实验目的
加深理解FFT在实现数字滤波中的重要作用,更好地利用FFT进行数字信号处理。
进一步掌握圆周卷积和线性卷积两者之间的关系。
二、实验原理
数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response)系统(简记为FIR 系统)和无限长单位脉冲响应(InfiniteImpulse Response)系统(简记为IIR 系统)。应用FFT 实现数字滤波器实际上就是用FFT 来快速计算有限长度序列的线性卷积。
用FFT 完成这一卷积的具体步骤如下:
为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度 N ≥ N1 + N 2+1. ,若采用基2-FFT完成卷积运算,要求N = 2m (m 为整数)。
②用补零方法使x(n)和h(n)变成列长为N 的序列。
③用FFT 计算x(n)和h(n)的N 点离散傅里叶变换
④完成X(k)和H(k)乘积,Y (k ) = x (k )H (k )
⑤用FFT 计算Y(k)的离散傅里叶反变换得
2.当 x(n)长度很长时,即N1 N 2,通常不允许等x(n)全部采集齐后再进行卷积,
否则使输出相对于输入有较长的延时,另外,若1 1 2 N + N . 太大,h(n)要补上太多的零点,很不经济,且FFT 的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。
三、实验结果
n=[0:1:3];
m=[0:1:3];
N1=length(n);
N2=length(m);
xn=[2,1,1,2];
hn=[1,-1,-1,1];
N=N1+N2-1;
XK=fft(xn,N);
HK=fft(hn,N);
YK=XK.*HK;
yn=ifft(YK,N);
if all(imag(xn)==0)(all(imag(hn)==0))yn=real(yn);
end
x=0:N-1;
stem(x,yn,.)
验证:
xn=[2,1,1,2];
hn=[1,-1,-1,1];
yn=conv(xn,hn);
stem(yn,.);
(1)
n=[0:1:15];
m=[0:1: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);
if all(imag(xn)==0)(all(imag(hn)==0)) yn=real(yn);
end
x=0:N-1;
stem(x,yn,.)
验证:
xn=ones(1,N1);
hn=(-0.5).^m;
yn=conv(xn,hn);
stem(x,yn,.);
(2)
n=[0:1:15];
m=[0:1:16];
N1=length(n);
N2=length(m);
xn=cos(2*pi*n/N1);
hn=(-0.5).^m;
N=N1+N2-1;
XK=fft(xn,N);
HK=fft(hn,N);
YK=XK.*HK;
yn=ifft(YK,N);
if all(imag(xn)==0)(all(imag(hn)==0)) yn=real(yn);
end
x=0:N-1;
stem(x,yn,.)
验证:
xn=cos(2*pi*n/N1);
hn=(-0.5).^m;
yn=conv(xn,hn);
stem(x,yn,.)
(3)
n=[0:1:15];
m=[0:1:16];
N1=length(n);
N2=length(m);
xn=(1/3).^n;
hn=(-0.5).^m;
N=N1+N2-1;
XK=fft(xn,N);
HK=fft(hn,N);
YK=XK.*HK;
yn=ifft(YK,N);
if all(imag(xn)==0)(all(imag(hn)==0)) yn=real(yn);
end
x=0:N-1;
stem(x,yn,.)
验证:
xn=(1/3).^n;
hn=(-0.5).^m;
yn=conv(xn,hn);
stem(x,yn,.)
四. 实验总结
通过这次对FFT实现快速卷积的实验操作,让我对着方面的理论知识加强了认识。尤其是在老
文档评论(0)