weixin 发表于 2018-6-12 10:31

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

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

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

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

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

  来源:xuexiang0704 CSDN博客

页: [1]
查看完整版本: FFT在分析频谱时的误差来源