📄 mimo_random.c
字号:
/*****************************************************************************//* FIle Name : mimo_random.c *//* Description : WLAN a single PPDU test w/random *//* author : miffie *//* Date : oct/28/05 *//* Copyright (c) 2005 miffie All rights reserved. *//*****************************************************************************/char mimo_random() { //mimo_random int ii , jj, kk ;struct binaryset bset0;struct complexset ctop , sram ;struct binarysetset bss ;struct binaryset bset[8] ;struct complexsetset css ;struct complexset cset[8] ;struct complexset cset0 ;char pilot_shifter ;char *top , *tmp ;char RATE ;short LENGTH ;char fail = 1 ;char level ;char num_out , num_inp ; printf(" Copyright (c) 2005 miffie All rights reserved.\n") ; //Main num_out =3 ; num_inp =5 ; // RATE = int_random(8) ; RATE = (RATE==0) ? 0xb : (RATE==1) ? 0xf : (RATE==2) ? 0xa : (RATE==3) ? 0xe : (RATE==4) ? 0x9 : (RATE==5) ? 0xd : (RATE==6) ? 0x8 : 0xc ; LENGTH = 3 + int_random(1024) ; num_out = 3 ; bss.size = num_out ; bss.set = &bset[0] ; css.size = num_out ; css.set = &cset[0] ; for ( jj=0;jj<num_out;jj++) { //encode if ((top = (char *)malloc(LENGTH*8*sizeof(char)) ) == NULL) { PRINTF( " malloc failed in mimo_rand.c\n") ; } //fail else { //allocated //Make DATA bits bset0.data = top ; bset0.size = LENGTH*8 ; bset0.format = 0 ; tmp = top ; for ( ii = 0 ; ii<LENGTH*8 ;ii++ ) { *tmp++ = rand() &0x1 ; } bss.set[jj] = copy_binaryset( bset0 ) ; //copy expectation data print_binaryset( bset0 ) ; // cset[jj] = ppdu_enc ( bset0 , RATE, LENGTH ) ; //RATE 36 Mhz, LENGTH //Compare with Table G.24 for entire packet if(jj==0) fprint_complexset( "ppdu0.dat" , cset[0] ) ; else if(jj==1) fprint_complexset( "ppdu1.dat" , cset[1] ) ; else if(jj==2) fprint_complexset( "ppdu2.dat" , cset[2] ) ; else if(jj==3) fprint_complexset( "ppdu3.dat" , cset[3] ) ; else if(jj==4) fprint_complexset( "ppdu4.dat" , cset[4] ) ; } //allocated } //encode //Channel Estimation level = ((RATE&0x3)==0) ? 0 : //QAM64 2 ; //others // num_inp level css = multi_channel( css , num_inp ,level ) ; //MIMO process css = mimo_dfe( css , num_out ) ; for ( jj=0;jj<css.size;jj++) { //decode print_complexset( css.set[jj] ) ; } //Decode fail = 0 ; for ( jj=0;jj<css.size;jj++) { //decode cset0.size = css.set[jj].size ; cset0.data = css.set[jj].data ; if(jj==0) fprint_complexset( "mimo0.dat" , cset0 ) ; else if(jj==1) fprint_complexset( "mimo1.dat" , cset0 ) ; else if(jj==2) fprint_complexset( "mimo2.dat" , cset0 ) ; else if(jj==3) fprint_complexset( "mimo3.dat" , cset0 ) ; else if(jj==4) fprint_complexset( "mimo4.dat" , cset0 ) ; bset0 = ppdu_dec ( cset0 ) ; fail += compare_binaryset( bss.set[jj], bset0 ) ; //compare expectation data and decoded data } //decode return ( fail ) ;} //mimo_random
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -