窗口函数对信号频谱的影响

前言

这两天对之前那篇地震信号的一些基本概念做了一些仿真,其实是想知道窗口函数对时域信号的频谱和时域自相关序列旁瓣的影响,也是对文献可控震源线性扫描信号仿真分析.pdf的基本复现。

窗口对扫描信号的影响

由设计滤波器的经验可知,我们选择布莱克曼窗,图1是原始的布莱克曼窗:
图1
我们知道窗口的作用能使Gibbs现象减弱,其原因在于两边斜坡,所以我们使用布莱克曼窗口的两边斜坡,同时在中间增加值为1的数据,总的数据长度根据实际需求而定,这里我们选择扫描信号的长度。图2是处理后的布莱克曼窗口:
file 图2
由扫描信号的基本公式:
file
我们取采样率为 250 HZ,采样周期为 0.004 S,扫描时间为 16 S,基本的matlab代码为:

%扫描信号
i = 1;
T = 0.004;
d = 16;
for t1 = 0:T:d
    s(i) = sin(2*pi*(f1 + t1*delta_f / (2 * d))*t1);  
    i = i + 1;
end

产生的扫描信号如图3所示:
file 图3
现在我们对图3的扫描信号进行加窗:

N = fix(L * 0.5);%L为扫描信号长度,N取扫描信号长度的50%
xiepo_l = fix(N/2);%斜坡长度
w = [w(1:xiepo_l) ones(1,L - 2 * xiepo_l) w(N-xiepo_l+1:N)];%最终的窗口
s = s .* w;%加窗后的数据

加上处理后的布莱克曼窗口后的效果为:
file 图4
图4为斜波长度为扫描信号长度的50%时的加窗后效果图

说明:加窗后,扫描信号的两边有明显的变化

在频域而言,原扫描信号的频谱图为:
file 图5
斜坡长度取扫描信号长度的50%时,加窗后扫描信号的频谱图为:
file 图6

相对于原频谱图,新频谱图的Gibbs现象都很难看出了,加窗后的效果极好。

接着,我们改变斜坡长度,设N = fix(L * 0.1),即为扫描信号长度的10%,相应的加窗后的频谱图为:
file 图7
可以看出,相对于50%的斜波长度,10%的斜坡长度的Gibbs现象比较明显,当然如果增加斜坡长度,Gibbs现象会相应的减弱,图8为20%的斜坡长度频谱图:
file 图8
明显地,又减弱了些,所以我们得出Gibbs现象随窗口斜坡长度的增加而减弱。

结论:斜坡的长度与Gibbs现象强弱的关系不仅在设计滤波器时如此,在各种信号为了消除Gibbs现象照样可以用,所以它们的本质就是使信号在两边的变化用窗口进行影响,来改变频谱Gibbs现象。

追求梦想,做最好的自己