⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mimo_random.c

📁 This model is just testing an idea of MIMO, which IEEE802.11n will have. But I havo not seen the s
💻 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 + -