Function Descriptions
3.4 Complex Fast Fourier Transform Magnitude (Scaled)
Description:
This module computes the scaled complex FFT magnitude. The scaling is
1
[2
F F T _ST AGES−1
]
,
and is done to match the normalization performed by the fixed-point TMS320C28x IQmath
FFT library for overflow avoidance. Floating-point calculations do not need this scaling to avoid
overflow and therefore the CFFT_f32_mag function can be used instead. The output from
CFFT_f32_mag matches the magnitude output from the FFT found in common mathematics
software and Code Composer Studio FFT graphs.
Header File:
FPU.h
Declaration:
void CFFT_f32s_mag (CFFT_F32_STRUCT
*
)
Usage:
A pointer to the following structure is passed to the CFFT_f32s_mag function.It is the same
structure described in the CFFT_f32 section:
typedef struct {
float32
*
InPtr;
float32
*
OutPtr;
float32
*
CoefPtr;
float32
*
CurrentInPtr;
float32
*
CurrentOutPtr;
Uint16 Stages;
Uint16 FFTSize;
} CFFT_F32_STRUCT;
Table 3.2 describes each element
Alignment Requirements:
The Magnitude buffer requires no alignment but the input buffer to the complex FFT routine will
need alignment if using the CFFT_f32().
Notes:
1. All buffers and stack are placed in internal memory (zero-wait states in data space).
2. The magnitude calculation calls the sqrt function within the runtime-support library.
The magnitude function has not been optimized at this time.
3. The use of the sqrt function in the FPUfastRTS library will speed up this routine. The
example for the CFFT has an alternate build configuration (Debug_FASTRTS) where
the rts2800_fpu32_fast_supplement.lib is used in place of the standard runtime li-
brary rts2800_fpu32.lib.
Sep 10, 2012 19