利用FFT实现快速卷积(杭电)

利用FFT实现快速卷积(杭电)
利用FFT实现快速卷积(杭电)

信号、系统与信号处理实验Ⅱ

实验报告

实验名称:利用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 !!! 欢迎您的下载,资料仅供参考!

相关主题
相关文档
最新文档