这个 sinc 在我的 LP-turned-HP 滤波器输出中做了什么?

信息处理 过滤器 过滤器设计 低通滤波器
2021-12-19 14:06:18

我正在尝试通过对信号进行 LP 滤波并从原始滤波器中减去输出来对信号进行 HP 滤波。为了获得 LP 滤波信号,我使用三阶巴特沃斯滤波器对 16,000 个样本的信号进行后向滤波。截止频率为 0.5 Hz @ 250 Hz。没有使用窗户。

在前 85% 左右的样本中,这种方法的输出似乎与实际的 HP 滤波信号完全重叠。然而,在输出结束时,出现了一种疑似 sinc 的现象。

  • 是什么原因造成的?
  • 我可以改变什么以使这种方法可行?

这是重叠的两个信号。蓝色的是经过 HP 过滤的,红色的是通过减法获得的。

HP 和 orig-LP 信号

这是每个样本的绝对差异。它们永远不会完全相等;最小差异为 8e-12。87% 的值低于 0.01。

两种方法的区别

(如果有更好的方法从 LP 滤波器的获得 HP 滤波器,我很乐意学习它。)H(z)

2个回答

我认为@hotpaw2 是在正确的轨道上。我的猜测是 filtfilt 没有正确处理反向过滤器的初始条件。这听起来像是一个非常困难的问题——我认为我不能因为 Mathworks 弄错而责备它......

修复对我来说似乎很容易:对信号的末尾进行零填充,直到 sinc 消失,并在过滤器之后删除(现在非零!)填充。

您正在为一个进行向后过滤,而对另一个进行仅向前过滤。因此,这两个过滤器在一个或两个边缘的行为会有所不同。

如果您的信号在数据窗口长度上是强平稳且完全周期性的,您可以尝试将数据循环包装并从它们的脉冲响应长度开始您的滤波器。