利用FFT实现快速卷积(杭电)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号、系统与信号处理实验Ⅱ
实验报告
实验名称:利用FFT 实现快速卷积
一、 实验目的
1.加深理解FFT 在实现数字滤波(或快速卷积)中的重要作用,更好地利用FFT
进行数字信号处理。
2.进一步掌握圆周卷积和线性卷积两者之间的关系。
二、 实验内容与要求
1、给定两个序列x(n)=[2,1,1,2],h(n)=[1,-1,-1,1]。首先直接在时域计算两者的线性卷积;其次用FFT 快速计算二者的线性卷积,验证结果。
2、数字滤波器的脉冲响应为())(2/1-)(2n R n h N n
= ,N 2可自定,本实验取N 2=17,输入序列x(n)可选下列几种情况:
①)()(1n R n x N =,N 1可自取16 ②)(2cos )(11
n R N n n x N π=,N 1=16
③)(31)(1n R n x N n
⎪⎭⎫ ⎝⎛=, N 1=16
3、实验前,预先编制一个应用FFT 实现数字滤波器的通用程序。
4、上机独立调试,并打印或记录实验结果。
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(YK,N);
x=0:N-1;
stem(x,y2n);
title('利用fft 方法求线性卷积')
2、数字滤波器的脉冲响应为())(2/1-)(2n R n h N n
= ,N 2可自定,本实验取N 2=17,输入序列x(n)可选下列几种情况:
①)()(1n R n x N =,N 1可自取16 ②)(2cos )(1
1
n R N n n x N π= ,N 1=16 ③)(31)(1n R n x N n ⎪⎭
⎫ ⎝⎛= , N 1=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);
end
05
1015202530
0510********
四、仿真结果分析
五、实验问题解答与体会
Welcome !!! 欢迎您的下载,资料仅供参考!