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

📄 cmsmanager.h

📁 此程序为wcdma系统当中ftp/video业务模型的c++程序仿真 通过此程序 能得到此两种业务在多种条件下的吞吐量和无码率的性能
💻 H
📖 第 1 页 / 共 2 页
字号:
 //需要在CMsManager中定义:int m_iBlockUserOfDCH; float m_fBlockRatioOfDCH;(在DataProcess中统计用)
//还需要加入数据部分的数据成员和函数成员!
///////////////////////////////////////////////////////////////////
//                             WCDMA TEAM                        //
//                      BUPT Radio Research Center               //
///////////////////////////////////////////////////////////////////
//
//                          CMsManager.h
//
///////////////////////////////////////////////////////////////////
//
// 移动台管理与数据统计类的头文件, 用于声明类CMsManager, 其实现在
// CMsManager.cpp中。
//
// 增加了DROP结束时,对话音用户链表上还未结束通话的用户的处理,以
// 增加统计的精确性
// 
// Written by:     陈美娅   李晶
// Date:     200404
//
///////////////////////////////////////////////////////////////////
/*#if !defined(SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H)
#define SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H
*/
#if !defined(SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H)
#define SYSTEMLEVEL_SIMULATION_CDMATYPE_MANAGER_H

#include "systemsim.h"
#include <afxtempl.h>

#define WindowSize 600
#define TTISize 3
#define OutageThreshold 0.15
#define DropThreshold 0.5
#define DropTimer 5
#define UserOutageThreshold 0.01
#define BEROfPC 0.04
#define PowerControlStep 0.5
#define ActiveSetMaxSize 3

#define InitialDropWindowSize 1500
#define InitialDCHDropThreshold 0.15
#define DCHDropThreshold 0.1
#define MAXDCHPOWER 2000 
#define INITIALDCHPOWER 1000 //小于最大可用功率,避免预测速率过高和用户接入失败
#define RATEASSIGNTIMER 1500
#define POWCTRLFAILEDTIMER 750

///////////////////////////////////////////////////////////////
//		        移动台管理与数据统计模块头文件               //
///////////////////////////////////////////////////////////////
class CMsManager
{
public:

//attribute
private:
    CServiceArea* m_pServiceArea;			//指向ServiceArea对象的指针
    CLinkPrediction* m_pLinkPrediction;     //指向LinkPrediction对象的指针


	//话音用户链表和用户数
    CTypedPtrList<CPtrList, CVoiceMs*> m_VoiceList;      //话音业务用户链表
	int m_iVoiceNumPerSector;				//每扇区话音用户数
    int m_iVoiceNumInSys;			        //系统总的话音用户数



	//数据用户链表和用户数
	CTypedPtrList<CPtrList, CHttpDataMs*> m_HttpDataList;  //http业务用户链表
	float m_fFractionHttp;					//http用户比例
	int m_iHttpNum;							//http用户数


	int m_iDataNumPerSector;				//每扇区数据用户数
    int m_iDataNumInSys;					//系统总的数据用户数 

    CTypedPtrList<CPtrList, CFtpDataMs*> m_FtpDataList;  //ftp业务用户链表
    float m_fFractionFtp;					//FTP用户比例
    int m_iFtpNum;							//ftp用户数


	//20060116
	CTypedPtrList<CPtrList, CVideoDataMs*> m_VideoDataList;  //Video业务用户链表
    float m_fFractionVideo;					//Video用户比例
    int m_iVideoNum;	


    //话音用户相关统计属性
    int m_iVoiceUserOfCurrentDrop;		    //本Drop内所有的话音用户
    int m_iBlockUserOfVoice;                        //话音业务接入失败的用户数
    float m_fBlockRatioOfVoice;                     //话音用户接入失败率
    int m_iOutageUserOfVoice;                       //话音业务中断的用户数
    float m_fOutageRatioOfVoice;                    //话音用户中断率
    int m_iDropUserOfVoice;			    //话音业务掉话用户数
    float m_fDropRatioOfVoice;			    //话音用户掉话率
	int m_iUnsatisfiedUserOfVoice;                  //不满意话音用户数
	float m_fSatisfiedRadioOfVoice;                 //话音用户满意率
	long m_lTotalVoiceFailedBLNum;      //话音移动台总的传输失败的传输块数
	long m_lTotalVoiceBLNum;            //话音移动台总的传输块数
	float m_fMeanVoiceBLER;             //话音移动台平均误块率


	//数据用户相关统计属性
	INT64 m_lTotalSucfulBitNum;		//成功传输比特的总量
	long m_lTotalFailedBLNum;	//记录数据移动台传输失败的传输块之和
	long m_lTotalSucfulBLNum;	//记录数据移动台成功传输的传输块之和
	float m_fMeanBLER;				//一个drop内的平均传输块错误率
	float m_fMeanDataThrput;		//一个drop内数据平均吞吐量
	int m_iBlockedDCHMs;			//记录一个drop内被block的DCH移动台数目
    float m_fBlockedDCHRatio;		//记录一个drop内被block的DCH移动台占数据移动台的比例

    //业务相关统计量
	long m_lTotalFailedPacketNum;	//记录数据移动台传输失败的分组之和
	long m_lTotalSucfulPacketNum;	//记录数据移动台传输成功的份组之和
	long m_lTotalSucfulPCBit;   //记录数据移动台成功传输总比特数
	long m_lTotalPacketDelay;		//记录数据移动台总的分组时延
	long m_lTotalPCDelay;			//记录数据移动台总的分组呼叫时延
	float m_fMeanPER;				//一个drop内的平均分组错误率
	
