DSP_fft16x16r
x_1 = x[1]; x_h2 = x[h2]; x_h2p1 = x[h2+1]; x_l1 = x[l1]; x_l1p1 = x[l1+1]; x_l2 = x[l2]; x_l2p1 = x[l2+1];
xh0 | = | x_0 | + | x_l1; |
xh1 | = | x_1 | + | x_l1p1; |
xl0 | = | x_0 | − | x_l1; |
xl1 | = | x_1 | − | x_l1p1; |
xh20 | = | x_h2 | + | x_l2; |
xh21 | = | x_h2p1 | + | x_l2p1; |
xl20 | = | x_h2 | − | x_l2; |
xl21 = | x_h2p1 − x_l2p1; | |||
ptr_x0 | = x; |
|
| |
ptr_x0[0] = ((short)(xh0 + xh20))>>1; | ||||
ptr_x0[1] = ((short)(xh1 + xh21))>>1; | ||||
ptr_x2 | = ptr_x0; |
| ||
x += 2; |
|
|
|
predj = (j − fft_jmp); if (!predj) x += fft_jmp; if (!predj) j = 0;
xt0 = xh0 − xh20; yt0 = xh1 − xh21; xt1 = xl0 + xl21; yt2 = xl1 + xl20; xt2 = xl0 − xl21; yt1 = xl1 − xl20; l1p1 = l1+1; h2p1 = h2+1; l2p1 = l2+1;
ptr_x2[l1 ] = (xt1 * co1 + yt1 * si1 + 0x00008000) >> 16; ptr_x2[l1p1] = (yt1 * co1 − xt1 * si1 + 0x00008000) >> 16; ptr_x2[h2 ] = (xt0 * co2 + yt0 * si2 + 0x00008000) >> 16;
C64x+ DSPLIB Reference |