scipy.signal.lfilter 在 Python
scipy.signal.lfilter in Python
我用过
scipy.signal.lfilter(系数,1,输入,轴=0)
用于过滤 python 中具有 9830000 个样本的信号(我必须使用 axis=0 来获得与 matlab 类似的答案),与 matlab
比较
过滤器(系数,1,输入)(秒),
它需要很长时间(减去),而且当我不得不过滤几次时,情况会变得更糟。有什么建议吗?我已经尝试过 numpy 以及相同的时间问题。有没有其他过滤器可以让我得到类似的答案?
您可以使用 itertools 中的 ifilter 来实现更快的过滤器。
来自 Python 的内置函数 filter 的问题在于,当您处理大量数据时,它 returns 是一个消耗内存的列表。因此,itertools.ifilter 是一个更好的选择,因为它只在需要时调用该函数。
根据您的实施情况的一些其他想法是:
- 如果您正在设计 FIR 滤波器,则可以应用卷积。
- 或者您可以使用相关,以获得更快的结果,因为它使用 FFT。
我用过
scipy.signal.lfilter(系数,1,输入,轴=0)
用于过滤 python 中具有 9830000 个样本的信号(我必须使用 axis=0 来获得与 matlab 类似的答案),与 matlab
比较过滤器(系数,1,输入)(秒),
它需要很长时间(减去),而且当我不得不过滤几次时,情况会变得更糟。有什么建议吗?我已经尝试过 numpy 以及相同的时间问题。有没有其他过滤器可以让我得到类似的答案?
您可以使用 itertools 中的 ifilter 来实现更快的过滤器。 来自 Python 的内置函数 filter 的问题在于,当您处理大量数据时,它 returns 是一个消耗内存的列表。因此,itertools.ifilter 是一个更好的选择,因为它只在需要时调用该函数。
根据您的实施情况的一些其他想法是:
- 如果您正在设计 FIR 滤波器,则可以应用卷积。
- 或者您可以使用相关,以获得更快的结果,因为它使用 FFT。