#### Previous topic

scipy.signal.dlti.step

#### Next topic

scipy.signal.dimpulse

# scipy.signal.dlsim

`scipy.signal.``dlsim`(system, u, t=None, x0=None)

  Simulate output of a discrete-time linear system.

  Parameters: | system : tuple of array_like or instance of `dlti` A tuple describing the system. The following gives the number of elements in the tuple and the interpretation: 1: (instance of `dlti`) 3: (num, den, dt) 4: (zeros, poles, gain, dt) 5: (A, B, C, D, dt) u : array_like An input array describing the input at each time t (interpolation is assumed between given times). If there are multiple inputs, then each column of the rank-2 array represents an input. t : array_like, optional The time steps at which the input is defined. If t is given, it must be the same length as u, and the final value in t determines the number of steps returned in the output. x0 : array_like, optional The initial conditions on the state vector (zero by default).
  Returns: | tout : ndarray Time values for the output, as a 1-D array. yout : ndarray System response, as a 1-D array. xout : ndarray, optional Time-evolution of the state-vector. Only generated if the input is a `StateSpace` system.

  See also

  `lsim`, `dstep`, `dimpulse`, `cont2discrete`

  Examples

  A simple integrator transfer function with a discrete time step of 1.0 could be implemented as:

      >>> from scipy import signal
      >>> tf = ([1.0,], [1.0, -1.0], 1.0)
      >>> t_in = [0.0, 1.0, 2.0, 3.0]
      >>> u = np.asarray([0.0, 0.0, 1.0, 1.0])
      >>> t_out, y = signal.dlsim(tf, u, t=t_in)
      >>> y.T
      array([[ 0.,  0.,  0.,  1.]])