FFT加窗和频谱泄露

所谓加窗,目的就是针对非整周期采样得到的非自窗信号(self-windowing signal),缓解其频谱分析结果中的能量泄漏现象(注意是“缓解”,而不是“避免”或“消除”)。所谓信号整周期采样(蓝色)和非整周期采样(红色),如图1所示。
在这里插入图片描述
①:由于非整周期截断,对信号周期拓延时,在首尾位置,会出现人为的信号不连续(图1阴影部分),进而造成虚假的高频成分。在FFT分析结果中,这些高频成分会混叠到分析带宽内,使得真实频率处的能量被分散,就是所谓能量泄漏现象;

②:非整周期截断,那么FFT频率分辨率所决定的谱线,就与信号的真实频率不能完全对应了,所以就会造成能量被分散到周边频率。举例来说,信号真实频率为1.5Hz,如果非整周期截断,每次FFT只取1s的样,频率分辨率Δf =1Hz,那么1.5Hz信号成分就无法直接体现出来,而是会被分散到1Hz、2Hz以及周边的谱线上。

下面,我们尝试从信号处理本身的过程,来说一下所谓能量泄漏到底是怎么发生的。:傅里叶变换和FFT,这是两个不同的概念。傅里叶变换
在这里插入图片描述
是对连续时间信号x(t)进行积分,得到频域的连续函数X(f)。而FFT是DFT(离散傅里叶变换)的一种快速算法实现,
在这里插入图片描述
N为采样点数,Δt为采样时间间隔,Δf为频率分辨率。因此FFT是基于时域离散采样点数据x(nΔt),计算出频域离散函数X(kΔf)的过程。FFT是对连续傅里叶变换得到频域连续函数,在频域进行离散采样,所得到的一个近似的分析结果。
先来看看整周期截断的情况,我们以对一个频率为10Hz,幅值为1的正弦信号FFT分析为例。
1)原始信号原本是一个时间上从-∞变化到+∞的周期信号,对应的频谱只在10Hz 有能量。
在这里插入图片描述
2)我们在进行FFT之前,需要截取一段信号(比如对应1Hz频率分辨率,我们截取1s的数据)。这个数据截取的过程,相当于给原始信号乘一个矩形波,这个矩形波函数,在截取信号的1s时间内,函数值为1,在这截取时间段之外函数值为0。这个截取过程,就像是我们透过一扇窗户去观察信号,所以我们把这个矩形波函数称之为矩形窗函数。
在这里插入图片描述
对这个时长1s的矩形窗函数进行傅里叶变换,可以很容易得到其在频域的函数表示。这里引出一个 sinc 函数,sinc(x) = sinx/x,当x = 0时,sinc(x) 函数取极限值为1。
在这里插入图片描述
下图中,左图为矩形窗的时域波形,右图是其双边傅里叶变换结果的幅频图。可以看到频谱结果中有一个宽度为2Hz的主瓣,主瓣旁边存在很多旁瓣。
在这里插入图片描述
下面将矩形窗函数作用到原始信号上,也就是把矩形窗的时域信号和原始时域信号相乘,完成信号的截取,两个信号在时域相乘,对应频域就是两个信号进行卷积(*)运算。所以截断后信号的傅里叶变换结果中,也出现了旁瓣。
在这里插入图片描述
4)最后对截出的信号,分别在时域和频域进行离散采样。时域离散采样大家都很熟悉,那么频域采样,就是对截出信号的傅里叶变换结果,根据1s数据所对应的1Hz的频率分辨率,进行频域的离散采样。(相信大家都知道为什么1s对应1Hz频率分辨率,FFT/DFT中二者互为倒数)此时10Hz正弦信号的能量完全集中在10Hz的谱线上,在所有其他谱线上的结果均为0,分析结果与原始周期信号的频谱完全一致,不存在任何能量的泄漏。

在这里插入图片描述
下面看看非等周期截断的情况。对信号频率为9.7Hz的正弦信号,仍然采集1s时间信号。如图中的原始信号时域波形所示,周期拓延后,信号首尾连接处显然会不连续。

分析的过程与上面一样,区别主要在于最后一步的离散采样。对应1Hz分辨率所决定的谱线,依旧从傅里叶分析结果中离散取样,此时所表现出来的结果是,信号的真实频率(9.7Hz)无法对应任何一根谱线,所以信号的能量就被分散到了周边的各条谱线上了。其中与9.7Hz最接近的10Hz谱线上的幅值最大,为0.86。如果以10Hz的这个最大值作为参考,与原周期正弦信号的幅值相比,结果出现了14%的误差。此外,在主瓣另一根谱线上(9Hz),也存在一个比较明显的分量。

在这里插入图片描述

能量泄漏的改善:
Hann窗(时长1s)的时域函数为:
在这里插入图片描述
通过傅里叶变换,可计算出其频域的函数表达:
在这里插入图片描述
Hann窗的时频特性如图所示。可以看到相比较矩形窗,Hann窗的主瓣要宽一倍,而旁瓣的幅值要小很多。所以,从截断后信号的傅里叶变换频谱中可以看到,相比较矩形窗而言,信号能量从主瓣泄漏到旁瓣的现象,得到了明显的抑制和改善。

对加窗截断后的信号,分别在时域和频域离散采样,并对FFT分析结果进行窗函数幅值修正(所谓窗函数修正是怎么回事,有机会在以后的文章再说),可以看到现在10Hz谱线上的结果为0.94,误差从矩形窗的14% 降低到了6%。但也注意到,在主瓣上的其他3根谱线(8Hz,9Hz,11Hz)上,也出现不小的分量。

因此,当我们使用Hann窗进行频谱分析时,如果在某个频率附近,相邻的3-4根谱线都有一定的分量,并不总是代表这里存在着3~4个不同的频率成分,而很可能是由于信号非等周期截断所造成的能量分散。
在这里插入图片描述
如果是非等周期采样,FFT分析结果就将无法准确复现原始周期信号的频谱特征,表现为真实频率处的信号能量,被泄漏到了窗函数所引起的主瓣及周边旁瓣的各条谱线上,即所谓能量泄漏现象。

在这里插入图片描述

  • 24
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行FFT分析时,频谱泄露是指信号的频谱不仅在其真实频率处有离散谱,而是在以该频率为中心的频带范围内都有谱线出现。这种现象可以理解为信号的能量在频域上泄漏到其他频率上。\[2\]频谱泄露的出现是由于在利用DFT求频谱时对信号进行了截短,导致频谱的精确度下降。为了降低频谱泄漏,可以采用加窗方法加窗是在信号进行FFT之前,对信号进行加权处理,以减小频谱泄漏的影响。常用的窗函数有Hamming、Blackman、Gaussian等。这些窗函数主要是为了降低旁瓣的幅度,从而提高频谱的还原度。\[3\]然而,需要注意的是,加窗也会引入一定的频谱泄漏,因此在选择窗函数时需要权衡频谱泄漏和频谱还原度的关系。在使用stm32fft进行频谱分析时,可以根据具体需求选择合适的窗函数来处理信号,以达到较好的频谱分析效果。 #### 引用[.reference_title] - *1* [[DSP学习笔记]基于TMS320F28335的FFT加窗函数实现](https://blog.csdn.net/luoqicou/article/details/128737388)[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* *3* [【STM32F429的DSP教程】第26章 FFT变换结果的物理意义](https://blog.csdn.net/Simon223/article/details/106397533)[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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值