实验4 FFT算法的应用
一、实验目的
1、加深对离散信号的DFT的理解; 2、在MATLAB中实现FFT算法。
二、实验原理
N点序列的DFT和IDFT变换定义式如下:
,
,
利用旋转因子具有周期性,可以得到快速算法(FFT)。
在MATLAB中,可以用函数反变换。
和计算N点序列的DFT正、
三、预习要求
1、在MATLAB中,熟悉函数fft、ifft的使用;
2、阅读扩展练习中的实例,学习在MATLAB中的实现FFT算法的实现;
3、利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。
四、实验内容
1、2N点实数序列
N=64。用一个64点的复数FFT程序,一次算出,形。 程序:
N=64;n=[0:1:(2*N-1)];
x1=cos(14*pi*n/N)+0.5*cos(38*pi*n/N); xk1=fft(x1);xk2=abs(xk1); stem(n,xk2);
图形:
并绘出 的图
2、已知某序列在单位圆上的N=64等分样点的Z变换为:
。
用N点IFFT程序计算出。
程序:
N=64;
k=[0:1:63];
X=1./(1-0.8*exp(-j*2*pi*k/N)); subplot(2,2,1); plot(k,X); x=ifft(X); x=abs(x); subplot(2,2,2); stem(k,x); xlabel('n'); ylabel('x(n)');
图形:
四、小结
如果周期信号的周期预先不知道,如何用FFT进行谱分析?
首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。按采样定理,采样频率应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。