	//软切换开销相关统计量 add by slj
	long m_lSlotOfActiveSetSize[ActiveSetMaxSize]; //记录激活集内不同数目扇区所占时隙
	float m_fScaleOfActiveSetSize[ActiveSetMaxSize]; //记录激活集不同扇区数目所占比例
	long m_lTotalSlotOfActiveSetSize; //记录总时隙
	float m_fSpendingOfSHO;         //记录软切换开销

	//相关统计量 add by slj 20041020
	long m_lTotalSlotOfSHO;           //记录处于软切换总时隙
	float m_fScaleOfSHO;           //记录软切换比例
	long m_lTotalBLNumInSHO; //记录软切换下总的传输块数
	long m_lTotalFailedBLNumInSHO; //记录软切换下错误传输块数
	float m_fBLERInSHO;            //记录软切换下误块率
	double m_fTotalMsPowerInSHO;     //记录总发射功率
    long m_lTotalMsSlotInSHO;          //记录处于软切换所有移动台所有时隙
	float m_fMeanPowerInSHO;        //记录软切换下平均功率
	

	//数据传输相关变量
	CTypedPtrList<CPtrList, CHttpDataMs*> m_AdmittedHttpDataList;	//接纳控制成功的Http业务用户链表
    CTypedPtrList<CPtrList, CFtpDataMs*> m_AdmittedFtpDataList;		//接纳控制成功的Ftp业务用户链表
//for compile
	CTypedPtrList<CPtrList,CDataMs*> m_AdmittedDataList;

	TFI_TYPE *m_pstDCHTFI;	//数据队列为空时,指定的DCH信道TFI

//DCH掉线相关的统计变量 add by slj
	int m_iDCHUserOfCurrentDrop;		    //本Drop内所有的DCH用户数
	int m_iDropUserOfDCHMs;					//数据DCH掉话用户数
    float m_fDropRatioOfDCHMs;			    //数据DCH用户掉话率
	int m_iUnsatisfiedUserOfDCHMs;          //不满意DCH用户数
	float m_fSatisfiedRadioOfDCHMs;         //DCH用户不满意率
	int m_iInitDroppedUser;				//初始化时间内掉话DCH用户数

	//by zl
	float m_fHSDSCHPower;		//为扇区DSCH信道分配的功率
	
//end of for compile

	//统计文件名参数
	char m_sSystemMeanThroughputFile[40];
		//● 系统平均吞吐量的统计文件,统计整个系统内每个扇区的平均吞吐量,
		//每个drop输出一个值
	char m_sSystemMeanPERFile[40];
		//● 系统平均分组差错概率,整个系统中的分组差错概率,每个drop输出
		//一个值
	char m_sMobileC2IFile[40];
		//● 移动台C/I的统计文件,在指定时间输出所有移动台的C/I数据,
		//点数为移动台的个数
	char m_sMobileThroughputServiceFile[40];
		//● 移动台吞吐量(service)统计文件,按service统计用户吞吐量,
		//点数为移动台的个数
	char m_sVoiceFile[40];
		//话音统计文件,每个drop输出一个值
	char m_sMobileThroughputPacketCallFile[40];
		//● 移动台吞吐量(packet call)统计文件,按packet call统计用户
		//吞吐量,点数为移动台的个数
public:
	
	int m_iSlotNum;							//每drop时隙数
	float m_fSlotTime;						//每时隙时长
	float m_fDropTime;						//每drop时长
	
	int m_iSlotCurrentNum;
	int m_iDropCurrentNum;

	//以下为各个移动台类的参数
	float m_fFudgetFactorOf8PSK;			//8PSK高阶调制因子
	float m_fFudgetFactorOf16QAM;			//16QAM高阶调制因子
	float m_fVoiceActiveFactor;				//话音激活因子
//for compiling	
//the defination of these two variable is not necessary
	float m_fC2IThreshold;					//门限C/I
	float m_fC2ITarget;					//目标C/I
	float m_fPowerControlStep;			//功率控制步长
	float m_fBEROfPC;						//功率控制差错概率
	
	
	float m_fMaxFractionOfTrafficPower;		//业务信道最大功率比例
	float m_fDynamicRangeOfTrafficPower;	        //业务信道功率动态范围
	float m_fMaxFractionOfPacketPower;		//分组信道最大功率比例
	float m_fDynamicRangeOfPacketPower;	        //分组信道功率动态范围
	
	
	float m_fStdSlowFading;					//慢衰标准差
	
	
	int   m_iChannelNumber;                 //各信道类型的数量
	float m_fFractionOfChannel[10];         //各信道对应比例值

//Modified by Li Jing,20040713	
	//话音 BLER vs C/I 表
	float m_fC2IIndex[26];                  //存放着26个C2I值
	float m_fBLER_1[26];                    //对应信道类型为1的BLER值
	float m_fBLER_2[26];                    //对应信道类型为2的BLER值
	float m_fBLER_3[26];                    //对应信道类型为3的BLER值
	float m_fBLER_4[26];                    //对应信道类型为4的BLER值
	float m_fBLER_5[26];                    //对应信道类型为5的BLER值

//Added by Li Jing,20040713
	//数据(64K) BLER vs C/I表
	float m_fC2IIndex64[4];                  //存放着26个C2I值
	float m_fBLER64_1[4];                    //对应信道类型为1的BLER值
	float m_fBLER64_2[4];                    //对应信道类型为2的BLER值
    float m_fBLER64_3[4];                    //对应信道类型为3的BLER值

⌨️ 快捷键说明

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