在Scipy(或其他库)中是否有类似于matlab的'idealfilter'用于Python?

时间:2012-09-14 00:50:37

标签: python matlab opencv scipy dct

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

我的目标是使用离散余弦变换实现理想滤波器,如Python中的Eulerian Video Magnification paper中所使用的那样,以便从标准视频中获取人类的心跳。我正在使用他们的视频作为我的输入,我已经实现了带通滤波器方法,但是我无法在我的脚本中找到理想的滤波器方法。

他们表示他们使用0.83 - 1.0Hz的DCT实现理想的滤波器。

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

相比之下,scipy.fftpack中的DCT滤波器不会将频率截止作为输入。

如果我必须在某种类型的继承中使用这些,请告诉我。

如果存在这样的函数等价物,我想尝试使用它以查看它是否产生与它们获得的结果类似的结果。

2 个答案:

答案 0 :(得分:1)

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

您想在您指定的范围内对您的数据应用带通滤波器,因此我会使用一个butterworth滤镜。

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

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

答案 1 :(得分:0)

我可能值得看看time series analysis module of the statsmodel library.这个模块实现了几个时间序列过滤器,包括Hodrick-Prescott过滤器,我认为是非因果的。

相关问题