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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cvoicems.cpp

?? 此程序為wcdma系統(tǒng)當中ftp/video業(yè)務模型的c++程序仿真 通過此程序 能得到此兩種業(yè)務在多種條件下的吞吐量和無碼率的性能
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////////
//                             WCDMA TEAM                        //
//                      BUPT Radio Research Center               //
///////////////////////////////////////////////////////////////////
//
//                          CVoiceMs.cpp
//
//////////////////////////////////////////////////////////////////////
//                                                                  //
//               話音移動臺CVoiceMs的成員函數(shù)的聲明                 //
//                                                                  //
// Written by:     李晶                                             //
// Date:      200404                                                // 
//                                                                  //
//////////////////////////////////////////////////////////////////////


#include "CVoiceMs.h"
#include "systemsim.h"
#include "iostream.h"
#include "sys_random.h"
#include "CMsManager.h"
#include "CLinkPrediction.h"


//////////////////////////////////////////////////////////////////////////
//				構(gòu)造函數(shù)							
//                          將各屬性賦予初始值							
//////////////////////////////////////////////////////////////////////////
CVoiceMs::CVoiceMs()
{
}
//end of CVoiceMs()


//////////////////////////////////////////////////////////////////////////
//				析構(gòu)函數(shù)								
//			      釋放內(nèi)存空間								
//////////////////////////////////////////////////////////////////////////
CVoiceMs::~CVoiceMs()
{
	Clean();
}
//end of ~CVoiceMs()


//////////////////////////////////////////////////////////////////////////
//TITLE:      VoiceInitialization(話音移動臺初始化函數(shù))				        
//
//PARAMETERS:NULL              
//
//PURPOSE AND ALGORITHMS:
//            初始化m_iServiceLength、m_eUsertype、m_iUnsatisfiedTimer、
//            m_iDropTimer等參數(shù) 
//            實際上,每一次初始化話音移動臺的時候,都是先調(diào)用基類的
//            MobileInitialization函數(shù),再調(diào)用此函數(shù)進行初始化    
//                                               
//AUTHOR:     Li Jing
//
//CALLING FUNCTIONS:
//            CMarkovVoice::initRan()
//            CMobile::ObtainBestSector()
//            CMobile::InitActiveSet()
//            CMobile::ObtainC2I()    
//                                                                
//////////////////////////////////////////////////////////////////////////
void   CVoiceMs::VoiceInitialization(CLinkPrediction *pLinkPrediction)
{
//Modified by Li Jing,20040713	
	m_pLinkPrediction = pLinkPrediction;//指向鏈路預測對象
	POSITION pos;
	pos=m_pLinkPrediction->m_pstRateTable.GetHeadPosition();
	RATE2CI_TYPE *pRate = new RATE2CI_TYPE;
	pRate=m_pLinkPrediction->m_pstRateTable.GetNext(pos);

	while ((pos!=NULL)&&(pRate->fDataRate!=(float)12.2||pRate->iChannelType!=m_iChannelType))
	{
		pRate=m_pLinkPrediction->m_pstRateTable.GetNext(pos);
    }
	m_pstTFI=pRate->pTFI; 
	m_fC2ITarget=pRate->fTargetC2I;

	m_eUsertype=voice;                  //初始化m_eUsertype為voice,表示為話音用戶

	m_bIsDropped=false;
	m_iDropTimer=0;

	m_fVoiceActiveFactor=m_pMsManager->m_fVoiceActiveFactor;
	                                    //話音激活因子初始化
	
	m_iServiceTime=0;                   //已經(jīng)服務的時長清0
	m_iServiceLength=0;                 //用slot數(shù)表示的已經(jīng)服務的時長
	
	m_iTotalOutageWindow=0;             //中斷的窗口數(shù)清為0
	m_iTotalWindow=0;                   //總的通話窗口清為0
	m_fOutageRatio=0;                   //中斷率清為0
	m_fC2IThreshold=m_pMsManager->m_fC2IThreshold;
	
	//at present,consider full_rate only
	m_fFwdCurrentActiveFactor=1.0;      //本slot話音激活因子為1
	m_fFwdLastActiveFactor=1.0;         //上一slot話音激活因子為1
	m_iFwdFrameRate=FULL_RATE;


	m_pfC2IIndex=&(m_pMsManager->m_fC2IIndex[0]);      //C/I指針
	switch(m_iChannelType)          //determine the C/I target
	{
		case 1 :            
		//MsVelocity=3
			m_pfBLER=&(m_pMsManager->m_fBLER_1[0]);
			break;
		case 2 :
		//MsVelocity=10
			m_pfBLER=&(m_pMsManager->m_fBLER_2[0]);
			break; 
		case 3 :
		//MsVelocity=30 
			m_pfBLER=&(m_pMsManager->m_fBLER_3[0]);
			break;
		case 4 : 
		//MsVelocity=120
			m_pfBLER=&(m_pMsManager->m_fBLER_4[0]);
			break;
	    case 5 :           
		//MsVelocity=0
			m_pfBLER=&(m_pMsManager->m_fBLER_5[0]); 
			break;			
	}
		
	ObtainBestSector();                 //在移動臺的監(jiān)測集中根據(jù)導頻情況找出最佳扇區(qū)
	InitActiveSet();                    //初始化激活集。話音移動臺與數(shù)據(jù)DCH狀態(tài)的移動臺的激活集初始化過程是相同的,而
                                            //DSCH狀態(tài)的移動臺則不要初始化激活集。所以這個函數(shù)在實現(xiàn)時要加以區(qū)分!
                                            //另外,初始化激活集與2000中有較大的區(qū)別:現(xiàn)在初始化時移動臺只是與最佳扇區(qū)進行
                                            //接納控制,也就是說初始化時最多只有最佳扇區(qū)可能進入激活集
	ObtainC2I();                        //獲得當前時隙的C/I

}



//////////////////////////////////////////////////////////////////////////
//TITLE:      PowerControl(功率控制函數(shù))				        
//
//PARAMETERS:NULL              
//
//PURPOSE AND ALGORITHMS:
//            功率控制函數(shù),根據(jù)計算得到的C/I與功率控制目標C/I的關系,調(diào)整
//            激活集內(nèi)各個扇區(qū)的發(fā)射功率。需要考慮功控誤差,暫時不考慮功控時延
//            (在基類中用的是純虛函數(shù),此處給出實現(xiàn))   
//                                               
//AUTHOR:     Li Jing
//
//CALLING FUNCTIONS:
//                                                                
//////////////////////////////////////////////////////////////////////////
void   CVoiceMs::PowerControl()
{                                 
	/*	CStdioFile f;
	char buf[50];
	char FileName[40];
    CString sp;
	sp="Exception.txt";
	strcpy(FileName,sp);*/

//Modified by Li Jing,20041012
	float fPowerDelta_T;
	float fPowerDelta_R;

    float fPowerIncrement;
	float fMinTrafficPower;       //業(yè)務信道最小值,單位:mw
	float fTotalC2I=0;            //總的C/I,初值為零
	float frv;                    //(0,1)分布的隨機數(shù)
	float fOldTrafficPower;       //功控前業(yè)務信道功率,單位:mW
	float fTempTrafficPower;      //業(yè)務信道功率,單位:dBm
	float fTargetC2I;
	POSITION posTemp;             //臨時位置指針
	CSector* pTempSector=NULL;    //臨時扇區(qū)指針
	bool  bDecision;
    
	fPowerDelta_T=(float)(-1*m_pMsManager->m_fPowerControlStep);
    
	fTotalC2I=m_fC2I;             //當前時隙的C/I
	
	fTargetC2I=m_fC2ITarget;
	
	if(fTotalC2I<=fTargetC2I) 
	//如果當前時隙的C/I小于目標C/I
		fPowerDelta_T*=(-1);//調(diào)整步長為正(增加)

/*	if(m_iMsID==90)
	{
		    if(!f.Open(FileName,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite))
			{
	            #ifdef _DEBUG
	    	        afxDump<<"Unable to open file"<<"\n";	//exception handling
	            #endif
			}
            f.SeekToEnd();
	        //使文件指針指向文件尾部,輸出數(shù)據(jù)可以在文件尾部接著寫
	        f.WriteString("\nthe mobile has done one power control");
	}*/
	
	posTemp=m_ActiveSetList.GetHeadPosition();
	//取得鏈表頭,并令臨時指針指向鏈表頭
	while(posTemp!=NULL)           //到達鏈表尾則結(jié)束循環(huán)
	{
		pTempSector=
			m_pServiceArea->GetSector(m_ActiveSetList.GetAt(posTemp)->stSectorID);
		    //獲得激活扇區(qū)的指針
		fOldTrafficPower=m_ActiveSetList.GetAt(posTemp)->fTrafficPower;
		    //retrieve the transmit power before the power control
		fTempTrafficPower=(float)(10*log10(fOldTrafficPower));

		frv=xUniform(0.0,1.0);//產(chǎn)生一個(0,1)分布的隨機數(shù),用來模擬功控誤差
	    if(frv<m_pMsManager->m_fBEROfPC)
	    //如果隨機數(shù)小于功控比特差錯概率
		    fPowerDelta_R=fPowerDelta_T*(-1);//功控出錯,原來的加變成了減
		else
			fPowerDelta_R=fPowerDelta_T;

		fTempTrafficPower+=fPowerDelta_R;   //調(diào)整此目標扇區(qū)對此移動臺業(yè)務信道功率值
        fTempTrafficPower=(float)(pow(10,(fTempTrafficPower/10)));

		if(fTempTrafficPower>pTempSector->GetMaxPower()
		    *m_pMsManager->m_fMaxFractionOfTrafficPower)      
		//如果業(yè)務信道功率大于最大值
			fTempTrafficPower=
				pTempSector->GetMaxPower()*m_pMsManager->
				m_fMaxFractionOfTrafficPower;       
			//就將業(yè)務信道功率置為最大值
		fMinTrafficPower=
			(float)((pTempSector->GetMaxPower()*
			m_pMsManager->m_fMaxFractionOfTrafficPower)
			/pow(10,(m_pMsManager->m_fDynamicRangeOfTrafficPower/10)));  
		//將dB轉(zhuǎn)化為mw
		if(fTempTrafficPower<fMinTrafficPower)
		//如果業(yè)務信道功率小于動態(tài)范圍
		    fTempTrafficPower=fMinTrafficPower;       
			//就將業(yè)務信道功率置為最小值(動態(tài)范圍)
		
		fPowerIncrement=fTempTrafficPower-fOldTrafficPower;
		//retrieve the power increment of the power control
		bDecision=pTempSector->PowerControlDecision(fPowerIncrement);
		if(bDecision)
		{
		    m_ActiveSetList.GetAt(posTemp)->fTrafficPower=fTempTrafficPower;
		
		    pTempSector->VoicePowerCumulate(fPowerIncrement);
		    //add the voice power increment to the active sector
		    pTempSector->TxPowerUpdate();
            //update the total power of the sector
		}
        
/*		if(m_iMsID==90)
		{
            f.WriteString("\nthe active sector's index in monitor is:");
			_gcvt(m_ActiveSetList.GetAt(posTemp)->iIndexInMonitor,8,buf);
	        f.WriteString(buf);

			f.WriteString("\nthe active sector's transmission power is:");
			_gcvt(m_ActiveSetList.GetAt(posTemp)->fTrafficPower,8,buf);
	        f.WriteString(buf);

		}*/

		m_ActiveSetList.GetNext(posTemp); 
		//獲得鏈表的下一個激活扇區(qū)結(jié)構(gòu)
	}
	
/*	if(m_iMsID==90)
	{
		f.Close();
	}*/
}



