武汉理工大学《数字信号处理》设计报告《数字信号处理》专题设计题目补零对离散序列频谱计算的影响学院信息工程学院专业通信工程班级通信1405组员刘佳丽刘婷林思辰指导教师郭志强2017年5月14日武汉理工大学《数字信号处理》设计报告目录摘要...................................................................................................................................................IAbstract...........................................................................................................................................II1引言..............................................................................................................................................12设计原理.......................................................................................................................................23MATLAB验证..................................................................................................................................53.1DFT函数............................................................................................................................53.2绘制频谱............................................................................................................................53.3实验结果............................................................................................................................64总结..............................................................................................................................................85参考文献........................................................................................................................................9武汉理工大学《数字信号处理》设计报告I摘要“补零”是指在序列的有效数据中填补一些零值,人为地延长序列,以达到对频谱做某种改善的目的,经常运用于DFT的运算中。本文主要介绍了在不同位置补零对序列的频谱及DFT的影响,并得出补零不能提高分辨率的结论,最后通过MATLAB程序对其进行验证,证明该结论的正确性。关键词:补零;频谱;DFT;分辨率武汉理工大学《数字信号处理》设计报告IIAbstractZeropaddingreferstofillsomeofthezerovalueinthesequenceofvaliddata,artificiallyextendedsequence,toachievethepurposeofmakesomeimprovementonspectrum,oftenworkinginDFTcalculations.IndifferentpositionzeropaddingismainlyintroducedinthispaperthespectrumofsequenceandtheinfluenceoftheDFT,andzeropaddingcan'timprovetheresolutionoftheconclusion,finallythroughMATLABtovalidateit,provethecorrectnessoftheconclusion.Keywords:fillzero;Spectrum;DFT.Resolution;武汉理工大学《数字信号处理》设计报告11引言“补零”是指在序列的有效数据中填补一些零值,人为地延长序列,以达到对频谱做某种改善的目的。补零常常有一些好处,比如,可以使数据点数N为2的整数次幂,便于FFT计算;可以使原来的X(k)起到做插值的作用,克服栅栏效应,使谱外观得到平滑;末尾补零,DFT处理的点数大于实际抽样的点数,这样使原来看不见的频谱线能被看到;由于对数据截断后引起频谱泄露,有可能在频谱中出现一些难以确认的波峰,补零后消除这种现象。接下来,我们来探讨一下补零对序列频谱计算的影响。武汉理工大学《数字信号处理》设计报告22设计原理设序列x(n)的长度为N,在其后面补M个0,产生新的序列x1(n),在其前面补M个0,产生新的序列x2(n),则x(n)的频谱为x(n)的DFT为x1(n)的频谱为x1(n)的DFT为x2(n)的频谱为x2(n)的DFT为可见,X1(k)的谱线比X(k)的谱线多,X2(k)比X1(k)多了一个相移因子。武汉理工大学《数字信号处理》设计报告3除了在序列末尾和前面补零,还可以在序列的相邻样值间插入零点。设x(n)的长度为N,在其相邻的样值间插入L-1个零值,得到新序列x3(n),x3(n)的频谱为X3(n)的DFT为可见,x(n)的频谱)(jwXe的周期宽度由原来的2π压缩到L/2π,频谱的周期宽度得到压缩。X3(k)中包含L个X(k)。实际应用中,可通过对时域序列内插零值来实现信号的频带压缩,以节约频带资源。接下来,我们将讨论在序列后面补零对频率分辨率的影响。根据前面讨论的有关在序列后面补零对频谱、DFT的影响,我们知道,在序列后面补零,频谱不会发生变化,补零其实相当于改变了采样点的位置。在长度为N的序列x1(n)后面补M个0,产生新的序列x2(n)。其中,X1(k)的谱线间隔为1/2Nπ,X2(k)的谱线间隔为2/2Nπ,易知,21/2/2NNππ。我们将相邻谱线的间隔称为频率分辨率,谱线间隔(fs/N)决定了频率分辨能力,N表示数据点数。很多人会有困惑,在末尾加零后,使一个周期内的点数增加,必然使样点间隔更近,谱线更密,以前看不到的谱分量就可以看到了,能够看到更多的谱,不是提高分辨力了吗?但是,其实补零并不能提高分辨率。在时域方面,虽然N2N1,但是x2(n)比x1(n)多出的是(N2-N1)个零,即)(x2n并没有武汉理工大学《数字信号处理》设计报告4x1(n)提供更多的信息,二者所含的信息量是相等的。虽然补零信号的谱线间隔变小了,但是新增的谱线都是无效的,去掉这些无效的谱线,采样频率不变,有效的谱线数不变,所以其分辨率自然没有改变。所以x2(k)的频率分辨率不会提高,等于x1(k)的频率分辨率为1/2Nπ。总之,补零只能使序列x(n)Rn(n)的频谱变得细致,使x(n)Rn(n)的DFT谱线增多,谱间隔变小,得到高密度频谱。补零不能提高分辨率,因为补零并不能增加数据的有效长度。想要得到高分辨率频谱还是要增加采样点数。武汉理工大学《数字信号处理》设计报告53MATLAB验证3.1DFT函数该部分程序用于实现DFT算法。代码如下:functionxk=dft(xn,N)n=[0:1:N-1];%n的行向量k=n;%k的行向量WN=exp(-j*2*pi/N);%WN因子nk=n'*k;%产生一个含nk值的N乘N维矩阵WNnk=WN.^nk;%DFT矩阵xk=xn*WNnk;%DFT系数行向量3.2绘制频谱该部分程序用于绘制频谱,观察补零前后对频谱的影响。代码如下:N=128;n=0:127;%点数f=0.1;%频率y1=sin(2*pi*f*n);y1(1:16)=y1(1:16)+1;%信号,正弦叠加矩形N2=100;%截取的点数y2s=y1(1:N2);%对信号进行截短y2s2=dft(y2s,N2);y2=[y2szeros(1,128-N2)];%补零使y1和y2一样长y22=dft(y2,N);%对y2求DFTsubplot(4,1,1);stem(n,y2);%绘制补零后的y2谱幅度title('补零后的y2谱幅度')subplot(4,1,2);plot(abs(y2s2));%绘制对截短后的y2s求DFT后的包络title('对截短后的y2s求DFT后的包络')subplot(4,1,3);plot(abs(y22));%绘制对y2求DFT后的包络title('对y2求DFT后的包络')subplot(4,1,4);plot(abs(dft(y1,N)));%绘制原始函数y1的包络title('原始函数y1的包络')武汉理工大学《数字信号处理》设计报告63.3实验结果图1N=10当保留点数为10个时,由于携带信息的点数太少,明显可以看到:未补零的10点包络图与原始函数包络图差别很大,补零后由于在时间域内信号加零,致使振幅谱中出现很多其他成分,输出的包络图谱线增多,但是依然与原始函数包络图差别很大。图2N=50当保留点数为50个时,相比图1,对截短后的y2s求DFT后的包络图更加完整,同样,补零后的DFT包络谱线增多,更接近于原始函数包络图。武汉理工大学《数字信号处理》设计报告7图3N=100通过保留100个包含信息的抽样点,对后面的28个点补零,相比N=10和N=50,不管是未补零DFT包络图还是补零后DFT包络图,都更接近原始函数包络图。总之,补零后的DFT使频率采样点数增加了,使离散频谱的包络更接近序列x(n)的连续频谱。然而,如果采样数据过少,补零后增加了频谱中的数据个数,谱的密度增高了,仍然不能分辨其中的频率成分,即谱的分辨率没有提高。只有数据点数足够多时才能分辨其中的频率成分。武汉理工大学《数字信号处理》设计报告84总结本次设计是一个小组作业,我们主要研究了补零对有限长序列频谱的影响。通过本次设计,我们对相关的理论知识有了更深的了解。本次设计中,MATLAB起到了不可代替的作用,这也体现了MATLAB在《数字信号处理》这门课程中的重要性。每一次课设都是对之前所学理论知识的升华与提炼,提高实践能力的宝贵机会。过程可能充满艰辛,但是却在一点点的进步与成长。学会如何分析问题,思考问题,解决问题,学会利用已学的知识去解决实际问题,在遇到困难时,希望总能够坚持不放弃,学以致用,将理论与实践相结合。本次设计是以小组为单位完成,我们小组分工明确齐心协力,也因此意识到团结的重要性,培养了我们的团队意识。武汉理工大学《数字信号处理》设计报告95参考文献[1]刘泉,阙大顺,郭志强.数字信号处理原理与实现(第二版,第二次印刷)电子工业出版社.2012[2]普罗克思.数字信号处理—原理,算法,应用.电子工业出版社.2014.08[3]张磊.MATLAB实用教程.人民邮电出版社.2014.05[4]徐科军.信号分析与处理