Math.NET Numerics | Math.NET Project | GitHub


Fourier and related linear integral transforms

Math.NET Numerics currently supports two linear integral transforms: The discrete Fourier transform and the discrete Hartley transform. Both are strongly localized in the frequency spectrum, but while the Fourier transform operates on complex values, the Hartley transform operates on real values only.

The transforms implement a separate forward and inverse transform method. How the forward and inverse methods are related to each other and what exact definition is to be used can be specified by an additional options parameter.

Fourier Space: Discrete Fourier Transform and FFT

Wikipedia has an extensive article on the discrete Fourier transform (DFT). We provide implementations of the following algorithms:

Furthermore, the Transform class provides a shortcut for the Bluestein FFT using static methods which are even easier to use: FourierForward, FourierInverse.

Code Sample using the Transform class:

// create a complex sample vector of length 96
Complex[] samples = SignalGenerator.EquidistantInterval(
     t => new Complex(1.0 / (t * t + 1.0), t / (t * t + 1.0)),
     -16, 16, 96);

// inplace bluestein FFT with default options
Transform.FourierForward(samples);

Fourier Options:

Useful symmetries of the Fourier transform:

Hartley Space: Discrete Hartley Transform

...