//////////////////////////////////////////////////////////////////////////
//TITLE:      SetVoiceActivity(話音激活特性設置函數(shù))				        
//
//PARAMETERS:NULL              
//
//PURPOSE AND ALGORITHMS:
//            根據(jù)話音激活因子,設置話音激活標志   
//                                               
//AUTHOR:     Li Jing
//
//CALLING FUNCTIONS:
//                                                                
//////////////////////////////////////////////////////////////////////////
/*void   CVoiceMs::SetVoiceActivity()
{                                   
	float fDif;
	m_fFwdLastActiveFactor=m_fFwdCurrentActiveFactor;
	if(m_iSlotCount%15==1)
	//每一個幀,更新一次激活因子
	{
		m_iFwdFrameRate=m_cFwdMarkovState.GetNextState()%4;
		switch(m_iFwdFrameRate)
		{
			case FULL_RATE : m_fFwdCurrentActiveFactor=1.0;
			                 fDif=0.0;
				 break;
			case HALF_RATE : m_fFwdCurrentActiveFactor=0.5;
			                 fDif=3.0;
				 break;
			case QUARTER_RATE : m_fFwdCurrentActiveFactor=0.25;
			                    fDif=6.0;
				 break;
			case EIGHTH_RATE : m_fFwdCurrentActiveFactor=0.125;
			                   fDif=9.0;
				 break;
		}
		
		m_fC2IThreshold=m_pMsManager->m_fC2IThreshold-fDif;
		
		switch(m_iChannelType)
		{
		        case 1 : m_fC2ITarget=(float)C2ITargetForVoice1-fDif;
		         break;
		        case 2 : m_fC2ITarget=(float)C2ITargetForVoice2-fDif;
		         break;
		        case 3 : m_fC2ITarget=(float)C2ITargetForVoice3-fDif;
		         break;
		        case 4 : m_fC2ITarget=(float)C2ITargetForVoice4-fDif;
		         break;
		        case 5 : m_fC2ITarget=(float)C2ITargetForVoice5-fDif;
		         break;
		}
		                
		
	}
}
*/


