Gaussian function

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Normalized Gaussian curves with expected value μ and variance σ2. The corresponding parameters are a = 1/(σ√(2π)), b = μ, c = σ

In mathematics, a Gaussian function (named after Carl Friedrich Gauss) is a function of the form:

f(x) = a \exp{\left(- { \frac{(x-b)^2 }{ 2 c^2} } \right)}+d

for arbitrary real constants a, b, c, d.

The graph of a Gaussian is a characteristic symmetric "bell curve" shape that quickly falls off towards zero. The parameter a is the height of the curve's peak, b is the position of the center of the peak, and c (the standard deviation) controls the width of the "bell".

Gaussian functions are widely used in statistics where they describe the normal distributions, in signal processing where they serve to define Gaussian filters, in image processing where two-dimensional Gaussians are used for Gaussian blurs, and in mathematics where they are used to solve heat equations and diffusion equations and to define the Weierstrass transform.


Gaussian functions arise by applying the exponential function to a general quadratic function. The Gaussian functions are thus those functions whose logarithm is a quadratic function.

The parameter c is related to the full width at half maximum (FWHM) of the peak according to

\mathrm{FWHM} = 2 \sqrt{2 \ln 2}\ c \approx 2.35482 c.[1]

Alternatively, the parameter c can be interpreted by saying that the two inflection points of the function occur at x = b − c and x = b + c.

The full width at tenth of maximum (FWTM) for a Gaussian could be of interest and is

\mathrm{FWTM} = 2 \sqrt{2 \ln 10}\ c \approx 4.29193 c.[2]

Gaussian functions are analytic, and their limit as x → ∞ is 0.

Gaussian functions are among those functions that are elementary but lack elementary antiderivatives; the integral of the Gaussian function is the error function. Nonetheless their improper integrals over the whole real line can be evaluated exactly, using the Gaussian integral

\int_{-\infty}^\infty e^{-x^2}\,dx=\sqrt{\pi}

and one obtains

\int_{-\infty}^\infty a e^{- { (x-b)^2 \over 2 c^2 } }\,dx=ac\cdot\sqrt{2\pi}.

This integral is 1 if and only if a = 1/(c√(2π)), and in this case the Gaussian is the probability density function of a normally distributed random variable with expected value μ = b and variance σ2 = c2:

 g(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 }.

These Gaussians are plotted in the accompanying figure.

Gaussian functions centered at zero minimize the Fourier uncertainty principle.

The product of two Gaussian functions is a Gaussian (warning: the product of two Gaussian probability density functions is not in general a Gaussian pdf), and the convolution of two Gaussian functions is also a Gaussian, with std. deviation being the quadratic mean of the original std. deviations: c = \sqrt{c_{1}^2 + c_{2}^2}.

Taking the Fourier transform (unitary, angular frequency convention) of a Gaussian function with parameters a, b = 0 and c yields another Gaussian function, with parameters \sqrt{2\pi}ac, b = 0 and \frac{1}{2 \pi c}.[3] So in particular the Gaussian functions with b = 0 and c = \frac{1}{\sqrt{2 \pi}} are kept fixed by the Fourier transform (they are eigenfunctions of the Fourier transform with eigenvalue 1).

The fact that the Gaussian function is an eigenfunction of the Continuous Fourier transform allows us to derive the following interesting identity from the Poisson summation formula:

\sum_{k\in\mathbb{Z}}\exp\left(-\pi\cdot\left(\frac{k}{c}\right)^2\right) = c\cdot\sum_{k\in\mathbb{Z}}\exp(-\pi\cdot(kc)^2).

Integral of a Gaussian function[edit]

The integral of an arbitrary Gaussian function is

\int_{-\infty}^{\infty} a\,e^{-(x+b)^2/c^2}\,dx=a |c| \sqrt{\pi}.

An alternative form is

\int_{-\infty}^{\infty}k\,e^{-f x^2 + g x + h}\,dx=\int_{-\infty}^{\infty}k\,e^{-f (x-g/(2f))^2 +g^2/(4f) + h}\,dx=k\,\sqrt{\frac{\pi}{f}}\,\exp\left(\frac{g^2}{4f} + h\right),

where f must be strictly positive for the integral to converge.


The integral

\int_{-\infty}^{\infty} ae^{-(x+b)^2/c^2}\,dx

for some real constants a, b, c > 0 can be calculated by putting it into the form of a Gaussian integral. First, the constant a can simply be factored out of the integral. Next, the variable of integration is changed from x to y = x + b.

a\int_{-\infty}^\infty e^{-y^2/c^2}\,dy,

and then to z=y/|c|

a |c| \int_{-\infty}^\infty e^{-z^2}\,dz.

Then, using the Gaussian integral identity

\int_{-\infty}^\infty e^{-z^2}\,dz = \sqrt{\pi},

we have

\int_{-\infty}^{\infty} ae^{-(x+b)^2/c^2}\,dx=a |c| \sqrt{\pi}.

Two-dimensional Gaussian function[edit]

Gaussian curve with a 2-dimensional domain

In two dimensions, the power to which e is raised in the Gaussian function is any negative-definite quadratic form. Consequently, the level sets of the Gaussian will always be ellipses.

A particular example of a two-dimensional Gaussian function is

f(x,y) = A \exp\left(- \left(\frac{(x-x_o)^2}{2\sigma_x^2} + \frac{(y-y_o)^2}{2\sigma_y^2} \right)\right).

Here the coefficient A is the amplitude, xo,yo is the center and σx, σy are the x and y spreads of the blob. The figure on the right was created using A = 1, xo = 0, yo = 0, σx = σy = 1.

The volume under the Gaussian function is given by

V = \int_{-\infty}^\infty \int_{-\infty}^\infty f(x,y)\,dx dy=2 \pi A \sigma_x \sigma_y.

In general, a two-dimensional elliptical Gaussian function is expressed as

f(x,y) = A \exp\left(- \left(a(x - x_o)^2 + 2b(x-x_o)(y-y_o) + c(y-y_o)^2 \right)\right)

where the matrix

\left[\begin{matrix} a & b \\ b & c \end{matrix}\right]

is positive-definite.

Using this formulation, the figure on the right can be created using A = 1, (xo, yo) = (0, 0), a = c = 1/2, b = 0.

Meaning of parameters for the general equation[edit]

For the general form of the equation the coefficient A is the height of the peak and (xoyo) is the center of the blob.

If we set

a = \frac{\cos^2\theta}{2\sigma_x^2} + \frac{\sin^2\theta}{2\sigma_y^2}

b = -\frac{\sin2\theta}{4\sigma_x^2} + \frac{\sin2\theta}{4\sigma_y^2}

c = \frac{\sin^2\theta}{2\sigma_x^2} + \frac{\cos^2\theta}{2\sigma_y^2}

then we rotate the blob by a clockwise angle \theta (for counterclockwise rotation invert the signs in the b coefficient). This can be seen in the following examples:

\theta = 0
\theta = \pi/6
\theta = \pi/3

Using the following Octave code one can easily see the effect of changing the parameters

A = 1;
x0 = 0; y0 = 0;
sigma_x = 1;
sigma_y = 2;
for theta = 0:pi/100:pi
    a = cos(theta)^2/2/sigma_x^2 + sin(theta)^2/2/sigma_y^2;
    b = -sin(2*theta)/4/sigma_x^2 + sin(2*theta)/4/sigma_y^2 ;
    c = sin(theta)^2/2/sigma_x^2 + cos(theta)^2/2/sigma_y^2;
    [X, Y] = meshgrid(-5:.1:5, -5:.1:5);
    Z = A*exp( - (a*(X-x0).^2 + 2*b*(X-x0).*(Y-y0) + c*(Y-y0).^2)) ;
    surf(X,Y,Z);shading interp;view(-36,36);axis equal;drawnow

Such functions are often used in image processing and in computational models of visual system function—see the articles on scale space and affine shape adaptation.

Also see multivariate normal distribution.

Multi-dimensional Gaussian function[edit]

In an n-dimensional space a Gaussian function can be defined as

f(x) = \exp(-x^TAx) \;,

where x=\{x_1,\dots,x_n\} is a column of n coordinates, A is a positive-definite n\times n matrix, and {}^T denotes transposition.

The integral of this Gaussian function over the whole n-dimensional space is given as

\int_{\mathbb{R}^n} \exp(-x^TAx) \, dx = \sqrt{\frac{\pi^n}{\det{A}}} \;.

It can be easily calculated by diagonalizing the matrix A and changing the integration variables to the eigenvectors of A.

More generally a shifted Gaussian function is defined as

f(x) = \exp(-x^TAx+s^Tx) \;,

where s=\{s_1,\dots,s_n\} is the shift vector and the matrix A can be assumed to be symmetric, A^T=A, and positive-definite. The following integrals with this function can be calculated with the same technique,

\int_{\mathbb{R}^n} e^{-x^T A x+v^Tx} \, dx = \sqrt{\frac{\pi^n}{\det{A}}} \exp(\frac{1}{4}v^T A^{-1}v)\equiv \mathcal{M}\;.

\int_{\mathbb{R}^n} e^{- x^T A x + v^T x}  \left( a^T x \right) \, dx = (a^T u) \cdot
\mathcal{M}\;,\; {\rm where}\;
u = \frac{1}{2} A^{- 1} v \;.

\int_{\mathbb{R}^n} e^{- x^T A x + v^T x}  \left( x^T D x \right) \, dx = \left( u^T D u +
\frac{1}{2} {\rm tr} (D A^{- 1}) \right) \cdot \mathcal{M}\;.

