DFT栅栏效应分析_第1页
DFT栅栏效应分析_第2页
DFT栅栏效应分析_第3页
DFT栅栏效应分析_第4页
DFT栅栏效应分析_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西山大学课 程 设 计 说 明 书题目 :DFT栅栏效应分析目录一、摘要4二、设计目的及分析5三、理论原理知识63.1 DFT频谱分析原理63.2 栅栏效应83.3 分辨率10四、MATLAB编程124.1 MATLAB软件简介124.2 标点符号与语句134.3 仿真程序134.4 仿真结果与分析14五、心得体会17六、参考文献18一、摘要DFT是在时域和频域上都已离散的傅里叶变换,适用于数值计算且有快速算法,是利用计算机实现信号频谱分析的常用工具。本文介绍了利用DFT分析信号频谱的基本流程,重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施。实例例举了MATLAB环境下频谱分析

2、的实现程序。通过与理论分析的对比,解释了利用DFT分析信号频谱时存在的频谱混叠,频谱泄露及栅栏效应,并提出相应的改进方法。在满足时频采样的的条件下,可以通过对连续信号进行采样并进行DFT,来近似的反映连续信号的频谱特性。由于DFT变换时需要进行时频采样和频域采样,因此这种近似必然带来频谱分析的一定误差。本文主要对栅栏效应进行分析和减小。二、设计目的及分析技术参数:信号中包含三种频率成分,分别是20HZ,20.5HZ,40HZ,采样频率为100HZ。为了把三种频率分辨出来,对其进行栅栏效应分析。首先,求出最小记录点数,易知是fs/(20.5-20)=200,因此当频域采样点数N>=200时

3、,不出现栅栏效应,而当N<200时,会有栅栏效应误差出现。为了更好的分析DFT栅栏效应,DFT分三种情况:在128点有效数据不补零情况下的分辨率,在128点有效数据且补零至512点情况下分辨率,在512点有效数据下分辨率。然后比较三次仿真结果的异同,进而对其进行比较分析。三、理论原理知识3.1 DFT频谱分析原理所谓的信号的谱分析,就是计算信号的傅里叶变换。工程实际中,经常遇到的是连续信号Xa(t),截取一段进行FT变换后其谱度函数Xa(j)也是连续函数,因此起计算过程不便用于计算机实现。而DFT作为一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。对于连续信

4、号和系统,可以通过Xa(t)时域采样,得到离散时间序列x(n),再对x(n)进行DFT,因此是一种近似的谱分析。一个连续信号Xa(t)的频谱可以用它的傅里叶变换表示成: 如果对该信号进行理想采样,可以得到采样序列:同样,可对该序列进行Z变换,其中T为采样周期:当时,我们就得到了序列的傅里叶变换:其中为数字频率,它和模拟频率的关系为:式中为采样频率。上式说明数字频率是模拟频率对的归一化。同模拟域的情况相似,数字频率代表序列值变化的速率,而序列的傅里叶变换称为序列的频谱。序列的傅里叶变换和对应的采样信号频谱有下列对应关系: 即序列的频谱是采样信号频谱的周期性严拓。从式中可以看出,只要分析采样序列的

5、频谱,就可以得到相应的连续信号的频谱。注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。在各种信号序列中,有限长序列在信号处理中占有重要地位。无限长序列也往往可以用有限长序列逼近,对于有限长的序列我们可以用离散的傅里叶变换DFT,这一变换可以很好的反应序列的频域特性。并且容易利用快速算法在计算机上实现当序列的长度是N时,我们定义序列离散傅里叶变换为: 其中:,它的反变换定义为: 令则有: 可以得到:,是Z平面单位圆上幅角为的点就是将单位圆进行N等份的第K个点,所以,X(K)是Z变换在单位圆上的等距采样。时域采样在满足Nyquist定理时,就不会发生频谱混淆:同样,在频域进行采样

6、的时候,只要采样间隔足够小,就不会发生混叠。DFT是对序列傅里叶变换的等距采样,因此可以用于序列的频谱分析。在运用DFT进行频谱分析的时候可能存在栅栏效应误差。3.2栅栏效应(1)栅栏效应的定义由于为非周期的连续信号,它的频谱是连续的,但将采样,截断然后进行DFT分析时,得到的仅仅是连续信号频谱上的有限个点,而有一部分频谱分量将被挡住,好像是通过栅栏观察频谱,这种现象称为栅栏效应。DFT是对单位圆上Z变换的均匀采样,是一些离散的点,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰

7、点或谷点被栅栏所拦住,不可能被我们观察到。不管是时域采样还是频域采样,都有相应的栅栏效应。只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。减小栅栏效应可用提高采样间隔也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。(2)栅栏效应的成因以及危害栅栏效应是制约频谱分析谐波分析精度的一个瓶颈。栅栏效应在非同步采样的时候,影响尤为严重。在非同步采样时,由于各次谐波分量并未能正好落在频率分辨点上,而是落在两个频率分辨

8、点之间。这样通过FFT不能直接得到各次谐波分量的准确值,而只能以临近的频率分辨点的值来近似代替,这就是栅栏效应降低频谱分析精度的原因。(3)降低栅栏效应的方法根据前面分辨率的讨论,减小栅栏效应可用提高采样间隔也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。针对于有限长序列,为了克服栅栏效应,即检测出被遮挡的频率分量,可以通过对序列尾部补零的方式进行。这相当于栅栏效应的缝隙间隔缩短了,因此栅栏效应有所改善。对无限长序列,可以增加取样点数,即增加数据的有效长度来提高分辨率来降低栅栏效应的影响。3.3 分辨率称F为频率分辨率,即:采样率/采样点数;F越小,说明

