Can we invert the effect of convolution?
The Convolution Series
 Definition of convolution and intuition behind it
 Mathematical properties of convolution
 Convolution property of Fourier, Laplace, and ztransforms
 Identity element of the convolution
 Star notation of the convolution
 Circular vs. linear convolution
 Fast convolution
 Convolution vs. correlation
 Convolution in MATLAB, NumPy, and SciPy
 Deconvolution: Inverse convolution
 Convolution in probability: Sum of independent random variables
Deconvolution Definition
Given the output of the convolution operation
where
$x[n]$ given$h[n]$ (input signal given the system),$h[n]$ given$x[n]$ (system given the input signal, socalled system identification), or both,
$x[n]$ and$h[n]$ (input signal and the system simultaneously, socalled blind deconvolution).
While tasks 1 and 2 are somewhat similar thanks to the commutativity of convolution (identify one signal given two others), task 3 poses a significant challenge that is an active area of research.
This article contains a brief description of various methods used to accomplish deconvolution. By no means is this list complete nor are the explanations indepth. Nevertheless, it will give you an overview of the methodologies used and when to use them.
But before I give you a tour of the deconvolution methods, I will present two vivid use cases of deconvolution to motivate the topic.
Example Application of NonBlind Deconvolution
A simple example of deconvolution application is frequency response measurement of a loudspeaker. The excitation signal in this case cannot be an impulse because it could damage the loudspeaker. A fairly often used option is to use an exponential sweep: a signal whose frequency rises exponentially over time. Having recorded the response of a loudspeaker to the exponential sweep excitation, we need to deconvolve it to obtain just the loudspeaker’s impulse response. The loudspeaker is our unknown
Example Application of Blind Deconvolution
Imagine a smart home system. Whenever one of the users (residents) speaks up, the system needs to record that speech, perform automatic speech recognition, understand the message conveyed by speech, and ultimately decide what action to take. All these tasks are significantly more dificult when the recorded speech is reverberant, i.e., bears the impact of room acoustics. The system knows neither the speech utterance nor the room impulse response (which varies with user and smart device positions). Thus, it needs to use statistical or machine learning algorithms to infere which is which and improve the quality of the recorded speech.
In this case,
A Catalogue of Deconvolution Methods
What follows is a quick tour of some of the deconvolution approaches where either the input signal or the system (but not both) are known. If you are interested in the topic, you are welcome to follow the sources specified at the end.
Here’s a navigable table of contents:
 Deconvolution Using FrequencyDomain Division
 Deconvolution Via (Pseudo)Inverse of the Convolution Matrix
 Wiener Filtering (Wiener Deconvolution)
 Deconvolution Using Complex Cepstrum Liftering
Deconvolution Using FrequencyDomain Division
As we know from the convolution property of the
In the following we will assume that capital letters denote the
With this formulation we can easily obtain the desired time domain signal
There are two caveats to this approach:
$X(z)$ mustn’t be zero for any$z$ (we mustn’t divide by 0), The inverse
$z$ transform in Equation (4) must exist.
With that in mind, we can present two numerical software functions that use the above approach.
Deconvolution Functions in Numerical Software
Deconvolution in numerical software is achieved through polynomial division in the
In SciPy and Matlab, we have two very similar functions for deconvolution:
quotient, remainder = scipy.signal.deconvolve(signal, divisor)
[quotient, remainder] = deconv(signal, divisor)
In these functions, the divisor is deconvolved from signal to obtain the quotient. The remainder is the signal that could not be properly deconvolved (typically because of numerical precision). For these operations, the following identities should hold
signal = convolve(divisor, quotient) + remainder
signal = conv(divisor, quotient) + remainder
Keep in mind the caveats above: if the divisor signal has zeros in its
Deconvolution Via (Pseudo)Inverse of the Convolution Matrix
If we write the convolution in Equation (1) in a matrix form it should be easier for us to reason about it. First, let’s write
where
Second, we can write
where
To ensure proper understanding, let’s write out the elements of
Since there is no additive noise, we can obtain

inverting
$\mathbf{H}$ if$\mathbf{H}$ is fullrank and not illconditioned$\pmb{x}[n] = \mathbf{H}^{1} \pmb{y}[n], \quad (9)$ 
computing the MoorePenrose pseudoinverse of
$\mathbf{H}$ if$\mathbf{H}$ cannot be easily inverted$\tilde{\pmb{x}}[n] = (\mathbf{H}^\top\mathbf{H} + \delta \mathbf{I})^{1}\mathbf{H}^\top \pmb{y}[n], \quad (10)$ where
$\delta$ is a small constant added for numerical stability (socalled Tikhonov regularization). This is the solution of least squares minimization of the squared difference between the samples of$\pmb{y}[n]$ and$\mathbf{H}\pmb{x}[n]$ .
Wiener Filtering (Wiener Deconvolution)
What if
where
Assuming we know
where
The formula for
where
I think of the quotient in Equation (14) as a fraction of the clean signal present in the output
Surprisingly, I wasn’t able to find the derivation of Equation 13; it probably can be found in the Wiener’s original works from the 1940s.
Deconvolution Using Complex Cepstrum Liftering
The complex cepstrum of a discrete signal
where
As we know from the convolution property of the
then
and
If the nonzero values of
The operation of manipulating the elements of the cepstrum is called liftering.
Deconvolution via complex cepstrum liftering can be done, for example, to extract the glottal excitation from a recording of a human voice. In this case,
Of course, typically
Summary
In this article, we discussed 4 deconvolution techniques out of which 1 works in the presence of noise. For further details, please refer to the sources below.
Bibliography
[1] Alan V Oppenheim, Ronald W. Schafer DiscreteTime Signal Processing, 3rd Edition, Pearson 2010.
[2] Simon Haykin, Adaptive Filter Theory, 5th Edition, Pearson 2014.
[3] Wiener Deconvolution on Wikipedia
Comments powered by Talkyard.