您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 实验二-应用FFT对信号进行频谱分析
实验二应用FFT对信号进行频谱分析220090401310074海南大学实验二应用FFT对信号进行频谱分析一、实验目的1、进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。2、学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二、实验原理i.模拟信号频率和采样得到的数字信号频率的关系:/sTfii.DTFT与对应的理想采样信号的频谱之间的对应关系为:|^()()jwaTXjXe即DTFT与FT的关系为:12()[()]jarXeXjrTTT就是说,只要知道了采样序列的频谱,就可以得到相应的连续信号的频谱。(满足耐奎斯特采样定理)iii.DFT是对离散时间序列的频域采样,是对ZT上单位圆上的均匀采样,或者是DTFT上[0,2]的等间距采样。当满足频域的采样定理时,便可以由频域的采样值恢复ZT或者是DTFT。所以能用DFT对信号进行频谱分析。当采样的点数足够时,便能用它的包络作为模拟信号的近似谱。近似的过程中,可能会有混叠现象,泄露现象和栅栏效应这三种误差。iv.离散傅立叶变换DFT:10()(),0,1,2...,1NnkNnXkxnWkN101()()(),0,1,2...,1NnkNnxnIDFTXkXkWnNN实验二应用FFT对信号进行频谱分析3反变换与正变换的区别在于NW变为1NW,并多了一个N1的运算。因为NW和1NW对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此借助FFT来实现IFFT.三、实验内容和结果:1.高斯序列的时域和频域特性:高斯序列的时域表达式:2(),015()0,npqaenxn其它i.固定参数p=8,改变参数q的值,记录时域和频域的特性如下图。图1结论:从时域图中可以看到,q参数反应的是高斯序列能量的集中程度:q越小,能量越集中,序列偏离中心衰减得越快,外观上更陡峭。同时,随着q的增大,时域序列总的能量是在增大的。频域上,对应的,随着q的增加,由于时域序列偏离中心的衰减的缓慢,则高频分量也就逐渐减,带宽变小:时域上总的能量增大,故也可以看到低频成分的幅度都增大。ii.固定参数q,改变参数p,记录时域和频域的特性如下图2.实验二应用FFT对信号进行频谱分析4图2结论:p是高斯序列的对称中心,p的变化在时域表现为序列位置的变化。由于选取的矩形窗函数一定,p值过大时,会带来高斯序列的截断。并且随着p的增大,截断的越来越多。对应地,看频域上的变化:截断的越多,高频的成分也在增多,以至发生谱间干扰,泄露现象变得严重。从图中可以看到,在p=13时,已经有混叠存在。当p=14时,混叠进一步加大,泄露变得更明显。2.衰减正弦序列的时域和幅频特性:sin(2),015()0,nbefnnxn其它改变参数f,记录时域和幅频特性如下图3.图3实验二应用FFT对信号进行频谱分析5结论:随着f的增大,时域上可以看到,序列的变化明显快多了。从幅度谱上看,序列的高频分量逐渐增多,低频分量逐渐减小,以至于发生严重的频谱混叠。当f增大到一定的程度,从图中可以看到,f=0.4375和f=0.5625时的幅度谱是非常相似的,此时已经很难看出其幅度谱的区别。3.三角序列的时域表达式和对应的时域和幅频特性如图4:c1,03()8,470,nnxnnnn其它图4结论:随着fft取点数的增多,能够看到的幅度谱的频率分量变得丰富,得到的是高密度更高的谱,也就是减轻了栅栏效应。但是这种截断后补零的方法不能提高物理频率的分辨率。因为截断已经使频谱变模糊,补零后使采样间隔减小,但得到的频谱采样的包络任然是已经变模糊的频谱,所以频谱的分辨率没有提高。因此,要提到频率的分辨率,就必须对原始信号截取的长度加长,也就是增加采样时间0T的长度。另外,可以看到,三角序列的频谱几乎集中在低频区,旁瓣的幅度非常小。4.反三角序列的时域表达式和对应的时域和频域特性如图5:4,03()3,470,dnnxnnnn其它实验二应用FFT对信号进行频谱分析6图5结论:同样,随着fft取点数的增多,能够看到的幅度谱的频率分量变得丰富,得到的是高密度更高的谱,减轻了栅栏效应。另外,可以看到,求8点的fft时,三角序列和反三角序列的幅频特性是一样的。原因在于:反三角序列()dxn可以看成是三角序列x()cn的4点圆周移位,即x()((4))()dcNNnxnRn,根据DFT的圆周移位性质,则有4()()kdNcXkWXk.由于=8N,所以4kkW=-N(1),即()(1)()kdcXkXk,故()()dcXkXk.不过,当补零之后,能够看到的频率成分增多,可以发现,反三角序列的频谱较宽,旁瓣的分量很多。四、调用fft函数计算ifft的函数原理:101x()[(k)]()NnkNknifftXXkWN变换上式有:1**01()[()]NnkNkxnXkWN于是,可以调用fft模块,即实验二应用FFT对信号进行频谱分析7**1()[(()]xnfftXkn相应的程序清单如下:function[x]=myifft(y)N=length(y);y1=conj(y);x1=fft(y1);x=conj(x1)/N;验证:x=[12357]x=12357y=fft(x,6)y=Columns1through418.0000-8.0000+1.7321i0-5.1962i4.0000Columns5through60+5.1962i-8.0000-1.7321ia=myifft(y)a=123570可以看到,a只是在x的末尾补了一个0,原因在于在y是x的6点fft,即在调用fft的过程中有给x的末尾补0的过程。所以,在回调的过程中,补充的0还在。五、思考题1、在N=8时,c()xn和d()xn的DFT幅频特性会相同吗?为什么?N=16呢?在N=8时,c()xn和d()xn的幅频特性相同。N=16时不同。原因如下:当N=8时,cc1,03()8,47()1,2,3,4,4,3,2,10,nnxnnnxnn,即其它,实验二应用FFT对信号进行频谱分析8dd4,03()3,47,xn4,3,2,1,1,2,3,40,nnxnnnn即()=其它,谱分析时,10)()()(NnknNWnxnxFFTkX,其中NjNeW2。当N=8时,4jNeW,此时70470)()()(knjnknNenxWnxkX,代入,有:0123456744444444()12+3+4+4321jkjkjkjkjkjkjkjkcXkeeeeeeee(1)0123456744444444()43+2+1+1234jkjkjkjkjkjkjkjkdXkeeeeeeee(2)调整顺序,有4567012344444444()1234+43+2+1jkjkjkjkjkjkjkjkdXkeeeeeeee(3)(1)式和(3)式相对照,且21jke,故有kkkdcXX()=(-1)(),即有ckkdXX()()。故N=8时,x2(n)和x3(n)的幅频特性相同。或者像在实验结论中运用DFT圆周移位的性质来说明,不再重复。而当N=16时,8jNeW。此时70n8150)()()(knjnknNenxWnxkX,易知)()(32kXkX。即N=16时,kcX()和kdX()的幅频特性不同。2、实验中的信号序列c()xn和d()xn,在单位圆上的Z变换频谱ejcX()和jdX(e)会相同吗?哪一个的低频分量多,说明原因?ejcX()和jdX(e)是不同的,三角序列ejcX()的低频分量更多。可以这样解释:()[]=()jjnnXeDTFTxxne(n),并且频谱的分布反映时域变化的快慢程度。就是说,时域信号变化的越剧烈,频域的高频分量便较多,对应的,时域的信号较平缓,则频域的低频分量较多。可以看到,在c()xn和d()xn的非零域内,c()xn和d()xn的变换程度是相当的,变化量都是1(增加1或者减小1)。不过在零域和非零域的分界处,c()xn的变化量是1,而d()xn的变化量是4,要大得多,也就是变化的剧烈的多,就不奇怪d()xn的高频实验二应用FFT对信号进行频谱分析9分量要多了。3、对于一个有限长序列进行离散傅里叶变换(DFT)时,等价于将该序列周期延拓后进行傅里叶级数(DFS)展开。因为DFS也只是取一个周期来运算,所以FFT在一定的条件下也可以用以分析周期信号序列。如果实正信号sin(2),0.1fnf,用16点的FFT来做DFS运算,得到的频谱是信号的真实谱吗?不是的,该实正信号的周期N=10,只有当进行N的整数倍的FFT时,才能得到真实的频谱。六、实验总结数字低频是0,数字高频是.当满足耐奎斯特采样定理:2scff时,cs2/cff,当且仅当2scff时,c.也就是说,数字频率中的高频对的是模拟频率1/2fs.当在DTFT的ejX()的[0,2]内采样N个点时,第N/2条谱线就代表着数字最高频率,也即代表着模拟频率1/2fs。一般的小于1f2s的频率f,可以用0fsfkFkN来计算对应的谱线位置。所以,看DFT幅频特性的第N/2条谱线附近的幅值就可以知道,频谱间的干扰和混叠程度。同时,若采样频率1/2fs越高,频谱能分析的范围自然就越广。对信号进行谱分析的重要问题是频谱物理分辨率0F和误差分析。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是/sfN(N是实际采样点数)。因此,可以在保持采样频率的前提下,增加采样的点数能增加分辨率。误差主要来自于用FFT作频谱分析时,抽样的过程;从无限的离散序列中截取有限个序列的过程;频谱是离散的等,而模拟信号(周期信号除外)的频谱是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱。所以,还是要求N要适当选择大一些。不过,N的增大,最直接带来的,就是运算量的增大。需要注意的是,在有效的采样序列后补零增大N值不能提高物理分辨率,此种方法只是“搬移了栅栏的位置”,使原来看不到的频率不再被遮挡了。只有实际记录的数据长度越大,频率的分辨率能力才越强。对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周实验二应用FFT对信号进行频谱分析10期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。附录,部分matlab程度代码n=0:15;%q=8,p=8,13,14p=8;q=8;x=exp(-1*(n-p).^2/q);closeall;subplot(3,2,1);stem(n,x);xlabel('n');title('时域');subplot(3,2,2);stem(n,abs(fft(x)));title('频域p=8q=8');xlabel('k');p=13;q=8;x=exp(-1*(n-p).^2/q);subplot(3,2,3);stem(n,x);xlabel('n');subplot(3,2,4);stem(n,abs(fft(x)));title('p=13q=8');xlabel('k');subplot(3,2,5);stem(n,x);xlabel('n');p=14;q=8;x=exp(-1*(n-p).^2/q);subplot(3,2,6);stem(n,abs(fft(x)));title('
本文标题:实验二-应用FFT对信号进行频谱分析
链接地址:https://www.777doc.com/doc-4909949 .html