Developer Reference

  • 2020
  • 10/21/2020
  • Public Content
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.
If the external buffer is not specified (correspondent parameter is set to
NULL
), then the FFT function itself allocates the memory needed for operation.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804