零填充 - 高幅度

信息处理 窗函数 零填充 窗户
2022-01-28 00:15:49

我有一组用传感器收集的 512 个样本。我想对其应用零填充,以获得更好的频率箱分辨率。但是,我看到的所有使这种情况发生的教程都围绕着你的波定位在零附近的想法。这是一个例子:

在此处输入图像描述

在这个信号的末尾添加 10,000 个零对我来说似乎是合乎逻辑的。

但是,假设上图中的 Y 值移动了 5,000 点。

在这种情况下,你还会在信号末尾添加 10,000 个零吗?

或者,你会平均你的信号(找到中位数),然后用它作为填充吗?假设 Y 坐标移动了 5,000 个点,那么我们可能会添加 10,000 个 5,005 的焊盘。

2个回答

我想对其应用零填充,以获得更好的频率箱分辨率。

首先,让我们再声明一次,零填充不会提高 DFT 的频率分辨率。它只会在更精细的频率网格上插入现有频谱,否则不会向其中添加任何新信息。

为了提高 DFT 计算的真实频率分辨率,您必须采集更多样本,从而增加信号的长度。

通过在信号的末尾添加零以使其长度为 N 来应用零填充,然后您可以在其中计算点 DFT。N

让我们考虑以下两个正弦曲线之和的具体示例:

x[n]=0.73cos(0.25πn+π/12)+0.87cos(0.28πn+π/17)

我们将用有限长度点 DFT 以查看它的光谱图。x[n]LN

在第一种情况下,让信号长度并让 DFT 长度为以下是生成的 DFT 幅度图: L=16N=64在此处输入图像描述

应用零填充并使其长度为个样本(通过添加零),并对仍然长度的信号进行 1024 点 DFT,结果为: x[n]N=1024L=16在此处输入图像描述

如您所见,尽管增加 DFT 长度(等效于零填充)会增加频谱的平滑度,但它并不能解决在的窗口长度处中的两个正弦曲线。x[n]L=16

(获取更多样本而不是向其添加零)来增加信号样本计数,并再次获取该段的 L=512x[n]N=1024在此处输入图像描述

可以看出,现在两个正弦曲线得到了精细解析,同时仍然计算相同的点 DFT,但信号观测长度更长(),因此,证明了通过更长的信号观测提高了光谱分辨率的事实而不是更长的 DFT(通过零填充)。N=1024L=512

您确定要对信号的 PHASE 进行 DFT 吗?

这对我来说没有意义,因为相位是一个循环变量,当绕过一个完整的循环时,它在分支切割 (+-180º) 处具有不连续性。

我建议将相位样本列表转换为复值样本列表,对列表中的每个 j 使用公式new[j] = Exp (i * old[j] * Pi / 180),并采用 DFT新名单