?? systemsim.h
字號:
//////////////////////////////////////////////////////////////////////////////
//
// TITLE: The Definations of Fixed Parameters and Types of the Program
//
// PURPOSE:Give the Definations of Fixed Parameters and Types of the
// Program that all the modules may use
//
// COMMENTS:
// The definations consist of these two parts:
//
// 1.公共數(shù)據(jù)結構, 可以分為4類:
// ● 與地理位置有關的公共數(shù)據(jù)。包括:坐標、小區(qū)標號、扇區(qū)標號。
// ● 與鄰小區(qū)干擾和切換有關的公共數(shù)據(jù)。包括:周圍扇區(qū)信息、候選
// 扇區(qū)信息、激活扇區(qū)信息,以及相關的數(shù)組、鏈表和函數(shù)。
// ● 與信道變化模型有關的公共數(shù)據(jù)。包括:信道數(shù)據(jù)、衰落數(shù)據(jù)。
// 其中,衰落數(shù)據(jù)結構體數(shù)組構成了信道模型類與移動臺類的接口。
// ● 與鏈路性能預測有關的公共數(shù)據(jù)。包括:速率估計、BLER估計兩個
// 數(shù)據(jù)表中用到的數(shù)據(jù)結構。數(shù)據(jù)業(yè)務移動臺使用速率估計表,根據(jù)當前
// 的C/I確定適合的數(shù)據(jù)速率,作為系統(tǒng)調度算法的依據(jù)。在某個
// sub-packet傳輸結束后,數(shù)據(jù)業(yè)務移動臺根據(jù)encoder packet的大小、
// 數(shù)據(jù)速率、平均編碼速率、C/I的均值和方差,判斷當前分組的BLER,
// 然后根據(jù)BLER估計該分組是否正確。上述數(shù)據(jù)表作為鏈路性能預測類的
// 成員數(shù)據(jù),鏈路性能預測類中需要定義與之配合的成員函數(shù)。
//
// 2.宏定義部分:
// 定義了系統(tǒng)中相對固定的參數(shù),可以作為常量在整個系統(tǒng)程序中使用。
//
// 本文件可以作為定義系統(tǒng)公共頭文件的依據(jù),在變量與宏的說明過程中,
// 已經(jīng)給出了大部分的英文說明或定義,可以以此為依據(jù),并結合已有的代碼
// 編寫規(guī)范,定義變量和宏的名稱。
//
// Writer: Chenmeiya Lijing Zhoujianhua
//
// DATE: 2004.5
//
//////////////////////////////////////////////////////////////////////////////
#if !defined(SYSTEMSIM_H__INCLUDED_)
#define SYSTEMSIM_H__INCLUDED_
#include <math.h>
#include <afxtempl.h>
#include <iostream.h>
#include "sys_random.h"
#include "newran.h"
#define SlotsNumPerFrame 15 //每一幀的時隙數(shù)
#define BlockTimeThreshold 7500 //單位為時隙,即為5秒鐘
#define MeanCallTime 180 //平均呼叫時長 120 秒
#define MAXNUMBER 5000 //每100slots輸出一次,仿真時長為125s
#define CarrierFrequency 2e9 //載波頻率
#define MM 5 //服務區(qū)內橫向小區(qū)數(shù)量
#define NN 5 //服務區(qū)內縱向小區(qū)數(shù)量
#define SectorNumber 3 //一個小區(qū)的扇區(qū)數(shù)
#define NearCoefficient 0.707 //慢衰近場系數(shù)
#define FarCoefficient 0.707 //慢衰遠場系數(shù)
#define FractionOfPilotChannel 0.1 //導頻功率比例
#define FractionOfCommonChannel 0.1 //其他公共信道功率比例
#define FractionOfHSDSCHChannel 0.8 //為HSDSCH信道預留的功率比例 by zl 20050422
#define BandWidth 5e6 //系統(tǒng)帶寬
#define ChipRate 3.84e6 //碼片速率
#define NoiseFigure 10
//移動臺接收機噪聲系數(shù),疊加于NoiseDensity之上,單位:dB
#define NoiseDensity -174
//熱噪聲功率譜密度
#define NoisePower float((pow(10,(NoiseDensity+NoiseFigure)/double(10))*BandWidth))
//熱噪聲功率.噪聲功率譜密度與帶寬的乘積,計算C/I時用
#define AntennaGain 15 //天線增益&電纜損耗,單位:dB
//與天線方向性(Antenna Orientation)疊加,
//構成天線衰減值(Antenna Attenuation)
#define OtherLosses 10 //其他損耗,單位:dB
#define MsAntennaGain -1 //移動臺天線增益,單位:dB
#define MinPathLoss 70 //路徑損耗最小值
#define SlotSize 0.0006666667 //時隙長度(以s為單位)
#define PI 3.14159265
#define MinimumValue pow(10,-30) //無窮小
#define ParameterFile "parameter.txt" //參數(shù)文件路徑名
#define SubslotNumber 4 //一個時隙中子時隙的數(shù)量
//#define MaxTransmissionNum 1 //最大傳輸次數(shù)
#define INITIALSLOT 900 //表示程序初始化時長的宏定義,以時隙為單位
#define MAXTRANSRATE 1228.8
#define MINTRANSRATE 19.2
//for compile
#define MAXBLNUM 24
#define MAXTTISLOTNUM 30
#define HSDSCHTTISLOTNUM 3 //HS-DSCH TTI時隙數(shù) by zl
#define MAXTRANSNUM 1
#define MAXRATENUM 10 //速率個數(shù),用于門限調整 by zl 20050427
#define MAXSAWCHANNELNUM 1 //一個用戶子信道數(shù)目的最大值 by zl
//功率的單位都是dBm
#define POWERCONTROLSTEP 1
#define DROPTIME 0.1
#define SLOTTIME 0.00066667
//#define DEBUG_FTP
//#define DEBUG_FTP_BIT
//end of for compile
//位置坐標結構體
typedef struct stLocation
{
float x; //橫坐標
float y; //縱坐標
} LOCATION_TYPE;
//小區(qū)標號結構體
typedef struct stCellID
{
int m; //橫坐標:小區(qū)在服務區(qū)內的橫向位置
int n; //縱坐標:小區(qū)在服務區(qū)內的縱向位置
} CELLID_TYPE;
//扇區(qū)標號結構體
typedef struct stSectorID
{
CELLID_TYPE stCellID; //小區(qū)標號:小區(qū)在服務區(qū)內的位置
int s; //扇區(qū)序號:該扇區(qū)在小區(qū)內的序號
}SECTORID_TYPE;
//監(jiān)測扇區(qū)信息結構體(Li Jing定義)
typedef struct stMonitorSector//W中監(jiān)測集為本小區(qū)加上周圍一圈小區(qū),共7個小區(qū)21個扇區(qū)
{
SECTORID_TYPE stSectorID; //扇區(qū)標號
float fPathLoss; //路徑損耗
//該扇區(qū)到達移動臺的路徑損耗
float fAntennaGain; //天線增益
//該扇區(qū)到達移動臺方向上的天線增益
float fFastFading[SubslotNumber];//快衰落值
//該扇區(qū)到達移動臺的快衰落
float fSlowFading; //慢衰落值
//該扇區(qū)到達移動臺的慢衰落,根據(jù)近場值和遠場值得到
float fPropagationLoss; //總的損耗值:上述三項之和(不包括快衰)
float fPowerFromTheSector; //此監(jiān)測扇區(qū)到達移動臺的總功率(干擾)
float fInterferenceFromOtherSector; //相鄰的監(jiān)測扇區(qū)來的對移動臺的總干擾
//fInterferenceFromOtherSector值就是移動臺所有監(jiān)測扇區(qū)(除了移動臺所在扇區(qū)本身之外的20個扇區(qū))fPowerFromTheSector值的累加和
float fPilotPower; //本扇區(qū)導頻接收功率
//根據(jù)該扇區(qū)的導頻功率和各類損耗與衰落計算
float fPilotSNR; //Ms處本扇區(qū)導頻信噪比
//導頻接收功率/(本扇區(qū)其他信道接收功率*正交因子+
//相鄰扇區(qū)干擾功率總和+熱噪聲)
bool bIsInActive; //是否在激活集內
int iStatusTimer; //狀態(tài)改變計時器
//記錄導頻信噪比超過或低于門限的時間,若計時器達到設定值,
//則改變上面布爾型變量的狀態(tài)
bool bIsBestSector; //是否為最佳基站
//標志監(jiān)測集內導頻信噪比最高的扇區(qū)
}MONITORSECTOR_TYPE;
//激活扇區(qū)結構體
typedef struct stActiveSector //只有給移動臺分配了功率的扇區(qū)才是激活扇區(qū)!
{
SECTORID_TYPE stSectorID; //扇區(qū)標號
int iIndexInMonitor; //本扇區(qū)在監(jiān)測集中的位置(即該激活扇區(qū)在這個移動臺的監(jiān)測集數(shù)組中的下標)
float fTrafficPower; //前向業(yè)務信道(或分組信道)發(fā)射功率(僅為激活扇區(qū)對此移動臺的發(fā)射功率)
float fTrafficC2I; //單位是dB
//前向業(yè)務信道(或分組信道)信噪比(在移動臺處)
//業(yè)務信道(或分組信道)接收功率/(本扇區(qū)其他信道接收功率*正交因子+相鄰扇區(qū)干擾功率總和+熱噪聲)
}ACTIVESECTOR_TYPE;
//傳輸格式指示結構體(cmy定義)
typedef struct stTFI //應該是一個擴頻速率(或者是一個傳輸速率)對應一個TFI
{
int iTransBLSize; //傳輸塊大小
int iTransBLNum; //TTI中傳輸塊的個數(shù)
int iTTISlotNum; //一個TTI所含的時隙數(shù)(對于話音用戶,此為固定的30個時隙--20ms)
}TFI_TYPE;
//用戶類型-枚舉型 by zl
enum Usertype {voice,DCHData,HSDSCHData};
enum TotalUserType {T_voice,T_data};
//信道數(shù)據(jù)結構體
typedef struct stChannelModel
{
int iID; //ID
float fMobileSpeed; //移動臺速度
int iCoSlotNum; //相關時隙長度
}CHANNELMODEL_TYPE;
//衰落數(shù)據(jù)結構體
typedef struct stFadingValue
{
CELLID_TYPE stCellID; //小區(qū)序號
float fSlowFarFading; //慢衰遠場值
float fSlowFading; //慢衰值:在鏈路級模塊中根據(jù)近場和
//遠場算出
float fFastFadingSet[SectorNumber][SubslotNumber];
//快衰數(shù)組:對應一個小區(qū)中的三個扇區(qū)
}FADINGVALUE_TYPE;
/*速率估計數(shù)據(jù)表*/
//Modified by LiJing,20040713
//速率預測結構體
typedef struct stRate
{
int iChannelType; //信道類型
float fDataRate; //預測的數(shù)據(jù)速率
float fTargetC2I; //功率控制的目標值,也是用作速率預測的參考值
TFI_TYPE *pTFI; //當前速率下的TFI結構
}RATE2CI_TYPE;
typedef struct RateC2IBLER
{
float fDataRate; //數(shù)據(jù)傳輸速率
float fTTIAverageC2I; //TTI內平均C2I值
float fBLER; //TTI內誤塊率
}RATEC2IBLER_TYPE;
/* BLER 估計數(shù)據(jù)表(1)*/
//SNR的均值、方差到 BLER 的映射結構體
typedef struct stSNR2BLER1
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -