数字信号处理实验6——利用FFT实现快速卷积

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

21. 22.
ylabel('yn'); title('Used by FFT');
, 波形图:

程序清单:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. clear all; %定义函数 n=[0:1:16]; m=[0:1:17]; N1=length(n); N2=length(m); xn=cos(2*pi/N1*n); hn=(-0.5).^n; N=N1+N2-1; %FFT XK=fft(xn,N); HK=fft(hn,N); YK=XK.*HK; yn=ifft(YK,N);
实验内容
给定两个序列 线性卷积;其次用 波形图: , 。首先直接在时域计算两者的 快速计算两者的线性卷积,验证结果。
程序清单:
1. 2. 3. clear all; xn=[2,1,1,2]
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
数字信号处理实验 ——利用FFT实现快速卷积
通信中英2班 潘奕铭(16086214)
实验目的
加深理解 信号处理。 进一步掌握圆周卷积和线性卷积两者之间的关系。 在实现数字滤波(或快速卷积)中的重要作用,更好地利用 进行数字
基本原理
数字滤波器根据系统的单位冲激响应 应( 对于 现: 粗略地说,这种方法就是先将输入信号 然后再和 将乘积 。 滤波器的频响取样值 通过 相乘, 变换为它的频谱取样值 )还原为时域序列,即得到输出 , 可事先存放在存储器中,最后再 )系统和无限长单位冲激响应( 是有限长还是无限长可以分为有限长单位冲激响 )系统。 来实
15. 16. 17. 18. 19. 20. 21. 22.
if all(imag(xn)==0)&(all(imag(hn)==0)) yn=real(yn); end ny=0:length(yn)-1; %画图 stem(ny,yn,'.'); ylabel('yn'); title('Used by FFT');
N=N1+N2-1; %FFT 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 ny=0:length(yn)-1; %画图 stem(ny,yn,'.'); ylabel('yn'); title('Used by FFT');
结论:上下两幅图对比可知两者结果一致,利用 应用 , , 波形图: 可取 可自定,本实验 :
能更快速地计算两者的线性卷积。
实现数字滤波器的通用程序。其中,数字滤波器的冲激响应为
程序清单:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. clear all; %定义函数 n=[0:1:16]; m=[0:1:17]; N1=length(n); N2=length(m); xn=ones(1,N1); hn=(-0.5).^n; N=N1+N2-1; %FFT 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 ny=0:length(yn)-1; %画图 stem(ny,yn,'.');
hn=[1,-1,-1,1] %线性卷积 y1n=conv(xn,hn) ny1=0:length(y1n)-1 %FFT XK=fft(xn,7); HK=fft(hn,7); YK=XK.*HK; y2n=ifft(YK,7); if all(imag(xn)==0)&(all(imag(hn)==0)) y2n=real(y2n); end ny2=0:length(y2n)-1; %画图对比 subplot(2,1,1); stem(ny1,y1n,'.'); ylabel('y1n'); title('Used by Conv'); subplot(2,1,2); stem(ny2,y2n,'.'); ylabel('y2n'); title('Used by FFT');
数字滤波器来说,除了可以通过数字网络来实现外,也可以通过应用
通过快速傅里叶变换(简称
当 且 出。Hale Waihona Puke Baidu
长度很长时,通常不允许等
全部取样齐后再进行卷积,否则会使输出相对于 太大, 要补上太多的零点,很不经济, 分成长度与 相
输入有较长的延时。另外,若
的计算时间也要很长。为此,采用分段卷积的方法,即把
仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输
, 波形图:

程序清单:
1. 2. 3. 4. 5. 6. 7. 8. clear all; %定义函数 n=[0:1:16]; m=[0:1:17]; N1=length(n); N2=length(m); xn=(1/3).^n hn=(-0.5).^n;
9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
相关文档
最新文档