对于给定的 ENBW/频率分辨率,具有最佳旁瓣的窗口

信息处理 窗函数 stft 窗户
2022-02-22 11:50:48

是否有一系列窗口在能量高于/低于边界时是“最佳”的,但具有可控的 ENBW/带宽?内最大化能量集中,例如:B

B/2B/2|W[f]|2df|W[f]|2df

其中是窗口的傅立叶。W[f]w(t)

在我不关心 ENBW 的情况下,我使用 Kaiser 取得了不错的效果。但是随着的增加,ENBW 变得越来越大,我希望能够修复它。B


背景:我目前正在使用 Kaiser 窗口进行 STFT 处理,并根据重叠间隔(即 STFT 的下采样滤波器组视图中的子带的过采样因子)选择 beta。

我设计最大能量比窗口的实验在数值上产生了类似 Kaiser 的窗口,只是主瓣宽于带宽。因此,对于我的 STFT,我使用的是 Kaisers,针对最大能量比进行了调整,并且还针对完美重建进行了修改:

图表显示了为各种重叠率选择的 Kaiser 窗口形状和光谱(标记为“带宽”)

这很好用,并且为每个重叠率(基于数值模拟)提供了一些漂亮的坏情况混叠性能:

基于数值模拟的 STFT 混叠与重叠因子的关系图,显示每个额外重叠持续改善约 13dB

然而,ENBW 会随着窗口变窄而增加,这并不总是合适的。对于给定的 ENBW(或任何类似的带宽度量),是否有一种巧妙的方法可以获得几乎最佳的窗口(就边界两侧的总能量而言)?

我知道这不会像让带宽更宽那样提供良好的混叠性能,但是在具有给定 ENBW 的所有可能窗口中,仍然必须有一个窗口可以最大化高于/低于指定限制的能量比。

[为清楚起见编辑]

1个回答

更新以添加“受限高斯窗口”进行比较

但是,具有更高 beta 的 Kaisers 具有越来越高的 ENBW,这会降低频率分辨率(这意味着我需要更长的 STFT 模块才能获得相同的精度)。

ENBW 和频率分辨率是非常相似的指标;,任何具有更宽带宽的东西都会降低分辨率。从根本上讲,以 Hz 为单位可实现的最佳频率分辨率是,即使用矩形窗口(没有进一步的窗口)。超出此范围的任何开窗都会以牺牲频率分辨率为代价来增加动态范围(减少旁瓣)(这通常是正确的交易,因为矩形窗口内核的旁瓣仅以下降)。T1/T1/f

就最优性而言,我的理解是对于给定的 ENBW,Slepian 窗口对于主瓣与旁瓣能量是最佳的,而 Kaiser 窗口则接近于此。

截断的 Guassian、Kaiser 和 Slepian 窗口都允许设置等效噪声带宽 (ENBW)。许多人期望高斯窗口在给定真正高斯的情况下具有最佳时间带宽,但是为了实际实现而将其截断导致它不是该参数的最佳选择(因为真正的高斯窗口将扩展到) . 对于时间带宽产品,我认为最好的是 Slepian Window (DPSS),Kaiser 非常接近实现 Slepian 性能。我生成了一个图比较窗口内核(窗口的离散时间傅里叶变换)以获得一致数量的系数(在这种情况下我使用),其中设置了适当的窗口参数以使分辨率带宽对于所有情况都相同.±N=101

更新:此后,我在评论中添加了 OP 建议的“近似受限高斯窗口”以进行比较。这个窗口是由 Sebastian Starosielec 和 Daniel Hagele 在2014 年 9 月的论文“Discrete-time windows with minimum RMS bandwidth for given RMS temporal width”中推导出来的,在那篇论文中提供了一个“直接使用的显式近似表达式”,我实现了在我的比较中。该近似值给出为:

gk=G(k)G(0.5)G(k+N)+G(kN)G(.5+N)+G(.5N)

作为高斯分布,由下式给出:G(x)

G(x)=exp((xN12)22σ2)

窗口内核 ENBW=2.53 个 bin

任何窗口的 ENBW 由下式给出:

ENBW=Nn=0N1w[n]2(n=0N1w[n])2

对于所有四种情况,我将 ENBW 设置为 2.53 箱,以便进行苹果与苹果的比较,因为我们可以看到,对于相同的 ENBW,Kaiser 和 Slepian 提供的旁瓣抑制比两个高斯变体多多少。显示的参数是传入 scipy.windows.x 中的窗口函数的规范化参数(其中 x 分别是 guassian、kaiser 和 dpss)。靠近主瓣的 Slepian 比 Kaiser 有更好的排斥力,而离主瓣更远的 Kaiser 占优势。两者都远远优于两个高斯,因为在这种分辨率带宽较宽的情况下,相同的 ENBW 具有明显更高的旁瓣抑制。

然后我将 ENBW 设置为更严格 ENBW 以进行另一个比较:

窗口内核 ENBW = 1.6 个 bin

如果我们在靠近主瓣的地方放大,我们会看到与两个高斯相比,Kaiser 和 Slepian 对给定 ENBW 的选择性更高,并且在优越的旁瓣抑制方面接近,Slepian 刚刚超过 Kaiser(如预期的那样):

主瓣放大

放大旁瓣,我们看到 Kaiser 在远离主瓣的抑制方面最终优于 Slepian(这并不一定会使它变得更好),并且在更远的地方,受限高斯达到最低的本底噪声: 旁瓣放大

随着我们增加样本数量,受限高斯窗口的较高旁瓣滚降提供了显着改善的远离主瓣的阻带抑制(调整所有参数以使每个窗口的 ENBW 达到 1.6 个 bin与上述比较):

501 个样本

放大主瓣,我们再次看到 Slepian 和 Kaisers 对于给定 ENBW 的卓越选择性,我们还看到了限制高斯的旁瓣优于 Kaiser 和 Slepian 的交叉点:

放大 501 个样本

至于时间带宽乘积,我为此使用了一个度量,通过对频域样本执行相同的 ENBW 计算来获得等效噪声时间响应 (ENTR):

N=501 的结果总结:

窗口 N=501 范围 ENBW 进入 产品
高斯 σ=89 1.60 147.25 236.12
凯撒 β=7.3 1.60 162.65 260.52
斯莱皮安 NW=2.42 1.60 162.46 260.00
受限高斯 σ=89.9 1.60 155.65 249.77

(要做:在这些特定窗口的更新问题中添加 OP 提供的特定优化参数 - 还使用参考论文中使用的σtσk