Skip to main content
`Ctrl`+`K`
scipy.signal.

# lfiltic

scipy.signal.lfiltic(b, a, y, x=None)

  Construct initial conditions for lfilter given input and output vectors.

  Given a linear filter (b, a) and initial conditions on the output y and the input x, return the initial conditions on the state vector zi which is used by `lfilter` to generate the output given the input.

  Parameters:
    b array_like

      Linear filter term.

    a array_like

      Linear filter term.

    y array_like

      Initial conditions.

      If `N = len(a) - 1`, then `y = {y[-1], y[-2], ..., y[-N]}`.

      If y is too short, it is padded with zeros.

    x array_like, optional

      Initial conditions.

      If `M = len(b) - 1`, then `x = {x[-1], x[-2], ..., x[-M]}`.

      If x is not given, its initial conditions are assumed zero.

      If x is too short, it is padded with zeros.

  Returns:
    zi ndarray

      The state vector `zi = {z_0[-1], z_1[-1], ..., z_K-1[-1]}`, where `K = max(M, N)`.

  See also

  `lfilter`, `lfilter_zi`

  Notes

  Array API Standard Support

  `lfiltic` has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable `SCIPY_ARRAY_API=1` and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.

  Library | CPU | GPU
  --- | --- | ---
  NumPy | ✅ | n/a
  CuPy | n/a | ✅
  PyTorch | ✅ | ⛔
  JAX | ✅ | ⛔
  Dask | ⚠️ computes graph | n/a

  > See Support for the array API standard for more information.