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

ID 790148
Date 3/22/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Fast Fourier Transform Functions

The functions described in this section compute the forward and inverse fast Fourier transform of real and complex signals. The FFT is similar to the discrete Fourier transform (DFT) but is significantly faster. The length of the vector transformed by the FFT must be a power of 2.

To use the FFT functions, initialize the specification structure which contains such data as tables of twiddle factors. The initialization functions create the specifications for both forward and inverse transforms. The amount of prior calculations is thus reduced and the overall performance increased.

The hint argument, passed to the initialization functions, suggests using special algorithm, faster or more accurate. The flag argument specifies the result normalization method.

To initialize the FFT specification structure, use the ippsFFTInit_R and ippsFFTInit_C functions. Before using these functions, you need to compute the size of the specification structure using ippsFFTGetSize_R and ippsFFTGetSize_C, respectively.

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 Perm, Pack, or CCS format.

You can speed up the FFT by using an external buffer. The use of external buffer can improve performance by avoiding allocation and deallocation of internal buffers and storing data in cache. The size of the external buffer is returned by the ippsFFTInit_R and ippsFFTInit_C functions.