在我的LP转向HP滤波器输出中,这种现象是做什么的?


10

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

在大约前85%的样本中,此方法的输出似乎与实际经过HP滤波的信号完全重叠。但是,在输出结束时,会出现类似Sinc的异常现象。

  • 是什么原因造成的?
  • 为了使该方法可行,我可以进行哪些更改?

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

HP和orig-LP信号

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

两种方法的区别

(如果有更好的方法可以从LP过滤器的获得HP过滤器,我将很高兴学习它。)Hž


您可以包含用于生成图的MATLAB代码吗?数据并不重要;您可以根据需要使用随机样本进行模拟。
詹森·R

Answers:


0

Methinks @ hotpaw2在正确的轨道上。我的猜测是filtfilt不能正确处理反向过滤器的初始条件。这听起来像是一个非常棘手的问题-我认为我不能责怪Mathworks弄错了...

该修复程序对我来说似乎很容易:将信号的末尾零填充,直到Sinc消失,然后删除过滤器后的填充(现在为非零!)。


0

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

如果您的信号在数据窗口长度中是非常稳定的并且正好是周期性的,则可以尝试将数据循环环绕,并从其脉冲响应长度开始启动滤波器。


对不起,如果我不够清楚。我要比较的信号(蓝色)也进行了前向后过滤(filtfiltbutter(3,0.5/250,high))。信号来自心电图,我不能指望它是周期性的。
Andreas

我误会了吗?我无法理解赞成意见,因为第一段显然是错误的。
安德烈亚斯(Andreas)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.