cupyx.scipy.signal.deconvolve#

cupyx.scipy.signal.deconvolve(signal, divisor)[source]#

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

cupy.polydiv

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

Examples

Deconvolve a signal that’s been filtered:

>>> from cupyx.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.])