scipy.signal.lti#

class scipy.signal.lti(*system)[source]#

Continuous-time linear time invariant system base class.

Parameters
*systemarguments

The lti class can be instantiated with either 2, 3 or 4 arguments. The following gives the number of arguments and the corresponding continuous-time subclass that is created:

Each argument can be an array or a sequence.

Notes

lti instances do not exist directly. Instead, lti creates an instance of one of its subclasses: StateSpace, TransferFunction or ZerosPolesGain.

If (numerator, denominator) is passed in for *system, coefficients for both the numerator and denominator should be specified in descending exponent order (e.g., s^2 + 3s + 5 would be represented as [1, 3, 5]).

Changing the value of properties that are not directly part of the current system representation (such as the zeros of a StateSpace system) is very inefficient and may lead to numerical inaccuracies. It is better to convert to the specific system representation first. For example, call sys = sys.to_zpk() before accessing/changing the zeros, poles or gain.

Examples

>>> from scipy import signal
>>> signal.lti(1, 2, 3, 4)
StateSpaceContinuous(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: None
)

Construct the transfer function \(H(s) = \frac{5(s - 1)(s - 2)}{(s - 3)(s - 4)}\):

>>> signal.lti([1, 2], [3, 4], 5)
ZerosPolesGainContinuous(
array([1, 2]),
array([3, 4]),
5,
dt: None
)

Construct the transfer function \(H(s) = \frac{3s + 4}{1s + 2}\):

>>> signal.lti([3, 4], [1, 2])
TransferFunctionContinuous(
array([3., 4.]),
array([1., 2.]),
dt: None
)
Attributes
dt

Return the sampling time of the system, None for lti systems.

poles

Poles of the system.

zeros

Zeros of the system.

Methods

bode([w, n])

Calculate Bode magnitude and phase data of a continuous-time system.

freqresp([w, n])

Calculate the frequency response of a continuous-time system.

impulse([X0, T, N])

Return the impulse response of a continuous-time system.

output(U, T[, X0])

Return the response of a continuous-time system to input U.

step([X0, T, N])

Return the step response of a continuous-time system.

to_discrete(dt[, method, alpha])

Return a discretized version of the current system.