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

📄 mask_sc.c

📁 OFDM是wimax的关键技术
💻 C
字号:
/*****************************************************************************//*   FIle Name : mask_sc.c                                                   *//*   Description : WiMax OFDM Subcarrier Mask                                *//*   author : miffie                                                         *//*   Date   : Nov/01/05                                                      *//*   Copyright (c) 2005 miffie   All rights reserved.                        *//*****************************************************************************/void mask_set ( char *mask ,  char *group ) { //mask_set//set mask[group] =1 ;char ii ;  for(ii=0;ii<12;ii++)  mask[128+(group[ii])] = 1 ; } //mask_setvoid mask_sc ( char *mask, char index ) { //mask_sc//0: No energy on the subcarrier//1: send data on the subcarrierint 	ii , pp ;char  sc_group[16][12] = {{-100,-99,-98,-37,-36,-35, 1, 2, 3,64,65,66},                          {-97,-96,-95,-34,-33,-32, 4, 5, 6,67,68,69},                          {-94,-93,-92,-31,-30,-29, 7, 8, 9,70,71,72},                          {-91,-90,-89,-28,-27,-26,10,11,12,73,74,75},                          {-87,-86,-85,-50,-49,-48,14,15,16,51,52,53},                          {-84,-83,-82,-47,-46,-45,17,18,19,54,55,56},                          {-81,-80,-79,-44,-43,-42,20,21,22,57,58,59},                          {-78,-77,-76,-41,-40,-39,23,24,25,60,61,62},                          {-75,-74,-73,-12,-11,-10,26,27,28,89,90,91},                          {-72,-71,-70, -9, -8, -7,29,30,31,92,93,94},                          {-69,-68,-67, -6, -5, -4,32,33,34,95,96,97},                          {-66,-65,-64, -3, -2, -1,35,36,37,98,99,100},                          {-62,-61,-60,-25,-24,-23,39,40,41,76,77,78},                          {-59,-58,-57,-22,-21,-20,42,43,44,79,80,81},                          {-56,-55,-54,-19,-18,-17,45,46,47,82,83,84},                          {-53,-52,-51,-16,-15,-14,48,49,50,85,86,87} } ;char  sc_pilot[] = { -38, 13, -88, 63, -13, 38, -63, 88 } ;  //Guard band  for(ii=-128;ii<-100;ii++) mask[ii+128] = 0 ;  for(ii=101;ii<128;ii++) mask[ii+128] = 0 ;  //DC  mask[0+128] = 0 ;  //available carriers  printf("mask_sc %d\n",  index) ;  if (index &0x1 ) { //single subchannel     mask_set( &mask[0], &sc_group[ ((index>>1)&0xf) ][0] ) ;   } //single subchannel  else if (index&0x2) { //two subchannels     mask_set( &mask[0], &sc_group[ ((index>>1)&0xe)+0 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0xe)+1 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x7) ] +128 ] = 1 ;   } //two subchannels  else if (index&0x4) { //four subchannels     mask_set( &mask[0], &sc_group[ ((index>>1)&0xc)+0 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0xc)+1 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x6) ] +128 ] = 1 ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0xc)+2 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0xc)+3 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x6)+1 ] +128 ] = 1 ;   } //four subchannels  else if (index&0x8) { //eight subchannels     mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+0 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+1 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x4) ] +128 ] = 1 ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+2 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+3 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x4)+1 ] +128 ] = 1 ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+4 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+5 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x4)+2 ] +128 ] = 1 ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+6 ][0] ) ;      mask_set( &mask[0], &sc_group[ ((index>>1)&0x8)+7 ][0] ) ;      mask[ sc_pilot[ ((index>>2)&0x4)+3 ] +128 ] = 1 ;   } //eight subchannels  else if (index==0x10) { //16 sub channels    for(ii=-100;ii<0;ii++)  mask[ii+128] = 1 ;    mask[0+128] = 0 ;    for(ii=1;ii<=100;ii++)  mask[ii+128] = 1 ;  } //16 subchannels  else { // no channels assigned    for(ii=-100;ii<=100;ii++) mask[ii+128] = 0 ;  } // no channels assigned  } //mask_sc

⌨️ 快捷键说明

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