Module Owl_fft

module Owl_fft: sig .. end
Fast Fourier Transforms (FFTs)


This module implements some basic FFT operations. Most of them are similar to the same funcitons in Matlab, and you will find it very easy to use in case you are familiar with Matlab.
type rmat = Owl_dense_matrix_d.mat 
type cmat = Owl_dense_matrix_z.mat 
val fft : rmat -> cmat
fft x performs an FFT operation on matrix x. If x has more than one row, then one FFT operation will be performed on each of them. The input is a real dense matrix, and the returned result is a complex dense matrix.
val fft_complex : cmat -> cmat
fft_complex x is similar to fft x but is performed on complex matrices.
val ifft : cmat -> cmat
ifft x performs the inverse operation of FFT on x. Note the input x is a complex matrix, both the output from fft x and fft_complex x can be used as the input of ifft.
val fft2 : rmat -> cmat
fft2 x performns a two-dimensional FFT on a real matrix x.
val fft2_complex : cmat -> cmat
fft2_complex x is similar to fft2 x but is performed on complex matrices.
val ifft2 : cmat -> cmat
ifft2 x performs the inverse operation of FFT on x, i.e., the inverse function of both fft2 and fft2_complex.
val fftshift : cmat -> cmat
fftshift x shifts the zero frequency component in the middle. This is especially useful when plotting the figures.
val ifftshift : cmat -> cmat
ifftshift x undoes the results of fftshift x, it is the inverse operation of fftshift. Note that calling fftshift twice such as fftshift (fftshift x) will not give you the same x if there is an odd number of elements.