scipy.signal.
tf2sos#
- scipy.signal.tf2sos(b, a, pairing=None, *, analog=False)[原始碼]#
從傳遞函數表示式返回二階分段
- 參數:
- barray_like
分子多項式係數。
- aarray_like
分母多項式係數。
- 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. ]])