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

📄 preamble.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 : preamble.c                                                  *//*   Description : WLAN Preamble of PPDU Encoder                             *//*   author : miffie                                                         *//*   Date   : aug/10/05                                                      *//*   Copyright (c) 2005 miffie   All rights reserved.                        *//*****************************************************************************////////////////////////////////////////////////////////////////////////////////struct complexset preamble( ) { // struct  complexset cset0, cset1 ;struct  complexset ctop ;struct  complex  *ctmp1, *ctmp2 ;int	ii ;static  char   longseq[] = { 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 ,    //-32 -25                            -1 ,-1 , 1 , 1 ,-1 , 1 ,-1 , 1 ,    //-24 -17                             1 , 1 , 1 , 1 , 1 ,-1 ,-1 , 1 ,    //-16 -9                             1 ,-1 , 1 ,-1 , 1 , 1 , 1 , 1 ,    //-8 -1                             0 , 1 ,-1 ,-1 , 1 , 1 ,-1 , 1 ,    // 0  7                            -1 , 1 ,-1 ,-1 ,-1 ,-1 ,-1 , 1 ,    // 8  15                             1 ,-1 ,-1 , 1 ,-1 , 1 ,-1 , 1 ,    //16  23                             1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 } ;  //24  31static double short_realp[] = {  0.046 , -0.132 , -0.013 ,  0.143,                                  0.092 ,  0.143 , -0.013 , -0.132,                                 0.046 ,  0.002 , -0.079 , -0.013,                                 0.000 , -0.013 , -0.079 ,  0.002 } ;static double short_image[] = {  0.046 ,  0.002 , -0.079 , -0.013,                                  0.000 , -0.013 , -0.079 ,  0.002,                                 0.046 , -0.132 , -0.013 ,  0.143,                                 0.092 ,  0.143 , -0.013 , -0.132 } ;  //Make LONG sequence    if (((ctmp1 = (struct complex *)malloc(160*sizeof(struct complex))) == NULL) |        ((ctmp2 = (struct complex *)malloc(64*sizeof(struct complex))) == NULL)) {        PRINTF( " malloc failed in preamble\n") ;    } //fail    else { //allocated      //SHORT Sequence      cset0.size = 160 ;      cset0.data = ctmp1 ;      for (ii=0;ii<160;ii++) { //shortseq         ctmp1[ ii ].realp  = short_realp[ ii %16 ] ;          ctmp1[ ii ].image  = short_image[ ii %16 ] ;       } //shortseq      ctop = cset0 ;      //short seq boundary      ctmp1[ 0 ].realp = ctmp1[ 0 ].realp/2 ;      ctmp1[ 0 ].image = ctmp1[ 0 ].image/2 ;       //LONG  Sequence OFDM mapper      cset1.size =64 ;      cset1.data = ctmp2 ;      for (ii=0;ii<64;ii++) {//long map         cset1.data[ ii ].realp = longseq[ ii ] ;         cset1.data[ ii ].image = 0 ;      }//long map      //Compare with Table G.11 for Frequency Domain data      print_complexset( cset1 ) ;                //OFDM IFFT      cset1 = idft64 ( cset1 ) ;      //Compare with Table G.12 for Frequency Domain data      print_complexset( cset1 ) ;      //build a preamble      cset0 = extract_complexset(cset1 , 32 , 32 ) ; //Guard Interval2      ctop = cat_complexset(ctop , cset0 )  ;      ctop = cat_complexset(ctop , cset1 ) ;      ctop = cat_complexset(ctop , cset1 ) ;      //short seq & longseq boundary      ctop.data[160].realp = (ctop.data[160].realp + ctop.data[16].realp) /2 ;      ctop.data[160].image = (ctop.data[160].image + ctop.data[16].image) /2 ;    } //allocated    return( ctop ) ;} //preamble

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -