fft在分析频谱分析的时候,会有下面四个方面的误差:
(1)频谱混叠
奈奎斯特定理已被众所周知了,所以几乎所有人的都知道为了不让频谱混叠,理论上采样频谱大于等于信号的最高频率。那和时域上联系起来的关系是什么呢?
设定采样点数为N,采样频率fs,最高频率fh,故频谱分辨率f=fs/N,而fs>=2fh,所以可以看出最高频率与频谱分辨率是相互矛盾的,提高频谱分辨率f的同时,在N确定的情况下必定会导致最高频率fh的减小;同样的,提高最高频率fh的同时必会引起f的增大,即分辨率变大。
(2)栅栏效应:
在进行DFT的过程中,最后需要对信号的频谱进行采样。经过这种采样所显示出来的频谱仅在各采样点上,而不在此类点上的频谱都显示不出来,即使在其他点上有重要的峰值也会被忽略,这就是栅栏效应。这一效应对于周期信号尤为重要,因其频谱是离散的,如处理不当这些离散谱线可能不被显示。
不管是时域采样还是频域采样,都有相应的栅栏效应。只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。减小栅栏效应可用提高采样间隔也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。解决此项矛盾可以采用如下方法:在满足采样定理的前提下,采用频率细化技术(ZOOM),亦可用把时域序列变换成频谱序列的方法。
在对周期信号DFT处理时,解决栅栏效应应以致解决泄露效应的一个极为有效的措施是所谓“整周期截取”。
而对于非周期信号,如果希望减小栅栏效应的影响,尽可能多地观察到谱线,则需要提高频谱的分辨率。
(3)细化技术
什么是细化技术:细化技术是一种一定频率范围内提高频率分辨率的测量技术,也叫细化傅里叶分析。即在所选择的频带 内,进行与基带分析有同样多的谱线的分析。从而能大大提高频率分辨率。
选带分析时频率分辨率为:
选带傅氏分析(细化)的主要步骤是:
(a) 输入信号先经模拟抗混滤波,滤去所需分析的最高频率即基带分析中的最高分析频率以上的频率成分;
(b) 经过模数转换,变为数字信号序列;
(c) 将采样信号经数字移频,移频后的Fk处的谱线将落在频率轴上的零频处;
(d) 将移频后的数字信号再经数字低通滤波,滤去所需频带以外的信号;
(e) 对滤波后的信号的时间序列进行重采样,此时分析的是一段小频段为原来的1/M。这样在一小频段上采样,采样量还是N,但采样时间加了M倍,提高了分辩率。
细化FFT技术的应用:
一些不能增加总的采样点数而分辨率又要求精细的场合,细化FFT分析是很有用的。例如:(a)区分频谱图中间距很近的共振尖峰,用常规分析不能很好分开时,用细化分析就能得到满意的结果。(b)用于增加信噪比,提高谱值精度,这是由于细化时采用了数字滤波器,混叠与泄漏产生的误差都非常小;(c ) 用于分离被白噪声淹没的单频信号,由于白噪声的功率谱与频率分辨率有关,每细化一个2倍,白噪声的功率谱值降低3dB,若细化256倍,白噪声功率谱值即下降24 dB,而单频信号的谱线就会被突出出来。
(4)频谱泄露
截断信号时域上相当于是乘以了rectangular window,于是造成了频谱泄漏的问题。
泄漏的原因来自两方面。第一:输入频率不是fs/n的整数倍,因为dft只能输出在fs/n的频率点上的功率,所以当输入频率不在fs/n的整数倍时,在dft的输出上就没有与输入频率相对应得点(dft输出是离散的),那么输入频率就会泄漏到所有的输出点上,具体的泄漏分布取决于所采用的窗的连续域复利叶变换,对于没有使用窗的,相当于使用了矩形窗,矩形窗在进行连续傅立叶变换在一般的信号与系统书上都有。
第二:而对于非矩形窗,窗本身就会产生一定的泄漏,是通过加大主瓣的宽度来降低旁瓣的幅度,通常主瓣的宽度变成了矩形窗的两倍,例如当我们输入一个fs/n的整数倍的输入频率时,经过非矩形窗,dft输出会在两个fs/n的频点上有功率。
见参考书:lyon的understanding DSP.
解决办法,可以扩大窗函数的宽度(时域上的宽了,频域上就窄了,(时域频域有相对性),也就是泄露的能量就小了),或者不要加矩形的窗函数,可以加缓变的窗函数,也可以让泄露的能量变下。
因为泄露会照成频谱的扩大,所以也可能会造成频谱混叠的现象,而泄露引起的后果就是降低频谱分辨率。
频谱泄露会令主谱线旁边有很多旁瓣,这就会造成谱线间的干扰,更严重就是旁瓣的能量强到分不清是旁瓣还是信号本身的,这就是所谓的谱间干扰。
(5)旁瓣效应:
补零对频谱的影响:
进行zero padding只是增加了数据的长度,而不是原信号的长度。就好比本来信号是一个周期的余弦信号,如果又给它补了9个周期长度的0,那么信号并不是10个周期的余弦信号,而是一个周期的余弦加一串0,补的0并没有带来新的信息。其实zero padding等价于频域的sinc函数内插,而这个sinc函数的形状(主瓣宽度)是由补0前的信号长度决定的,补0的作用只是细化了这个sinc函数,并没有改变其主瓣宽度。而频率分辨率的含义是两个频率不同的信号在频率上可分,也就要求它们不能落到一个sinc函数的主瓣上。所以,如果待分析的两个信号频率接近,而时域长度又较短,那么在频域上它们就落在一个sinc主瓣内了,补再多的0也是无济于事的。
补零与离散傅里叶变换的分辨率:
离散傅里叶变换(DFT)的输入是一组离散的值,输出同样是一组离散的值。在输入信号而言,相邻两个采样点的间隔为采样时间Ts。在输出信号而言,相邻两个采样点的间隔为频率分辨率fs/N,其中fs为采样频率,其大小等于1/Ts,N为输入信号的采样点数。这也就是说,DFT的频域分辨率不仅与采样频率有关,也与信号的采样点数有关。那么,如果保持输入信号长度不变,但却对输入信号进行补零,增加DFT的点数,此时的分辨率是变还是不变?
另外,增加0可以更细致观察频域上的信号,但不会增加频谱分辨率
答案是此时分辨率不变。从时域来看,假定要把频率相差很小的两个信号区分开来,直观上理解,至少要保证两个信号在时域上相差一个完整的周期,也即是相位相差2*pi。举个例子,假定采样频率为1Hz,要将周期为10s的正弦信号和周期为11s的正弦信号区分开来,那么信号至少要持续110s,两个信号才能相差一个周期,此时周期为10s的那个信号经历的周期数为11,而11s的那个信号经历的周期书为10。转化到频域,这种情况下,时域采样点为110,分辨率为1/110=0.00909,恰好等于两个信号频率只差(1/10-1/11)。如果两个信号在时域上不满足“相差一个完整周期“的话,补零同样也不能满足“相差一个完整周期”,即分辨率不发生变化。另外,从信息论的角度,也很好理解,对输入信号补零并没有增加输入信号的信息,因此分辨率不会发生变化。
那么,补零到底会带来什么样的影响呢?因为DFT可以看做是对DTFT的采样,补零仅是减小了频域采样的间隔。这样有利于克服由于栅栏效应带来的有些频谱泄露的问题。也就是说,补零可以使信号能在频域被更细致地观察。如果不满足上述“至少相差一个完整周期”的要求,即便是如DTFT一般在频域连续,也无法分辨出两个信号。
那么,影响DFT分辨率最本质的物理机制是什么呢?在于DFT的积累时间,分辨率为积累时间T的倒数。这点从数学公式上可以很容易得到:
fs/N=1/(N*Ts)=1/T
举个例子说,如果输入信号的时长为10s,那么无论采样频率为多少,当然前提是要满足奈奎斯特定理,其分辨率为1/10=0.1Hz。