📄 dlamc.c
字号:
#include "allocation.h"#define DLAMC_GUARDLEFT 160#define DLAMC_GUARDRIGHT 159#define DLAMC_NC OFDMA_NC#define DLAMC_NUMSUBCARRIERS 48#define DLAMC_NUMSUBCHANNELS 32#define DLAMC_BINSIZE 9#define DLAMC_NUMBINS 6#define DLAMC_DATACARRIERS (DLAMC_NC - DLAMC_GUARDLEFT - DLAMC_GUARDRIGHT - 1)static int dlamc_setguard(char *cs) ;/********************************************************************** * Function: dlamc_setcarriers * Parameters: cs, symbolnum, idcell * * Note that the parameters are for the sake of uniformity, in reality * they are not used * *******************************************************************/int dlamc_setcarriers(char *cs, int symbolnum, int idcell){ int j,k,m,numbins; int skip=0 ; dlamc_setguard(cs) ; numbins = DLAMC_DATACARRIERS/DLAMC_BINSIZE ; /** Pilots are in the central tone of each bin of 9 tones **/ k = DLAMC_GUARDLEFT ; skip=0; for (j=0; j<numbins; j++) { if (skip == 0 && (k+4 >= 1024)) { skip=1; k++ ;} cs[k+4] = PILOT_MARK ; k += DLAMC_BINSIZE ; } skip=0 ; for (j=0; j<DLAMC_NUMSUBCHANNELS; j++) { for (k=0; k<DLAMC_NUMBINS; k++) { int offset = j*DLAMC_BINSIZE*DLAMC_NUMBINS + k*DLAMC_BINSIZE + DLAMC_GUARDLEFT ; for (m=0; m<4; m++) { if (skip == 0 && (offset+m >= 1024)) skip = 1 ; cs[offset+m+skip] = marker(j) ; } for (m=5; m<DLAMC_BINSIZE; m++) { if (skip == 0 && (offset+m >= 1024)) skip = 1 ; cs[offset+m+skip] = marker(j) ; } } } return 1 ;}static int dlamc_setguard(char *cs){ int k; for (k=0; k<DLAMC_GUARDLEFT; k++) { cs[k] = GUARD_MARK ; } for (k=0; k<DLAMC_GUARDRIGHT; k++) { cs[DLAMC_NC - k - 1] = GUARD_MARK ; } cs[1024] = DC_MARK ; return(0) ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -