beautypg.com

Texas Instruments TMS320C64X User Manual

Page 42

background image

DSP_fft16x16r

4-14

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

DSP_fft16x16r

Function

void DSP_fft16x16r(int nx, short * restrict x, const short * restrict w, const un-
signed char * restrict brev, short * restrict y, int radix, int offset, int nmax)

Arguments

nx

Length of FFT in complex samples. Must be power of 2 or 4, and

16384

x[2*nx]

Pointer to complex 16-bit data input

w[2*nx]

Pointer to complex FFT coefficients

brev[64]

Pointer to bit reverse table containing 64 entries. Only required for
C code. Use NULL for assembly code since BITR instruction
is used instead.

y[2*nx]

Pointer to complex 16-bit data output

radix

Smallest FFT butterfly used in computation used for
decomposing FFT into sub-FFTs. See notes.

offset

Index in complex samples of sub-FFT from start of main FFT.

nmax

Size of main FFT in complex samples.

Description

This routine implements a cache-optimized complex forward mixed radix FFT
with scaling, 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 as interleaved 16-bit real and
imaginary parts. The code uses a special ordering of FFT coefficients (also
called twiddle factors).

This redundant set of twiddle factors is size 2*N short samples. As pointed out
in subsequent sections, dividing these twiddle factors by 2 will give an effective
divide by 4 at each stage to guarantee no overflow. The function is accurate
to about 68dB of signal to noise ratio to the DFT function as follows.