scipy.signal.

tf2sos#

scipy.signal.tf2sos(b, a, pairing=None, *, analog=False)[source]#

从传递函数表示中返回二阶部分

参数:
b类似数组

分子多项式系数。

a类似数组

分母多项式系数。

pairing{None, ‘nearest’, ‘keep_odd’, ‘minimal’}, 可选

将一对极点和零组合到各部分中所使用的方法。有关 pairinganalog 参数的信息和限制,请参见 zpk2sos

analogbool,可选

如果为 True,则系统为模拟系统,否则为离散系统。

从版本 1.8.0 中添加。

返回:
sosndarray

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

另请参见

zpk2sossosfilt

备注

通常不建议从 TF 转换为 SOS 格式,因为这么做通常不会改善数值精度错误。相反,考虑以 ZPK 格式设计滤波器,并直接转换为 SOS。TF 转换为 SOS 的方法是先转换为 ZPK 格式,再将 ZPK 转换为 SOS。

添加到 0.16.0 版本。

示例

使用多项式表示形式找出传递函数 H(s) 的“sos”(二阶节)。

\[H(s) = \frac{s^2 - 3.5s - 2}{s^4 + 3s^3 - 15s^2 - 19s + 30}\]
>>> from scipy.signal import tf2sos
>>> tf2sos([1, -3.5, -2], [1, 3, -15, -19, 30], analog=True)
array([[  0. ,   0. ,   1. ,   1. ,   2. , -15. ],
       [  1. ,  -3.5,  -2. ,   1. ,   1. ,  -2. ]])