📄 systemsim.h
字号:
float fMeanSNR; //平均SNR
float fStdSNR; //SNR的方差
float fBLER;
}SNR2BLER1_TYPE;
//速率到 BLER 的映射结构体
typedef struct stRate2BLER1
{
float fEffectiveCodeRate; //等效编码速率
SNR2BLER1_TYPE* pstAddrOfSNR2BLER; //SNR2BLER 表的首地址
int iSNR2BLER1Length; //SNR2BLER 表的长度
}RATE2BLER1_TYPE;
//ENCODER PACKET SIZE 到 BLER 的映射结构体
typedef struct stEPS2BLER1
{
int iEncoderPacketSize; //编码数据包长度
RATE2BLER1_TYPE* pstAddrOfRate2BLER; //Rate2BLER 结构体数组的首地址
int iRATE2BLER1Length; //Rate2BLER 结构体数组的长度
}EPS2BLER1_TYPE;
/* BLER 估计数据表(2)*/
//SNR的均值到 BLER 的映射结构体
typedef struct stSNR2BLER2
{
float fMeanSNR; //平均SNR
float fBLER;
}SNR2BLER2_TYPE;
//SNR的方差到 BLER 修正值的映射结构体
typedef struct stStd2BLER
{
float fStdSNR; //SNR的方差
float fAdjustOfBLER; //BLER 修正值
}STD2BLER_TYPE;
//速率到 BLER 的映射结构体
typedef struct stRate2BLER2
{
float fEffectiveCodeRate; //等效编码速率
SNR2BLER2_TYPE* pstAddrOfSNR2BLER; //SNR2BLER 表的首地址
STD2BLER_TYPE* pstAddrOfStd2BLER; //Std2BLER 表的首地址
}RATE2BLER2_TYPE;
//ENCODER PACKET SIZE 到 BLER 的映射结构体
typedef struct stEPS2BLER2
{
int iEncoderPacketSize; //编码数据包长度
RATE2BLER2_TYPE* pstAddrOfRate2BLER; //Rate2BLER 结构体数组的首地址
}EPS2BLER_TYPE;
//软切换消息结构体
typedef struct stSoftHandoffMessage
{
int iMonitorIndex; //目标扇区在候选集数组中的下标
SECTORID_TYPE stTargetSector; //目标扇区的扇区标号
int iWaitTime; //需要等待的时间长度,以时隙为单位
bool bIsAdd; //是否加入到激活集中,true: add,false: drop
}SOFTHANDOFFMESSAGE_TYPE;
//小区交换消息结构体
typedef struct stCellSwitchMessage
{
int iCandidateIndex; //目标扇区在候选集数组中的下标
SECTORID_TYPE stTargetSector; //目标扇区的扇区标号
int iWaitTime; //需要等待的时间长度,以时隙为单位
}CELLSWITCHMESSAGE_TYPE;
//Packet到达消息结构体
typedef struct stPacketArrivalMessage
{
int iGeneratedPacketSize; //生成时的分组大小,固定值生成分组时赋值
int iTimeOfGeneratePacket; //此Packet生成的时候的时隙数
int iObjectIndicator; //分组属于主从对象的标识
int iPacketSize; //当前Packet的大小
int iPacketIndex; //此Packet是其所属的PC的第几个Packet,暂时没用到
bool bIsPacketCallEnd; //表示此Packet是否是其所属的Packet Call的最后一个Packet
bool bIsSucfulTrans; //分组是否正确传输的标志,初始值为true
}PACKETARRIVALMESSAGE_TYPE;
//PacketCall到达消息结构体
typedef struct stPacketCallArrivalMessage
{
int iTimeOfPCArrival; //此PacketCall生成的时候的时隙数
int iMainObjectSize; //分组呼叫中主对象的大小,生成分组呼叫时赋值
long lDataBitsOfPC; //分组呼叫包含比特总数
long lSucfulBitNum; //记录当前的PC的成功传输的比特数
bool bIsMOSucfulTrans; //分组主对象是否正确传输的标志,初始值为true
}PACKETCALLARRIVALMESSAGE_TYPE;
enum OBJECTTYPE{MAINOBJECT,PLAGIN};
const double ProcessGain[4]={17.2,20.2,23.2,23.2};
class CNetworkDrive;
class CServiceArea;
class CMsManager;
class CLinkPrediction;
class CCell;
class CSector;
class CMobile;
class CChannelModel;
class CVoiceMs;
class CDataMs;
class CHttpDataMs;
class CFtpDataMs;
class CVideoDataMs; //20060116
#define FastFadingValueLength 90000
const float fConstTc=1000.; //zx20010813,
//计算一定时间内数据用户平均速率的时间窗口常量, 单位为slot,
//具体情况见Proportional Fair调度算法的说明
typedef struct stC2IFeedbackDelay
{
float fDelayedC2IValue;
int iDelayTime;
}C2IFEEDBACKDELAY_TYPE;
//N信道停等时延 by zl
#define SAWFEEDBACKDELAY 0 //反向链路反馈时延,包括三个部分:
//UE处理ack/nack和计算C/I的时延+
//反馈信息从UE反馈到到NodeB时延+
//NodeB处理反馈信息的时延 by zl
//C/I反馈时延 by zl
#define C2IFEEDBACKDELAY 0 //反向链路反馈时延,3个时隙
//链路预测接口 by slj 20050408
//速率预测表
typedef struct stHSRate2CI
{
float fOriginalTargetC2I; //最初的目标值
int iRateOrder; //代表当前速率等级
float fCurEPR; //代表当前传输块残余错误率
float fTargetC2I; //目标C/I(dB)
float fDataRate; //数据速率(kbps)
int iModulationOrder; //调制阶数
float fCodeRate; //编码速率
int iTTISize; //一个Block的大小,bit
int iMCSMode; //MCS类型
int iCodeNum; //用于仿多码情况下传输速率的计算
}HSRATE2CI_TYPE;
typedef struct stHSChannel2CI
{
int iChannelMode; //信道类型
HSRATE2CI_TYPE *pstAddrOfRate2CI; //Rate2CI 结构体数组的首地址
int iRATE2CILength; //Rate2CI 结构体数组的长度
}HSChannel2CI_TYPE;
//FER表
//当前TTI平均C/I到 FER 的映射结构体
typedef struct stHSCI2FER
{
float fC2I; //平均C2I,dB
float fFER; //对应误帧率
}HSCI2FER_TYPE;
//MCS级别到 FER 的映射结构体
typedef struct stHSMCS2FER
{
int iMCSMode; //MCS类型
HSCI2FER_TYPE *pstAddrOfCI2FER; //CI2FER 表的首地址
int iCI2FERLength; //CI2FER 表的长度
}HSMCS2FER_TYPE;
//信道类型到 FER 的映射结构体
typedef struct stHSChannel2FER
{
int iChannelMode; //信道类型
HSMCS2FER_TYPE *pstAddrOfMCS2FER; // MCS2FER结构体数组的首地址
int iMCS2FERLength; // MCS2FER结构体数组的长度
}HSChannel2FER_TYPE;
//当前系统码字个数到MCS与CI2FER曲线映射结构体
typedef struct stHSCodeNum2FER
{
int iCodeNum; //码字个数
HSChannel2FER_TYPE *pstAddrOfChannel2FER; // Channel2FER结构体数组的首地址
int iChannel2FERLength; // Channel2FER结构体数组的长度
}HSCodeNum2FER_TYPE;
//子信道结构体 by zl
typedef struct stNChannelSAW
{
//int iSAWProcessNum; //用数组下标代替
bool bNewDataIndicator; //新数据指示符
bool bIsTTIGood; //ACK/NACK指示符
int iFeedbackTimer; //反馈定时器
int iTransCounter; //记录传输次数
float fChannelC2I; //合并的C/I
HSRATE2CI_TYPE* pstRate2CI; //速率预测结构体,重传与首次传输的相同
}NCHANNELSAW_TYPE;
//long-range prediction 20051214
#define DelayedSlot 0 //单位为TTI
#define mu 0.02
#define orders 50
#define IsPredict false
//for Video
#define DelayLimit 5 //单位为秒
#define PacketDropLimit 0.4 //单位为秒zl 20060328
#define QoSWeight 4.247425 //by huangfan 20060405
//weight for M_LWDF schedule algorithm
//which define the required level of QoS
//前向Video业务packet消息结构体 20060116
typedef struct stFLVideoPacketArrivalMessage
{
int iPacketSize; //记录此packet的大小
int iPacketIndex; //记录此packet在trace中的序号 zl20060404
int iTimeOfGeneratePacket; //记录此packet到达的时隙号
int iPacketDropLimit; //记录此packet的最大丢包时延 zl20060328
bool bIsSucfulTrans; //分组是否正确传输的标志,初始值为true
}FLVIDEOPACKETARRIVALMESSAGE_TYPE;
//前向Video业务packetcall(即frame)结构体 20060116
typedef struct stFLVideoPacketCallArrivalMessage
{
int iTimeOfGenerateFrame; //记录当前帧的到达时刻
long lDataBitsOfFrame; //记录当前帧的总比特数
}FLVIDEOPACKETCALLARRIVALMESSAGE_TYPE;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -