parameters: (system, X0=None, T=None, N=None, **kwargs)
return_statement: return Tr, Yr
docstring: Impulse response of a single-input, continuous-time linear system.
  
      Parameters
      ----------
      system : an instance of the LTI class or a tuple of array_like
          describing the system.
          The following gives the number of elements in the tuple and
          the interpretation:
  
              * 1 (instance of `lti`)
              * 2 (num, den)
              * 3 (zeros, poles, gain)
              * 4 (A, B, C, D)
  
      X0 : 1-D array_like, optional
          The initial condition of the state vector.  Default: 0 (the
          zero vector).
      T : 1-D array_like, optional
          The time steps at which the input is defined and at which the
          output is desired.  If `T` is not given, the function will
          generate a set of time samples automatically.
      N : int, optional
          Number of time points to compute.  Default: 100.
      kwargs : various types
          Additional keyword arguments are passed on to the function
          `scipy.signal.lsim2`, which in turn passes them on to
          `scipy.integrate.odeint`; see the latter's documentation for
          information about these arguments.
  
      Returns
      -------
      T : ndarray
          The time values for the output.
      yout : ndarray
          The output response of the system.
  
      See Also
      --------
      impulse, lsim2, integrate.odeint
  
      Notes
      -----
      The solution is generated by calling `scipy.signal.lsim2`, which uses
      the differential equation solver `scipy.integrate.odeint`.
  
      If (num, den) 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]``).
  
      .. versionadded:: 0.8.0
  
      Examples
      --------
      Second order system with a repeated root: x''(t) + 2*x(t) + x(t) = u(t)
  
      >>> from scipy import signal
      >>> system = ([1.0], [1.0, 2.0, 1.0])
      >>> t, y = signal.impulse2(system)
      >>> import matplotlib.pyplot as plt
      >>> plt.plot(t, y)
docstring_summary: Impulse response of a single-input, continuous-time linear system.
docstring_tokens: Impulse response of a single - input continuous - time linear system .
function: def impulse2(system, X0=None, T=None, N=None, **kwargs):
      """
      Impulse response of a single-input, continuous-time linear system.
  
      Parameters
      ----------
      system : an instance of the LTI class or a tuple of array_like
          describing the system.
          The following gives the number of elements in the tuple and
          the interpretation:
  
              * 1 (instance of `lti`)
              * 2 (num, den)
              * 3 (zeros, poles, gain)
              * 4 (A, B, C, D)
  
      X0 : 1-D array_like, optional
          The initial condition of the state vector.  Default: 0 (the
          zero vector).
      T : 1-D array_like, optional
          The time steps at which the input is defined and at which the
          output is desired.  If `T` is not given, the function will
          generate a set of time samples automatically.
      N : int, optional
          Number of time points to compute.  Default: 100.
      kwargs : various types
          Additional keyword arguments are passed on to the function
          `scipy.signal.lsim2`, which in turn passes them on to
          `scipy.integrate.odeint`; see the latter's documentation for
          information about these arguments.
  
      Returns
      -------
      T : ndarray
          The time values for the output.
      yout : ndarray
          The output response of the system.
  
      See Also
      --------
      impulse, lsim2, integrate.odeint
  
      Notes
      -----
      The solution is generated by calling `scipy.signal.lsim2`, which uses
      the differential equation solver `scipy.integrate.odeint`.
  
      If (num, den) 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]``).
  
      .. versionadded:: 0.8.0
  
      Examples
      --------
      Second order system with a repeated root: x''(t) + 2*x(t) + x(t) = u(t)
  
      >>> from scipy import signal
      >>> system = ([1.0], [1.0, 2.0, 1.0])
      >>> t, y = signal.impulse2(system)
      >>> import matplotlib.pyplot as plt
      >>> plt.plot(t, y)
  
      """
      if isinstance(system, lti):
          sys = system._as_ss()
      elif isinstance(system, dlti):
          raise AttributeError('impulse2 can only be used with continuous-time '
                               'systems.')
      else:
          sys = lti(*system)._as_ss()
      B = sys.B
      if B.shape[-1] != 1:
          raise ValueError("impulse2() requires a single-input system.")
      B = B.squeeze()
      if X0 is None:
          X0 = zeros_like(B)
      if N is None:
          N = 100
      if T is None:
          T = _default_response_times(sys.A, N)
  
      # Move the impulse in the input to the initial conditions, and then
      # solve using lsim2().
      ic = B + X0
      Tr, Yr, Xr = lsim2(sys, T=T, X0=ic, **kwargs)
      return Tr, Yr
function_tokens: def impulse2 ( system , X0 = None , T = None , N = None , * * kwargs ) : if isinstance ( system , lti ) : sys = system . _as_ss ( ) elif isinstance ( system , dlti ) : raise AttributeError ( 'impulse2 can only be used with continuous-time ' 'systems.' ) else : sys = lti ( * system ) . _as_ss ( ) B = sys . B if B . shape [ - 1 ] != 1 : raise ValueError ( "impulse2() requires a single-input system." ) B = B . squeeze ( ) if X0 is None : X0 = zeros_like ( B ) if N is None : N = 100 if T is None : T = _default_response_times ( sys . A , N ) # Move the impulse in the input to the initial conditions, and then # solve using lsim2(). ic = B + X0 Tr , Yr , Xr = lsim2 ( sys , T = T , X0 = ic , * * kwargs ) return Tr , Yr