This routine performs the decimation-in-time (DIT) radix-2 FFT of the input array x. x has N complex floating-point numbers arranged as successive real and imaginary number pairs. Input array x contains N complex points (N*2 elements). The coefficients for the FFT are passed to the function in array w which contains N/2 complex numbers (N elements) as successive real and imaginary number pairs. The FFT coefficients w are in N/2 bit-reversed order The elements of input array x are in normal order The assembly routine performs 4 output samples (2 real and 2 imaginary) for a pass through inner loop.
@param x Pointer to complex data input.
@param w Pointer to complex twiddle factor in bit-reverse order.
@param n Length of FFT in complex samples, power of 2 such that n>=32.
- Algorithm:
- DSPF_sp_cfftr2_dit_cn.c is the natural C equivalent of the optimized linear assembly code without restrictions. Note that the linear assembly code is optimized and restrictions may apply.
- Assumptions:
- N needs to be power of 2 and N >= 32
x, and w should be align on the double-word boundary
The FFT Coefficients w are in bit-reversed order
The elements of input array x are in normal order
The imaginary coefficients of w are negated as {cos(d*0), sin(d*0), cos(d*1), sin(d*1) ...} as opposed to the normal sequence of {cos(d*0), -sin(d*0), cos(d*1), -sin(d*1) ...} where d = 2*PI/n.
- Implementation Notes:
- Interruptibility: The code is interrupt-tolerant but not interruptible.
Endian Support: The code supports both big and little endian modes.