#### Previous topic

scipy.signal.TransferFunction.to_zpk

# scipy.signal.ZerosPolesGain

class `scipy.signal.``ZerosPolesGain`(*system, **kwargs)

  Linear Time Invariant system class in zeros, poles, gain form.

  Represents the system as the continuous- or discrete-time transfer function \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\), where \(k\) is the `gain`, \(z\) are the `zeros` and \(p\) are the `poles`. `ZerosPolesGain` systems inherit additional functionality from the `lti`, respectively the `dlti` classes, depending on which system representation is used.

  Parameters:

  *system : arguments

  > The `ZerosPolesGain` class can be instantiated with 1 or 3 arguments. The following gives the number of input arguments and their interpretation:

  > > - 1: `lti` or `dlti` system: (`StateSpace`, `TransferFunction` or `ZerosPolesGain`)
  > > - 3: array_like: (zeros, poles, gain)

  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`.

  See also

  `TransferFunction`, `StateSpace`, `lti`, `dlti`, `zpk2ss`, `zpk2tf`, `zpk2sos`

  Notes

  Changing the value of properties that are not part of the `ZerosPolesGain` 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.

  Examples

      >>> from scipy import signal

  Transfer function: H(s) = 5(s - 1)(s - 2) / (s - 3)(s - 4)

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

  Transfer function: H(z) = 5(z - 1)(z - 2) / (z - 3)(z - 4)

      >>> signal.ZerosPolesGain([1, 2], [3, 4], 5, dt=0.1)
      ZerosPolesGainDiscrete(
      array([1, 2]),
      array([3, 4]),
      5,
      dt: 0.1
      )

  Attributes

  `A` | State matrix of the `StateSpace` system.
  `B` | Input matrix of the `StateSpace` system.
  `C` | Output matrix of the `StateSpace` system.
  `D` | Feedthrough matrix of the `StateSpace` system.
  `den` | Denominator of the `TransferFunction` system.
  `dt` | Return the sampling time of the system, None for `lti` systems.
  `gain` | Gain of the `ZerosPolesGain` system.
  `num` | Numerator of the `TransferFunction` system.
  `poles` | Poles of the `ZerosPolesGain` system.
  `zeros` | Zeros of the `ZerosPolesGain` system.

  Methods

  `to_ss`() | Convert system representation to `StateSpace`.
  `to_tf`() | Convert system representation to `TransferFunction`.
  `to_zpk`() | Return a copy of the current ‘ZerosPolesGain’ system.