DSP_fft16x32

DSP_fft16x32

Complex Forward Mixed Radix 16 x 32-bit FFT With Rounding

Function

 

 

 

 

void DSP_fft16x32(const short * restrict w, int nx, int * restrict x, int * 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 32-bit data input.

 

 

y[2*nx]

Pointer to complex 32-bit data output.

Description

 

This routine computes an extended precision complex forward mixed radix

 

 

FFT with rounding and digit reversal. Input data x[ ] and output data y[ ] are

 

 

32-bit, coefficients w[ ] are 16-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 as

 

 

the one used for the DSP_fft16x16r routine.

Algorithm

 

The C equivalent of the assembly code without restrictions is similar to the one

 

 

shown for the DSP_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.

Special Requirements

-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.

-The FFT coefficients (twiddle factors) are generated using the program tw_fft16x32 provided in the directory ‘support\fft’. The scale factor must be 32767.5. No scaling is done with the function; thus, the input data must be scaled by 2log2(nx) to completely prevent overflow.

4-24

Page 52
Image 52
Texas Instruments TMS320C64X manual DSPfft16x32, Complex Forward Mixed Radix 16 x 32-bit FFT With Rounding