![]() |
NFFT
3.5.3
|
Direct and fast computation of the nonequispaced discrete Fourier transform. More...
Data Structures | |
struct | nfft_plan |
Macros | |
#define | PRE_PHI_HUT (1U<<0) |
#define | FG_PSI (1U<<1) |
#define | PRE_LIN_PSI (1U<<2) |
#define | PRE_FG_PSI (1U<<3) |
#define | PRE_PSI (1U<<4) |
#define | PRE_FULL_PSI (1U<<5) |
#define | MALLOC_X (1U<<6) |
#define | MALLOC_F_HAT (1U<<7) |
#define | MALLOC_F (1U<<8) |
#define | FFT_OUT_OF_PLACE (1U<<9) |
#define | FFTW_INIT (1U<<10) |
#define | PRE_ONE_PSI (PRE_LIN_PSI| PRE_FG_PSI| PRE_PSI| PRE_FULL_PSI) |
Direct and fast computation of the nonequispaced discrete Fourier transform.
This module implements the nonequispaced fast Fourier transforms. In the following, we abbreviate the term "nonequispaced fast Fourier transform" by NFFT.
We introduce our notation and nomenclature for discrete Fourier transforms. Let the torus
of dimension be given. It will serve as domain from which the nonequispaced nodes
are taken. The sampling set is given by
. Possible frequencies
are collected in the multi index set
Our concern is the computation of the nonequispaced discrete Fourier transform (NDFT)
The corresponding adjoint NDFT is the computation of
Direct implementations are given by nfft_direct_trafo and nfft_direct_adjoint taking floating point operations. Approximative realisations take only
floating point operations. These are provided by nfft_trafo and nfft_adjoint, respectively.
#define PRE_PHI_HUT (1U<<0) |
#define FG_PSI (1U<<1) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ) uses particular properties of the Gaussian window function to trade multiplications for direct calls to exponential function.
#define PRE_LIN_PSI (1U<<2) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ) uses linear interpolation from a lookup table of equispaced samples of the window function instead of exact values of the window function. At the moment a table of size
is used, where
. An estimate for the size of the lookup table with respect to the target accuracy should be implemented.
#define PRE_FG_PSI (1U<<3) |
If this flag is set, the convolution step (the multiplication with the sparse matrix ) uses particular properties of the Gaussian window function to trade multiplications for direct calls to exponential function (the remaining
direct calls are precomputed).
#define PRE_PSI (1U<<4) |
#define PRE_FULL_PSI (1U<<5) |
#define MALLOC_X (1U<<6) |
#define MALLOC_F_HAT (1U<<7) |
#define MALLOC_F (1U<<8) |
#define FFT_OUT_OF_PLACE (1U<<9) |
#define FFTW_INIT (1U<<10) |
#define PRE_ONE_PSI (PRE_LIN_PSI| PRE_FG_PSI| PRE_PSI| PRE_FULL_PSI) |
Summarises if precomputation is used within the convolution step (the multiplication with the sparse matrix ). If testing against this flag is positive, nfft_precompute_one_psi has to be called.