scipy.signal.

dlti#

scipy.signal.dlti(*system, **kwargs)[source]#

离散时间线性时不变系统基类。

参数:
*system: 参数

dlti类可以使用 2、3 或 4 个参数实例化。下面给出了参数数量以及由此创建的对应离散时间子类

每个参数可以是一个数组或一个序列。

dt: 浮点数,可选

离散时间系统的采样时间 [s]。默认为 True(未指定采样时间)。必须指定为关键字参数,例如,dt=0.1

备注

dlti 实例不是直接存在的。相反,dlti 将创建其某个子类的实例:StateSpaceTransferFunctionZerosPolesGain

更改不直接属于当前系统表示属性的值(例如 zerosStateSpace 系统)效率非常低,并且可能导致数值不准确。较好的做法是先转换到特定的系统表示。例如,调用 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
)
属性:
dt

返回系统的采样时间。

poles

系统的极点。

zeros

系统的零点。

方法

bode([w, n])

计算离散时间系统的伯德幅度和相位数据。

freqresp([w, n, whole])

计算离散时间系统的频率响应。

impulse([x0, t, n])

返回离散时间 dlti 系统的冲激响应。

output(u, t[, x0])

返回离散时间系统响应输入 u

step([x0, t, n])

返回离散时间 dlti系统的阶跃响应。