DSP_fft16x16r
4-22
xl1_1 = x6;
xl0_1 = x7;
}
yt2 = xl0_0 + xl1_1;
yt3 = xl1_0 − xl0_1;
yt6 = xl0_0 − xl1_1;
yt7 = xl1_0 + xl0_1;
if (radix == 2)
{
yt7 = xl1_0 − xl0_1;
yt3 = xl1_0 + xl0_1;
}
y0[k] = yt0; y0[k+1] = yt1;
k += n>>1;
y0[k] = yt2; y0[k+1] = yt3;
k += n>>1;
y0[k] = yt4; y0[k+1] = yt5;
k += n>>1;
y0[k] = yt6; y0[k+1] = yt7;
}
}
Special Requirements
- In-place computation is not allowed.
- nx must be a power of 2 or 4.
- Complex input data x[ ], twiddle factors w[ ], and output array y[ ] must be
double-word aligned.
- Real values are stored in even word, imaginary in odd.
- All data are in short precision or Q.15 format. Allowed input dynamic range
is 16 − (log
2
(nx)−ceil[log
4
(nx)−1]).
- Output results are returned in normal order.
- The FFT coefficients (twiddle factors) are generated using the program
tw_fft16x16 provided in the directory ‘support\fft’. The scale factor must be
32767.5. The input data must be scaled by 2
(log2(nx)−ceil[log4(nx)−1])
to
completely prevent overflow.