自然科学学科研究NaturalScienceDisciplineresearch
Matlab在DFT频谱误差分析中的应用
吴炎波邓冠群
(华中师范大学信息技术系湖北?武汉430079)
摘要研究数字信号最有效的方法通常是离散傅里叶变换(DFr),对信号进行DFT时会存在各种误差.本文针对DFT分析的主要误差来源——栅栏效应和截断效应,在理论分析的基础上,采用MATLAB仿真,更加直观的说明了补零只能减轻栅栏效应,使频谱更加细致,只有增加有效信号的截取长度,才能提高频率分辨率,减轻截断效应.最后给出如何选择适合截断长度的结论.
关键词MATLABDFT谱分析栅栏效应截断效应
中图分类号:TP31文献标识码;A
Applicationof
MatlabinErrorAnalysisofDFTFrequencySpectrum
WUYanbo,DENGGuanqun
(Dept.ofInformationTechnology,CCNU,Wuhan,Hubei430079)AbstractDFTisalwaysthemostefficientmethodofdigitalsignalprocessing,butitbringskindsoferrors.AccordingtothemainsourceofenDr—一f钿ceeffectandtruncatedeffect,thisarticlebasedonMatlabsimulation.moreintuitiveillustratesthatfillingzefocarlonlyeasefenceeffect,makethespectrum11101忙meticulously,onlyinereaseingeffectivesignalinterceptlengthcanim—provethefrequencyresolution,reducetruncationeffect.Atlast,Presenttheconclusionofhowto∞lectsuitabletruncationlength.Key
wordsMATLAB,DFTspectrumanalysis,Fenceeffect.Truncationeffect
I栅栏效应与“高密度频谱”
N点DFT是在频率区间【O,2nl上对时域离散信号的频谱进行N点等间隔采样,而采样点之间的谱线是看不到的。这就好像从N个栅栏缝隙中观看信号的频谱情况,仅得到N个缝隙中看到的频谱样值函数值,这种现象就成为栅栏效应。如果相邻采样点之间距离比较大的话,栅栏效应有可能漏掉大的频谱分量,使得到的频谱与实际情况不相符。针对这种情况,笔者力求寻找出一种方法得到更加细致的谱线。
很容易想到,在不改变序列长度No的情况下,增加采样点数N,就可以使相邻“栅栏”问的距离减小。
例如:取序列x(n)=sin(0.46n)+cos(0.50n)(取N尹lO),对该序列做N=10的DFT,结果如图l所示。其中DFT变换后,频率∞=兰等。因为《n)由两个频率f,01_0.46兀,o垆o.50兀厶成,10点DFT的频率采样间隔d=2x./10=0.2,而需要分辨的频率间隔为△∞=纰?∞,=0.04n,所以无法分辨这两个频率分量。由图I可知,DFT变换后频率集中在(o=』:;等0.6n(k=3)处,与实际情况不符。
为使频谱更加接近实际情况,在不改变序列长度NO的情况下,增加采样点数N,我们在x(n)(No=10)的后面补90个零,构成长度N--100的序列,然后做100点DFr变换,结果如图2所示。
可以看出,图2比图l的频谱更加清晰,频谱密度明显增大,这是由于我们增加了采样点数,减小了“栅栏”间的距离引起的。此时频率采样间隔d=2,c,loo=0.02n,小于需要分辨的频率间隔Ae=0.04n,但是DFT变换后的频谱频率集中在∞;』笔争0.5,c(k=25)处,虽然稍微向实际情况靠近了一些,但仍与实际情况不符。
于是引出如下定义:若频率采样间隔d≤△(I)仍不能得到分辨频率间隔△(I)的频谱,则将该频谱定义为高密度频谱。图2就是“高密度频谱”。由以上的分析可知。高密度频谱是改善栅栏效应的有效方法。
2截断效应与“高分辨率频谱”
实际中遇到的信号x(n)可能是无限长的,用DFT对其进行谱分析时,必须将其截断,形成有限长度的序列y(n)=x(n)w(n),其中w(n)是长度为Tp窗函数,由卷积定理可知,y(n)频谱是x(n)的频谱X(e一)与w(n)的频谱woo)的卷积。以“n)取矩形窗为例,取X(n)=COS(O.50nn),其加窗前和加窗后的幅频特性如图3所示。从图中可以看出,加窗前,x(n)是离散谱线,加窗后,原来的离散谱线向附近展宽(通常称之为泄露),使频谱变得模糊,分辨率降低。同时,主谱线两边形成
很多旁瓣,引起不同频率分量