Main Content

加窗法

为什么使用加窗法?

在数字滤波器设计和频谱估计中,加窗函数的选择对于整体结果的质量有重大影响。加窗的主要作用是减弱因无穷级数截断而产生的吉布斯现象的影响。

可用的窗函数

函数

巴特利-汉宁窗

barthannwin

巴特利窗

bartlett

布莱克曼窗

blackman

布莱克曼-哈里斯窗

blackmanharris

Bohman 窗

bohmanwin

切比雪夫窗

chebwin

平顶窗

flattopwin

高斯窗

gausswin

汉明窗

hamming

汉宁窗

hann

凯塞窗

kaiser

纳托尔的布莱克曼-哈里斯窗

nuttallwin

Parzen (de la Vallée-Poussin) 窗

parzenwin

矩形窗

rectwin

锥形余弦窗

tukeywin

三角形窗

triang

图形用户界面工具

Signal Processing Toolbox™ 产品提供两个处理加窗的图形用户界面工具:

有关详细信息,请参见参考页。

基本形状

基本窗是矩形窗,即由 1 组成的适当长度的向量。以下是一个长度为 50 的矩形窗

n = 50;
w = rectwin(n);

Signal Processing Toolbox 按照惯例将窗存储在列向量中,因此等效的表达式是

w = ones(50,1);

要使用窗设计器创建此窗,请键入

windowDesigner

App 打开并默认加载一个汉明窗。要显示矩形窗,请在“当前窗信息”面板中设置类型 = 矩形长度 = 50,然后按应用

巴特利(或三角形)是两个矩形窗的卷积。函数 bartletttriang 相似,都计算三角形窗,但有三个重要区别。bartlett 函数始终返回在序列末尾有两个零的窗,因此对于奇数 nbartlett(n+2) 的中间部分等效于 triang(n)

Bartlett = bartlett(7);
isequal(Bartlett(2:end-1),triang(5))
ans =
     1

对于偶数 nbartlett 仍然是两个矩形序列的卷积。偶数 n 的三角形窗则没有标准定义;在这种情况下,triang 结果的线段斜率比 bartlett 稍陡:

w = bartlett(8); 
[w(2:7) triang(6)]

您可以在窗设计器中看到奇数和偶数巴特利窗的区别。

巴特利窗和三角形窗之间的最后一个区别可以在这些函数的傅里叶变换中清楚地观察到。对于偶数 n,巴特利窗的傅里叶变换为负。然而,三角形窗的傅里叶变换始终为非负。

下图描绘包含 8 个点的巴特利窗和三角形窗的零相位响应,以说明这种差异。

zerophase(bartlett(8))
hold on
zerophase(triang(8))
legend('Bartlett','Triangular')
axis([0.3 1 -0.2 0.5])

当为某些频谱估计方法(如布莱克曼-图基方法)选择窗时,这一差异可能会很关键。布莱克曼-图基通过计算自相关序列的傅里叶变换来形成频谱估计值。如果窗的傅里叶变换为负值,则在某些频率下得到的估计值可能是负值。

另请参阅

App

函数