Exemplo n.º 1
0
 /// <summary>
 /// 计算BCCH信道受到一个GSM邻载波的干扰
 /// </summary>
 /// <param name="user">用户</param>
 /// <param name="interfTRX">干扰载波</param>
 public void CalcGsmBCCHInterf(GSMSimUser user,GSMSimTRX interfTRX,InterfCalcPara interfPara,TotalLossCalc totalLinkLoss,IInterfCalc interfCalc)
 {
     m_TotalLossCalc = totalLinkLoss;
     m_IsCalcDLBCCH = true;
     m_InterfPara = interfPara;
     m_User = user;
     m_IsUserCsService = user.IsCs;
     m_InterfCalc = interfCalc;
     GSMSimTRX userTRX = FindUsefulTrx(user, true, true);
     m_IsSyn = interfTRX.NeTRX.SynchroRank == userTRX.NeTRX.SynchroRank;
     m_IsOtherSignalDTX = interfTRX.NeTRX.IsUseDTX;
     CalcHopFactor(interfTRX, userTRX, interfPara);
     if ((base.scHopFactor==0)&(base.adjHopFactor==0)&(base.adj2HopFactor==0))
         return ;
     //创建信号
     Signal userSignal = BuildGsmSignal(userTRX, true);
     Signal source = BuildGsmSignal(interfTRX, true);
     float sourcePwr = float.NegativeInfinity;
     float loss = totalLinkLoss.GetAllLoss(user, interfTRX, NetWorkType.GSM, true);
     CalcBcchInterf(interfTRX, userSignal, source, ref sourcePwr, loss);
 }
Exemplo n.º 2
0
 /// <summary>
 ///  GSM小区对GSM用户的干扰(邻小区)
 /// </summary>
 /// <param name="user"></param>
 /// <param name="isDL"></param>
 /// <param name="interfCell"></param>
 /// <param name="interfPara"></param>
 /// <param name="totalLinkLoss"></param>
 public void CalcTCHInterf(GSMSimUser user, bool isDL, GSMSimTRX interfCell, InterfCalcPara interfPara, TotalLossCalc totalLinkLoss, IInterfCalc interfCalc)
 {
     m_IsDL = isDL;
     m_TotalLossCalc = totalLinkLoss;
     m_InterfCalc = interfCalc;
     m_InterfPara = interfPara;
     m_User = user;
     m_IsCalcDLBCCH = false;
     m_IsUserCsService = user.IsCs;
     GSMSimTRX userTrx = FindUsefulTrx(user, false, isDL);
     m_IsSyn = interfCell.NeTRX.SynchroRank == userTrx.NeTRX.SynchroRank;
     CalcHopFactor(interfCell, userTrx,interfPara);
     if ((scHopFactor == 0) & (adjHopFactor == 0) & (adj2HopFactor == 0))
         return;
     Signal userSignal = BuildGsmSignal(userTrx, isDL);
     Signal source = BuildGsmSignal(interfCell, isDL);
     float sourcePwr = float.NegativeInfinity;
     List<GSMTimeSlot> userTSs = FindUserTSs(user, isDL);
     source.Frequency = CommonCalc.GSMFreqPointToFrequency(interfCell.NeTRX.FreqBand.DLFrequency, interfCell.NeTRX.FreqBand.BandWidth,
         interfCell.NeTRX.FreqBand.StartChIndex, interfCell.NeTRX.ChannelIndex, isDL);
     float loss = totalLinkLoss.GetAllLoss(user, interfCell, NetWorkType.GSM, isDL);
     sourcePwr = CalcTchInterf(user, isDL, interfCell, userSignal, source, sourcePwr, userTSs, loss);
 }