High-level interface to FFTW (Fast Fourier Transform) based on comfort-array.
FFTW claims to be the fastest Fourier Transform in the West. This is a high-level interface to libfftw
. We re-use the type classes from netlib-ffi
.
Features:
Support of one (audio), two (image), three (video) dimensional data, as well as n-dimensional one.
Support for batched transformations e.g. for block-wise Fourier transform.
No normalization like in plain
fftw
. This is because I see no universally best place to apply normalization.
The use of comfort-array
enables to use array shapes tailored to Fourier transforms:
Shape.Cyclic
for data where the
n-1
-th element can also be accessed via index-1
.Shape.Half
for complex data of a real-to-complex Fourier transform. It saves you from case distinction between even and odd data length and according mistakes.
Shape.Symmetric
for real-to-real Sine and Cosine transforms. They assert that you will always use the appropriate kind for back transformation.
For rather simple examples see the packages align-audio
and morbus-meniere
.
See also package fft
.