资源描述:
《实验4 FFT频谱分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验4FFT频谱分析一、实验目的应用离散傅里叶变换的快速算法FFT分析信号的频谱。深刻理解应用FFT分析离散和连续信号的原理,掌握分析过程中出现的现象及解决方法。二、实验原理1.离散周期信号频谱的分析周期为N的离散信号(序列)的频谱函数定义为:式中:N是序列的周期;k为离散的时间变量;m为离散的频率变量;是次谐波的数字频率。离散周期信号的频谱也是周期为的离散谱,谱线间隔为。利用MATLAB提供的fft函数可以计算离散周期信号的频谱。对于离散周期序列,只需对周期序列上一个周期内的数值进行点的FFT运算,就可准确地得到其
2、频谱在一个周期上的个数值,且有,。其分析步骤如下。(1)确定离散周期序列的基本周期为。(2)利用fft函数对序列一个周期内进行点FFT计算,得到。(3)。2.离散非周期信号频谱的分析离散非周期信号的频谱函数为:。利用MATLAB提供的fft函数可以计算离散非周期信号的频谱。当序列长度有限时,可以求得准确的序列频谱的样点值。若序列很长或无限长时,则由于截短产生泄漏误差,计算的结果只能是序列频谱样点值的近似。分析步骤如下。(1)确定序列的长度M及窗函数的类型。当序列为无限长时,需要根据能量分布,利用窗函数进行截短。(2)
3、确定做FFT的点数N。根据频域采样定理,为使时域波形不产生混叠,必须取N≥M。(3)使用fft函数做N点FFT以计算。3.连续周期信号频谱的分析周期为的连续时间信号的频谱函数定义为:式中:是信号的周期;称为信号的基频(基波);称为信号的谐频。连续周期信号的频谱是非周期离散谱,谱线间隔为。连续周期信号的DFT分析方法增加了时域采样的环节。如果不满足采样定理的约束条件,将会出现频谱混叠现象。连续周期信号的分析步骤如下。(1)确定周期信号的基本周期。(2)计算一个周期内的采样点数N。(3)对连续周期信号以采样间隔T进行采样
4、,。(4)使用fft函数对作N点FFT用以计算。(5)最后求得连续周期信号的频谱,其中利用了下面的转换关系:,,,。若能够按照满足采样定理的采样间隔采样,并选取整周期为信号允许长度,则利用DFT计算得到的离散频谱值等于原连续周期信号离散频谱的准确值。4.连续非周期信号频谱的分析连续时间非周期信号的频谱函数是连续谱,其定义如下:连续非周期信号的分析步骤如下:(1)根据时域采样定理,确定时域采样间隔T,得到离散序列。(2)确定信号截短的长M及窗函数的类型,得到有限长M点离散序列。(3)确定频域采样点数N,要求N≥M。(4
5、)使用fft函数做N点FFT计算得到N点的。(5)由可得到连续信号的频谱采样点的近似值,其中利用了转换关系:,,。三、实验内容与方法1.离散周期信号频谱的分析【例4-1】已知一个周期序列,用fft函数计算其频谱。MATLAB程序如下:N=32;k=0:N-1;x=sin(pi*k/16+pi/6)+0.5*cos(7*pi*k/16);xk=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(xk)));axis([-16,16,0,20]);xlabel('频谱特性');
6、ylabel('幅度');set(gca,'XTickMode','manual','XTick',[-16,-7,-1,0,1,7,16]);subplot(2,1,2);stem(k-N/2,angle(fftshift(xk)));axis([-16,16,-4,4]);xlabel('频谱特性');ylabel('相位');set(gca,'XTickMode','manual','XTick',[-16,-7,-1,0,1,7,16]);set(gcf,'color','w');程序运行结果如图4.1所示。
7、图4.1周期序列的幅度谱和相位谱2.离散非周期信号频谱的分析【例4-2】利用fft函数分析序列的频谱。经过分析,可以得知信号为无限长,因此需要对其进行截短。该序列单调递减,当k≥32时,序列已几乎衰减为0,因此只取序列在[0,32]上的数值进行分析。MATLAB程序如下:k=0:32;x=0.8.^k;subplot(2,1,1);stem(k,x);title('时域波形');subplot(2,1,2);w=k-15;plot(w,abs(fftshift(fft(x))));xlabel('频谱特性');yla
8、bel('幅度值');set(gcf,'color','w');程序运行结果如图4.2所示。图4.2非周期信号的时域波形及其幅度频谱3.连续周期信号频谱的分析【例4-3】利用fft函数求解周期信号。经过分析可以得知,信号的最高频率是,因此采样周期必须小于,则任选T=0.02s,N=50。MATLAB程序如下:T=0.02;N1=50;n1=1: