scipy.signal.deconvolve

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
signalarray_like

Signal data, typically a recorded signal

divisorarray_like

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

Returns
quotientndarray

Quotient, typically the recovered original signal

remainderndarray

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