scipy.signal.tf2zpk¶
- scipy.signal.tf2zpk(b, a)[源代码]¶
从分子和分母返回零,极点,增益(z,p,k)表示线性过滤。
- 参数
- barray_like
分子多项式系数。
- aarray_like
分母多项式系数。
- 退货
- zndarray
传递函数的零点。
- pndarray
传递函数的极点。
- k浮动
系统增益。
注意事项
如果某些值为 b 太接近0,则它们将被删除。在这种情况下,将发出BadCofficients警告。
这个 b 和 a 数组被解释为传递函数变量的正的递减幂的系数。所以这些输入 \(b = [b_0, b_1, ..., b_M]\) 和 \(a =[a_0, a_1, ..., a_N]\) 可以表示以下形式的模拟过滤:
\[H(S)=\frac {b_0 s^M+b_1 s^{(M-1)}+\cdots+b_M} {a_0 s^N+a_1 s^{(N-1)}+\cdots+a_N}\]或者是以下形式的离散时间过滤:
\[H(Z)=\frac {b_0 z^M+b_1z^{(M-1)}+\cdots+b_M} {a_0 z^N+a_1z^{(N-1)}+\cdots+a_N}\]这种“正幂”形式在控制工程中更为常见。如果 M 和 N 相等(这对于双线性变换生成的所有滤波器都是正确的),则恰好等同于DSP中首选的“负幂”离散时间形式:
\[H(Z)=\frac {b_0+b1 z^{-1}+\cdots+b_M z^{-M}} {a_0+a_1 z^{-1}+\cdots+a_N z^{-N}}\]虽然这对于普通筛选器是正确的,但请记住,在一般情况下不是这样。如果 M 和 N 不相等时,必须先将离散时间传递函数系数转换为“正幂”形式,然后才能找到极点和零点。