声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2080|回复: 0

[FFT] FFT在分析频谱时的误差来源

[复制链接]
发表于 2018-6-12 10:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  FFT在分析信号频谱的时候,会有下面四个方面的误差:

  1、频谱混叠
  奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率。

  那和时域上联系起来的关系是什么呢?采样周期的倒数是频谱分辨率,最高频率的倒数是采样周期。

  设定采样点数为N,采样频率fs,最高频率fh,故频谱分辨率f=fs/N,而fs>=2fh,所以可以看出最高频率与频谱分辨率是相互矛盾的,提高频谱分辨率f 的同时,在N确定的情况下必定会导致最高频率fh的减小;同样的,提高最高频率fh的同时必会引起f 的增大,即分辨率变大。

  2、栅栏效应
  由于dft是只取k=0,1,2,.......N-1,只能取到离散值,如果频谱之间相隔较大的话也许会将一些中间的信息丢失掉,而用fft 计算dft是不可避免的,解决的办法就是增加采样点数N。这样频谱间隔变小,丢失信息的概率减小。

  另外,增加0可以更细致观察频域上的信号,但不会增加频谱分辨率。

  3、频谱泄露
  是由加窗函数引起的,同样是计算量的问题(用fft、用dft必需要加窗函数),时域上的相乘,频域上卷积,引起信号的频谱失真,只有在很少的情况下,频谱泄露是不会发生的,大部分情况都会引起泄露。如:
1.png
  N点的fft 则不会发生泄露,但2N,或N+1,N+2等均会引起失真,而引起失真可以从表达式上看出:X(K)=卷积以后的频谱在2π/N*k的取样值,所以如果是2Ndft,为2π/2N*k相当于Ndft结果各个值中间再取样了一个值,而2π/(N+2)*k就与Nfft完全不一样了。

  解决办法,可以扩大窗函数的宽度(时域上的宽了,频域上就窄了,(时域频域有相对性),也就是泄露的能量就小了),或者不要加矩形的窗函数,可以加缓变的窗函数,也可以让泄露的能量变小。

  因为泄露会造成频谱的扩大,所以也可能会造成频谱混叠的现象,而泄露引起的后果就是降低频谱分辨率。

  4、谱间干扰
  频谱泄露会令主谱线旁边有很多旁瓣,这就会造成谱线间的干扰,更严重就是旁瓣的能量强到分不清是旁瓣还是信号本身的,这就是所谓的谱间干扰。

  来源:xuexiang0704 CSDN博客

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 07:06 , Processed in 0.060583 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表