概述
原创声明:以下内容为本人原创,仅代表个人观点。
在实际的数字信号分析中,我们处理的数据都是有限长的离散序列,使用的都是FFT算法实现的DFT分析。实际序列长度的有限性,会产生频谱泄露现象,简而言之就是当分析一个单频信号时,常常会发现在信号的真实谱线周边,产生了许多“假谱线”。在此对DFT频谱分析产生的频谱泄露进行分析。设单频信号频率为f0,采样率为Fs,采样序列长度为Ts,此时可知一个信号周期内的点数N=Fs/f0 。我们每次采样得到Ts个采样点,相当于对原来的周期信号进行时域的截断后再离散采样,截断的窗函数是最简单的矩形窗,且矩形窗的门限长度为Ts/Fs。而矩形窗的频域对应一个抽样函数Sa,其零点间隔为时域门限的倒数Fs/Ts。
而我们对采样得到的数据点进行FFT频谱分析时,频域分辨率为Fs/Ts。(默认FFT变换长度为数据长度,工程上常用补零或插值后满足2的整数次幂进行变换)可以看出,FFT的频域分辨率恒等于截断矩形窗的频域零点间隔,这是分析频谱泄漏的一个关键点。
对得到的信号频谱进行DTFT分析,其频谱是连续的,且相当于单频信号的离散频谱卷积一个抽样函数。这样的频谱可以看成,在频域上由多个抽样函数包络加权移位、相互正交的叠加。但计算机无法进行直接对离散信号进行傅里叶分析(即DTFT),因为这样得到的谱线是连续谱,是无法被计算机表示出来的。因此,我们采用的都是DFT,其物理意义是对DTFT的连续谱进行等距抽样得到的离散谱,这样的谱是能被计算机表示出来的。
因此,对采样信号序列进行FFT的结果就是,对原周期函数离散谱卷积抽样函数后得到的连续谱,进行抽样后的离散谱。由于抽样间隔衡等于抽样函数零点间隔,自然而然地我们可以想到,只要有一个抽样点与抽样函数中心点重合,其他抽样点都将在抽样函数的零点上,此时我们得到的只有真实谱线上的值,即没有产生频谱泄漏。注意到离散频谱的谱线间隔为f0,利用抽样点与离散谱线(即抽样函数中心抽头)重合的条件,有:f0=m*Fs/Ts,其中m为整数。
整理一下,可以得到如下频谱不泄漏的条件: Ts=m*Fs/f0,这里Fs/f0代表一个信号周期内的点数,Ts是采样序列长度,也就是说,当一次采样得到整数倍个信号周期时,不会产生频谱泄漏,这也是人们常说的周期截断的信号序列不会产生频谱泄漏。得到频谱不泄漏的条件后,我们自然而然就理解了为什么一般情况下都会产生频谱泄漏。可以预见,实际采样得到的周期序列肯定大部分都是非周期截断的采样序列,此时DFT的抽样点就不与信号的连续谱的中心点和各个零点重合,因此会采到许多“假谱线”,这些“假谱线”没有反映出真实信号的频率成分,反映的是抽样函数的包络形状,不具有信息量。
接着,我们就知道了,之所以会产生频谱的泄漏,主要原因是截断信号频谱具有的抽样函数包络引起的,因此,减少频谱泄漏必须围绕着改善截断窗函数的频域形状进行。一种方法是增加采样时间,即使得Ts变大,此时等效于截断窗函数的门限变长,频域主瓣变窄,意味着主瓣内幅度下降速度变快,因此此时得到的泄漏谱线会变得很小,能够比较好地识别出真实谱线。特别地,当采样时间趋于无限长时,频域抽样函数趋于冲激函数,此时泄漏谱线完全消失。另一种方法是使用不同的截断窗函数,如果采用主瓣更窄的窗函数,可以在不增加采样时间的情况下提高真实谱线的识别能力。
在此我们分析的是周期信号,如果对于非周期信号进行DFT频谱分析,结果也是类似的。我们可以把得到的非周期信号也视为它的周期延拓信号的截断,本质上也归结为对周期信号的分析。所以说我们在计算机上得到的最精确频谱只能是一个周期信号的离散谱。根据时频域离散性和周期性的关系,对一个非周期信号的周期延拓进行分析,得到的是原信号的频谱的抽样表示,因此我们在计算机上看到的非周期信号的频谱都是其真实频谱离散化后的近似,当完全消除频谱泄漏时,我们得到的是非周期信号的准确的离散化谱。
工程上也需要对其进行加窗处理后再作分析,此时窗函数一般能够使得信号的首尾归零,使得信号的时域波形更为平滑,其周期延拓信号不存在不连续点。此时信号的形状发生了一定变化,但一般在影响比较小的范围内,而对于变化后的信号是不存在频谱泄漏的,因为我们使用窗函数强行使采样序列变为整数倍的周期,可视其为周期截断信号。
最后
以上就是唠叨摩托为你收集整理的DFT频谱泄漏的数学分析及不产生泄漏的条件的全部内容,希望文章能够帮你解决DFT频谱泄漏的数学分析及不产生泄漏的条件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复