9、分辨率越高。F仅与信号的实际长度成反比,即信号持续时间越长,频率分辨率越高。(1)物理分辨率=采样频率/采样点数。物理分辨率的实际意义在于它可以衡量DFT可以区分的频率分量的间隔。提高物理分辨率的方法一般是通过增加数据的有效长度。这相当于在模拟域增加了矩形窗的宽度。从而在模拟域减小了sinc主旁瓣宽度,减小了相邻频率分量的混叠。这种增加采样点的方法主要针对无限长序列的FFT计算。对于无限长序列,不像有限长序列那样必须补零来提高视在分辨率,无限长序列可以通过增加数据长度来提高物理分辨率。(2)改善分辨率的途径增加采样点数,增加了输入序列的阶次,从而提供频谱的更多细节,这是真正的分辨率(物理分辨率

10、)。对序列只补零而不增加数据,输入序列和它的频谱阶次依旧没有提高,只是把频谱画的密一些,所以改善的只是图形的视在分辨率,并不能得到频谱的更多细节。增加序列的长度能够改善频谱的分辨率,这是基本的规律。上面的讨论可知,改善分辨率的具体方法有如下两种(1)对有限长序列采取尾部补零的方法提高视在分辨率(2)对无限长序列通过真正增加采样点来提高物理分辨率 四、MATLAB编程4.1 MATLAB软件简介MATLAB是美国Mathworks公司推出的数学工具软件, 它是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法提供了最核心的数学和高级图形工具。多达几百个数学函数和

11、工程函数,极大地降低了对使用者的数学基础和计算机语言知识的要求,编程效率和计算效率极高。目前,MATLAB 已经成为国际上最流行的科学与工程计算软件工具。MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。MATLAB不仅流行于控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术等各行各业中都有极广泛的应用。4.2与仿真有关的命令介绍命令含义fft(x)计算M点的DFT,M是序列x的长度fft(x,n)计算N点的DFT,若M>N,则将原序列截短为N序列,再计算其N点的DFT;若M<N,则将原序列补零至N点,

12、然后计算其N点DFT。Abs对其后边的量取绝对值Figure给图命名Subplot分区绘制图形Plot以默认格式绘制图形Label为坐标轴命名Zeros产生元素全为零的数组Max取最大值4.3仿真程序>> N1=128;N2=512;n1=1:N1;n2=1:N2;f1=20;f2=20.5;f3=40;fs=100;xn1=sin(2*pi*f1*n1/fs)+sin(2*pi*f2*n1/fs)+sin(2*pi*f3*n1/fs);在128点有效数据不补零情况下的分辨率:y1=fft(xn1,N1);k1=n1*fs/128;Y1=abs (y1)/max (abs(y1);

13、figure(1);subplot (2,1,1);plot(n1,xn1/max (xn1);xlabel('时间');ylabel('幅度谱');subplot(2,1,2);plot(k1,Y1);axis(15 50 0 1);xlabel('频率HZ');ylabel('幅度谱');在128点有效数据且补零至512点情况下分辨率:y2=fft(xn1,N2);k2=n2*fs/N2;Y2=abs(y2)/max(abs(y2);figure(2);subplot(2,1,1);xn2=xn1 zeros(1,N2-N1)

14、;plot(n2,xn2/max(xn2);xlabel('时间');ylabel('幅度谱');subplot(2,1,2);plot(k2,Y2);axis(15 50 0 1);xlabel('频率(HZ)');ylabel('幅度谱');在512点有效数据下分辨率xn3=sin(2*pi*f1*n2/fs)+sin(2*pi*f2*n2/fs)+sin(2*pi*f3*n2/fs);y3=fft(xn3,N2);k3=n2*fs/N2;Y3=abs(y3)/max(abs(y3);figure(3);subplot(2,1

15、,1);plot(n2,xn3/max(xn3);xlabel('时间');ylabel('幅度谱');subplot(2,1,2);plot(k3,Y3),axis(15 50 0 1);xlabel('频率(HZ)');ylabel('幅度谱');4.4仿真结果与分析图1 序列及其128点DFT结果图由图1可看出,在128点有效数据不补零进行FFT情况下,只有40HZ和20.5HZ有幅度值,20HZ的幅度值没有出现,出现了栅栏效应。图2 补零后的序列及其512点DFT结果图由图2,在128点有效数据且补零至512点进行FFT情

16、况下,相对图1得到了高密度的频谱采样,但是并不能得到频谱的更多细节的信息,20Hz的幅度值仍没有显示,仍然有栅栏效应。图3 序列及其512点DFT结果图由图3,在512点有效数据进行FFT情况下,20HZ,20.5HZ和40HZ的幅度值都能显示出来,即栅栏效应消除。通过分析仿真结果可知,采用对序列补零的方法,可得到对采样更密的采样值,即得到该密度的频谱采样,但是并不能得到频谱的更多细节的信息这里的分辨率是视在分辨率,通过补零得到的频谱图是高密度谱。序列补零能够提高视在分辨率,细化频谱,得到高密度谱,一定程度上克服栅栏效应。增加采样点数可以提高物理分辨率,消除栅栏效应。五、心得体会经过一周的数字信号处理课程设计,感触很深。以前学习的理论知识得到了实践应用,从刚开始拿到题目时的无从下手,经过查阅资料,上网查询,学习使用MATLAB编程,逐渐将课程设计与之前学过的相关内容联系起来,是一次很有意义的实践。然而,课程设计并不是一帆风顺的,在真正进入程序的编程阶段,才发现有很多错误,经过不断改进,最终在MATLAB上仿真,得出图像。让我明白细节决定成败,任何一处小的错误都可能导致结果的错误与失

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论