/// <summary> /// 计算上行业务信道的EbNo /// </summary> /// <param name="ModelList">包含每个小区的链路信息列表</param> /// <param name="point">当前点</param> /// <param name="terminal">终端信息</param> private void CalcUlLinkEbNo(List<RxPowerAndLinkLossModel> ModelList, GeoXYPoint point, Terminal terminal) { GetServiceCell(ModelList); m_MsPoint = GetUserPoint(point); TDTerminal tdTerminal = (TDTerminal)terminal.GetNetWorkTerminal(NetWorkType.TDSCDMA); m_TxPower = tdTerminal.MaxTxPower; foreach (RxPowerAndLinkLossModel rpl in ModelList) { if (m_BestCell.ID == rpl.Cell.ID) { float gain = m_SmartAntGain.CalMainAngleGain(rpl.Cell, m_MsPoint); m_LinkRxPower = m_TxPower - rpl.UpLinkLoss + gain; } } double Io = CalcUlIo(m_BestCell); m_LinkEbNo = (float)m_LinkRxPower - (float)Io + m_UlPG + m_DivGain; }
/// <summary> /// 计算HSDPA吞吐率 /// </summary> /// <param name="terminal">终端信息</param> private void CalcHSDPAThoughput(Terminal terminal) { double m_CI = m_LinkEbNo - m_DlPG - m_DivGain; TDTerminal tdTerminal = (TDTerminal)terminal.GetNetWorkTerminal(NetWorkType.TDSCDMA); TDDwLinkThroughPutCalculator tdDwLinkThroughPutCalc = new TDDwLinkThroughPutCalculator(m_CI, m_BestCell, m_TdHSDPABearList, tdTerminal); m_DwLinkThroughput = tdDwLinkThroughPutCalc.GetThroughPut(); }
private void InitData(List<RxPowerAndLinkLossModel> ModelList, Service service, Terminal terminal, TargetPara target) { m_Terminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM); m_ModelList = ModelList; //数据用户 if (service.CommonType == CommonServiceType.PSService) { GSMTerminal gsmTerminal = (GSMTerminal)terminal.GetNetWorkTerminal(NetWorkType.GSM); GSMPointAnalysisCommonCalc.InialUseList(gsmTerminal); target.TargetThroughput = GSMPointAnalysisCommonCalc.GetPsReqThroughput(); } //语音用户 else { CsInit(service, target); } target.TargetRxPower = -110; }