有关FFT频谱泄露与整周期采样问题v1.0(待修)

Title:有关FFT频谱泄露与整周期采样问题的总结整理内容

Date:2022.6.21

//内容部分为从网上摘抄整理,未含有严谨的数学证明,较为易懂。

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

在这里插入图片描述
  下面是一个1000.4882812Hz的正弦信号,采样频率为48kHz,FFT点数为32768(无窗,或矩形窗),因此一个FFT段包含32768/48000*1000.4882812=683个整信号周期,信号能量集中于单一谱线上,无泄漏。

在这里插入图片描述
2. 如果DFT采集时间窗口内的信号的周期延拓与实际信号不完全吻合,就会在周期延拓的边界上出现不连续点,就会出现泄漏现象。

在这里插入图片描述

  下面是一个1000Hz的正弦信号,采样频率为48kHz,FFT点数为32768(无窗,或矩形窗),因此一个FFT段包含32768/48000*1000=682.6666667个信号周期,信号能量分散于多条谱线上,而且散布到离信号本身频率以外相当远的地方,出现了严重的频谱泄漏。
在这里插入图片描述
3. 减少频谱泄漏的方法就是将采集时间窗口内的数据乘以一个窗函数,再做DFT。
  与矩形窗给所有采集窗口内的数据同样的权重(即:1)不同,通常采用的窗函数都是给予采集窗口内中间的数据最大的权重(即:1),然后从中间到两边权重逐渐减小,最后在边界上变为0,这就强制了在DFT周期延拓的边界上,不会出现不连续的跳变。

在这里插入图片描述
  加窗后,在周期延拓的边界上,被强制连续。
在这里插入图片描述
  下面是一个1000Hz的正弦信号,采样频率为48kHz,FFT点数为32768(汉宁窗),因此一个FFT段包含32768/48000*1000=682.6666667个信号周期,加窗后信号能量集中于信号频率附近的几条谱线上,频谱泄漏的情况比不加窗时小。
在这里插入图片描述

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: FFT(快速傅里叶变换)可以在一定程度上解决频谱泄露问题频谱泄露是由于信号的截断导致的,而FFT可以将信号从域转换到频域,通过对信号进行零填充或者窗函数处理,可以减少频谱泄露的影响。零填充是在信号的末尾添加零值样本,以增加信号的长度,从而提高频谱的分辨率。窗函数是一种对信号进行加权的方法,可以减少信号在截断边界处的突变,从而减少频谱泄露的影响。选择合适的窗函数和适当的零填充长度可以有效地减少频谱泄露问题。然而,需要注意的是,FFT仍然无法完全消除频谱泄露,特别是对于宽带信号或存在多个频率成分的信号,仍然可能存在一定程度的泄露。因此,在进行频谱分析,需要综合考虑信号的特性和所需的精度,选择合适的处理方法来解决频谱泄露问题。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [关于FFT频谱泄露问题](https://blog.csdn.net/u011732210/article/details/53889523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [利用FFT成功实现拓扑识别(五)--关于频谱泄露](https://blog.csdn.net/cyjbj/article/details/126409551)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [如何理解FFT中的频谱泄露效应?](https://blog.csdn.net/qizu/article/details/127803468)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值