DSP_fft

/*

the stride between the elements

as follows:

*/

/*

x(n), x(n + s), x(n + 2*s), x(n

+ 3*s).

*/

/*

 

 

*/

/*

These four inputs are used to calculate four outputs */

/*

as shown below:

 

*/

/*

 

 

*/

/* X(4k) = x(n) + x(n + N/4) + x(n

+ N/2) + x(n + 3N/4) */

/* X(4k+1)= x(n) −jx(n + N/4) − x(n

+ N/2) +jx(n + 3N/4) */

/* X(4k+2)= x(n) − x(n +N/4) + x(N

+ N/2) − x(n + 3N/4) */

/* X(4k+3)= x(n) +jx(n + N/4) − x(n

+ N/2) −jx(n + 3N/4) */

/*

 

 

*/

/* These four partial results can be re−written to show

*/

/* the underlying DIF structure similar to DSP_radix2 as */

/* follows:

*/

/*

*/

/* X(4k) = (x(n)+x(n + N/2)) + (x(n+N/4)+ x(n + 3N/4))

*/

/* X(4k+1)= (x(n)−x(n + N/2)) −j(x(n+N/4) − x(n + 3N/4)) */ /* x(4k+2)= (x(n)+x(n + N/2)) − (x(n+N/4)+ x(n + 3N/4)) */

/* X(4k+3)= (x(n)−x(n + N/2)) +j(x(n+N/4) − x(n + 3N/4)) */

/**/

/* which leads to the real and imaginary values as foll: */

/*

 

 

 

 

*/

/* y0r = x0r + x2r +

x1r +

x3r

=

xh0 + xh20

*/

/* y0i = x0i + x2i +

x1i +

x3i

=

xh1 + xh21

*/

/* y1r = x0r − x2r + (x1i −

x3i)

=

xl0 + xl21

*/

/* y1i = x0i − x2i − (x1r −

x3r)

=

xl1 − xl20

*/

/* y2r = x0r + x2r − (x1r +

x3r)

=

xh0 − xh20

*/

/* y2i = x0i + x2i − (x1i +

x3i

=

xh1 − xh21

*/

/* y3r = x0r − x2r − (x1i −

x3i)

=

xl0 − xl21

*/

/* y3i = x0i − x2i + (x1r −

x3r)

=

xl1 + xl20

*/

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

xh0

= x0r

+

x2r;

xh1

= x0i

+

x2i;

xh20 = x1r

+

x3r;

xh21 = x1i

+

x3i;

xl0

= x0r

x2r;

4-102

Page 130
Image 130
Texas Instruments TMS320C64X manual 102