Texas Instruments TMS320C64X User Manual
Page 39
DSP_fft16x16_imre
4-11
C64x+ DSPLIB Reference
Complex Forward Mixed Radix 16 x 16-bit FFT, With Im/Re Order
DSP_fft16x16_imre
Function
void DSP_fft16x16_imre(const short * restrict w, int nx, short * restrict x, short
* restrict y)
Arguments
w[2*nx]
Pointer to complex Q.15 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 16-bit data input.
y[2*nx]
Pointer to complex 16-bit data output.
Description
This routine computes a complex forward mixed radix FFT with truncation and
digit reversal. Input data x[ ], output data y[ ], and coefficients w[ ] are 16-bit.
The output is returned in the separate array y[ ] in normal order. Each complex
value is stored with interleaved imaginary and real 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.
Algorithm
All stages are radix-4 except the last one, which can be radix-2 or radix-4,
depending on the size of the FFT. All stages except the last one scale by two
the stage output data.
Special Requirements
-
In-place computation is not allowed.
-
The size of the FFT, nx, must be power of 2 or 4, and 16
≤
nx
≤
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 imaginary/real
components stored in adjacent locations in the array. The imaginary
components are stored at even array indices, and the real components are
stored at odd array indices. All data are in short precision or Q.15 format.
Implementation Notes
-
Bank Conflicts: no conflicts occur.
-
Interruptibility: The code is interruptible.