The Fourier transform is a very useful and widely used tool in many branches of maths. The continuous Fourier transform, available in Mathematica as `FourierTransform`, tries to perform the Fourier transform of a symbolic expression. This is useful for solving many problems if the Fourier transform can also be expressed in a nice symbolic form, but such a form is not necessarily available (and indeed the Fourier transform might not exist at all).

In practice, the discrete Fourier transform, which works with a finite set of data points and approximates the continuous Fourier transform, is more important. The DFT is available in Mathematica as `Fourier`, and the inverse DFT as `InverseFourier`. Note that Mathematica uses the normalisation by default for both the DFT and the IDFT.

## Example

Here is an example usage of the DFT in Mathematica:

xmax = 1; nx = 128; dx = xmax / nx; xs = Range[0, xmax - dx, dx]; f[x_] := Exp[Sin[6 Pi x]] + Sin[40 Pi x]; data = Map[f, xs]; ListLinePlot[Transpose[{xs, data}]] dft = Fourier[data]; numax = 1/(2*dx); dnu = 1/xmax; nus = Join[Range[0, numax - dnu, dnu], Range[-numax, -dnu, dnu]]; ListPlot[ Transpose[{nus, Abs[dft]}], PlotRange -> All]

The first block generates a list `data` which consists of sampled values of the function `f` at the values `xs`, which are 128 values between 0 and 1 (not including the endpoint at 1). These sampled points are plotted.

The second plot calculates the discrete Fourier transform of `data` (according to the default normalisation). Then the list `nus` is constructed: these are the wavenumbers that correspond to each element of `dft`. (With the default normalisation, this is *not* the angular wavenumber: the wavenumber of is said to be 20, while the angular wavenumber is . The symbol is often used for the angular wavenumber; I am using for the wavenumber.) We then plot the absolute values of `dft` against the wavenumbers `nus`.

## Aliasing

Note how the values of and are related to the values of and :

What this means is the following:

- If you sample more densely (so is smaller), then you can pick up higher frequencies.
- If you sample for a longer domain (so is larger), then you can pick up lower frequencies.

The highest frequency that you can pick up, $1/2\Delta x$, is called the *Nyquist frequency* and is equal to half the sampling rate of the data. If your function in fact oscillates at a higher frequency than this, then your sampled data will not pick up that component properly, and many of your results will be inaccurate. This effect is known as *aliasing*.

## Applications

The Fourier transform can be used to solve many different problems, and is particularly useful for solving linear partial differential equations. Numerical PDE solvers that make use of the DFT are part of a class of numerical schemes known as *spectral methods*. For linear problems where the solution is oscillatory or where a ‘conservation law’ (usually analogous to conservation of mass or momentum) applies, spectral methods tend to be better than finite differences. The DFT can also be useful for quasilinear PDEs, using a family of methods known as *pseudospectral methods*.