亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clinkprediction.cpp

?? 這是cdma2000的一個分組調(diào)度算法實例
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
//////////////////////////////////////////////////////////////////////////
//
//	CLinkPrediction.cpp
//	 implementation of the class CLinkPrediction
//
//	Writer:	Ouyang Hui
//		March 27, 2001
//
//		March 28, 2001
//			Add Functions 
//			void CLinkPrediction::Initialization(int iChannelType)
//			RATE2CI_TYPE* CLinkPrediction::GetDataRate(int iPacketSize, 
//										  float fC2I)
//			float CLinkPrediction::GetBLER(int iPacketSize, float fMeanSNR, 
//							  float fStdSNR, float fEncodingRate)
//
//		March 29, 2001
//			test the functions OK
//
//		The first half of April
//			add the algorithms of interpolation
//
///////////////////////////////////////////////////////////////////////////

#include "CLinkPrediction.h"


CLinkPrediction::CLinkPrediction()
{
	m_fTollerance=float(1e-6);
	m_iDeterminedPacketSize=0;
	m_fDeterminedSPDCHC2I=0.;
	m_fDeterminedErrorRate=0.;
}

////////////////////////////////////////////////////////////////////////////
//
//	TITLE:	The destruction of the class CLinkPrediction
//
//	PURPOSE:release the space occupied by the two tables in the class
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/04
//
//	MODIFICATIONS SINCE 01/04/04:
//			01/04/05	Ouyang Hui
//			Add codes to delete the branches of the two tables
//
////////////////////////////////////////////////////////////////////////////
CLinkPrediction::~CLinkPrediction()
{
	EPS2CI_TYPE* pEPS2CI_TYPE=m_pstRatePredictionTable;
	RATE2CI_TYPE* pRATE2CI_TYPE;
	EPS2BLER1_TYPE* pEPS2BLER1_TYPE=m_pstBLERPredictionTable;
	RATE2BLER1_TYPE* pRATE2BLER1_TYPE;
	SNR2BLER1_TYPE* pSNR2BLER1_TYPE;
	int m,n,i,j;

	m=m_iPacketSizeNum;
	for (i=0;i<m;i++)
	{
		pRATE2CI_TYPE=pEPS2CI_TYPE[i].pstAddrOfRate2CI;
		delete pRATE2CI_TYPE;
	}

	m=m_iPacketSizeNum;
	for (i=0;i<m;i++)
	{
		n=pEPS2BLER1_TYPE[i].iRATE2BLER1Length;
		pRATE2BLER1_TYPE=pEPS2BLER1_TYPE[i].pstAddrOfRate2BLER;
		for (j=0;j<n;j++)
		{
			pSNR2BLER1_TYPE=pRATE2BLER1_TYPE[j].pstAddrOfSNR2BLER;
			delete pSNR2BLER1_TYPE;
		}
		delete pRATE2BLER1_TYPE;
	}

	delete pEPS2CI_TYPE ;
	delete pEPS2BLER1_TYPE ;
	
}

//////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Function initializing the class CLinkPrediction	
//
//	PURPOSE:根據(jù)信道類型(參數(shù)),確定對應(yīng)的數(shù)據(jù)文件,從文件中讀入?yún)?shù),
//			確定數(shù)據(jù)表的大小,創(chuàng)建數(shù)據(jù)表,再從文件中讀入數(shù)據(jù),寫入數(shù)據(jù)表,
//			完成數(shù)據(jù)表的創(chuàng)建。參數(shù)為信道類型。
//
//	SAMPLE CALL:
//			CLinkPrediction mylink;
//			mylink.initialization();
//
//	CALLED BY FUNCTIONS:
//			CNetworkDrive::SystemInitialization()
//
//	CALLING FUNCTIONS:
//			CLinkPrediction::CheckTheInputs()
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/04
//
//	MODIFICATIONS SINCE 01/04/04:
//
//////////////////////////////////////////////////////////////////////////
void CLinkPrediction::Initialization()
{
	CStdioFile f1;		//定義一個I/O文件對象
	CString s1,s2,s3;		
	bool bFlag=false;
	double x;
	int i,j,k;
	char* q;

//	m_iChannelType=iChannelType;

	const char* cSpecificString1="速率估計部分";
	const char* cSpecificString2="PER估計部分";

	/* 打開數(shù)據(jù)文件準(zhǔn)備讀*/
	if(!f1.Open(m_sRate_BLERPredictionFileName,
		CFile::modeRead))
	{
	#ifdef _DEBUG
		afxDump<<"Unable to open file"<<"\n";	//異常處理
	#endif
	}

	char buf[100];	//定義一個數(shù)據(jù)緩沖區(qū),用于存放一行字符串

	
	/////////////////////////////////////////////////////////////////////
	//	Construct the rate-prediction table
	//	The format of this part in the data file is:
	//	字符標(biāo)志(標(biāo)識速率估計部分的數(shù)據(jù)) EP數(shù)據(jù)點的個數(shù)(整型)
	//	EP大小(整型) 數(shù)據(jù)點個數(shù)(整型)
	//	C/I(實型) 數(shù)據(jù)速率(實型) 等效編碼速率(實型) 調(diào)制方式(整型) 時隙數(shù)(整型)
	//	........
	//	........
	//	........
	//	C/I(實型) 數(shù)據(jù)速率(實型) 等效編碼速率(實型) 調(diào)制方式(整型) 時隙數(shù)(整型)
	//	EP大小(整型) 數(shù)據(jù)點個數(shù)(整型)
	//	C/I(實型) 數(shù)據(jù)速率(實型) 等效編碼速率(實型) 調(diào)制方式(整型) 時隙數(shù)(整型)
	//	........
	//	........
	//	........
	//	C/I(實型) 數(shù)據(jù)速率(實型) 等效編碼速率(實型) 調(diào)制方式(整型) 時隙數(shù)(整型)
	//	........
	//	........
	//	........


	while(f1.ReadString(buf,100)!=NULL)
	{
		s1=buf; //把這一行字符串內(nèi)容賦給對象s1
		if (s1.Find(cSpecificString1)>=0) 
		{
			bFlag=TRUE;
			break;
		}
	}

	if (!bFlag)
	{
		cerr<<"Cannot find the string "<<cSpecificString1<<endl;
		f1.Close();
		exit(0);
	}

	s2=s1.Right(s1.GetLength()-s1.Find(' ')-1);
	m_iPacketSizeNum=(int)strtod(s2,&q);  //the number of encoder packet size
	EPS2CI_TYPE* pEPS2CI=new EPS2CI_TYPE [m_iPacketSizeNum];
	RATE2CI_TYPE* pRATE2CI;
	for (i=0;i<m_iPacketSizeNum;i++)
	{
		f1.ReadString(buf,100);
		x=strtod(buf,&q); //encoder packet size
		pEPS2CI[i].iEncoderPacketSize=(int)x;
		strcpy(buf,q);
		x=strtod(buf,&q); //the number of data
		pEPS2CI[i].iRATE2CILength=(int)x;
		pRATE2CI=new RATE2CI_TYPE[pEPS2CI[i].iRATE2CILength];
		for (j=0;j<pEPS2CI[i].iRATE2CILength;j++)
		{
			f1.ReadString(buf,100);
			x=strtod(buf,&q);	//C/I
			pRATE2CI[j].fTargetC2I=(float)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//data rate
			pRATE2CI[j].fDataRate=(float)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//effective code rate
			pRATE2CI[j].fEffectiveCodeRate=(float)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//modulation order
			pRATE2CI[j].iModulationOrder=(int)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//slot number per sub-packet
			pRATE2CI[j].iSlotNumPerSubPacket=(int)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//symbol number per sub-packet
			pRATE2CI[j].iSymbolNumber=(int)x;
		}
		pEPS2CI[i].pstAddrOfRate2CI=pRATE2CI;

	}

	m_pstRatePredictionTable=pEPS2CI;


	/////////////////////////////////////////////////////////////////////
	//	Construct the BLER-prediction table
	//	The format of this part in the data file is:
	//	字符標(biāo)志(標(biāo)識PER估計部分的數(shù)據(jù)起始位置) EP數(shù)據(jù)點的個數(shù)(整型)
	//	EP大小(整型) 等效編碼速率的個數(shù)(整型)
	//	等效編碼速率(實型) 數(shù)據(jù)點的個數(shù)(整型)
	//	Es/Nt的均值(實型) Es/Nt的標(biāo)準(zhǔn)差(實型) PER(實型)
	//	......
	//	......
	//	......
	//	Es/Nt的均值(實型) Es/Nt的標(biāo)準(zhǔn)差(實型) PER(實型)
	//	等效編碼速率(實型) 數(shù)據(jù)點的個數(shù)(整型)
	//	Es/Nt的均值(實型) Es/Nt的標(biāo)準(zhǔn)差(實型) PER(實型)
	//	......
	//	......
	//	......
	//	Es/Nt的均值(實型) Es/Nt的標(biāo)準(zhǔn)差(實型) PER(實型)
	//	......
	//	......
	//	......
	//	EP大小(整型) 等效編碼速率的個數(shù)(整型)
	//	......
	//	......
	//	......


	bFlag=false;

	while(f1.ReadString(buf,100)!=NULL)
	{
		s1=buf; //把這一行字符串內(nèi)容賦給對象s1
		if (s1.Find(cSpecificString2)>=0) 
		{
			bFlag=TRUE;
			break;
		}
	}

	if (!bFlag)
	{
		cerr<<"Cannot find the string "<<cSpecificString2<<endl;
		f1.Close();
		exit(0);
	}

	s2=s1.Right(s1.GetLength()-s1.Find(' ')-1);
	
	EPS2BLER1_TYPE* pEPS2BLER1=new EPS2BLER1_TYPE[m_iPacketSizeNum];
	RATE2BLER1_TYPE* pRATE2BLER1;
	SNR2BLER1_TYPE* pSNR2BLER1;
	float fRate;
	for (i=0;i<m_iPacketSizeNum;i++)
	{
		f1.ReadString(buf,100);
		x=strtod(buf,&q); //encoder packet size
		pEPS2BLER1[i].iEncoderPacketSize=(int)x;
		strcpy(buf,q);
		x=strtod(buf,&q); //the number of data
		pEPS2BLER1[i].iRATE2BLER1Length=(int)x;

		pRATE2BLER1=new RATE2BLER1_TYPE[pEPS2BLER1[i].iRATE2BLER1Length];

		for (j=0;j<pEPS2BLER1[i].iRATE2BLER1Length;j++)
		{
			f1.ReadString(buf,100);
			x=strtod(buf,&q);	//effective code rate		
			pRATE2BLER1[j].fEffectiveCodeRate=(float)x;
			fRate=(float)x;
			strcpy(buf,q);
			x=strtod(buf,&q);	//number of data
			pRATE2BLER1[j].iSNR2BLER1Length=(int)x;

			pSNR2BLER1=new SNR2BLER1_TYPE[pRATE2BLER1[j].iSNR2BLER1Length];

			for (k=0;k<pRATE2BLER1[j].iSNR2BLER1Length;k++)
			{
				f1.ReadString(buf,100);
				x=strtod(buf,&q);	//mean of Es/Nt
				pSNR2BLER1[k].fMeanSNR
					=(float)(x+10*log10(fRate));

				strcpy(buf,q);
				x=strtod(buf,&q);	//std of Es/Nt
				pSNR2BLER1[k].fStdSNR=(float)x;

				strcpy(buf,q);
				x=strtod(buf,&q);	//PER
				pSNR2BLER1[k].fBLER=(float)x;
			
			}

			pRATE2BLER1[j].pstAddrOfSNR2BLER=pSNR2BLER1;
			
		}
		pEPS2BLER1[i].pstAddrOfRate2BLER=pRATE2BLER1;

	}

	m_pstBLERPredictionTable=pEPS2BLER1;


	f1.Close();

	CheckTheInputs();
}

////////////////////////////////////////////////////////////////////////////
//
//	TITLE:	Getting Data Rate from C/I
//
//	PURPOSE:通過查速率估計表,獲得適合的數(shù)據(jù)速率、調(diào)制階數(shù)和等效編碼速率,
//			參數(shù)為分組長度和C/I值
//
//	SAMPLE CALL
//			CLinkPrediction* pLink;
//			RATE2CI_TYPE* pRATE2CI;
//			pRATE2CI=pLink->GetEPDataRate(1536,3);
//
//	INPUTS:	iPacketSize	 -- the length of the packet
//							should be given precisely and only these 4
//							values are legal:
//							3072, 1536, 768, 384
//			fC2I		 --	the C/I 
//
//	OUTPUTS:pRATE2CI	--	a structure body that contains the data rate,
//							the effective coding rate, the modulation
//							function, and the slot number.
//
//	CALLED BY FUNCTIONS:
//			CDataMs::RatePrediction()
//
//	CALLING FUNCTIONS:
//
//	AUTHOR:	Ouyang Hui
//
//	DATE:	01/04/04
//
//	MODIFICATIONS SINCE 01/04/04:
//			01/04/05 Ouyang Hui 
//				Modify the process when the input C/I is too slow:
//				If this happens, the function would return NULL.
//
//			01/04/06 Ouyang Hui
//				Modify the process in the second level of the table
//
//			01/04/11 Ouyang Hui
//				Modify a bug in the comparison of C/I
//
//			01/05/23 Ouyang Hui
//				In the previous version, the function get the nearest point
//				that must have LOWER C/I than the input. This may make the
//				PER too low and reduce the throughput. So I modify the 
//				algorithm to find the nearest point that can have higher or
//				lower C/I than the input.
//				RESULT: the throughput is HIGHER!
//
////////////////////////////////////////////////////////////////////////////
RATE2CI_TYPE* CLinkPrediction::GetEPDataRate(int iChannelType,float fC2IdB,long lDataQueueSize)
{
	EPS2CI_TYPE* tempEPS2CI;
	RATE2CI_TYPE* tempRATE2CI;
	int iEPSize,iPacketLength;
	float fCIdB,fLastCIdB=(float)0.0;
	double fC2INeededdB,fPowerMargindB,fSPDCCHSlotC2I,fPDCHSlotC2I,fPDCHSlotC2IdB;
	int i,j,k,l;
	bool bIsDataRateDetermined=false;

	//find in the first level of the table

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产91久久久久久一区二区| 国产美女主播视频一区| 在线免费观看一区| 亚洲五码中文字幕| 欧美日韩一卡二卡三卡| 免费视频一区二区| 欧美精品一区二区三区一线天视频| 精品一区二区综合| 国产日韩一级二级三级| 91在线无精精品入口| 亚洲综合自拍偷拍| 91精品国产91久久综合桃花| 激情成人午夜视频| 亚洲欧洲国产专区| 欧美精品久久99| 国产一区二区免费视频| 亚洲欧美激情小说另类| 91精品国产色综合久久不卡电影| 黑人巨大精品欧美黑白配亚洲| 日本一区二区三区在线不卡| 在线精品视频小说1| 蜜臂av日日欢夜夜爽一区| 久久久久久久久岛国免费| 一本大道av伊人久久综合| 日本亚洲视频在线| 国产欧美日韩综合精品一区二区| 91一区二区在线观看| 日韩中文字幕亚洲一区二区va在线| 26uuu国产一区二区三区| 在线免费观看日本欧美| 国内精品免费在线观看| 亚洲综合在线电影| 久久精品亚洲一区二区三区浴池| 在线精品观看国产| 国产xxx精品视频大全| 亚洲一区二区视频在线观看| 2020国产精品自拍| 欧美视频第二页| 成人免费观看av| 蜜桃视频一区二区| 亚洲人一二三区| 久久午夜电影网| 777久久久精品| 色狠狠一区二区| 国产精品亚洲人在线观看| 亚洲高清免费在线| 中文字幕欧美区| 欧美大片免费久久精品三p| 色诱亚洲精品久久久久久| 国产v综合v亚洲欧| 久久se这里有精品| 肉肉av福利一精品导航| 有码一区二区三区| 国产精品久久久久久久久免费桃花 | 国产精品1区二区.| 日本中文在线一区| 亚洲最新在线观看| 中文字幕亚洲一区二区av在线| 精品区一区二区| 欧美一区二区三区系列电影| 色国产综合视频| 99免费精品视频| 高清shemale亚洲人妖| 久久成人免费日本黄色| 日本成人中文字幕| 亚洲成av人片一区二区| 亚洲在线观看免费视频| 樱桃国产成人精品视频| 日韩一区欧美小说| 亚洲欧美综合在线精品| 国产精品三级久久久久三级| 国产亚洲成av人在线观看导航| 精品国产一二三| 精品处破学生在线二十三| 日韩免费观看高清完整版| 欧美一区二区三区系列电影| 欧美一区二区黄色| 欧美xxx久久| 国产亚洲污的网站| 欧美激情艳妇裸体舞| 国产欧美日韩另类视频免费观看| 国产丝袜美腿一区二区三区| 国产精品丝袜在线| 亚洲女厕所小便bbb| 亚洲精品中文在线观看| 一区二区在线免费| 亚洲国产精品精华液网站| 日欧美一区二区| 久久丁香综合五月国产三级网站| 国产一区激情在线| 成人免费高清视频在线观看| 99视频在线精品| 精品视频免费看| 欧美电影免费观看完整版| 久久精品一区二区三区四区| 国产精品丝袜在线| 亚洲一区二区三区三| 欧美aⅴ一区二区三区视频| 国产一区999| 99re成人精品视频| 51精品视频一区二区三区| 日韩视频在线永久播放| 国产精品欧美经典| 亚洲综合一区二区三区| 久久精品国产亚洲一区二区三区 | 国精产品一区一区三区mba桃花| 国产精品一品视频| 在线视频你懂得一区| 日韩精品一区二区三区视频在线观看 | 樱花影视一区二区| 麻豆国产欧美日韩综合精品二区| 国产一区二区三区国产| 在线观看精品一区| 欧美xxxxx牲另类人与| 亚洲日本免费电影| 久久精品国产亚洲aⅴ| aaa欧美色吧激情视频| 欧美精品v国产精品v日韩精品| 精品国产a毛片| 亚洲在线观看免费| 国产精品18久久久| 欧美精品丝袜中出| 国产精品网站在线观看| 蜜臀久久久99精品久久久久久| 懂色av一区二区夜夜嗨| 欧美视频在线观看一区二区| 国产欧美一区视频| 肉丝袜脚交视频一区二区| a亚洲天堂av| 日韩免费电影一区| 一区二区三区加勒比av| 国产成人免费在线观看| 91精品久久久久久久久99蜜臂| 国产精品嫩草99a| 久久99深爱久久99精品| 欧美在线观看一区| 国产精品国产三级国产普通话蜜臀 | 久久夜色精品国产欧美乱极品| 一区二区三区四区亚洲| 成人污视频在线观看| 日韩欧美一级精品久久| 亚洲高清免费观看| 成人av小说网| 久久久精品天堂| 毛片基地黄久久久久久天堂| 欧美亚洲国产一区在线观看网站| 国产精品国产三级国产a| 国产又黄又大久久| 精品伦理精品一区| 免费观看一级特黄欧美大片| 色婷婷激情久久| 亚洲素人一区二区| av在线这里只有精品| 国产午夜亚洲精品不卡| 激情综合网天天干| 欧美电影免费观看高清完整版在| 午夜精品福利一区二区三区av| 在线观看www91| 一区二区三区波多野结衣在线观看| 成人听书哪个软件好| 国产亚洲精品bt天堂精选| 国产一区二区三区在线看麻豆| 日韩免费看的电影| 精品一区二区三区影院在线午夜 | 日韩欧美一级二级三级| 奇米在线7777在线精品| 51午夜精品国产| 免费人成网站在线观看欧美高清| 91精品国产综合久久久久久| 日韩一区欧美二区| 日韩欧美在线影院| 蜜桃视频第一区免费观看| 欧美一区二区大片| 久久69国产一区二区蜜臀| 欧美成人三级在线| 国产高清亚洲一区| 国产精品国产精品国产专区不片| 成人动漫av在线| 亚洲黄色片在线观看| 欧美日韩精品一区视频| 免费看欧美美女黄的网站| 精品日韩99亚洲| 国产精品 欧美精品| 自拍偷拍亚洲欧美日韩| 色香蕉成人二区免费| 亚洲福利国产精品| 日韩欧美色电影| 国产精品一区二区免费不卡| 综合久久久久久久| 欧美日韩亚洲另类| 久久成人久久鬼色| 中文字幕中文字幕一区| 在线视频国内自拍亚洲视频| 日本最新不卡在线| 国产网红主播福利一区二区| 色哦色哦哦色天天综合| 看电视剧不卡顿的网站| 国产精品免费aⅴ片在线观看| 91久久国产综合久久| 国内成+人亚洲+欧美+综合在线|