Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 10/31/2024
Public
Document Table of Contents

Discrete Fourier Transform Functions

The functions described in this section compute the forward and inverse discrete Fourier transform of real and complex signals. The DFT is less efficient than the fast Fourier transform, however the length of the vector transformed by the DFT can be arbitrary.

The hint argument, passed to the initialization functions, suggests using special algorithm, faster or more accurate. The flag argument specifies the result normalization method. The complex signal can be represented as a single array containing complex elements, or two separate arrays containing real and imaginary parts. The output result of the FFT can be packed in Pack, Perm, or CCS formats.

To use the DFT functions, you should initialize the specification structure which contains such data as tables of twiddle factors. Use the ippsDFTInit_R and ippsDFTInit_C functions to initialize the specification structure both for forward and inverse transforms. Before using these functions, compute the size of the DFT specification structure using the ippsDFTGetSize_R or ippsDFTGetSize_C functions and allocate memory for the structure beforehand.

Speed up the DFT by using an external buffer. The size of the external buffer is returned by the ippsDFTInit_R and ippsDFTInit_C functions.

For more information about the fast computation of the discrete Fourier transform, see [Mit93], section 8-2, Fast Computation of the DFT.

A special set of Intel IPP functions provides the so called “out-of-order” DFT of the complex signal. In this case, the elements in frequency domain for both forward and inverse transforms can be re-ordered to speed-up the computation of the transforms. This re-ordering is hidden from the user and can be different in different implementations of the functions. However, reversibility of each pair of functions for forward/inverse transforms is ensured.