应用快速傅里叶变换对信号进行频谱分析实验报告记录
———————————————————————————————— 作者: ———————————————————————————————— 日期:
2
应用快速傅里叶变换对信号进行频谱分析
2.1 实验目的
1、通过本实验,进一步加深对DFT算法原理和基本性质的理解,熟悉FFT算
法原理和FFT子程序应用
2、掌握应用FFT对信号进行频谱分析的方法。 3、通过本次实验进一步掌握频域采样定理。 4、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正。
确应用FFT。
2.2实验原理与方法
对于有限长序列我们可以使用离散傅里叶变换(DFT)。这一变换不但可以好地反映序列的频域特性,而且易于用快速傅里叶变换在计算机上实现
当序列x(n)的长度为N时,它的离散傅里叶变换为:
knX(k)?DFT[x(n)]??x(n)WN
n?0N?1其中WN?e?j(2?/N),它的反变换定义为:
1x(n)?IDFT[X(k)]?N?X(k)Wk?0N?1?knN
比较Z变换公式,令z?WN?k则
nkX(z)|z?W?k??x(n)WN?DFT[x(n)]
NN?1n?0因此有X(k)?X(z)|z?W?k。
N所以,X(k)是x(n)的Z变换在单位圆上的等距采样,或者说是序
列傅里叶变换的等距采样。
DFT是对序列傅里叶变换的等距采样,因此可以用于对序列的频谱分析。在运用DFT进行频谱分析的过程中有可能产生三种误差:
1、混叠现象
序列的频谱是原模拟信号频谱的周期延拓,周期为2?/T。因此,当采样
频率小于两倍信号的最大频率时,经过采样就会发生频谱混叠,使采样后的信号序列频谱不能真实反映原信号的频谱。 2、泄漏现象
实际中信号序列往往很长,常用截短的序列来近似它们,这样可以用较短
的DFT对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形函数。这样得到的频谱会将原频谱扩展开。 3、栅栏效应
3
DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续
函数。因此,只能看到离散点无法看出真实频谱。
2.3实验内容及步骤
1、观察高斯序列的时域和幅频特性
(1)固定信号xa(n)?e[?(n?p)/q],0?n?N?1中参数p=16,信号长度N=32,改变q的值,分别等于2,10,30,观察他们的时域和幅频特性(作FFT时,点数大于256),了解当q取不同的值时,对信号序列的时域和幅频特性的影响。
MATLAB程序:
N=32;FFTN=256;p=16;q1=2;q2=10;q3=30; n=0:N-1;
xa1=exp(-((n-p).^2/q1)); ya1=fft(xa1,FFTN); figure(1);
subplot(2,1,1);stem(n,xa1,'.'); subplot(2,1,2);stem(ya1,'.'); xa2=exp(-((n-p).^2/q2)); ya2=fft(xa2,FFTN); figure(2);
subplot(2,1,1);stem(n,xa2,'.'); subplot(2,1,2);stem(ya2,'.'); xa3=exp(-((n-p).^2/q3)); ya3=fft(xa3,FFTN); figure(3);
subplot(2,1,1);stem(n,xa3,'.'); subplot(2,1,2);stem(ya3,'.');
2运行结果:
4
5