Convolution theorem

From Wikipedia, the free encyclopedia

In mathematics, the convolution theorem states that under suitable conditions the Fourier transform of a convolution is the point-wise product of Fourier transforms. In other words, convolution in one domain (e.g., time domain) equals point-wise multiplication in the other domain (e.g., frequency domain). Versions of the convolution theorem are true for various Fourier-related transforms.

Let f and g be two functions with convolution f * g. (Note that the asterisk denotes convolution in this context, and not multiplication. The symbol \otimes is sometimes used instead.) Let \mathcal{F} denote the Fourier transform operator, so \mathcal{F}[f] and \mathcal{F}[g] are the Fourier transforms of f and g, respectively. Then

\mathcal{F}[f*g]=\sqrt{2\pi} (\mathcal{F}[f]) \cdot (\mathcal{F}[g])

where · denotes point-wise multiplication. It also works "the other way round":

\mathcal{F}[f \cdot g]=\frac{\mathcal{F}[f]*\mathcal{F}[g]}{\sqrt{2\pi}}

By applying the inverse Fourier transform \mathcal{F}^{-1}, we can write:

f*g=\sqrt{2\pi}\mathcal{F}^{-1}[\mathcal{F}[f]\cdot\mathcal{F}[g]]

This theorem also holds for the Laplace transform, the two-sided Laplace transform and, when suitably modified, for the Mellin transform and Hartley transform (see Mellin inversion theorem). It can be extended to the Fourier transform of abstract harmonic analysis defined over locally compact abelian groups.

This formulation is especially useful for implementing a numerical convolution on a computer: The standard convolution algorithm has quadratic computational complexity. With the help of the convolution theorem and the fast Fourier transform, the complexity of the convolution can be reduced to O(n log n). This can be exploited to construct fast multiplication algorithms.

[edit] Proof

The proof works with both unitary and non-unitary normalizations of the Fourier transform, but the unitary version has extra factors of \sqrt{2\pi} that are inconvenient here. Let f, g \in L^1(\mathbb{R}^n)

Let F be the Fourier transform of f and G be the Fourier transform of g:

F(\omega) = \int_{\mathbb{R}^n} f(x) e^{-2 \pi i x\cdot\omega} \,dx
G(\omega) = \int_{\mathbb{R}^n}g(x) e^{-2 \pi i x\cdot\omega} \,dx.

Let h be the convolution of f and g

h(z) = \int\limits_{\mathbb{R}^n} f(x) g(z-x)\, \mathrm{d} x.

Now notice that

\int\int |f(z)g(x-z)|\,dx\,dz=\int |f(z)| \int |g(z-x)|\,dx\,dz = \int |f(z)|\,\|g\|_1\,dz=\|f\|_1 \|g\|_1.

Hence by Fubini's theorem we have that h\in L^1(\mathbb{R}^n) so its Fourier transform is defined. Let H be the Fourier transform of h:

H(\omega) = \int_{\mathbb{R}^n} h(z) e^{-2 \pi i z\cdot\omega}\, dz = \int_{\mathbb{R}^n} \int_{\mathbb{R}^n} f(x) g(z-x)\, dx\, e^{-2 \pi i z\cdot \omega}\, dz.

Observe that |f(x)g(z-x)e^{-2\pi i z\cdot\omega}|=|f(x)g(z-x)| and hence by the argument above we may apply Fubini's theorem again:

H(\omega) = \int_{\mathbb{R}^n} f(x)\left(\int_{\mathbb{R}^n} g(z-x)e^{-2 \pi i z\cdot \omega}\,dz\right)\,dx.

Substitute y = zx; then dy = dz, so:

H(\omega) = \int_{\mathbb{R}^n} f(x) \left( \int_{\mathbb{R}^n} g(y) e^{-2 \pi i (y+x)\cdot\omega}\,dy \right) \,dx
=\int_{\mathbb{R}^n} f(x)e^{-2\pi i x\cdot \omega} \left( \int_{\mathbb{R}^n} g(y) e^{-2 \pi i y\cdot\omega}\,dy \right) \,dx
=\int_{\mathbb{R}^n} f(x)e^{-2\pi i x\cdot \omega}\,dx \int_{\mathbb{R}^n} g(y) e^{-2 \pi i y\cdot\omega}\,dy.

These two integrals are the definitions of F(ω) and G(ω), so:

H(\omega) = F(\omega) \cdot G(\omega),

which was to be demonstrated.

In other languages