Texas Instruments TMS320C64X Security Camera User Manual


 
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.