如何为离散LTI系统创建scipy.lti对象?

在主题中,我使用
python / numpy / scipy进行一些数据分析,我想为离散系统创建一个LTI类对象,指定(num,den,dt)或(零,极点,获得,dt),甚至(A,B,C,D,dt),但文档从未提及如何做到这一点.

然而,像dsim / dstep / dimpulse这样的函数将采用LTI对象并用它做事,所以我想这是可能的.一旦我拥有它,我想做一些事情,比如从一个表示转换为另一个表示(num / den – > zpk – > A,B,C,D),绘制Bode图等.

另外,我完全不清楚(num,den,dt)表示是否会使用z或z ^ -1的系数,因为我认为没有明确的标准.

最佳答案 似乎scipy.signal.lti类仅适用于连续时间系统.检查例如
scipy.signal.dstep的文档,可以得到:

system : a tuple describing the system.
    The following gives the number of elements in the tuple and
    the interpretation.
      * 3: (num, den, dt)
      * 4: (zeros, poles, gain, dt)
      * 5: (A, B, C, D, dt)

所以论证系统不能通过类lti的对象.虽然scipy.signal.dlsim的文档确实声明它接受LTI实例,但我认为这是错误的.至少scipy 0.10.0,我得到:

TypeError: object of type 'lti' has no len()

显然dlsim也希望系统参数是一个元组.

点赞