用DFT/FFT对信号进行频谱分析误差主要表现在三个方面
即:
- 频谱混叠现象;
- 栅栏效应;
- 截断效应,截断效应又包括频谱泄漏和谱间干扰。
频谱混叠:
奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率。那和时域上联系起来的关系是什么呢?
采样周期的倒数是频谱分辨率,最高频率的倒数是采样周期。
设定采样点数为N,采样频率fs,最高频率fh,故频谱分辨率f=fs/N,而fs>=2fh,所以可以看出最高频率与频谱分辨率是相互矛盾的,提高频谱分辨率f的同时,在N确定的情况下必定会导致最高频率fh的减小;同样的,提高最高频率fh的同时必会引起f的增大,即分辨率变大。
栅栏效应:
由于dft是只取k=0,1,2,.......N-1,只能取到离散值,如果频谱之间相隔较大的话也许会将一些中间的信息丢失掉,而用fft计算dft是不可避免的,解决的办法就是增加采样点数N。这样频谱间隔变小,丢失信息的概率减小。
另外,增加0可以更细致观察频域上的信号,但不会增加频谱分辨率。
这里有补零对分辨率的影响。
截断效应
截断效应又包括频谱泄漏和谱间干扰。
频谱泄露:是由加窗函数引起的,同样是计算量的问题(用fft用dft必需要加窗函数),时域上的相乘,频域上卷积,引起信号的频谱失真,只有在很少的情况下,频谱泄露是不会发生的,大部分情况都会引起泄露。如x(n)=cos(2π/N),(n=0,1,2,3.....N-1,) N点的fft则不会发生泄露,但2N,或N+1,N+2等均会引起失真,而引起失真可以从表达式上可以看出 X(K)=卷积以后的频谱在2π/N*k的 取样值,所以如果是2N的dft,为2π/2NK,相当于N点dft结果各个值中间再取样了一个值,而2π/(N+2)k,就与N点fft完全不一样了。
解决办法:可以采用截断长度T0更长,即扩大窗函数的宽度(时域上的宽了,频域上就窄了,T0=N/fs(时域频域有相对性),也就是泄露的能量就小了),或者不要加矩形的窗函数,可以加缓变的窗函数,也可以让泄露的能量变小。例如海明窗可以使窗的旁瓣更小,海明窗第一旁瓣幅度比矩形窗的第一旁瓣要小32dB, 这样谱间串扰会大大减小,但是其第一主瓣宽度则变成8pi/N,增加了一倍,又会降低频率分辨率。
因为泄露会造成频谱的扩大,所以也可能会造成频谱混叠的现象,而泄露引起的后果就是降低频谱分辨率。
谱间干扰
频谱泄露会令主谱线旁边有很多旁瓣,这就会造成谱线间的干扰,更严重就是旁瓣的能量强到分不清是旁瓣还是信号本身的,这就是所谓的谱间干扰。
来源:51CTO
作者:看古今风流
链接:https://blog.51cto.com/9451328/2048987