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

4-115

Page 143
Image 143
Texas Instruments TMS320C64X manual Is either by 4, or