DSP_fft16x16r
[Fast Fourier Transform]

Collaboration diagram for DSP_fft16x16r:


Detailed Description

void DSP_fft16x16r (int n, short *restrict ptr_x, const short *restrict ptr_w, short *restrict ptr_y, int radix, int offset, int n_max)


Function Documentation

void DSP_fft16x16r ( int  n,
short *restrict  ptr_x,
const short *restrict  ptr_w,
short *restrict  ptr_y,
int  radix,
int  offset,
int  n_max 
)

This routine implements a 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.

Parameters:
n = length of fft in complex samples
ptr_x = pointer to complex data input
ptr_w = pointer to complex twiddle factor
ptr_y = pointer to complex data output
radix = smallest fft butterfly used in computation
offset = index in complex samples of sub-fft from start of main fft
n_max = size of main fft in complex samples
Algorithm:
DSP_fft16x16r_cn.c is the natural C equivalent of the optimized intrinsic C code without restrictions. Note that the intrinsic C code is optimized and restrictions may apply.
Assumptions:
In-place computation is not allowed.
Size of FFT, nx, must be power of 2 and 16<=nx<=65536.
The arrays for the complex input data x[], complex output data y[] and twiddle factor 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. Allowed input dynamic range is 16 - (log2(nx)-ceil[log4(nx)-1]).
Implementation Notes:
Endian Support: The code supports both big and little endian modes.
Interruptibility: The code is interruptible.


Copyright 2014, Texas Instruments Incorporated