Skip to main content
`Ctrl`+`K`

# scipy.signal.deconvolve

scipy.signal.deconvolve(signal, divisor)

  Deconvolves `divisor` out of `signal` using inverse filtering.

  Returns the quotient and remainder such that `signal = convolve(divisor, quotient) + remainder`

  Parameters:
    signal(N,) array_like

      Signal data, typically a recorded signal

    divisor(N,) array_like

      Divisor data, typically an impulse response or filter that was applied to the original signal

  Returns:
    quotient ndarray

      Quotient, typically the recovered original signal

    remainder ndarray

      Remainder

  See also

  `numpy.polydiv`

    performs polynomial division (same operation, but also accepts poly1d objects)

  Examples

  Deconvolve a signal that’s been filtered:

      >>> from scipy import signal
      >>> original = [0, 1, 0, 0, 1, 1, 0, 0]
      >>> impulse_response = [2, 1]
      >>> recorded = signal.convolve(impulse_response, original)
      >>> recorded
      array([0, 2, 1, 0, 2, 3, 1, 0, 0])
      >>> recovered, remainder = signal.deconvolve(recorded, impulse_response)
      >>> recovered
      array([ 0.,  1.,  0.,  0.,  1.,  1.,  0.,  0.])