Texas Instruments TMS320C64X Programmer's Reference Manual page 56

Dsp little-endian dsp library
Hide thumbs Also See for TMS320C64X:
Table of Contents

Advertisement

DSP_fft32x32s
DSP_fft32x32s
Function
Arguments
Description
Algorithm
Special Requirements
4-28
Complex Forward Mixed Radix 32 x 32-bit FFT With Scaling
void DSP_fft32x32s(const int * restrict w, int nx, int * restrict x, int * restrict y)
w[2*nx]
Pointer to complex 32-bit FFT coefficients.
nx
Length of FFT in complex samples. Must be power of 2 or 4,
and 16 ≤ nx ≤ 32768.
x[2*nx]
Pointer to complex 32-bit data input.
y[2*nx]
Pointer to complex 32-bit data output.
This routine computes an extended precision complex forward mixed radix
FFT with scaling, rounding and digit reversal. Input data x[ ], output data y[ ],
and coefficients w[ ] are 32-bit. The output is returned in the separate array y[ ]
in normal order. Each complex value is stored with interleaved real and
imaginary parts. The code uses a special ordering of FFT coefficients (also
called twiddle factors) and memory accesses to improve performance in the
presence of cache. The C code to generate the twiddle factors is the same one
used for the DSP_fft32x32 routine.
Scaling by 2 (i.e., >>1) takes place at each radix-4 stage except for the last
one. A radix-4 stage can add a maximum of 2 bits, which would require scaling
by 4 to completely prevent overflow. Thus, the input data must be scaled by
log2(nx)−ceil[log4(nx)−1])
2
.
The C equivalent of the assembly code without restrictions is similar to the one
shown for the fft16x16t routine. For further details, see the source code of the
C version of this function, which is provided with this library. Note that the
assembly code is hand optimized and restrictions may apply.
-
In-place computation is not allowed.
-
The size of the FFT, nx, must be a power of 4 or 2 and greater than or equal
to 16 and less than 32768.
-
The arrays for the complex input data x[ ], complex output data y[ ], and
twiddle factors w[ ] must be double-word aligned.
-
The input and output data are complex, with the real/imaginary
components stored in adjacent locations in the array. The real
components are stored at even array indices, and the imaginary
components are stored at odd array indices.

Hide quick links:

Advertisement

Table of Contents
loading

This manual is also suitable for:

Tms320c64x+

Table of Contents