山东大学数字信号处理实验:FFT算法的应用

一:实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。

二:实验原理:N点序列的DFT和IDFT变换定义式如下:

利用旋转因子具有周期性,可以得到快速算法(FFT)。

 在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。

三:实验要求

利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。

四:实验内容

实验源代码:      

N=64;
n=0:2*N-1;
k=0:N-1;
n1=2*k;
n2=2*k+1;
x1=cos(2*pi*7*n1/64)+0.5*cos(2*pi*19*n1/64);
x2=cos(2*pi*7*n2/64)+0.5*cos(2*pi*19*n2/64);
x=cos(2*pi*7*n/64)+0.5*cos(2*pi*19*n/64);
X1=fft(x1,N);
X2=fft(x2,N);
A=X1+exp(-j*2*pi*k/N).*X2;
B=X1-exp(-j*2*pi*k/N).*X2;
X=fft(x,128);
subplot(211)
title('|X(k)|');
stem(n,[abs(A),abs(B)],'k','.');grid on;
xlabel('64点计算'),ylabel('|X(K)|');
subplot(212)
stem(n,abs(X),'g','.');grid on;
xlabel('理论计算')

实验结果:   

①实验源代码: 

N=64;
n=0:63;
k=0:N-1;
Xk=1./(1-0.8*exp(-1i*2*pi*k/N));
x=ifft(Xk,N);
stem(k,abs(x)),grid on;
xlabel('n'),ylabel('x(n)');
title('64的IFFT');

②实验结果:

© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏
分享
评论 抢沙发

请登录后发表评论