《利用FFT实现快速卷积(杭电)》由会员分享,可在线阅读,更多相关《利用FFT实现快速卷积(杭电)(6页珍藏版)》请在金锄头文库上搜索。
1、信号、系统与信号处理实验实验报告实验名称:利用FFT实现快速卷积一、 实验目的1.加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好地利用FFT进行数字信号处理。2.进一步掌握圆周卷积和线性卷积两者之间的关系。二、 实验内容与要求1、给定两个序列x(n)=2,1,1,2,h(n)=1,-1,-1,1。首先直接在时域计算两者的线性卷积;其次用FFT快速计算二者的线性卷积,验证结果。2、数字滤波器的脉冲响应为 ,N可自定,本实验取N=17,输入序列x(n)可选下列几种情况:,N可自取16,N=16, N=163、实验前,预先编制一个应用FFT实现数字滤波器的通用程序。4、上机独立调试,并
2、打印或记录实验结果。5、将实验结果与预先笔算的结果比较,验证其正确性。三、 实验程序与结果1、 给定两个序列x(n)=2,1,1,2,h(n)=1,-1,-1,1。首先直接在时域计算两者的线性卷积;其次用FFT快速计算二者的线性卷积,验证结果。clear all;n=2,1,1,2;m=1,-1,-1,1;y1n=conv(n,m);ny1=0:1:length(y1n)-1;stem(ny1,y1n);title(利用conv函数求线性卷积)figure; N=length(n)+length(m)-1;NK=fft(n,N);MK=fft(m,N);YK=NK.*MK;y2n=ifft(Y
3、K,N);x=0:N-1;stem(x,y2n);title(利用fft方法求线性卷积)2、数字滤波器的脉冲响应为 ,N可自定,本实验取N=17,输入序列x(n)可选下列几种情况:,N可自取16 ,N=16 , N=16主程序:clear all;n=0:1:15;m=0:1:16; xn1=ones(1,16);xn2=cos(2*n*pi/16);xn3=(1/3).n;hn=(-1/2).n;y1=ccc(xn1,hn);y2=ccc(xn2,hn);y3=ccc(xn3,hn);定义函数实现利用FFT实现数字滤波器:function yf = ccc(xn,hn)N1=length(xn);N2=length(hn);N=N1+N2-1;XK=fft(xn,N);HK=fft(hn,N);YK=XK.*HK;yf=ifft(YK,N);if all (imag(xn)=0)&(all(imag(hn)=0) yf=real(yf);x=0:N-1;figure;stem(x,yf);end4、 仿真结果分析5、 实验问题解答与体会