cupyx.scipy.signal.TransferFunction#

class cupyx.scipy.signal.TransferFunction(*system, **kwargs)[source]#

Linear Time Invariant system class in transfer function form.

Represents the system as the continuous-time transfer function \(H(s)=\sum_{i=0}^N b[N-i] s^i / \sum_{j=0}^M a[M-j] s^j\) or the discrete-time transfer function \(H(z)=\sum_{i=0}^N b[N-i] z^i / \sum_{j=0}^M a[M-j] z^j\), where \(b\) are elements of the numerator num, \(a\) are elements of the denominator den, and N == len(b) - 1, M == len(a) - 1. TransferFunction systems inherit additional functionality from the lti, respectively the dlti classes, depending on which system representation is used.

Parameters:
  • *system (arguments) –

    The TransferFunction class can be instantiated with 1 or 2 arguments. The following gives the number of input arguments and their interpretation:

    • 1: lti or dlti system: (StateSpace, TransferFunction or ZerosPolesGain)

    • 2: array_like: (numerator, denominator)

  • dt (float, optional) – Sampling time [s] of the discrete-time systems. Defaults to None (continuous-time). Must be specified as a keyword argument, for example, dt=0.1.

Notes

Changing the value of properties that are not part of the TransferFunction system representation (such as the A, B, C, D state-space matrices) 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_ss() before accessing/changing the A, B, C, D system matrices.

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 or z^2 + 3z + 5 would be represented as [1, 3, 5])

Methods

to_ss()[source]#

Convert system representation to StateSpace.

Returns:

sys – State space model of the current system

Return type:

instance of StateSpace

to_tf()[source]#

Return a copy of the current TransferFunction system.

Returns:

sys – The current system (copy)

Return type:

instance of TransferFunction

to_zpk()[source]#

Convert system representation to ZerosPolesGain.

Returns:

sys – Zeros, poles, gain representation of the current system

Return type:

instance of ZerosPolesGain

__eq__(value, /)#

Return self==value.

__ne__(value, /)#

Return self!=value.

__lt__(value, /)#

Return self<value.

__le__(value, /)#

Return self<=value.

__gt__(value, /)#

Return self>value.

__ge__(value, /)#

Return self>=value.

Attributes

den#

Denominator of the TransferFunction system.

dt#

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

num#

Numerator of the TransferFunction system.

poles#

Poles of the system.

zeros#

Zeros of the system.