频域零填充 - X[N/2] 的特殊处理

信息处理 自由度 插值 零填充
2021-12-23 00:49:03

假设我们希望通过频域中的零填充对具有偶数个样本(例如 N=8)的周期信号进行插值。

让 DFTX=[A,B,C,D,E,F,G,H]
现在让我们将其填充到 16 个样本以给出Y. 我见过的每个教科书示例和在线教程都在. (然后是插值信号。)[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)

为什么不改用 Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]?

据我所知(我的数学知识有限):

  • 它最小化总功率
  • 它确保如果x是实值的,那么也是y
  • y根据需要,仍然在所有样本点相交x(我认为这对于任何p地方都是如此Y=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H]

那么为什么从来没有这样做呢?


编辑x不一定是实值或带限的。

2个回答

让我们看看 8 点 DFT 中的 bin 频率:

ωA=0,ωB=π/4,ωC=π/2,ωD=3π/4,ωE=π=π (mod 2π),ωF=5π/4=3π/4 (mod 2π),ωG=3π/2=π/2 (mod 2π),ωH=7π/4=π/4 (mod 2π)
因此,当您插值 2 倍时,点的频率变为Eπ+π

乍一看,我看不出你的方法有什么问题,因为不清楚是否应该放入与关联的 bin 中。Eππ

Julius O. Smith III 的页面上,他陈述了一个条件:

此外, ,而奇数则不需要这样的限制。x(N/2)=x(N/2)=0N

他的例子是一个奇数,它避免了这个问题。N


不确定是否需要,但这里是 Julius 工作的完整参考:

Smith,JO 音频应用的离散傅里叶变换 (DFT) 数学,第二版, http://ccrma.stanford.edu/~jos/mdft/,2007年,在线图书,2011 年 9 月 28 日访问。

有很多方法可以插入数据。在我看来,插值意味着你在一些数据点之间“画”线。这可以通过多种方式完成。在 DSP(尤其是多速率 DSP)中有用的一种插值是“带限插值”。如果你用谷歌搜索你会得到很多有趣和有用的点击。您建议的不是带限插值。在您的“上采样”x 中,您有原始 x 中不存在的频率分量。

编辑(太长,无法放入评论):

开始,您的构造与您提供的参考中的示例之间存在相当大的差异。X=[A,B,C,D,E,F,G,H]

考虑实际输入

X=[A,B,C,D,E,D,C,B]

对全频带输入进行 2 倍上采样。在这种情况下,可以通过首先在交错的输入中放置零来执行上采样(即结果是一个信号的频谱包含 x 的频谱的压缩版本(在范围内)和从延伸的图像(仅考虑正频率轴)。如果 x2 是上采样版本,则x0,0,x1,0,...0π/2π/2π

X2=[A,B,C,D,E,D,C,B,A,B,C,D,E,D,C,B]

在理想情况下,为了去除图像,需要的理想砖墙滤波器。那是(对于无限输入)π/2

yn=k=x2ksinc(0.5nk)

在实践中,虽然会有一些失真,因为砖墙过滤器是不现实的。实用的滤波器可以抑制/去除输入中的频率,也可以将图像中的某些频率分量留在上采样信号中。或者过滤器可以在两者之间做出妥协。我认为您的频域构造也反映了这种妥协。这两个例子,代表了两种不同的选择:

Y=[A,B,C,D,E,0,0,0,0,0,0,0,E,D,C,B]

Y=[A,B,C,D,0,0,0,0,0,0,0,0,0,D,C,B]

如果输入的带宽限制在您参考中的奈奎斯特频率以下,则此问题将消失。

也许可以在下面找到的值,这样一些误差函数,例如输入频谱和上采样输出频谱之间的平方误差是最小的。ρ

Y=[A,B,C,D,ρ,0,0,0,0,0,0,0,ρ,D,C,B]