数字信号处理离不开频域分析,一定会用到FFT。做FFT之前又会用到窗函数。为什么FFT需要加窗呢?结论放在前面。
FFT假设输入信号是整数个周期信号。如果输入信号满足条件,则不需要加窗。但实际上这两个条件几乎不能满足,FFT的这个假设会导致频谱泄露,为了减少频谱泄露需要用到窗函数。
栅栏效应和频谱泄露
整数个周期信号
如果输入的信号是整数个周期信号,FFT的结果能很好地表示时域信号的频域分布。
举例1:采样率16kHz,1kHz的正弦信号。128个点刚好是8个周期。的时域波形和频域分布。
Fs = 16e3;
Ts = 1/Fs;
t = 0:Ts:127*Ts;
x = sin(2*pi*1e3*t);
非整数个周期信号
窗函数的作用
单一正弦信号与窗函数相乘,正弦信号在频域就是一个冲激,冲激和窗函数频域响应卷积之后就得到了和窗函数频域响应形状类似的频域分布了。所以窗的频域响应能表示其对正弦信号的响应。
窗函数修正系数
对称和不对称窗
从维基盗了两张图链接,蓝色的是periodic,红色的是symmetric。从图中可以看出, periodic拥有稍微窄一点的主瓣,稍微高一点的旁瓣,和稍微低一点的噪声带宽。三个稍微,感觉影响也不是很大嘛。