Content Hotkeys
Nonequispaced fast Fourier transform

NFFT Frequently Asked Questions with Answers

This is the list of Frequently Asked Questions about NFFT.

Installing NFFT

  • How do I compile and install the NFFT?
    Please have a look at the Installation page.

Using NFFT

  • Number of irregular samples (nodes), number of regular samples (frequencies)
    The cut-off frequency (length of the regular grid) is N, i.e. the total number of regular samples is the product of N[0], ..., N[d-1]. The number of irregular samples (nodes) is M.
  • How do I convert my nonuniformly/irregularly sampled data from time/spatial domain to frequency domain?
    First of all, please note that our definition of the NDFT/NFFT forward transform and its inverse is exactly the opposite of the FFTW notation. This means our NDFT/NFFT forward transform converts from a regular grid in frequency domain to (potentially) nonuniform/irregular evaluation nodes in time/spatial domain.
    Moreover, since the NDFT/NFFT is not an orthogonal transform in general, its adjoint version is not the inverse transform.
    In order to perform an inverse NDFT/NFFT, which transforms nonuniformly/irregularly sampled data from spatial/time domain to a regular grid in frequency domain, please have a look at the documentation of the inversion, the NFFT 3 manual, and some more details on the theoretical background in Chapter 5 of the PhD thesis of Stefan Kunis. An example on how to use the inverse NFFT can be found in examples/solver/simple_test.c of our NFFT software library. Additionally, for the one-dimensional case, there is a new direct inversion method based on fast summation for Matlab/Octave, available since NFFT 3.4.1.


Known Issues

  • Inaccurate calculations in long double precision with OpenMP in Windows
    The NFFT with long double precision and OpenMP in Windows does many calculations only in double precision. This is caused by a bug in MinGW. Other operating systems are not affected.
    If you compile long double precision in Windows, please disable OpenMP support (configure switch "--disable-openmp" which is the default).
  • Internal compiler error when compiling fastsum
    Due to a bug in GCC versions 7.1.0, 7.2.0 and 7.3.0, compilation of the NFFT might abort with an internal compiler error in the fastsum module. A workaround was added in NFFT 3.4.0.
  • Wrong NFFT calculation when enabling the debug mode or overriding the compiler flags (CFLAGS)
    Due to a bug in GCC versions 4.5.0, 4.5.1, 4.5.2, 4.5.3, 4.6.0 and 4.6.1, compiling the NFFT without the compiler flag "-ffast-math" may lead to incorrect computation results and buffer overflows.
    By default, this flag is set by the "configure" script.
    If you enable the debug mode (configure switch "--enable-debug") or set the CFLAGS manually, please add the compiler flag "-ffast-math" to the CFLAGS environment variable.
  • Internal compiler error when compiling with MRI support
    Due to a bug in GCC version 4.7.1, compilation of the NFFT with MRI module enabled (configure option --enable-mri or --enable-all) will abort with an internal compiler error.
    This problem does not occur in earlier or later versions of the GCC. A workaround was added in nfft-3.2.3.
  • Compilation fails when MRI module enabled and NNFFT module disabled
    When the NFFT is compiled with MRI and without NNFFT support, a compilation error eccurs in applications/mri/mri2d.
    Please also enable the NNFFT module when building with MRI support (configure options --enable-nnfft --enable-mri), or build all modules (--enable-all).