传递函数系数的正确参数是[a]
and [1, -b]
.
为了处理您想要的初始条件,您可以使用以下命令为过滤器创建正确的初始状态scipy.signal.lfiltic:
zi = lfiltic([a], [1, -b], y=[x[0]])
然后打电话lfilter
与zi
争论:
y, zo = lfilter([a], [1, -b], x, zi=zi)
这里有一个x
, y
(计算使用lfilter
with zi
), 和你的true_y
:
In [37]: x
Out[37]: array([ 3., 1., 2., 0., -1., 2.])
In [38]: y
Out[38]:
array([ 3. , 2.94 , 2.9118 , 2.824446 , 2.70971262,
2.68842124])
In [39]: true_y
Out[39]:
array([ 3. , 2.94 , 2.9118 , 2.824446 , 2.70971262,
2.68842124])