DSP_fft16x16r

ptr_x2[h2p1] = (yt0 * co2 − xt0 * si2 + 0x00008000) >> 16; ptr_x2[l2 ] = (xt2 * co3 + yt2 * si3 + 0x00008000) >> 16; ptr_x2[l2p1] = (yt2 * co3 − xt2 * si3 + 0x00008000) >> 16;

}

tw_offset += fft_jmp; stride = stride>>2;

}/* end while */ j = offset>>2; ptr_x0 = ptr_x; y0 = y;

/* determine _norm(nmax) − 17 */ l0 = 31;

if (((nmax>>31)&1)==1)

num = ~nmax; else

num = nmax; if (!num)

l0 = 32; else

{

a=num&0xFFFF0000; if (a) { l0−=16; num=a; } a=num&0xFF00FF00; if (a) { l0−= 8; num=a; } a=num&0xF0F0F0F0; if (a) { l0−= 4; num=a; } a=num&0xCCCCCCCC; if (a) { l0−= 2; num=a; } a=num&0xAAAAAAAA; if (a) { l0−= 1; }

l0 −= 1;

l0 −= 17;

if(radix == 2 radix == 4) for (i = 0; i < n; i += 4)

{

/* reversal computation */

j0 = (j ) & 0x3F;

j1 = (j >> 6) & 0x3F;

k0 = brev[j0];

k1 = brev[j1];

4-20

Page 48
Image 48
Texas Instruments TMS320C64X manual DSPfft16x16r