13

我正在为 Python 寻找在 Matlab 中实现的时间序列Idealfilter的等效项。

我的目标是使用 Python 中的欧拉视频放大论文中使用的离散余弦变换实现一个理想的过滤器,以便从标准视频中获取人类的心跳。我正在使用他们的视频作为我的输入,并且我已经实现了带通滤波器方法,但是我无法找到一个可以在我的脚本中使用的理想滤波器方法。

他们声明他们使用 0.83 - 1.0Hz 的 DCT 实现了一个理想的滤波器。

我的问题是 Matlab 中的理想滤波器将截止频率作为输入,但我不认为它是用 dct 实现的。

相反,在 scipy.fftpack 中找到的 DCT 滤波器不会将频率截止值作为输入。

如果我必须以某种类型的连续使用这些,请告诉我。

如果存在这样的等效功能,我想尝试使用它,看看它是否会产生与他们获得的结果相似的结果。

4

2 回答 2

1

非因果意味着您的过滤器取决于未来的输入。DCT 是一种变换,而不是过滤器。你想要一个过滤器。

您想对指定范围内的数据应用带通滤波器,所以我会使用巴特沃斯滤波器。

这是一些示例代码:https ://stackoverflow.com/a/12233959/1097117

所有这一切中最棘手的部分是根据您的奈奎斯特频率获取所有信息。

于 2013-03-06T23:06:06.767 回答
0

我也许值得看看statsmodel 库的时间序列分析模块。这个模块实现了几个时间序列过滤器,包括我认为是非因果的 Hodrick-Prescott 过滤器。

于 2012-09-14T08:48:25.463 回答