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

📄 cservicearea.h

📁 此程序为wcdma系统当中ftp/video业务模型的c++程序仿真 通过此程序 能得到此两种业务在多种条件下的吞吐量和无码率的性能
💻 H
字号:
///////////////////////////////////////////////////////////////////
//                             WCDMA TEAM                        //
//                      BUPT Radio Research Center               //
///////////////////////////////////////////////////////////////////
//
//                          CServiceArea.h
//
///////////////////////////////////////////////////////////////////
//
// 服务区环境类的头文件, 用于声明服务区环境类CServiceArea, 其实现在
// CServiceArea.cpp中。
//  
// 将原来的分组信道功率计算函数PacketChannelPower()用下面两个函数
// DCHChannelPower()(DCH信道功率计算函数)和DSCHChannelPower()
// (DSCH信道可用功率计算函数)代替。这两个函数分别调用
// CSector::DCHPowerCumulate()和CSector::DSCHPowerCalculate(). 
// 在仿真中通过循环分别计算各个扇区提供的DCH分组信道和DSCH分组信道的功率
// 
// Written by:     李晶
// Date:     200404
//
///////////////////////////////////////////////////////////////////
#if !defined(CSERVICEAREA_H_INCLUDED)
#define CSERVICEAREA_H_INCLUDED

#include "systemsim.h"
#include "CCell.h"
#include "CSector.h"
///////////////////////////////////////////////////////////////
//		    服务区环境类头文件                               //
///////////////////////////////////////////////////////////////
class CServiceArea
{
//-------------属性--------------
private:
	CCell	      m_aCellArray[MM][NN];	           //小区数组二维数组,维数根据头文件的定义
    SECTORID_TYPE m_stCurrentSector;	           //当前扇区号
  //int	          m_iTotalBsOutrage;               //功率超标的基站累计数	
	                                               //用于统计系统的平均功率超标比例
	char          m_sBsOutrageDataFileName[40];    //数据输出文件路径	
	                                               //用于每个drop统计的基站超标比例数据的输出文件
	float	      m_fSiteDistance;                 //基站间隔	
	                                               //单位为km,也可定义成小区半径,注意两者的换算
	float         m_fCellRadius;                   //小区半径, 在初始化函数中由基站间隔换算求得
	float	      m_fOrthogonalFactor;             //正交因子	
                                                   //用于计算本小区其它信道的干扰对C/I的影响
	int           m_iNumOfSlotInDrop;               //一个DROP内的时隙数,在CNetworkDrive中读入 
	float		  m_fDropTime;
    int m_iTTINum;                      //wlm 060223 用以表征TTI的子时隙序号1,2,3
	                                    //m_iTTINum与m_bIsTransNow与是否调度的组合关系如下:
	                                    //(当且仅当m_iTTINum=1时才调度)
	                                    //若第一子时隙调度成功,则FALSE1(Y)->TRUE1(Y)->TRUE1(Y)->FALSE1(下一TTI)
	                                    //若第一子时隙调度失败,则FALSE1(Y)->FALSE2(N)->FALSE3(N)->FALSE1(下一TTI)

	
//Added by Li Jing,20040928
	float m_fSectorAveragePower[MAXNUMBER];
	int m_iArrayPosition;

public:
    //for compile
	char *m_sIntermediateFileName;

	
//-------------操作----------------
public:
	void Initialization(int,float);                      //初始化函数,循环初始化各小区
	                                               //参数为一个DROP时长
	                                               //主要是计算坐标、监测集
	                                               //并调用小区初始化函数,完成各扇区的初始化。

	CCell* GetCell(CELLID_TYPE);                   //根据小区标号获得对应小区的指针	
	CSector* GetSector(SECTORID_TYPE);	           //根据扇区标号获得对应扇区的指针
	LOCATION_TYPE GetCor(CELLID_TYPE);	           //小区标号到小区坐标(基站坐标)的映射
	CELLID_TYPE GetID(LOCATION_TYPE);              //小区坐标到小区标号的映射	
	SECTORID_TYPE GetUserSector(LOCATION_TYPE);    //移动台坐标到对应所属扇区的映射,将名字由原来
    CELLID_TYPE Translation(CELLID_TYPE);          //阴影小区转换函数 
	                                               //的GetUserCell改为:GetUserSector.
		
	void MonitorSet(CELLID_TYPE);                  //确定某小区的监测集
	
	void DCHAvailablePowerCalculate();			   //计算DCH数据信道可用功率
	//by zl
	void HSDSCHAvailablePowerCalculate();            //新增成员函数。为HSDSCH分组数据信道可用功率计算函数

	void TxPower();                                //实际发射功率计算函数 
	                                               //在仿真中通过循环调用函数CSector::SlotTxPowerCalculate()
	                                               //计算各个扇区的实际发射功率
                                                   //根据各扇区内是否有DSCH用户在传输,更新各扇区DSCH数据用户功率
	void SectorStatics();						   //统计每扇区的分组用户数及正确传输的比特数 
                            
	

	void SystemReset();                            //系统复位函数	
	                                               //调用CSECTOR中的功率复位函数ResetPower()
	void OutputSectorPower();                      //输出扇区功率函数

//Added By Li Jing,20040929
	void CalculateAveragePower();                  //计算某一时刻所有扇区的平均发射功率
	void AvePowerOutput();                         //输出所有扇区的平均发射功率

  //void TotalBsOutrageCalcute();                  //累积功率超标基站数
  //void PortionOfBsOutrage(int);                  //计算功率超标基站比例


/////////////////////////////  以下为接口函数  //////////////////////////////////////////////////////////////	

	SECTORID_TYPE GetCurrentSector();    	       //返回当前扇区号

  //void SetBsOutrageDataFileName(char*);          //设置数据输出文件路径	
	
	void  SetSiteDistance(float);                     //设置基站间隔(小区半径)                                         
	float GetSiteDistance();                        //返回基站间隔(小区半径)	
	
	void  SetOrthogonalFactor(float);              //设置正交因子                           
	float GetOrthogonalFactor();                   //返回正交因子	

	//for compile 
	void SectorPowerToFile(int);				   //输出扇区发射功率到参数文件中
	//end of for compile	
	
    //新增函数  by zl
	 void HSDSCHProcess();     //完成HSDSCH上用户的处理
	 
	//新增接口函数 by zl
    void    TTINumInitialization();//wlm
	void    TTINumAddOne();//wlm
	int     GetTTINum();//wlm


};    
#endif                                  

⌨️ 快捷键说明

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