Texas Instruments TMS320C64X User Manual

Page 143

Advertising
background image

DSP_fft16x16t

4-115

C64x+ DSPLIB Reference

}

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;

Advertising