Example #1
0
        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;
        }
Example #2
0
 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;
 }
Example #3
0
 /// <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);
     }
 }
Example #4
0
 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;
 }
Example #5
0
 /// <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;
 }
Example #6
0
 /// <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);
     }
 }
Example #7
0
 /// <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;
 }
Example #8
0
 /// <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;
 }
Example #9
0
 /// <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);
     }
 }
Example #10
0
 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;
 }
Example #11
0
 /// <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;
 }
Example #12
0
 /// <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);
     }
 }
Example #13
0
 /// <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);
 }
Example #14
0
 public InterfResult CalcTwoSourceInf(Signal usefulSignal, Signal source1, Signal source2, float tOI)
 {
     InterfResult result = new InterfResult();
     result.IMP3 = -140;
     return result;
 }
Example #15
0
 /// <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);
     }
 }
Example #16
0
 /// <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;
 }
Example #17
0
 /// <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;
 }
Example #18
0
 /// <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);
     }
 }
Example #19
0
 /// <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;
 }
Example #20
0
 public InterfResult CalcOneSourceInf(Signal usefulSignal, Signal source)
 {
     InterfResult interfResult = new InterfResult();
     return interfResult;
 }
Example #21
0
        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;
        }