TOPICS
Search

Convolution


A convolution is an integral that expresses the amount of overlap of one function g as it is shifted over another function f. It therefore "blends" one function with another. For example, in synthesis imaging, the measured dirty map is a convolution of the "true" CLEAN map with the dirty beam (the Fourier transform of the sampling distribution). The convolution is sometimes also known by its German name, faltung ("folding").

Convolution is implemented in the Wolfram Language as Convolve[f, g, x, y] and DiscreteConvolve[f, g, n, m].

Abstractly, a convolution is defined as a product of functions f and g that are objects in the algebra of Schwartz functions in R^n. Convolution of two functions f and g over a finite range [0,t] is given by

 [f*g](t)=int_0^tf(tau)g(t-tau)dtau,
(1)

where the symbol [f*g](t) denotes convolution of f and g.

Convolution is more often taken over an infinite range,

f*g=int_(-infty)^inftyf(tau)g(t-tau)dtau
(2)
=int_(-infty)^inftyg(tau)f(t-tau)dtau
(3)

(Bracewell 1965, p. 25) with the variable (in this case t) implied, and also occasionally written as f tensor g.

Convolution of two rectangle functions
Convolution of two Gaussian functions

The animations above graphically illustrate the convolution of two boxcar functions (left) and two Gaussians (right). In the plots, the green curve shows the convolution of the blue and red curves as a function of t, the position indicated by the vertical green line. The gray region indicates the product g(tau)f(t-tau) as a function of t, so its area as a function of t is precisely the convolution. One feature to emphasize and which is not conveyed by these illustrations (since they both exclusively involve symmetric functions) is that the function g must be mirrored before lagging it across f and integrating.

The convolution of two boxcar functions f=Pi_(t_1,t_2)(t) and g=Pi_(u_1,u_2)(t) has the particularly simple form

 f*g=[(t-t_1-u_1)H(t-t_1-u_1)-(t-t_2-u_1)H(t-t_2-u_1) 
-(t-t_1-u_2)H(t-t_1-u_2)+(t-t_2-u_2)H(t-t_2-u_2)],
(4)

where H(x) is the Heaviside step function. Even more amazingly, the convolution of two Gaussians

f=e^(-(t-mu_1)^2/(2sigma_1^2))/(sigma_1sqrt(2pi))
(5)
g=e^(-(t-mu_2)^2/(2sigma_2^2))/(sigma_2sqrt(2pi))
(6)

is another Gaussian

 f*g=1/(sqrt(2pi(sigma_1^2+sigma_2^2)))e^(-[t-(mu_1+mu_2)]^2/[2(sigma_1^2+sigma_2^2)]).
(7)

Let f, g, and h be arbitrary functions and a a constant. Convolution satisfies the properties

f*g=g*f
(8)
f*(g*h)=(f*g)*h
(9)
f*(g+h)=(f*g)+(f*h)
(10)

(Bracewell 1965, p. 27), as well as