//////////////////////////////////////////////////////////////////////////
//TITLE:      IsServiceOver(服務時長到時的判斷函數(shù))				        
//
//PARAMETERS:NULL              
//
//PURPOSE AND ALGORITHMS:
//            判斷服務時長是否到時,到時返回TRUE   
//                                               
//AUTHOR:     Li Jing
//
//CALLING FUNCTIONS:
//                                                                
//////////////////////////////////////////////////////////////////////////
bool   CVoiceMs::IsServiceOver()
{
	if(m_iServiceLength>=MeanCallTime*1500)      //如果服務到時
		return true;             //返回true
	else 
		return false;            //返回false
}



//////////////////////////////////////////////////////////////////////////
//TITLE:      UpdateActiveSetPower(更新激活集中激活扇區(qū)的功率函數(shù))				        
//
//PARAMETERS:NULL              
//
//PURPOSE AND ALGORITHMS:
//            將移動臺激活集中的各個扇區(qū)各自的話音功率進行累加,調(diào)用函數(shù):
//            CMsManager::UpdateSectorVoicePower()將所有的話音移動臺
//            進行循環(huán)一次后,實際上就將每一個扇區(qū)發(fā)射的話音總功率累加起來了  
//                                               
//AUTHOR:     Li Jing
//
//CALLING FUNCTIONS:
//            CServiceArea::GetSector()
//            CSector::VoicePowerCumulate()
//
//CALLED FUNCTIONS:
//            CMsManager::UpdateSectorVoicePower()
//
//NOTES:      這個函數(shù)還是放在話音移動臺中實現(xiàn),因為數(shù)據(jù)移動臺不調(diào)用這個函數(shù)
//                                                    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕久久午夜不卡| 欧美日韩不卡一区二区| 久久久精品天堂| 国产盗摄女厕一区二区三区| 精品国产91亚洲一区二区三区婷婷| 麻豆精品一区二区综合av| 精品少妇一区二区三区| 国产成都精品91一区二区三| 中文乱码免费一区二区| 色婷婷综合五月| 亚洲国产毛片aaaaa无费看| 欧美精品777| 久久99精品视频| 国产精品天美传媒| 欧美系列一区二区| 激情亚洲综合在线| 综合电影一区二区三区| 欧美疯狂做受xxxx富婆| 国产精品自拍毛片| 1区2区3区国产精品| 4438成人网| 国产成人激情av| 亚洲线精品一区二区三区八戒| 91麻豆精品国产91久久久久| 国产毛片精品国产一区二区三区| 1000部国产精品成人观看| 欧美绝品在线观看成人午夜影视| 麻豆成人免费电影| 日韩一区中文字幕| 欧美mv日韩mv国产| 日本福利一区二区| 精品亚洲国产成人av制服丝袜| 中文字幕中文乱码欧美一区二区 | 欧美日韩精品系列| 国产又黄又大久久| 亚洲午夜久久久久久久久久久| 欧美精品一区二区在线播放| 色婷婷久久久久swag精品| 久久精品久久99精品久久| 亚洲欧美一区二区久久| 日韩精品专区在线| 欧美性受xxxx黑人xyx性爽| 国产真实乱对白精彩久久| 亚洲一二三四在线观看| 欧美国产精品一区二区三区| 欧美精品tushy高清| 色综合视频一区二区三区高清| 精品一区二区日韩| 午夜成人在线视频| 亚洲天堂a在线| 国产日产亚洲精品系列| 91精品国产一区二区三区蜜臀| 99精品视频一区| 国产黄色精品网站| 蜜桃av一区二区在线观看| 舔着乳尖日韩一区| 樱花影视一区二区| 国产精品久久久久久久久久久免费看| 欧美一区二区国产| 欧美日韩激情一区二区| 色激情天天射综合网| 99久久久免费精品国产一区二区| 国产精品1区2区3区| 国内精品伊人久久久久av影院| 亚洲va韩国va欧美va| 一区二区三区精密机械公司| 中文幕一区二区三区久久蜜桃| 2020日本不卡一区二区视频| 欧美tk—视频vk| 精品国产91乱码一区二区三区 | 色系网站成人免费| 99精品国产99久久久久久白柏 | 一本色道亚洲精品aⅴ| 91在线视频官网| www.欧美亚洲| 91伊人久久大香线蕉| 97精品国产97久久久久久久久久久久 | 99精品欧美一区| 99久久婷婷国产综合精品电影| 成人av网站在线观看免费| 国产成人8x视频一区二区| 丁香一区二区三区| www.亚洲免费av| 色香蕉久久蜜桃| 欧美喷水一区二区| 欧美一卡二卡三卡四卡| 欧美成人一区二区三区在线观看 | 91香蕉视频在线| 91网页版在线| 欧美午夜精品久久久久久超碰 | 欧美日韩成人在线一区| 91精品国模一区二区三区| 日韩欧美一区二区不卡| 久久久久久久久久久黄色 | 樱花影视一区二区| 亚洲h在线观看| 美日韩黄色大片| 国产成人综合在线播放| 91视频免费播放| 欧美色视频在线观看| 91精品国产综合久久久久久| 欧美mv日韩mv国产| 亚洲天堂久久久久久久| 视频一区欧美日韩| 国内久久精品视频| 一本大道久久a久久综合| 777xxx欧美| 337p粉嫩大胆色噜噜噜噜亚洲| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品福利电影一区二区三区四区| 一区二区三区在线免费视频| 婷婷国产v国产偷v亚洲高清| 国产伦精品一区二区三区视频青涩 | 欧美美女直播网站| 精品久久久久久久人人人人传媒 | 在线观看免费亚洲| 亚洲精品一区二区三区99| 国产精品久久久久久久久免费樱桃 | 不卡av免费在线观看| 欧美亚洲动漫制服丝袜| 欧美本精品男人aⅴ天堂| 国产精品福利在线播放| 日本不卡免费在线视频| 91在线精品秘密一区二区| 91麻豆精品国产91久久久使用方法| 国产欧美1区2区3区| 亚洲欧美国产高清| 久久不见久久见免费视频1| 一本大道av一区二区在线播放| 欧美成人精品高清在线播放 | 久久精品免视看| 亚洲国产日韩一级| 成人视屏免费看| 欧美xxxxxxxxx| 亚洲影院久久精品| 成人午夜激情在线| 日韩小视频在线观看专区| 亚洲男人天堂av| 粉嫩一区二区三区在线看| 欧美一级黄色大片| 一区二区三区91| 国产91清纯白嫩初高中在线观看| 欧美日韩精品久久久| 成人欧美一区二区三区白人 | 视频一区中文字幕| 欧美亚洲综合久久| 中文字幕在线播放不卡一区| 久久电影网电视剧免费观看| 欧美日韩aaa| 亚洲最大成人综合| 97精品久久久久中文字幕| 国产精品丝袜久久久久久app| 国产一区二区免费看| 欧美变态口味重另类| 免费观看91视频大全| 欧美老女人第四色| 亚洲电影中文字幕在线观看| 91免费观看在线| 综合激情成人伊人| 91免费版在线| 亚洲欧美另类小说视频| www.66久久| 国产精品毛片久久久久久久| 国产成人丝袜美腿| 国产欧美一区二区精品忘忧草 | 国产在线播放一区| 久久久久久久久久久黄色| 国产精品一二三四五| 久久综合九色综合97_久久久| 黄色日韩三级电影| 久久夜色精品国产欧美乱极品| 国产自产v一区二区三区c| 欧美电影免费观看高清完整版在| 麻豆精品视频在线观看免费| 欧美大片一区二区| 国模冰冰炮一区二区| 久久精品亚洲乱码伦伦中文| 国产精品影视在线| ●精品国产综合乱码久久久久| 91老师片黄在线观看| 亚洲线精品一区二区三区八戒| 欧美日韩一区二区电影| 日韩高清在线观看| 久久先锋影音av| 成人国产一区二区三区精品| 中文字幕一区二区视频| 91免费在线看| 日本色综合中文字幕| 337p粉嫩大胆色噜噜噜噜亚洲 | 国产一区二区在线电影| 国产欧美日本一区二区三区| 色婷婷av一区| 日韩精品亚洲专区| 久久奇米777| 色婷婷久久久亚洲一区二区三区 | 久久青草欧美一区二区三区| 成人自拍视频在线观看| 一区二区三区免费看视频| 欧美一区二区私人影院日本| 精彩视频一区二区三区|