是否习惯于纠正窗口的增益?

信息处理 fft 窗函数
2022-01-01 08:49:13

考虑如何定义汉宁窗:

0.5 - 0.5 * cos(n*2*Pi/(N-1))

根据这个定义,它的增益为 0.5,这只是系数的平均值。相比之下,所定义的平顶窗具有单位增益,这可能是设计使然。

将 Hanning 窗口缩放 2 倍似乎是合适的,但我从未在任何地方看到过这个讨论。似乎所有窗口都应该缩放以获得单位增益。

在实践中,窗口通常会根据其增益进行校正吗?如果不是,为什么不呢?

编辑:

由于没有人给出答案,我将详细说明一下。

很容易找到报告更常见窗口的增益的论文。但我从未见过有人提到在将增益用于频谱分析之前要对其进行校正。也许我一直错过了那句话,或者每个人都认为增益校正是一个明显的要求。

将窗口的增益设置为单位似乎是常识,以便保留信号的能量水平。此外,如果一个窗口具有 0 dB 增益(如平顶),而另一个窗口具有接近 10 dB 的损耗(如高斯),如何比较各种窗口的幅度精度。

Windows 也广泛用于 FIR 滤波器设计。在这个应用中,应该清楚的是,要加窗的信号是一个 sinc 脉冲,其大部分能量位于窗的中心。因此,窗口几乎没有减少 sinc 脉冲的总能量。因此,当用于滤波器设计时,我们不需要单位增益,而是需要单位峰值幅度,就像大多数窗口一样,除了平顶。单位峰值幅度以外的其他因素会影响最终 FIR 滤波器的增益。

2个回答

是的,除了我稍后提到的某些情况外,通常会校正窗口的增益。(如果您只对相对幅度感兴趣,当然不需要校正增益。)

因为窗口降低了原始信号(时域)的增益,所以需要对通过 FFT 得到的幅度进行校正。例如,如果您使用汉宁窗,则需要将所有幅度乘以 2(0.5 的倒数)。据我了解,大多数用于 FFT 的软件包都会自动更正所使用的窗口。

然而,只有当所有感兴趣的频率都分布在整个时域窗口中时,这种校正才是好的。例如,假设您有 1024 个数据,除 #512 点的值为 1(脉冲信号)外,所有信号电平均为零。显然,任何窗口都不会对数据做任何事情。因此,如果您校正窗口增益的幅度(乘以 2),那么您最终会高估幅度。如果除了第一个值为 1 的点之外,您的 1024 数据全部为零,那么在开窗后每个点的值都为零,并且您会丢失信号。

因此,如果您正在处理随机信号,并且所有频率分量预计几乎均匀分布在信号长度上,您需要(或应该)纠正您使用的窗口的增益。

“校正窗口增益”的一种方法是在窗口的定义中这样做。这意味着什么?修正增益在哪里哪个频率?在华盛顿特区?如果您正在校正窗口的 DC 增益,则意味着所有系数都加到 1。

n=+w[n]=1

要么

+w(t) dt=1