DSP_fft
4-102
/* 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;