时域中的零填充意义

信息处理 fft 傅里叶变换 频谱 插值 零填充
2021-12-31 03:32:40

我有与氡变换相关的任务,其中包含一个通过 DFT 使用重采样的子任务。

让我们考虑具有 515 个像素长度的非周期性离散信号(图 1)(例如像素串)。在我的重采样实现中包含以下步骤:

  1. 循环左移(图 2)。
  2. 向中心添加零以使信号的长度变为 2^n(在我们的示例中,必须添加 1024-515 = 509 个零)(图 3)。
  3. 从此信号中获取 DFT(图 4)。
  4. 循环右移。(用于将低频移至中心)(图5)

图。1 原始图像

图2 循环左移

图3 零填充

图4 DFT 谱

图5 DFT 后移

主要问题:

为什么我们必须对信号进行循环移位并在中心准确地添加零?(我假设这使信号周期性) Zeropadding 使插值 DFT 频谱,它正确吗?(我问过,有人说不是这样)也许有人可以用简单的方式解释零填充后信号会发生什么。

我在 Matlab 中做了一些实验,发现任何其他动作序列都不能给出所需的结果。

现在让我们考虑两种情况:

a)(这个正确的变体)我们有非周期性离散信号(例如像素串),它将循环向左移动并在中心填充零,然后从中获得 DFT 并将其移回。 在此处输入图像描述

b) 我们有非周期性离散信号(例如像素集合),从左到右填充零,然后从中获得 DFT。

在此处输入图像描述

这些 DFT 光谱有什么区别?

我读过一些书,但没有找到这个 zeropadding 案例的答案。这似乎只能通过自己的经验找到。

书中答案:

AC Kak 和 Malcolm Slaney,计算机断层成像原理,工业与应用数学学会,2001 年,第 25 页

3个回答

移动数据点 (fftshift) 并对 FFT 孔径的确切中心进行补零具有以下特性:所有以原始数据集中心为基准的偶数(对称)分量最终都位于复数 FFT 结果的实部,并且所有奇数分量最终都在虚部。例如,保持了奇偶性比,这使得相位(参考窗口的中心)可以很容易地被插值。

在零填充 FFT 的情况下,能够内插相位很重要,因为零填充也会内插频谱幅度。由于零填充会导致插值 FFT 结果,这意味着任何原始的非插值 FFT 结果点都需要从零填充结果中插值。如果未填充和零填充数据的 FFT 移位,这些插值结果将不同于非插值 FFT 结果(同相)。

这种技术是 FT 属性的简单(家庭作业或测验级别)结果,即一个域中的偏移是另一个域中的复杂频率调制。

@Roman:根据我的经验,无论我们是在时域还是频域中,插值(让我们说因子 2)会导致更高的采样频率(上采样信号,(2*Fs))。对于时域插值,我们在交替样本中插入零,与插入零的方式相同,因为我们通过保持信号带宽不变,将信号转换为更高的采样频率。“中心填充”的确切原因与 FFT 索引与基带 (BB) 索引有关。例如,信号 BW fm 和采样频率 Fs,在频域中,信号 fm 以 +NFs 和 -NFs 为中心,其中 N 是整数 (0,1,2...)。DC周围的信号(基带信号)占用-fm/2到fm/2,Fs处的信号占用Fs-fm/2到Fs+fm/2等等,所有这些副本都携带相同的信息。而不是考虑 -fm/2 到 DC,我们正在考虑 Fs-fm/2(两者相同),唯一的区别是正面或负面。最后,我们考虑的信号是 {[DC to fm/2] [Fs-fm/2 to Fs]},因此我们在 [fm/2 to Fs-fm/2] 之间填充额外的零(取决于上采样因子)保持原始信号 fm 完好无损。

如果我有带通滤波器的输出并想将其转换回时域。

在应用窗口并转换回时域之前,循环移位到左并在中间填充零也是正确的方法吗?