执行 Chirp 时如何选择窗口函数ZZ-转变?

信息处理 fft
2022-01-04 11:45:53

我有一些以 32 Hz 采样的数据。唯一有趣的事情发生在大约 0-8 Hz 之间,我必须进行实时批处理并检测延迟不超过一秒的事件。所以这意味着我只能使用 32 个或更少的 bin 执行 FFT,以弥补我使用 Chirp 时分辨率不足的问题Z-变换(czt在 Matlab 中)。

我想知道在执行 CZT 而不是 FFT 之前在原始时间数据上选择窗口函数时是否需要特别考虑?

1个回答

当我们将窗口函数添加到 DFT 的定义中时,我们得到

X(k)=n=0N1w[n]x[n]ejωn
ωk=2πkN,kZ, w[n] 窗口函数和x[n]数据。数据的乘法x[n]带窗函数w[n]时域中的卷积对应于频域中的卷积。

CZT 和 FFT 基本上只是计算这个总和的不同方法。每种算法都有其优点和缺点。FFT 速度快,CZT 更灵活。如果您使用这两种算法来计算相同的系数X(k)你得到相同的结果。因此,在这种情况下,CZT 和 FFT 的窗口选择注意事项应该相同。

到目前为止,我只能回答原始问题:如果 CZT 用于计算与 FFT 提供的相同频率箱,则在窗口选择方面没有区别。

注意 1:您是否知道有关不同 DFT 算法的频率分辨率的问题,如本线程中所讨论的那样?“ CZT 与 FFT的频率分辨率主题与“ FFT 的零填充”或“ Goertzel 与 FFT ”的频率分辨率主题相同。

注2:这是我原帖的基本信息。

如果使用 CZT 在更精细的频率分辨率上计算 DFT,事情就会变得更加复杂。这个线程中讨论了对 DFT 的影响。简而言之,CZT 对 DFT 进行插值。这种插值使窗口选择更加复杂。

如果(按照 OP 的意图)CZT 用于以更精细的频率分辨率对 DFT 进行插值,则基础数学保持不变,但必须牢记不同的频率分辨率。

这在一个非常简单的示例中进行了说明。第一个图显示了一个矩形窗口的绝对值。FFT(没有零填充或类似的东西)在窗口为零的频率处计算 DFT,这里用橙色标记。 FFT 的频率分辨率

随着频率分辨率的提高,这种情况会发生变化,如下图所示。 来自 CZT 的频率分辨率这可能(如示例中)引入额外的泄漏。