DSP_fft16x16t
} |
|
|
else |
|
|
{ |
|
|
y1 | = y0 | + (int) (npoints >> 1); |
y3 | = y2 | + (int) (npoints >> 1); |
l1 | = norm + 2; | |
j0 | = 4; |
|
n0 | = npoints >> 2; | |
} |
|
|
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
/* The following code reads data indentically for either a radix 4 | */ |
/* or a radix 2 style decomposition. It writes out at different | */ |
/* locations though. It checks if either half the points, or a | */ |
/* quarter of the complex points have been exhausted to jump to | */ |
/* pervent double reversal. | */ |
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/ j = 0;
for (i = 0; i < npoints; i += 8)
{
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/ /* Digit reverse the index starting from 0. The increment to ”j” */
/* is either by 4, or 8.*/
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/ DIG_REV(j, l1, h2); /*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
/* | Read in the input data, from the first eight locations. These | */ |
/* | are transformed either as a radix4 or as a radix 2. | */ |
/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/
x_0 | = x0[0]; | x_1 | = x0[1]; |
x_2 | = x0[2]; | x_3 | = x0[3]; |
x_4 | = x0[4]; | x_5 | = x0[5]; |
x_6 | = x0[6]; | x_7 | = x0[7]; |
x0 += 8; |
|
|
|
| |
xh0_0 | = x_0 | + x_4; | xh1_0 | = x_1 | + x_5; |
xl0_0 | = x_0 | − x_4; | xl1_0 | = x_1 | − x_5; |
xh0_1 | = x_2 | + x_6; | xh1_1 | = x_3 | + x_7; |
C64x+ DSPLIB Reference |