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.

The FFT specification structure can be initialized by the functions ippsFFTInitAlloc_R orippsFTInitAlloc_CR that allocate memory and initialize the structure. Alternatively the structure can be initialized by the functions ippsFFTInit_R, ippsFFTInit_C. In this case the user must allocate memory for the FFT specification structure whose size should be computed previously using ippsFFTGetSize_R, ippsFFTGetSize_C functions.

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 external buffer increases performance because it allows to avoid allocation and deallocation of internal buffers and to store data in cache. If the FFT structure is initialized by the functions FFTInitAlloc_R, FFTInitAlloc_C, then the size of the external buffer must be previously computed by either ippsFFTGetBufSize_R, ippsFFTGetBufSize_C. If the FFT structure is initialized by the functions ippsFFTInit_R, ippsFFTInit_C, then the size of the external buffer is returned by these 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.


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.