揭开FFT时域加窗的奥秘

FFT – Spectral Leakage

假设用于ADC输出数据分析的采样点数为N,而采样率为Fs,那我们就知道,这种情况下的FFT频谱分辨率为δf,那么δf=Fs/N。如果此时我们给ADC输入一个待测量的单频Fin,如果此时Fin除以δf不是整数,就会产生频率泄露。要尽可能保证测得的FFT不会产生频谱泄露,有两种方式进行处理,相干采样和时域加窗

(1)相干采样

假设M是我们需要采样的输入信号的周期数,那么M/Fin=N/Fs,也就是两个时间长度是一致的,也就是Fin/ Fs=M/N,这个比值要能够被表达成为有理数(也就是整数或者分数)N必须是2的幂数(这是从蝶形运算的角度考虑的)。MN还必须要互为质数(这样可以避免重复采样相同位置的,重复采样周期信号相同的位置点不会获得额外的信息,因此不推荐M非素数(素数,除了1和它本身以外不再有其他因数的自然数))。如果选择了M/N为非互质时,将导致信号周期性的量化,以及仅有少量的量化步进被测试。量化周期性的重复,建立了一个线谱,它是一个令人费解的实频率线(如下图2所示在谐波镜像之下的红线,这是由ADC的非线性导致的,而黑色痕迹则是因为量化周期的重复性导致的,也就是M/N为非互质导致的,图3是采用相干采样得到的结果

从相干采样的描述来看,相干采样的输入信号Fin和采样频率Fs必须是同步信号。另外相干采样可以确保信号功率仅在一个FFT bin(也就是频谱分辨率)之中。

图1 相干采样定理:
在这里插入图片描述

图2 重复相同位置采样导致的谐波痕线抬升:在这里插入图片描述

图3 相干采样改善还原了真实的非线性特性:
在这里插入图片描述

(2)时域加窗

如果采样的波形是非连续的,也就是采集的样本不是信号的整数倍周期,那么就需要消除这种现象,从而减小FFT的频谱泄露(注意不是完全改善),TI的官方文档为我们展示了这一现象,如下图3所示,对信号进行了时域加窗,加窗之后频谱泄露有所减小

图4 非周期采样频谱泄露展示:
在这里插入图片描述

很明显No window(矩形窗)的旁瓣非常高,也就意味着,它的泄露抑制的不是很好。但是频率分辨率准确,幅值精度低。

  • 不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截短产生了能量泄漏,而用 FFT 算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。(矩形窗 主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度 最低,但幅值识别精度最高)
  • Hanning(汉宁窗)是使用最广泛的一种窗函数,除此之外还有,Hamming(海明窗),Flat-top 窗和 Balckman-Harris 窗,矩形窗产生最窄的谱线,加 Flat-top 窗谱线最宽。旁瓣的影响和精确频率分辨率 有时候是不可兼得的。(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;Flat-top 窗主瓣 宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)

图5 TI官方的不同窗函数的频谱特性:
在这里插入图片描述

图6 不同应用使用的窗函数:
在这里插入图片描述

  • Processing loss(dB),也叫做相干功率增益,对一个信号进行加窗操作之后将会减少信号在时域上的幅值,尤其是在窗函数的左右边界,这种幅度的减小会引入幅度误差,每个窗函数的这种处理损失不太一样,TI已经列于下表之中,矩形窗不存在损失

  • Scalloping loss(dB),由于FFT变换的结果是离散的,那么信号的频率有可能会落在两个FFT bin之间,这样原本的功率就会被分散到两个bin上,从而相对于原先的功率就会产生损失,这就叫做栅栏损失

在这里插入图片描述
在这里插入图片描述

图7 不同窗函数使用的处理误差:
在这里插入图片描述

图8 不同窗函数的形状:
在这里插入图片描述

TIADC分析软件,内部已经对加窗处理损失进行修正。

大家可自行使用FFT分析软件分析一下非整周期采样使用各种窗口的结果,加深理解Highest side lobe level、Processing loss、Scalloping loss以及Half main lobe width。应用时域加窗技术会影响频谱分辨率

  • 36
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zeal.Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值