& \int_{\mathbb{R}^n} e^{- x^T A' x + s'^T x} \left( -
\frac{\partial}{\partial x} \Lambda \frac{\partial}{\partial x} \right) e^{-
x^T A x + s^T x} \, dx = \\
& = \left( 2 {\rm tr} (A' \Lambda A B^{- 1}) + 4 u^T A' \Lambda A u - 2 u^T
(A' \Lambda s + A \Lambda s') + s'^T \Lambda s \right) \cdot \mathcal{M}\;,
\\ & {\rm where} \;
u = \frac{1}{2} B^{- 1} v, v = s + s', B = A + A' \;.

Gaussian profile estimation[edit]

A number of fields such as stellar photometry, Gaussian beam characterization, and emission/absorption line spectroscopy work with sampled Gaussian functions and need to accurately estimate the height, position, and width parameters of the function. These are a, b, and c for a 1D Gaussian function, A, (x_0,y_0), and (\sigma_x,\sigma_y) for a 2D Gaussian function. The most common method for estimating the profile parameters is to take the logarithm of the data and fit a parabola to the resulting data set.[4] While this provides a simple least squares fitting procedure, the resulting algorithm is biased by excessively weighting small data values, and this can produce large errors in the profile estimate. One can partially compensate for this through weighted least squares estimation, in which the small data values are given small weights, but this too can be biased by allowing the tail of the Gaussian to dominate the fit. In order to remove the bias, one can instead use an iterative procedure in which the weights are updated at each iteration (see Iteratively reweighted least squares).[4]

Once one has an algorithm for estimating the Gaussian function parameters, it is also important to know how accurate those estimates are. While an estimation algorithm can provide numerical estimates for the variance of each parameter (i.e. the variance of the estimated height, position, and width of the function), one can use Cramér–Rao bound theory to obtain an analytical expression for the lower bound on the parameter variances, given some assumptions about the data.[5][6]

  1. The noise in the measured profile is either i.i.d. Gaussian, or the noise is Poisson-distributed.
  2. The spacing between each sampling (i.e. the distance between pixels measuring the data) is uniform.
  3. The peak is "well-sampled", so that less than 10% of the area or volume under the peak (area if a 1D Gaussian, volume if a 2D Gaussian) lies outside the measurement region.
  4. The width of the peak is much larger than the distance between sample locations (i.e. the detector pixels must be at least 5 times smaller than the Gaussian FWHM).

When these assumptions are satisfied, the following covariance matrix K applies for the 1D profile parameters a, b, and c under i.i.d. Gaussian noise and under Poisson noise:[5]

 \mathbf{K}_{\text{Gauss}} = \frac{\sigma^2}{\sqrt{\pi} \delta_x Q^2} \begin{pmatrix} \frac{3}{2c} &0 &\frac{-1}{a} \\ 0 &\frac{2c}{a^2} &0 \\ \frac{-1}{a} &0 &\frac{2c}{a^2} \end{pmatrix} \ , \qquad \mathbf{K}_{\text{Poiss}} = \frac{1}{\sqrt{2 \pi}} \begin{pmatrix} \frac{3a}{2c} &0 &-\frac{1}{2} \\ 0 &\frac{c}{a} &0 \\ -\frac{1}{2} &0 &\frac{c}{2a} \end{pmatrix} \ ,

where \delta_x is the width of the pixels used to sample the function, Q is the quantum efficiency of the detector, and \sigma indicates the standard deviation of the measurement noise. Thus, the individual variances for the parameters are, in the Gaussian noise case,

\begin{align} \text{var} (a) &= \frac{3 \sigma^2}{2 \sqrt{\pi} \, \delta_x Q^2 c} \\ \text{var} (b) &= \frac{2 \sigma^2 c}{\delta_x \sqrt{\pi} \, Q^2 a^2} \\ \text{var} (c) &= \frac{2 \sigma^2 c}{\delta_x \sqrt{\pi} \, Q^2 a^2} \end{align}

and in the Poisson noise case,

\begin{align} \text{var} (a) &= \frac{3a}{2 \sqrt{2 \pi} \, c} \\ \text{var} (b) &= \frac{c}{\sqrt{2 \pi} \, a} \\ \text{var} (c) &= \frac{c}{2 \sqrt{2 \pi} \, a}. \end{align} \

For the 2D profile parameters giving the amplitude A, position (x_0,y_0), and width (\sigma_x,\sigma_y) of the profile, the following covariance matrices apply:[6]

 \mathbf{K}_{\text{Gauss}} = \frac{\sigma^2}{\pi \delta_x \delta_y Q^2} \begin{pmatrix} \frac{2}{\sigma_x \sigma_y} &0 &0 &\frac{-1}{A \sigma_y} &\frac{-1}{A \sigma_x} \\ 0
      &\frac{2 \sigma_x}{A^2 \sigma_y} &0 &0 &0 \\ 0 &0 &\frac{2 \sigma_y}{A^2 \sigma_x} &0 &0 \\ \frac{-1}{A \sigma_y} &0 &0 &\frac{2 \sigma_x}{A^2 \sigma_y} &0 \\
      \frac{-1}{A \sigma_x} &0 &0 &0 &\frac{2 \sigma_y}{A^2 \sigma_x} \end{pmatrix} \ ,
 \qquad \mathbf{K}_{\text{Poiss}} = \frac{1}{2 \pi} \begin{pmatrix} \frac{3A}{\sigma_x \sigma_y} &0 &0 &\frac{-1}{\sigma_y} &\frac{-1}{\sigma_x} \\ 0
      &\frac{\sigma_x}{A \sigma_y} &0 &0 &0 \\ 0 &0 &\frac{\sigma_y}{A \sigma_x} &0 &0 \\ \frac{-1}{\sigma_y} &0 &0 &\frac{2 \sigma_x}{3A \sigma_y} &\frac{1}{3A} \\
      \frac{-1}{\sigma_x} &0 &0 &\frac{1}{3A} &\frac{2 \sigma_y}{3A \sigma_x} \end{pmatrix} \ .

where the individual parameter variances are given by the diagonal elements of the covariance matrix.

Discrete Gaussian[edit]

The discrete Gaussian kernel (black, dashed), compared with the sampled Gaussian kernel (red, solid) for scales t=.5,1,2,4.

One may ask for a discrete analog to the Gaussian; this is necessary in discrete applications, particularly digital signal processing. A simple answer is to sample the continuous Gaussian, yielding the sampled Gaussian kernel. However, this discrete function does not have the discrete analogs of the properties of the continuous function, and can lead to undesired effects, as described in the article scale space implementation.

An alternative approach is to use discrete Gaussian kernel:[7]

T(n, t) = e^{-t} I_n(t)\,

where I_n(t) denotes the modified Bessel functions of integer order.

This is the discrete analog of the continuous Gaussian in that it is the solution to the discrete diffusion equation (discrete space, continuous time), just as the continuous Gaussian is the solution to the continuous diffusion equation.[8]


Gaussian functions appear in many contexts in the natural sciences, the social sciences, mathematics, and engineering. Some examples include:

See also[edit]


External links[edit]