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

📄 long_track.c

📁 OFDM是wimax的关键技术
💻 C
字号:
/*****************************************************************************//*   FIle Name : longtrack.c                                                 *//*   Description : WiMax LONGsequence Decoder to initialize track SRAM       *//*   author : miffie                                                         *//*   Date   : Nov/04/05                                                      *//*   Copyright (c) 2005 miffie   All rights reserved.                        *//*****************************************************************************////////////////////////////////////////////////////////////////////////////////struct complexset long_track( struct complexset datain ) { // struct  complexset cset ;struct  complexset ctop ;struct  complex  *top  ;struct  complex  tmp1  ;double  phase, lpfout ;int	ii , jj ;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 };  //Main     if ((top = (struct complex *)malloc(201*sizeof(struct complex)) ) == NULL) {        PRINTF( " malloc failed in long_track.c\n") ;    } //fail    else { //allocated     PRINTF("long_track size=%d \n", datain.size ) ;     lpfout = 0 ;     for(ii=-100;ii<=100;ii+=2) { //each EVEN subcarrier       if (ii!=0) {//not zero        tmp1.realp = Pall[ii*2+200]*root2 ;         tmp1.image = Pall[ii*2+201]*root2 ;         tmp1 = division_complex(tmp1, datain.data[ii+128]) ;        top[ii+100].realp  = tmp1.realp ;         top[ii+100].image  = tmp1.image ;         tmp1 = cordic( tmp1 )  ;        if ((abs(ii)<100)&(abs(ii)>2))  { //not edge          phase = phase - tmp1.image ;          phase = (phase<-pi) ? phase+(2*pi) :                   (phase>=pi) ?  phase-(2*pi) : phase ;          lpfout = iir_lpf( phase, lpfout, (double)(1.0/16.0) )   ;        } //not edge         phase = tmp1.image ;      }//not zero     } //each EVEN subcarrier          tmp1.realp = cos( lpfout/2 ) ;     tmp1.image = -sin( lpfout/2 ) ;     for(ii=-99;ii<=-1;ii+=2) { //each ODD subcarrier       top[ii+100]  = multiply_complex(top[ii+99], tmp1) ;      } //each ODD subcarrier     tmp1.image = -tmp1.image ;     for(ii=1;ii<=99;ii+=2) { //each ODD subcarrier       top[ii+100]  = multiply_complex(top[ii+101], tmp1) ;      } //each ODD subcarrier     cset.size = 201 ;     cset.data = top ;    } //allocated    free ( datain.data ) ;    return( cset ) ;} //long_track

⌨️ 快捷键说明

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