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

📄 preamble.c

📁 OFDM是wimax的关键技术
💻 C
字号:
/*****************************************************************************//*   FIle Name : preamble.c                                                  *//*   Description : WiMax OFDM Preamble Encoder                               *//*   author : miffie                                                         *//*   Date   : oct/31/05                                                      *//*   Copyright (c) 2005 miffie   All rights reserved.                        *//*****************************************************************************////////////////////////////////////////////////////////////////////////////////struct complexset ofdm_symbol( struct complexset datain, char CP ) { // struct  complexset cset0 , cset1;      //OFDM IFFT      cset0 = idft256 ( datain ) ;      cset1 = extract_complexset(cset0 , 256-CP , CP ) ; //Guard Interval      cset1 = cat_complexset(cset1 , cset0 )  ;      return( cset1 ) ;} //ofdm_symbolstruct complexset preamble( char CP ) { // struct  complexset cset0, cset1 ;struct  complex  *ctmp1, *ctmp2 ;int	ii ;static char Pall[]={ 1,-1,  1,-1, -1,-1,  1, 1,  1,-1,  1,-1, -1, 1,  1,-1,  1,-1,  1,-1,                     1, 1, -1,-1,  1, 1,  1, 1, -1,-1,  1, 1, -1,-1, -1,-1,  1,-1, -1, 1,                     1,-1,  1,-1, -1,-1,  1, 1,  1,-1,  1,-1, -1, 1,  1,-1,  1,-1,  1,-1,                     1, 1, -1,-1,  1, 1,  1, 1, -1,-1,  1, 1, -1,-1, -1,-1,  1,-1, -1, 1,                     1,-1,  1,-1, -1,-1,  1, 1,  1,-1,  1,-1, -1, 1,  1,-1,  1,-1,  1,-1,                     1, 1, -1,-1,  1, 1,  1, 1, -1,-1,  1, 1, -1,-1, -1,-1,  1,-1, -1, 1,                     1, 1,  1, 1,  1,-1, -1, 1,  1, 1,  1, 1, -1,-1,  1, 1,  1, 1,  1, 1,                    -1, 1,  1,-1, -1, 1, -1, 1,  1,-1, -1, 1,  1,-1,  1,-1,  1, 1, -1,-1,                    -1,-1, -1,-1, -1, 1,  1,-1, -1,-1, -1,-1,  1, 1, -1,-1, -1,-1, -1,-1,                     1,-1, -1, 1,  1,-1,  1,-1, -1, 1,  1,-1, -1, 1, -1, 1, -1,-1,  1, 1,                     0,0,                    -1,-1,  1, 1, -1, 1, -1, 1, -1,-1,  1, 1,  1, 1,  1, 1, -1,-1,  1, 1,                     1,-1,  1,-1,  1,-1, -1, 1, -1, 1,  1, 1, -1, 1,  1,-1, -1,-1, -1,-1,                    -1, 1,  1,-1,  1, 1,  1, 1, -1, 1,  1,-1,  1,-1,  1,-1, -1, 1,  1,-1,                    -1,-1, -1,-1, -1,-1,  1, 1,  1, 1,  1, 1,  1, 1, -1,-1, -1, 1, -1, 1,                     1, 1, -1,-1,  1,-1,  1,-1,  1, 1, -1,-1, -1,-1, -1,-1,  1, 1, -1,-1,                    -1, 1, -1, 1, -1, 1,  1,-1,  1,-1,  1,-1,  1,-1, -1, 1,  1, 1,  1, 1,                    -1,-1,  1, 1, -1, 1, -1, 1, -1,-1,  1, 1,  1, 1,  1, 1, -1,-1,  1, 1,                     1,-1,  1,-1,  1,-1, -1, 1, -1, 1, -1, 1, -1, 1,  1,-1, -1,-1, -1,-1,                     1,-1, -1, 1, -1,-1, -1,-1,  1,-1, -1, 1, -1, 1, -1, 1,  1,-1, -1, 1,                     1, 1,  1, 1,  1, 1, -1,-1, -1,-1, -1,-1, -1,-1,  1, 1,  1,-1,  1,-1 };  if ((ctmp1 = (struct complex *)malloc(256*sizeof(struct complex))) == NULL) { //fail      PRINTF( " malloc failed in preamble\n") ;  } //fail  else { //allocated    PRINTF("preamble CP=%d\n", CP ) ;    //SHORT Sequence    //P4x64 equation(78)    for (ii=-128;ii<128;ii++) { //shortseq         ctmp1[ ii+128 ].realp  = (abs(ii)>100) ? 0 :                              ((ii%4)==0) ? 2*Pall[(ii+100)*2] : 0 ;         ctmp1[ ii+128 ].image  = (abs(ii)>100) ? 0 :                              ((ii%4)==0) ? -2*Pall[(ii+100)*2+1] : 0 ;    } //shortseq    cset0.size = 256 ;    cset0.data = ctmp1 ;    print_complexset( cset0 ) ;    cset0 = ofdm_symbol ( cset0, CP ) ;    //LONG Sequence    //Peven equation(79)    for (ii=-128;ii<128;ii++) { //longseq         ctmp1[ ii+128 ].realp  = (abs(ii)>100) ? 0 :                              ((ii%2)==0) ? root2*Pall[(ii+100)*2] : 0 ;         ctmp1[ ii+128 ].image  = (abs(ii)>100) ? 0 :                              ((ii%2)==0) ? root2*Pall[(ii+100)*2+1] : 0 ;    } //longseq    cset1.size = 256 ;    cset1.data = ctmp1 ;    cset1 = ofdm_symbol ( cset1, CP ) ;    cset0 = cat_complexset(cset0 , cset1 )  ;  } //allocated  return( cset0 ) ;} //preamble

⌨️ 快捷键说明

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