3.6.1  为什么要加窗函数

3.6.1 为什么要加窗函数

在3.4什么是泄漏一节中已经讲到每次FFT变换只能对有限长度的时域数据进行变换,因此,需要对时域信号进行信号截断。即使是周期信号,如果截断的时间长度不是周期的整数倍(周期截断),截取后的信号也会存在泄漏。为了将这个泄漏误差减少到最小程度,我们需要使用加权函数,也叫作窗函数。加窗函数主要是为了使时域信号似乎更好地满足FFT处理的周期性要求,减少泄漏。(https://www.daowen.com)

如图3-29所示,若周期截断,则FFT频谱为单一谱线。若为非周期截断,则频谱出现拖尾,如图3-29中部所示,可以看出泄漏很严重。为了减少泄漏,给信号施加一个窗函数,原始截断后的信号与这个窗函数相乘之后得到的信号为上面右侧的信号。可以看出,此时信号的起始时刻和结束时刻幅值都为0,也即是在这个时间长度内,信号为周期信号,但是只有一个周期。对这个信号做FFT分析,得到的频谱如图3-29下部右侧所示。相比较之前未加窗的频谱,泄漏已改善明显,但并没有完全消除。因此,窗函数只能减少泄漏,不能消除泄漏。

因此,加窗的目的是为了减少泄漏,但加窗不能消除泄漏,只能减少泄漏。