deconvolve — SciPy v1.15.3 Manual (original) (raw)

scipy.signal.

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

Deconvolves divisor out of signal using inverse filtering.

Returns the quotient and remainder such thatsignal = 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:

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