📄 fft.c
字号:
co11 = w[j+3]; si11 = w[j+2]; */
co20 = w[j+5]; si20 = w[j+4]; // W^2 // */
co21 = w[j+7]; si21 = w[j+6]; */
co30 = w[j+9]; si30 = w[j+8]; // W^3 // */
co31 = w[j+11]; si31 = w[j+10]; */
*/
x_0 = x[0]; x_1 = x[1]; // perform 2 parallel // */
x_2 = x[2]; x_3 = x[3]; // radix4 butterflies // */
*/
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]; */
*/
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; */
xl0_1 = x_2 - x_l1_2; xl1_1 = x_3 - x_l1_3; */
*/
xh20_0 = x_h2_0 + x_l2_0; xh21_0 = x_h2_1 + x_l2_1; */
xh20_1 = x_h2_2 + x_l2_2; xh21_1 = x_h2_3 + x_l2_3; */
*/
xl20_0 = x_h2_0 - x_l2_0; xl21_0 = x_h2_1 - x_l2_1; */
xl20_1 = x_h2_2 - x_l2_2; xl21_1 = x_h2_3 - x_l2_3; */
*/
x0 = x; */
x2 = x0; // copy pointers for output// */
*/
j += 12; */
x += 4; */
predj = (j - fft_jmp); // check if reached end of // */
if (!predj) x += fft_jmp;// current twiddle factor section // */
if (!predj) j = 0; */
*/
x0[0] = xh0_0 + xh20_0; x0[1] = xh1_0 + xh21_0; */
x0[2] = xh0_1 + xh20_1; x0[3] = xh1_1 + xh21_1; */
*/
xt0_0 = xh0_0 - xh20_0; yt0_0 = xh1_0 - xh21_0; */
xt0_1 = xh0_1 - xh20_1; yt0_1 = xh1_1 - xh21_1; */
*/
xt1_0 = xl0_0 + xl21_0; yt2_0 = xl1_0 + xl20_0; */
xt2_0 = xl0_0 - xl21_0; yt1_0 = xl1_0 - xl20_0; */
xt1_1 = xl0_1 + xl21_1; yt2_1 = xl1_1 + xl20_1; */
xt2_1 = xl0_1 - xl21_1; yt1_1 = xl1_1 - xl20_1; */
*/
x2[h2 ] = (si10 * yt1_0 + co10 * xt1_0) >> 15; */
x2[h2+1] = (co10 * yt1_0 - si10 * xt1_0) >> 15; */
*/
x2[h2+2] = (si11 * yt1_1 + co11 * xt1_1) >> 15; */
x2[h2+3] = (co11 * yt1_1 - si11 * xt1_1) >> 15; */
*/
x2[l1 ] = (si20 * yt0_0 + co20 * xt0_0) >> 15; */
x2[l1+1] = (co20 * yt0_0 - si20 * xt0_0) >> 15; */
*/
x2[l1+2] = (si21 * yt0_1 + co21 * xt0_1) >> 15; */
x2[l1+3] = (co21 * yt0_1 - si21 * xt0_1) >> 15; */
*/
x2[l2 ] = (si30 * yt2_0 + co30 * xt2_0) >> 15; */
x2[l2+1] = (co30 * yt2_0 - si30 * xt2_0) >> 15; */
*/
x2[l2+2] = (si31 * yt2_1 + co31 * xt2_1) >> 15; */
x2[l2+3] = (co31 * yt2_1 - si31 * xt2_1) >> 15; */
} */
}-* end while *- */
*/
y0 = ptr_y; */
y1 = y0 + (int)(n>>1); */
y2 = y1 + (int)(n>>1); */
y3 = y2 + (int)(n>>1); */
x0 = ptr_x; */
x2 = ptr_x + (int)(n>>1); */
l1 = _norm(n) + 2; */
j = 0; */
for (i = 0; i < n; i += 8) */
{ */
h2 = _deal(j); */
h2 = _bitr(h2); */
h2 = _rotl(h2, 16); */
h2 = _shfl(h2); */
h2 >>= l1; */
*/
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; */
xh20_0 = x_2 + x_6; xh21_0 = x_3 + x_7; */
xl20_0 = x_2 - x_6; xl21_0 = x_3 - x_7; */
*/
xt0_0 = xh0_0 - xh20_0; */
yt0_0 = xh1_0 - xh21_0; */
xt1_0 = xl0_0 + xl21_0; */
yt2_0 = xl1_0 + xl20_0; */
xt2_0 = xl0_0 - xl21_0; */
yt1_0 = xl1_0 - xl20_0; */
*/
y0[2*h2 ] = xh0_0 + xh20_0; */
y0[2*h2+1] = xh1_0 + xh21_0; */
y1[2*h2 ] = xt1_0; */
y1[2*h2+1] = yt1_0; */
y2[2*h2 ] = xt0_0; */
y2[2*h2+1] = yt0_0; */
y3[2*h2 ] = xt2_0; */
y3[2*h2+1] = yt2_0; */
*/
x_10 = x2[0]; x_11 = x2[1]; */
x_12 = x2[2]; x_13 = x2[3]; */
x_14 = x2[4]; x_15 = x2[5]; */
x_16 = x2[6]; x_17 = x2[7]; */
x2 += 8; */
*/
xh0_1 = x_10 + x_14; xh1_1 = x_11 + x_15; */
xl0_1 = x_10 - x_14; xl1_1 = x_11 - x_15; */
xh20_1 = x_12 + x_16; xh21_1 = x_13 + x_17; */
xl20_1 = x_12 - x_16; xl21_1 = x_13 - x_17; */
*/
xt0_1 = xh0_1 - xh20_1; */
yt0_1 = xh1_1 - xh21_1; */
xt1_1 = xl0_1 + xl21_1; */
yt2_1 = xl1_1 + xl20_1; */
xt2_1 = xl0_1 - xl21_1; */
yt1_1 = xl1_1 - xl20_1; */
*/
y0[2*h2+2] = xh0_1 + xh20_1; */
y0[2*h2+3] = xh1_1 + xh21_1; */
y1[2*h2+2] = xt1_1; */
y1[2*h2+3] = yt1_1; */
y2[2*h2+2] = xt0_1; */
y2[2*h2+3] = yt0_1; */
y3[2*h2+2] = xt2_1; */
y3[2*h2+3] = yt2_1; */
*/
j += 4; */
if (j == n>>2) */
{ */
j += n>>2; */
x0 += (int) n>>1; */
x2 += (int) n>>1; */
} */
} */
}
/* ------------------------------------------------------------------------ */
/* Copyright (c) 2003 Texas Instruments, Incorporated. */
/* All Rights Reserved. */
/* ======================================================================== */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -