DSP_fft16x16t

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

co10 = w[j+1];

si10 = w[j+0];

co11 = w[j+3];

si11 = w[j+2];

co20 = w[j+5];

si20 = w[j+4];

co21 = w[j+7];

si21 = w[j+6];

co30 = w[j+9];

si30 = w[j+8];

co31 = w[j+11];

si31 = w[j+10];

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

/* Read in the first complex input for the butterflies.

*/

/* 1st complex input to 1st butterfly:

x[0]

+ jx[1]

*/

/* 1st complex input to 2nd butterfly:

x[2]

+ jx[3]

*/

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

x_0

=

x[0];

x_1

=

x[1];

x_2

=

x[2];

x_3

=

x[3];

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/ /* Read in the complex inputs for the butterflies. Each of the*/

/* successive complex inputs of the butterfly are seperated

*/

/* by a fixed amount known as stride. The stride starts out

*/

/* at N/4, and quarters with every stage.

*/

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

x_l1_0 =

x[l1

];

x_l1_1 = x[l1+1];

x_l1_2 =

x[l1+2];

x_l1_3 = x[l1+3];

x_l2_0

=

x[l2

];

x_l2_1

= x[l2+1];

x_l2_2

=

x[l2+2];

x_l2_3

= x[l2+3];

x_h2_0

=

x[h2

];

x_h2_1

= x[h2+1];

x_h2_2

=

x[h2+2];

x_h2_3

= x[h2+3];

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

/* Two butterflies are evaluated in parallel. The following

*/

/* results will be shown for one butterfly only, although

*/

/* both are being evaluated in parallel.

*/

/*

*/

/* Perform DSP_radix2 style DIF butterflies.

*/

/*−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−*/

xh0_0

= x_0

+ x_l1_0;

xh1_0

= x_1

+ x_l1_1;

xh0_1

= x_2

+ x_l1_2;

xh1_1

= x_3

+ x_l1_3;

xl0_0

= x_0

− x_l1_0;

xl1_0

= x_1

− x_l1_1;

C64x+ DSPLIB Reference

4-111

Page 139
Image 139
Texas Instruments TMS320C64X manual C64x+ Dsplib Reference 111