public InterfResult CalcOneSourceInf(Signal usefulSignal, Signal source) { InterfResult result = new InterfResult(); result.SC = -100; result.AC = -110; result.AC2 = -120; result.SE = -130; result.BCI = -130; result.OtherAC = float.MinValue; return result; }
public InterfResult CalcOneSourceInf(Signal usefulSignal, Signal source) { InterfResult itfR = new InterfResult(); itfR.AC = 10; itfR.AC2 = 10; itfR.BCI = 10; itfR.IMP3 = 10; itfR.OtherAC = 10; itfR.OtherSC = 10; itfR.SC = 10; itfR.SE = 10; return itfR; }
/// <summary> /// 根据DTX修改异制式干扰 /// </summary> private void ReviseInterfResultByDTX(GSMSimUser user, InterfResult res) { if (user.IsUseDTX & m_IsUserCsService) { res.SE += (float)UnitTrans.todB(m_InterfPara.UserDTXFactor); res.BCI += (float)UnitTrans.todB(m_InterfPara.UserDTXFactor); } }
private static float ULSEandBCIResult(GSMSimUser user, NetWorkType netType, InterfResult res, float temp, GSMTimeSlot ts) { if (netType == NetWorkType.TDSCDMA) { if (!user.ULTDInterf.ContainsKey(ts)) { user.ULTDInterf.Add(ts, res.SE); } temp = user.ULTDInterf[ts]; temp = (float)UnitTrans.AdddBm(temp, res.SE); temp = (float)UnitTrans.AdddBm(temp, res.BCI); user.ULTDInterf[ts] = temp; } else { if (!user.ULUMTSInterf.ContainsKey(ts)) { user.ULUMTSInterf.Add(ts, res.SE); } temp = user.ULUMTSInterf[ts]; temp = (float)UnitTrans.AdddBm(temp, res.SE); temp = (float)UnitTrans.AdddBm(temp, res.BCI); user.ULUMTSInterf[ts] = temp; } return temp; }
/// <summary> /// 计算业务信道上行SE和BCI /// </summary> private float ULTCHSEandBCI(GSMSimUser user, NetWorkType netType, InterfResult res) { float temp = float.NegativeInfinity; foreach (GSMTimeSlot ts in user.UlTs) { if (!user.ULInterf.ContainsKey(ts)) { user.ULInterf.Add(ts, float.NegativeInfinity); } temp = user.ULInterf[ts]; temp = (float)UnitTrans.AdddBm(temp, res.SE); temp = (float)UnitTrans.AdddBm(temp, res.BCI); user.ULInterf[ts] = temp; temp = ULSEandBCIResult(user, netType, res, temp, ts); } return temp; }
/// <summary> /// 业务信道SE和BCI的计算 /// </summary> private void TCHSEandBCI(GSMSimUser user, bool isDL, NetWorkType netType, InterfResult res) { if (isDL) { DLTCHSEandBCI(user, netType, res); } else { ULTCHSEandBCI(user, netType, res); } }
/// <summary> /// 将同频、邻频、第二邻频干扰,阻塞干扰,杂散干扰,互调干扰相加 (线性值) /// </summary> /// <param name="interfResult"></param> /// <returns></returns> public float AddAllInterf(InterfResult interfResult) { float interf = AddPowerTomw(interfResult.SC, interfResult.AC, interfResult.AC2) + AddPowerTomw(interfResult.SE, interfResult.BCI, interfResult.IMP3); return interf; }
/// <summary> /// 计算第二邻频 /// </summary> /// <param name="interfResult"></param> /// <returns></returns> private float CalcAdj2Interf(InterfResult interfResult) { float adj2Interf = float.NegativeInfinity; if (adj2HopFactor != 0) { adj2Interf = interfResult.AC2; adj2Interf += (float)UnitTrans.todB(adj2HopFactor); if (!m_IsSyn) adj2Interf += (float)UnitTrans.todB((float)1 / 8); } return adj2Interf; }
/// <summary> /// 异制式干扰计算 /// </summary> /// <param name="user"></param> /// <param name="isCalcDLBCCH"></param> /// <param name="isDL"></param> /// <param name="netType"></param> /// <param name="res"></param> private void OtherNetResult(GSMSimUser user, bool isCalcDLBCCH, bool isDL, NetWorkType netType, InterfResult res) { if (isCalcDLBCCH) { CalcBCCHSEandBCI(user, netType, res); } else { TCHSEandBCI(user, isDL, netType, res); } }
private static float AddDLResult(GSMSimUser user, NetWorkType netType, InterfResult res, float temp, GSMTimeSlot ts) { if (netType == NetWorkType.TDSCDMA) { if (!user.DLTDInterf.ContainsKey(ts)) { user.DLTDInterf.Add(ts, float.NegativeInfinity); } temp = user.DLTDInterf[ts]; user.DLTDInterf[ts] = (float)UnitTrans.AdddBm(temp, res.IMP3); } else { if (!user.DLUMTSInterf.ContainsKey(ts)) { user.DLUMTSInterf.Add(ts, float.NegativeInfinity); } temp = user.DLUMTSInterf[ts]; user.DLUMTSInterf[ts] = (float)UnitTrans.AdddBm(temp, res.IMP3); } return temp; }
/// <summary> /// 业务信道下行IMP3干扰 /// </summary> private float TCHDLIMP3(GSMSimUser user, NetWorkType netType, InterfResult res) { float temp = float.NegativeInfinity; foreach (GSMTimeSlot ts in user.DlTs) { if (!user.DLInterf.ContainsKey(ts)) { user.DLInterf.Add(ts, float.NegativeInfinity); } temp = user.DLInterf[ts]; user.DLInterf[ts] = (float)UnitTrans.AdddBm(temp, res.IMP3); temp = AddDLResult(user, netType, res, temp, ts); } return temp; }
/// <summary> /// 互调干扰结果 /// </summary> /// <param name="user"></param> /// <param name="isDL"></param> /// <param name="netType"></param> /// <param name="res"></param> private void Imp3Result(GSMSimUser user, bool isDL, NetWorkType netType, InterfResult res) { if (m_IsCalcDLBCCH) { user.BCCHInterf = (float)UnitTrans.AdddBm(user.BCCHInterf, res.IMP3); } else if (isDL) { TCHDLIMP3(user, netType, res); } else { TCHULIMP3(user, netType, res); } }
/// <summary> /// 把InterfResult转换成线性干扰值 /// </summary> /// <param name="intf"></param> /// <returns></returns> private float Change(InterfResult intf) { float result = float.MinValue; result = (float)UnitTrans.AdddB(result, intf.AC); result = (float)UnitTrans.AdddB(result, intf.AC2); result = (float)UnitTrans.AdddB(result, intf.BCI); result = (float)UnitTrans.AdddB(result, intf.IMP3); result = (float)UnitTrans.AdddB(result, intf.SC); result = (float)UnitTrans.AdddB(result, intf.SE); return (float)UnitTrans.dBto(result); }
public InterfResult CalcTwoSourceInf(Signal usefulSignal, Signal source1, Signal source2, float tOI) { InterfResult result = new InterfResult(); result.IMP3 = -140; return result; }
/// <summary> /// 根据跳频修改异制式干扰 /// </summary> private void ConsiderHopping(GSMSimTRX useTrx, InterfResult res) { if (useTrx.NeTRX.TRXType != TRXType.BCCH & useTrx.NeTRX.HopMode != HoppingMode.NonHopping) { res.SE += (float)UnitTrans.todB((double)1 / useTrx.NeTRX.MALList.Count); res.BCI += (float)UnitTrans.todB((double)1 / useTrx.NeTRX.MALList.Count); } }
/// <summary> /// 计算同频干扰 /// </summary> /// <param name="interfResult"></param> /// <returns></returns> private float CalcScInterf(InterfResult interfResult) { float sameInterf = float.NegativeInfinity; //同频干扰 if (scHopFactor != 0) { sameInterf = interfResult.SC; sameInterf += (float)UnitTrans.todB(scHopFactor); if (!m_IsSyn) sameInterf += (float)UnitTrans.todB((float)1 / 8); } return sameInterf; }
/// <summary> /// 初始化BCI和SE /// </summary> private void InitBCIandSE(InterfResult res) { if (!m_InterfPara.IsCalcBCI) res.BCI = float.NegativeInfinity; if (!m_InterfPara.IsCalcSE) res.SE = float.NegativeInfinity; }
/// <summary> /// BCCH信道异制式干扰计算 /// </summary> private void CalcBCCHSEandBCI(GSMSimUser user, NetWorkType netType, InterfResult res) { float temp; user.BCCHInterf = (float)UnitTrans.AdddBm(user.BCCHInterf, res.SE); user.BCCHInterf = (float)UnitTrans.AdddBm(user.BCCHInterf, res.BCI); ; if (netType == NetWorkType.TDSCDMA) { temp = TdInterfResult(user, res); } else { temp = UmtsInterfResult(user, res); } }
/// <summary> /// TD系统的干扰 /// </summary> /// <param name="user"></param> /// <param name="res"></param> /// <returns></returns> private static float TdInterfResult(GSMSimUser user, InterfResult res) { float temp; if (!user.ULTDInterf.ContainsKey(user.BestServer.TSs[0])) { user.ULTDInterf.Add(user.BestServer.TSs[0], float.NegativeInfinity); } temp = user.ULTDInterf[user.BestServer.TSs[0]]; temp = (float)UnitTrans.AdddBm(temp, res.SE); temp = (float)UnitTrans.AdddBm(temp, res.BCI); user.ULTDInterf[user.BestServer.TSs[0]] = temp; return temp; }
public InterfResult CalcOneSourceInf(Signal usefulSignal, Signal source) { InterfResult interfResult = new InterfResult(); return interfResult; }
private float CalcOtherSystem(InterfResult dbinter) { float interf = 0; interf += (float)UnitTrans.dBto(dbinter.AC); interf += (float)UnitTrans.dBto(dbinter.AC2); interf += (float)UnitTrans.dBto(dbinter.BCI); interf += (float)UnitTrans.dBto(dbinter.IMP3); interf += (float)UnitTrans.dBto(dbinter.SC); interf += (float)UnitTrans.dBto(dbinter.SE); return interf; }