FFT 中的零填充

信息处理 零填充
2021-12-21 23:00:28

在 FFT 中将零填充到序列的效果是什么?例如:x[n]=[2 3 4 5] 对应于 X[K]=[14 -2+2i -2 -2-2i]

而 x[n]=[2 3 4 5 0 0 0 0] 对应于 X[K]=[14 0.58-9.65i -2+2i -3.414+1.65i -2 3.414-1.65i -2-2i 0.58+ 9.65i]

那么新序列中 X[0] 、 X[1] 和 X[2] 之间的关系是什么?

请帮忙

3个回答

当您在 DFT 之前对输入信号进行零填充时,所发生的一切就是您正在对频域表示进行插值。

例如,您可能会得到某个形状作为 DFT 绝对量值的输出,并且该形状有 10 个点。如果你对 DFT 的输入进行零填充,比如 100 个点,你将得到与以前相同的形状,但它会有更多的点,并且看起来更平滑。这就是零填充为您所做的一切。有人可能会问是什么类型的关系,而这种关系只是一种 sinc-interpolation 关系。

一张图片胜过一千个字,所以你去:

在此处输入图像描述

如您所见,DFT 输出的形状(在本例中为大小)保持不变,但粒度增加了。

人们通常会出于多种原因进行零填充:

  • 峰值拾取:更平滑的 DFT 输出允许峰值拾取算法获得更准确的实际峰值频率。
  • 频域插值,用于下游进一步处理
  • 线性卷积:如果寻求线性卷积,则将其作为频域中两个频谱的乘积来执行意味着 DFT 输出必须是长度N+M1, 在哪里N是第一个信号的长度,并且M是与之卷积的第二个信号的长度。

时域中的零填充对应于频域中的插值(反之亦然)。具体关系是同步插值,有时也称为 Whittaker-Shannon 插值。

http://en.wikipedia.org/wiki/Whittaker%E2%80%93Shannon_interpolation_formula

在 FFT 的情况下,线性积分/总和必须替换为循环总和。该公式适用于实数和复数。

它们是非零填充 FFT 结果的间隔更近的高质量插值。