scipy.signal.

sosfilt_zi#

scipy.signal.sosfilt_zi(sos)[源代码]#

为阶跃响应稳态构造 sosfilt 的初始条件。

计算 sosfilt 函数的初始状态 zi,该状态对应于阶跃响应的稳态。

此函数的典型用法是设置初始状态,以便滤波器的输出与要滤波的信号的第一个元素的值相同。

参数:
sosarray_like

二阶滤波器系数数组,必须具有形状 (n_sections, 6)。有关 SOS 滤波器格式规范,请参阅 sosfilt

返回:
zindarray

适用于 sosfilt 的初始条件,形状为 (n_sections, 2)

另请参阅

sosfilt, zpk2sos

说明

在 0.16.0 版本中添加。

示例

使用和不使用 scipy.signal.sosfiltzi 参数来过滤从时间 0 开始的矩形脉冲。

>>> import numpy as np
>>> from scipy import signal
>>> import matplotlib.pyplot as plt
>>> sos = signal.butter(9, 0.125, output='sos')
>>> zi = signal.sosfilt_zi(sos)
>>> x = (np.arange(250) < 100).astype(int)
>>> f1 = signal.sosfilt(sos, x)
>>> f2, zo = signal.sosfilt(sos, x, zi=zi)
>>> plt.plot(x, 'k--', label='x')
>>> plt.plot(f1, 'b', alpha=0.5, linewidth=2, label='filtered')
>>> plt.plot(f2, 'g', alpha=0.25, linewidth=4, label='filtered with zi')
>>> plt.legend(loc='best')
>>> plt.show()
../../_images/scipy-signal-sosfilt_zi-1.png