欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python scipy.signal.lfilter_zi 示例 - 示例:

最编程 2024-04-15 17:08:16
...

以下代码创建一个低通巴特沃斯滤波器。然后它将该过滤器应用于值全为 1.0 的数组;正如低通滤波器所预期的那样,输出也全部为 1.0。如果的论点scipy.signal.lfilter没有给出,输出将显示瞬态信号。

>>> from numpy import array, ones
>>> from scipy.signal import lfilter, lfilter_zi, butter
>>> b, a = butter(5, 0.25)
>>> zi = lfilter_zi(b, a)
>>> y, zo = lfilter(b, a, ones(10), zi=zi)
>>> y
array([1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])

另一个例子:

>>> x = array([0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0])
>>> y, zf = lfilter(b, a, x, zi=zi*x[0])
>>> y
array([ 0.5       ,  0.5       ,  0.5       ,  0.49836039,  0.48610528,
    0.44399389,  0.35505241])

请注意,参数scipy.signal.lfilter计算使用scipy.signal.lfilter_zi并按比例缩放x[0].然后输出y在输入从 0.5 下降到 0.0 之前没有瞬态。