使用 lanczos 重采样的时域波纹

信息处理 重采样 时域
2022-02-19 10:23:06

使用 lanczos 滤波器对“统一信号”(即所有信号)重新采样时,我看到时域出现波纹。纹波/误差与采样率周期的余弦完全相似 - 即。误差在 0.5 的部分样本偏移量处最大。对 lanczos 内核使用较大可以减少错误,但它永远不会停止存在。a

  1. 这是应该发生的,还是我在某处犯了一个实施错误?手动进行卷积表明这些项的总和永远不会为 1(除非偏移量 = 0)。截断的 sinc 显示了同样的问题。
  2. 是否有任何不显示此类错误的窗口 sinc 滤波器?否则,对于重采样技术还有其他建议吗?我通常在寻找能够提供 > 10 的 lanczos 内核性能的a

编辑:感谢您的评论。我将详细说明我想要什么:所以我正在插入一个波形显示。重要且有趣的是,插值通过原始样本点并尽可能地类似于信号的“真实”形状。这意味着这很好:

在此处输入图像描述

因此,不足和过冲本身并不是问题(从技术上讲,这就是重点)。然而,这是(注意这只是一个直流信号) - 即。信号中的任何内容都不会引起振铃,它只是一个伪影,具体取决于您的分数插值偏移:

在此处输入图像描述

2个回答

问题说明
图 1. Lanczos2 插值问题的说明:四个时移 Lanczos 窗口乘 sinc 函数的总和(红色)在水平坐标 1 和 2 的中间不求和(黑色)。

一个简单的解决方法是将作为中间区间中小数位置的函数的四分之一的偏差分布到 Lanczos2 内核的每个象限。方程式很长,但这一切都非常容易用数字完成。与原始 Lanczos2 内核的差异很小:

Lanczos2 内核与固定 Lanczos2 内核的比较
图 2. Lanczos2 内核(蓝色)和固定的 Lanczos2 内核(红色)。

在此处输入图像描述
图 3. 固定的 Lanczos2 内核(红色)总和为单位(黑色)。

与原始内核相比,固定 Lanczos2 内核的幅度频率响应看起来还不错,在某些方面甚至更好:

在此处输入图像描述
图 4. Lanczos2 插值的幅度频率响应(蓝色)与固定内核(红色)相同。

可以在较大的 Lanczos 内核上尝试类似的修复。我在 Lanczos3 上对其进行了测试,没有发现任何问题。

  1. 它应该发生。对 Lanczos3 分段添加的WolframAlpha模拟显示它没有平顶。它也不是余弦,而是该图在 -1 和 1 之间重复的部分。缩放)。

一种粗略的解决方法是在重新采样之前对信号进行归一化,然后再添加 DC(或从信号中减去的任何曲线)。

  1. 例如,三次重采样(经常与仅适用于 2D 数据(即图像)的Bi -cubic 混淆)增加了统一性。分段加法的模拟显示了一条很好的统一直线,甚至(x 轴上的无限)符号简化结果也只有"1"

当我偶然发现你的问题时,我也在寻找其他(更保守的)曲线来增加统一性。