在Scipy(或其他库)中是否有类似于Matlab的'idealfilter'的Python等效工具?

14
我正在寻找在Python中实现的idealfilter时间序列的等效物,这与Matlab相关。我的目标是使用离散余弦变换在Python中实现理想滤波器,就像Eulerian Video Magnification paper中使用的那样,以从标准视频中获取人类的心跳。我正在使用他们的视频作为输入,并已经实现了带通滤波器方法,但我还没有能够找到可以在我的脚本中使用的idealfilter方法。他们声明他们使用DCT从0.83-1.0Hz实现了一个理想的滤波器。我的问题是Matlab中的idealfilter需要截止频率作为输入,但我不认为它是用dct实现的。相比之下,在scipy.fftpack中找到的DCT滤波器不会将频率截止作为输入。如果我必须以某种连续的方式使用它们,请告诉我。如果存在这样的函数等效物,我想尝试使用它以查看它是否产生与他们所获得的类似的结果。
2个回答

1
非因果意味着您的滤波器依赖于未来的输入。 DCT是一种变换,而不是滤波器。您需要一个滤波器。
您想在指定范围内对数据应用带通滤波器,因此我会使用巴特沃斯滤波器。
这是一些示例代码:https://dev59.com/O2ct5IYBdhLWcg3wcs-G#12233959 所有这些中最棘手的部分是将所有内容都转换为您的奈奎斯特频率。

0

我觉得你可以看一下statsmodel库的时间序列分析模块time series analysis module。这个模块实现了几种时间序列滤波器,包括Hodrick-Prescott滤波器,我认为它是非因果的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接