DSP_fft16x16

4.3 FFT

DSP_fft16x16

Complex Forward Mixed Radix 16 x 16-bit FFT

Function

 

 

 

 

void DSP_fft16x16(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 rounding 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 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.

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 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. All data are in short precision or Q.15 format.

4-8

Page 36
Image 36
Texas Instruments TMS320C64X manual Fft, DSPfft16x16, Complex Forward Mixed Radix 16 x 16-bit FFT