DSP_fft16x32
DSP_fft16x32 | Complex Forward Mixed Radix 16 x | |||
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 | |
|
| y[2*nx] | Pointer to complex | |
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 | ||
|
| |||
|
| 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
-
-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
-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.