亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wib_fft_f.c

?? 802.16e物理層FFT算法的實現(xiàn)。嚴(yán)格按照802.16e實現(xiàn)。
?? C
?? 第 1 頁 / 共 2 頁
字號:
            fft_tbl fft_tbl_inst
            )
{
    //complex16 data_reorder[256];
    unsigned short i,j,k,p;
    

    signed short exp_statge[3] = {0,0,0},exponent = 0;

    unsigned char bit_width;   //width of fft compute
    unsigned short N;                //point of fft
            

    unsigned char COEF_W ;
    unsigned short BOUND1;
    unsigned short BOUND2,BOUND3;
    unsigned char log2n;
   
   
    
    complex16 *p_dat;
    
    unsigned short base,index,index_wp,base_index_wp;
    complex16 x1,x2,x3,x4;

    
    unsigned short temp1;

    complex16 *p_w1p,*p_w2p,*p_w3p;
    unsigned short *p_reorder_idx;
    unsigned char degree;
	FILE *fp_outdbg;
//	signed short test;
    
    p_w1p = fft_tbl_inst.p_w1p;
    p_w2p = fft_tbl_inst.p_w2p;
    p_w3p = fft_tbl_inst.p_w3p;
    p_reorder_idx = fft_tbl_inst.p_reorder_idx;
    p_dat = p_dat_out;
    N = fft_tbl_inst.N;
    bit_width = fft_tbl_inst.bit_width;

    BOUND1 = (unsigned short)(1 << (bit_width-1));
    BOUND2 = (unsigned short)(1 << (bit_width));
	BOUND3 = (unsigned short)(1 << (bit_width+1));
    COEF_W = bit_width-1;
    degree = fft_tbl_inst.degree;
    log2n = fft_tbl_inst.log2n;
    
   
    //data reorder
    for (i = 0; i < N; i++)
    {
        p_dat[i].r = (p_dat_in + *(p_reorder_idx+i)) -> r;
        if (mode) {
            p_dat[i].i = (signed short)(-((p_dat_in + *(p_reorder_idx+i)) -> i));
        } else {
            p_dat[i].i = (p_dat_in + *(p_reorder_idx+i)) -> i;
        }

	}
	for (i = 0; i < N; i++) {
		if (((p_dat[i].r) >= BOUND1) || ((p_dat[i].r) < -BOUND1)){
            exp_statge[0] = 1;
		}
		if (((p_dat[i].i) >= BOUND1) || ((p_dat[i].i) < -BOUND1)){
            exp_statge[0] = 1;
		}
	}

	if(exp_statge[0]) {
		for (i = 0; i < N; i++) {
			p_dat[i].r = p_dat[i].r >> 1;
			p_dat[i].i = p_dat[i].i >> 1;
		}
	}
   

 //printf("N:%d\n",N >> 6);  
   
	exp_statge[0] = 0;
    k = 0;
    base_index_wp = 0;
    for (i = 0; i < degree; i++) {
        base_index_wp = (unsigned short)(base_index_wp + k);
        index_wp = base_index_wp;
        //t2  = N;
        temp1 = (unsigned short)(N >> (unsigned short)((i + 1) * 2));
        //temp1 = (N / pow(4,i+1));
        // printf("tem:%d\n%d\n",temp1,i);  

        for (j = 0; j < temp1; j++) {      //for k=1:N/(4^degree) 
            base = (unsigned short)(j * POW4I);
            
            k = 0;
            do {
                index = (unsigned short)(base + k);
                //if result is too large then shorten bits
				if (exp_statge[2]) {
					x1.r = (signed short)(p_dat[index].r >> 3);
                    x1.i = (signed short)(p_dat[index].i >> 3);
                    x2.r = (signed short)(p_dat[index+POW4I_1].r >> 3);
                    x2.i = (signed short)(p_dat[index+POW4I_1].i >> 3);
                    x3.r = (signed short)(p_dat[index+2*POW4I_1].r >> 3);
                    x3.i = (signed short)(p_dat[index+2*POW4I_1].i >> 3);
                    x4.r = (signed short)(p_dat[index+3*POW4I_1].r >> 3);
                    x4.i = (signed short)(p_dat[index+3*POW4I_1].i >> 3);
				}
                else if (exp_statge[1]) {
                    x1.r = (signed short)(p_dat[index].r >> 2);
                    x1.i = (signed short)(p_dat[index].i >> 2);
                    x2.r = (signed short)(p_dat[index+POW4I_1].r >> 2);
                    x2.i = (signed short)(p_dat[index+POW4I_1].i >> 2);
                    x3.r = (signed short)(p_dat[index+2*POW4I_1].r >> 2);
                    x3.i = (signed short)(p_dat[index+2*POW4I_1].i >> 2);
                    x4.r = (signed short)(p_dat[index+3*POW4I_1].r >> 2);
                    x4.i = (signed short)(p_dat[index+3*POW4I_1].i >> 2);
                } else if (exp_statge[0]) {
                    x1.r = (signed short)(p_dat[index].r >> 1);
                    x1.i = (signed short)(p_dat[index].i >> 1);
                    x2.r = (signed short)(p_dat[index+POW4I_1].r >> 1);
                    x2.i = (signed short)(p_dat[index+POW4I_1].i >> 1);
                    x3.r = (signed short)(p_dat[index+2*POW4I_1].r >> 1);
                    x3.i = (signed short)(p_dat[index+2*POW4I_1].i >> 1);
                    x4.r = (signed short)(p_dat[index+3*POW4I_1].r >> 1);
                    x4.i = (signed short)(p_dat[index+3*POW4I_1].i >> 1);
                } else {
                    x1.r = p_dat[index].r;
                    x1.i = p_dat[index].i;
                    x2.r = p_dat[index+POW4I_1].r;
                    x2.i = p_dat[index+POW4I_1].i;
                    x3.r = p_dat[index+2*POW4I_1].r;
                    x3.i = p_dat[index+2*POW4I_1].i;
                    x4.r = p_dat[index+3*POW4I_1].r;
                    x4.i = p_dat[index+3*POW4I_1].i;
                }
                index_wp = (unsigned short)(base_index_wp + k);
                // base4 butterfly              
                dft4p(x1,x2,x3,x4,p_w1p[index_wp],p_w2p[index_wp],p_w3p[index_wp],
                    COEF_W,&p_dat[index],&p_dat[index+POW4I_1],
                    &p_dat[index+2*POW4I_1],&p_dat[index+3*POW4I_1]);
                
                
             }while(++k < POW4I_1);
        } 
        
       	if (exp_statge[2]) {
			exponent = (signed short)(exponent + 3);
		} else if (exp_statge[1]) {
			exponent = (signed short)(exponent + 2);
		} else if(exp_statge[0]) {
			exponent = (signed short)(exponent + 1);
		}

        exp_statge[0] = 0;
        exp_statge[1] = 0;
		exp_statge[2] = 0;
		
        for (p = 0; p < N; p++) {
			if (((p_dat[p].r) >= BOUND3) || ((p_dat[p].r) < -BOUND3)){
                exp_statge[2] = 1;
            } else if (((p_dat[p].r) >= BOUND2) || ((p_dat[p].r) < -BOUND2)){
                exp_statge[1] = 1;
            } else if (((p_dat[p].r) >= BOUND1) || ((p_dat[p].r) < -BOUND1)){
                exp_statge[0] = 1;
            }

			if (((p_dat[p].i) >= BOUND3) || ((p_dat[p].i) < -BOUND3)){
                exp_statge[2] = 1;
            } else if (((p_dat[p].i) >= BOUND2) || ((p_dat[p].i) < -BOUND2)){
                exp_statge[1] = 1;
            } else if (((p_dat[p].i) >= BOUND1) || ((p_dat[p].i) < -BOUND1)) {
                exp_statge[0] = 1;
            }
			
        }

    }
   // }

   // xx = clock()-xx;
   // printf("FFT time is %d",xx);
    exp_statge[0] = 0;
    exp_statge[1] = 0;
	exp_statge[2] = 0;
		
    for (p = 0; p < N; p++) {
		if (((p_dat[p].r) >= BOUND3) || ((p_dat[p].r) < -BOUND3)){
            exp_statge[2] = 1;
        } else if (((p_dat[p].r) >= BOUND2) || ((p_dat[p].r) < -BOUND2)){
            exp_statge[1] = 1;
        } else if (((p_dat[p].r) >= BOUND1) || ((p_dat[p].r) < -BOUND1)){
            exp_statge[0] = 1;
        }

		if (((p_dat[p].i) >= BOUND3) || ((p_dat[p].i) < -BOUND3)){
            exp_statge[2] = 1;
        } else if (((p_dat[p].i) >= BOUND2) || ((p_dat[p].i) < -BOUND2)){
            exp_statge[1] = 1;
        } else if (((p_dat[p].i) >= BOUND1) || ((p_dat[p].i) < -BOUND1)) {
            exp_statge[0] = 1;
        }
			
    }

	if (exp_statge[2]) {
        for (i = 0; i < N; i++) {
            (p_dat+i)->r = (signed short)(((p_dat+i)->r) >> 3);
            (p_dat+i)->i = (signed short)(((p_dat+i)->i) >> 3);
        }
    } else if (exp_statge[1]) {
        for (i = 0; i < N; i++) {
            (p_dat+i)->r = (signed short)(((p_dat+i)->r) >> 2);
            (p_dat+i)->i = (signed short)(((p_dat+i)->i) >> 2);
        }
    } else if (exp_statge[0]) {
        for (i = 0; i < N; i++) {
            (p_dat+i)->r = (signed short)(((p_dat+i)->r) >> 1);
            (p_dat+i)->i = (signed short)(((p_dat+i)->i) >> 1);
        }
    }

	if (exp_statge[2]) {
        exponent = (signed short)(exponent + 3);
    } else if (exp_statge[1]) {
        exponent = (signed short)(exponent + 2);
    } else if(exp_statge[0]) {
        exponent = (signed short)(exponent + 1);
    }

    if (mode) {
        for (i = 0; i < N; i++) {
			if(((p_dat+i)->i) == -BOUND1) {
				(p_dat+i)->i = BOUND1-1;
			} else {
				(p_dat+i)->i = (signed short)(-((p_dat+i)->i));
			}
        }
    }

    if (mode) {
        exponent = (signed short)(exponent-log2n);
    }

	if(exponent==-8) {
		exponent=-8;
	}

	#ifdef  DEBUG_OUT_FFT_EXPONENT
	if (mode) {
		fp_outdbg   = fopen("fft_exponent.txt","at");   //append, txt
		fprintf(fp_outdbg,"%d\n",exponent);
		fclose(fp_outdbg);
	}
    #endif
    
    return exponent;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆成人传媒免费观看| 午夜精品福利一区二区三区av| 韩国毛片一区二区三区| 欧美一区二区视频免费观看| 蜜臀av一级做a爰片久久| 欧美大胆一级视频| 国产剧情av麻豆香蕉精品| 久久先锋影音av鲁色资源网| 国产高清成人在线| 中文字幕视频一区二区三区久| 色综合久久88色综合天天免费| 亚洲在线视频免费观看| 欧美另类videos死尸| 久久69国产一区二区蜜臀| 国产视频视频一区| 色偷偷成人一区二区三区91| 午夜精品久久久久| 久久先锋影音av| 色网站国产精品| 极品少妇一区二区三区精品视频 | 欧美日韩一区二区三区在线看 | 国产91清纯白嫩初高中在线观看| 国产精品拍天天在线| 欧美色精品天天在线观看视频| 久久66热偷产精品| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩视频在线一区二区| 国产一区二区三区香蕉 | 香蕉久久一区二区不卡无毒影院| 欧美成人精品1314www| 99国产精品久久| 美女视频黄久久| 亚洲欧美国产毛片在线| 国产91丝袜在线18| 日本在线不卡视频| 中文字幕一区二区三区蜜月| 欧美一卡2卡3卡4卡| 成人高清视频免费观看| 日本va欧美va欧美va精品| 最好看的中文字幕久久| 欧美不卡一二三| 在线视频观看一区| 成人午夜av电影| 卡一卡二国产精品| 一区二区成人在线视频| 久久久亚洲午夜电影| 91麻豆精品国产91久久久久久久久 | 欧美一级在线观看| 91成人免费在线| 成人高清av在线| 精品一区二区精品| 亚洲h动漫在线| 亚洲欧美日韩系列| 久久精品日韩一区二区三区| 制服视频三区第一页精品| 99re热这里只有精品免费视频 | 喷水一区二区三区| 一区二区三区国产| 国产精品美女久久久久aⅴ| 91精品国产欧美一区二区成人| 色久综合一二码| 99re6这里只有精品视频在线观看| 国模冰冰炮一区二区| 日韩电影网1区2区| 亚洲成人自拍一区| 一区二区日韩av| 亚洲人成电影网站色mp4| 国产精品热久久久久夜色精品三区| 久久综合久久综合九色| 欧美xxx久久| 欧美电视剧在线观看完整版| 日韩欧美色电影| 日韩精品最新网址| 欧美一区日本一区韩国一区| 欧美日韩电影一区| 欧美日韩综合一区| 欧美裸体bbwbbwbbw| 欧美日本一区二区在线观看| 欧美日韩在线三级| 9191久久久久久久久久久| 欧美日韩国产色站一区二区三区| 在线观看视频一区二区欧美日韩| 色偷偷88欧美精品久久久| 欧洲人成人精品| 欧美性受xxxx| 337p亚洲精品色噜噜| 欧美一区二区日韩| 欧美不卡一区二区| 欧美激情中文不卡| 亚洲图片激情小说| 亚洲一区二区三区三| 亚欧色一区w666天堂| 日韩中文字幕av电影| 蜜桃传媒麻豆第一区在线观看| 久草在线在线精品观看| 国产精品系列在线观看| 精品福利一区二区三区免费视频| 久久综合色一综合色88| 亚洲精品国产一区二区三区四区在线| 欧美视频日韩视频在线观看| 欧美日韩视频在线一区二区| 欧美一级黄色片| 中文字幕精品在线不卡| 亚洲黄色免费电影| 久久精品国产99久久6| 国产99精品国产| 在线一区二区视频| 337p日本欧洲亚洲大胆精品| 国产精品久久久爽爽爽麻豆色哟哟 | 日韩国产欧美一区二区三区| 国产又粗又猛又爽又黄91精品| 成人免费高清在线观看| 欧美视频一区二区在线观看| 日韩欧美美女一区二区三区| 国产欧美一区二区在线观看| 亚洲一区二区三区四区五区中文 | 亚洲欧美国产高清| 极品瑜伽女神91| 日韩精品视频网站| 亚洲动漫第一页| 久久精品国产免费| 男男成人高潮片免费网站| 国产成人精品亚洲午夜麻豆| 波多野结衣中文字幕一区| 91网页版在线| 欧美色老头old∨ideo| 欧美一区二区在线不卡| 亚洲欧美一区二区三区久本道91| 亚洲女同女同女同女同女同69| 亚洲综合一二三区| 久久精品国产99| 丁香婷婷综合色啪| 91精品国产91综合久久蜜臀| 国产网站一区二区| 亚洲国产高清不卡| 美女尤物国产一区| 色综合色综合色综合色综合色综合| 欧美中文字幕一区二区三区亚洲| 日韩久久免费av| 尤物在线观看一区| 国产精品影视天天线| 欧美性一二三区| www激情久久| 亚洲电影欧美电影有声小说| 成人黄页在线观看| 欧美一区二区免费视频| 国产精品不卡在线| 蜜桃av一区二区在线观看 | 欧美日韩一区国产| 国产精品视频观看| 蜜臀精品一区二区三区在线观看 | 91麻豆产精品久久久久久| 久久只精品国产| 三级在线观看一区二区| 丰满岳乱妇一区二区三区| 欧美日本一区二区| 亚洲色图欧美在线| 91丨九色丨国产丨porny| 精品日韩欧美在线| 日韩精品色哟哟| 欧美疯狂性受xxxxx喷水图片| 国产精品美女久久久久久久久久久| 日本欧美在线观看| 欧美午夜精品一区二区蜜桃| 国产欧美精品区一区二区三区| 韩国女主播成人在线观看| 欧美男男青年gay1069videost| 中文乱码免费一区二区| 久久99久国产精品黄毛片色诱| 欧美日韩卡一卡二| 午夜激情综合网| 欧美性大战xxxxx久久久| 国产精品久久久99| 懂色av中文字幕一区二区三区| 精品第一国产综合精品aⅴ| 亚洲欧美国产毛片在线| 91美女片黄在线观看91美女| 国产精品国产三级国产a| 国产成人免费xxxxxxxx| 久久久蜜桃精品| 99久久精品国产精品久久| 中文一区二区完整视频在线观看| 久久国产乱子精品免费女| 欧美一区二区三区公司| 午夜不卡av在线| 精品乱码亚洲一区二区不卡| 美女一区二区在线观看| 欧美电影免费观看高清完整版| 男女男精品视频网| 国产午夜精品一区二区| 国产不卡视频一区二区三区| 久久久三级国产网站| 国产成人在线视频免费播放| 欧美国产日产图区| 成人永久aaa| 亚洲图片激情小说| 欧美系列在线观看| 国产精品久久久久国产精品日日| 色8久久精品久久久久久蜜| 亚洲欧美一区二区三区国产精品 |