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

📄 prov.c

📁 wimax BS simulation code,implemented under linux.
💻 C
字号:
/* * This piece of code is totally free. If any pitfalls found,  * please feel free to contact me at jetmotor@21cn.com * THANKS A LOT! */#include <string.h>#include "prov.h"PROVISION prov;const static UINT16 frame_duration_code[] ={	0, /* N/A */	 20, 25, 40, 50, 80, 100, 125, 200,};static void update_prov(PROVISION* prov){	prov->frm_dur = frame_duration_code[prov->frm_dur_code];	if (prov->phy_usc == PHY_PUSC)	{		if (prov->nsubcr == 2048)		{			prov->nsubchan   = 60;			prov->ncr_per_sc = 24;		}		else if (prov->nsubcr == 1024)		{			prov->nsubchan   = 30;			prov->ncr_per_sc = 24;		}		else if (prov->nsubcr == 512)		{			prov->nsubchan   = 15;			prov->ncr_per_sc = 24;		}		else if (prov->nsubcr == 128)		{			prov->nsubchan   = 3;			prov->ncr_per_sc = 24;		}	}	else if (prov->phy_usc == PHY_FUSC)	{		if (prov->nsubcr == 2048)		{			prov->nsubchan   = 32;			prov->ncr_per_sc = 48;		}		else if (prov->nsubcr == 1024)		{			prov->nsubchan   = 16;			prov->ncr_per_sc = 48;		}		else if (prov->nsubcr == 512)		{			prov->nsubchan   = 8;			prov->ncr_per_sc = 48;		}		else if (prov->nsubcr == 128)		{			prov->nsubchan   = 2;			prov->ncr_per_sc = 48;		}	}	prov->ncr_all = prov->nsubchan * prov->ncr_per_sc;	prov->nhz_per_cr   = prov->bandwidth * 1000 / prov->nsubcr;	prov->nhz_per_sc   = prov->nhz_per_cr * prov->ncr_per_sc;	prov->nhz_per_sec  = prov->nhz_per_sc * prov->nsubchan;	prov->nhz_per_frm = ((prov->nhz_per_sec * prov->frm_dur) / FRM_DUR_BASE) / 1000;	prov->nsym_per_cr = ((prov->nhz_per_cr * prov->frm_dur) / FRM_DUR_BASE) / 1000;	if (prov->phy_mode == PHY_MODE_TDD)	{		prov->ul_nsym_per_cr = prov->nsym_per_cr >> 1;		prov->dl_nsym_per_cr = prov->nsym_per_cr - prov->ul_nsym_per_cr;	}	else if (prov->phy_mode == PHY_MODE_FDD)	{		prov->ul_nsym_per_cr = prov->dl_nsym_per_cr = prov->nsym_per_cr;	}	prov->dl_nsym_per_sc = prov->dl_nsym_per_cr * prov->ncr_per_sc;	prov->ul_nsym_per_sc = prov->ul_nsym_per_cr * prov->ncr_per_sc;	prov->dl_nsym = prov->dl_nsym_per_sc * prov->nsubchan;	prov->ul_nsym = prov->ul_nsym_per_sc * prov->nsubchan;}void init_prov(){	strcpy(prov.tx_dev, "eth0");	strcpy(prov.rx_dev, "eth0");	prov.tick_unit = 200;	prov.bs_code = 0xa0a0;	prov.ms_code = 0xa0b0;	prov.phy_mode = PHY_MODE_TDD;	prov.phy_type = PHY_TYPE_OFDMA;	prov.bandwidth  = 3500;  /* 3.5MHz */	prov.nsubcr     = 512;	prov.frm_dur_code = 4; /* 5ms */	prov.phy_usc   = PHY_FUSC;	update_prov(&prov);}

⌨️ 快捷键说明

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