scipy.signal.
tf2sos#
- scipy.signal.tf2sos(b, a, pairing=None, *, analog=False)[source]#
从传递函数表示中返回二阶部分
- 参数:
- b类似数组
分子多项式系数。
- a类似数组
分母多项式系数。
- pairing{None, ‘nearest’, ‘keep_odd’, ‘minimal’}, 可选
将一对极点和零组合到各部分中所使用的方法。有关 pairing 和 analog 参数的信息和限制,请参见
zpk2sos
。- analogbool,可选
如果为 True,则系统为模拟系统,否则为离散系统。
从版本 1.8.0 中添加。
- 返回:
- sosndarray
二阶滤波器系数数组,形状为
(n_sections, 6)
。有关 SOS 滤波器格式规范,请参见sosfilt
。
备注
通常不建议从 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. ]])