scipy.signal.
dlti#
- 类 scipy.signal.dlti(*system, **kwargs)[source]#
离散时间线性时不变系统基类。
- 参数:
- *system: 参数
dlti
类可以使用 2、3 或 4 个参数实例化。下面给出了参数数量以及由此创建的对应离散时间子类2:
TransferFunction
:(分子,分母)3:
ZerosPolesGain
:(零点,极点,增益)4:
StateSpace
:(A,B,C,D)
每个参数可以是一个数组或一个序列。
- dt: 浮点数,可选
离散时间系统的采样时间 [s]。默认为
True
(未指定采样时间)。必须指定为关键字参数,例如,dt=0.1
。
备注
dlti
实例不是直接存在的。相反,dlti
将创建其某个子类的实例:StateSpace
、TransferFunction
或ZerosPolesGain
。更改不直接属于当前系统表示属性的值(例如
zeros
为StateSpace
系统)效率非常低,并且可能导致数值不准确。较好的做法是先转换到特定的系统表示。例如,调用sys = sys.to_zpk()
以访问/更改零点、极点或增益。如果为
*system
传递了 (分子,分母),则应按降幂顺序指定分子和分母的系数(例如,z^2 + 3z + 5
将表示为[1, 3, 5]
)。0.18.0 版中新增。
示例
>>> from scipy import signal
>>> signal.dlti(1, 2, 3, 4) StateSpaceDiscrete( array([[1]]), array([[2]]), array([[3]]), array([[4]]), dt: True )
>>> signal.dlti(1, 2, 3, 4, dt=0.1) StateSpaceDiscrete( array([[1]]), array([[2]]), array([[3]]), array([[4]]), dt: 0.1 )
用采样时间为 0.1 秒构造传递函数 \(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\)
>>> signal.dlti([1, 2], [3, 4], 5, dt=0.1) ZerosPolesGainDiscrete( array([1, 2]), array([3, 4]), 5, dt: 0.1 )
构造传递函数 \(H(z) = \frac{3z + 4}{1z + 2}\),采样时间为 0.1 秒
>>> signal.dlti([3, 4], [1, 2], dt=0.1) TransferFunctionDiscrete( array([3., 4.]), array([1., 2.]), dt: 0.1 )
方法