예제 #1
0
파일: GSMTRX.cs 프로젝트: xiaoyj/Space
 public void CopyFrom(GSMTRX gsmTrx)
 {
     base.CopyFrom(gsmTrx);
     this.MAIO = gsmTrx.MAIO;
     this.Pwbackff8psk = gsmTrx.Pwbackff8psk;
     this.IsUseDTX = gsmTrx.IsUseDTX;
     this.TRXType = gsmTrx.TRXType;
     this.MinPower = gsmTrx.MinPower;
     this.TRXPower = gsmTrx.TRXPower;
     this.TimeGapList = gsmTrx.TimeGapList;
     this.LotTargetUL = gsmTrx.LotTargetUL;
     this.HOGate = gsmTrx.HOGate;
     this.Average8PSKPowerBackOff = gsmTrx.Average8PSKPowerBackOff;
     this.HSN = gsmTrx.HSN;
     this.TargetLoad = gsmTrx.TargetLoad;
     this.EnableEgprs = gsmTrx.EnableEgprs;
     this.HopMode = gsmTrx.HopMode;
     this.MsMaxPower = gsmTrx.MsMaxPower;
     this.MAL = gsmTrx.MAL;
     this.SynchroRank = gsmTrx.SynchroRank;
     this.ULIdealRxCIR = gsmTrx.ULIdealRxCIR;
     this.ULIdealRxPwr = gsmTrx.ULIdealRxPwr;
     this.Antdivgain = gsmTrx.Antdivgain;
     this.NetworkColourCode = gsmTrx.NetworkColourCode;
     this.BaseStationColourCode = gsmTrx.BaseStationColourCode;
     this.RAC = gsmTrx.RAC;
     this.LAC = gsmTrx.LAC;
 }
예제 #2
0
        public static void InitCellList(List<IACell> cellList)
        {
            UMTSCell bestCell = new UMTSCell();
            bestCell.FreqBand = new FrequencyBand();
            bestCell.FreqBand.BandWidth = 5f;
            bestCell.FreqBand.DLFrequency = 1900f;
            bestCell.FreqBand.StartChIndex = 0;
            bestCell.ChannelIndex = 0;
            bestCell.ID = 0;

            UMTSCell interfCell = new UMTSCell();
            interfCell.FreqBand = new FrequencyBand();
            interfCell.FreqBand.BandWidth = 5f;
            interfCell.FreqBand.DLFrequency = 1900f;
            interfCell.FreqBand.StartChIndex = 0;
            interfCell.ChannelIndex = 0;
            interfCell.ID = 1;

            IACell interfCell2 = new GSMTRX();
            interfCell2.FreqBand = new FrequencyBand();
            interfCell2.FreqBand.BandWidth = 0.2f;
            interfCell2.FreqBand.DLFrequency = 1905f;
            interfCell2.FreqBand.StartChIndex = 0;
            interfCell2.ChannelIndex = 0;
            interfCell2.ID = 2;

            cellList.Add(bestCell);
            cellList.Add(interfCell);
            cellList.Add(interfCell2);
        }
예제 #3
0
 public void CalculateRxPower_Test1()
 {
     IACell cell = new GSMTRX();
     
     float linkLoss = 112;
     double result = m_GSMCellCalculator.CalculateRxPower(cell, m_Point, linkLoss);
     Assert.AreEqual(-66, result);
 }
예제 #4
0
 private double CalcIneerSystemInterf(GSMTRX gsmInterfTRX, GSMTRX bestServerTRX, float dlLinkLoss)
 {
     double interf = 0;
     if (!object.ReferenceEquals(gsmInterfTRX, bestServerTRX))
     {
         interf = IneerSystemInterfCalc(gsmInterfTRX, bestServerTRX, dlLinkLoss);
     }
     return interf;
 }
예제 #5
0
파일: GSMTRXsDesc.cs 프로젝트: xiaoyj/Space
 public GSMTRXsDesc(CollectionsModel model, GSMTRX gsmTrxEntity, List<GSMTRX> excludeCells) : base(model, gsmTrxEntity, model.GSMFreBandCol, new GSMTRXsCollProvider(model.GSMTRXsColl))
 {
     this.m_Entity = gsmTrxEntity;
     base.m_newNames = new List<string>();
     this.m_newCells = excludeCells;
     if (excludeCells != null)
     {
         foreach (GSMTRX gsmtrx in excludeCells)
         {
             base.m_newNames.Add(gsmtrx.Name);
         }
     }
 }
예제 #6
0
 private List<Transceiver> CreatTranceiverList()
 {
     List<Transceiver> trancList = new List<Transceiver>();
     int count = 3;
     for (int i = 0; i < count;i++)
     {
         Transceiver temp = new Transceiver();
         IACell cell = new GSMTRX();
         temp.addCarrier(cell);
         trancList.Add(temp);
     }
     return trancList;
 }
예제 #7
0
 private double IneerSystemInterfCalc(GSMTRX gsmInterfTRX, GSMTRX bestServerTRX, float dlLinkLoss)
 {
     double interf = 0;
     double hopFactor = 1f;
     FrequencyRelationType type = GetFrequencyRelation(bestServerTRX, gsmInterfTRX, bestServerTRX.ChannelIndex, gsmInterfTRX.ChannelIndex);
     if (type == FrequencyRelationType.SameFrequency)
     {
         interf = UnitTrans.dBmTomw(gsmInterfTRX.TRXPower - dlLinkLoss);
     }
     else if (type == FrequencyRelationType.FirstNeighbour)
     {
         double ACIR1 = (double)m_IInterf.findACIR(gsmInterfTRX.FreqBand.DLFrequency, gsmInterfTRX.FreqBand.BandWidth);
         if (!double.IsNaN(ACIR1))
         {
             interf = UnitTrans.dBmTomw(gsmInterfTRX.TRXPower - dlLinkLoss - ACIR1);
         }
     }
     else if (type == FrequencyRelationType.SecondNeighbour)
     {
         double ACIR2 = (double)m_IInterf.findACIR2(gsmInterfTRX.FreqBand.DLFrequency, gsmInterfTRX.FreqBand.BandWidth);
         if (!double.IsNaN(ACIR2))
         {
             interf = UnitTrans.dBmTomw(gsmInterfTRX.TRXPower - dlLinkLoss - ACIR2);
         }
     }
     else
     {
         float freqOffset, atten, Wsource_Wuseful;
         Signal usefulSignal = new Signal();
         usefulSignal.RxPower = bestServerTRX.TRXPower - dlLinkLoss;
         usefulSignal.FreqBand = bestServerTRX.FreqBand.BandWidth;
         usefulSignal.Frequency = COPredicCommonCalc.GetFrequency((IACell)bestServerTRX);
         usefulSignal.NetType = NetWorkType.GSM;
         Signal source = new Signal();
         source.RxPower = gsmInterfTRX.TRXPower - dlLinkLoss;
         source.FreqBand = gsmInterfTRX.FreqBand.BandWidth;
         source.Frequency = COPredicCommonCalc.GetFrequency((IACell)gsmInterfTRX);
         source.NetType = NetWorkType.GSM;
         float SEInterf = GetSEInterf(usefulSignal, source, out freqOffset, out atten, out Wsource_Wuseful);
         float BCIInterf = GetBCIValue(source, freqOffset, atten);
         interf = UnitTrans.dBmTomw(UnitTrans.AdddBm(SEInterf, BCIInterf));               
     }
     if (gsmInterfTRX.HopMode == HoppingMode.SynthesizeHopping)
     {
         hopFactor = GetHopFactor(bestServerTRX, gsmInterfTRX);
     }
     interf = AddDTXHopFactor(interf, hopFactor,bestServerTRX);
     return interf;
 }
예제 #8
0
파일: MockCell.cs 프로젝트: xiaoyj/Space
 public static List<ISimCellBase> InitialGSMInterfCell()
 {
     List<ISimCellBase> GSMInterfCellList = new List<ISimCellBase>();
     IACell aCell = new GSMTRX();
     GSMSimTRX GSMInterfCell = new GSMSimTRX(aCell);
     GSMInterfCell.Cell.FreqBand.BandWidth = 3f;
     GSMInterfCell.DlFrequency = 2000f;
     GSMInterfCell.DlPower = 33;
     List<ISimUser> simUserList = new List<ISimUser>();
     ISimUser user = new MockGSMUser();
     simUserList.Add(user);
     GSMInterfCell.ULSimUsers = simUserList;
     GSMInterfCellList.Add(GSMInterfCell);
     return GSMInterfCellList;
 }
예제 #9
0
        public double CalcInterf(GSMTRX bestSeverTRX, IACell interfCell, float dlLinkLoss)
        {
            double interf = 0;
            GSMTRX gsmInterfTRX = interfCell as GSMTRX;
            if (gsmInterfTRX != null)
            {
                interf = CalcIneerSystemInterf(gsmInterfTRX, bestSeverTRX, dlLinkLoss);

            }
            else
            {
                interf = CalcOtherSystemInterf(interfCell, bestSeverTRX, dlLinkLoss);
            }
            return interf;
        }
예제 #10
0
        /// <summary>
        /// 构建小区列表
        /// </summary>
        private void  InitCellList()
        {
            GSMTRX bestCell = new GSMTRX();
            bestCell.FreqBand = new FrequencyBand();
            bestCell.FreqBand.BandWidth = 0.2f;
            bestCell.FreqBand.DLFrequency = 1805f;
            bestCell.FreqBand.StartChIndex = 0;
            bestCell.ChannelIndex = 0;
            bestCell.IsUseDTX = true;
            bestCell.HopMode = HoppingMode.SynthesizeHopping;
            //List<int> malList = new List<int>();
            //malList.Add(10);
            //malList.Add(11);
            //malList.Add(12);
            //bestCell.MALList.AddRange(malList);
            //bestCell.MALList.Add(10);
            bestCell.MAL = "10,11,12";
            //demo.IntdemoList.Add(10);
            //bestCell.MALList = malList;
            bestCell.ID = 0;

            GSMTRX interfCell = new GSMTRX();
            interfCell.FreqBand = new FrequencyBand();
            interfCell.FreqBand.BandWidth = 0.2f;
            interfCell.FreqBand.DLFrequency = 1805.2f;
            interfCell.FreqBand.StartChIndex = 0;
            interfCell.ChannelIndex = 0;
            interfCell.HopMode = HoppingMode.SynthesizeHopping;
            interfCell.MAL = "12,13,14";
            interfCell.ID = 1;

            IACell interfCell2 = new UMTSCell();
            interfCell2.FreqBand = new FrequencyBand();
            interfCell2.FreqBand.BandWidth = 5f;
            interfCell2.FreqBand.DLFrequency = 1805.2f;
            interfCell2.FreqBand.StartChIndex = 0;
            interfCell2.ChannelIndex = 0;
            interfCell2.ID = 2;

            cellList.Add(bestCell);
            cellList.Add(interfCell);
            cellList.Add(interfCell2);
        }
예제 #11
0
파일: Mock.cs 프로젝트: xiaoyj/Space
        public static IACell CreatGsmCell()
        {
            IACell cell = new GSMTRX();
            Site site = new Site();
            site.X = 100;
            site.Y = 100;
            site.Equipment = new BtsEquipment();
            site.Equipment.NoiseFigure = 4f;

            Transceiver trans = new Transceiver();
            trans.Name = "Tranceiver1";
            trans.Parent = site;
            trans.ID = 1;
            trans.Cells.Add(cell);

            cell.Name = "GSMCell1";
            cell.Parent = trans;

            AntConfig antConfig = new AntConfig();
            cell.Parent.AntConfiguration.Add(antConfig);
            cell.Parent.AntConfiguration[0].IsMainAnt = true;
            cell.Parent.AntConfiguration[0].DlTotalLoss = 3;
            cell.Parent.AntConfiguration[0].OutdoorAntenna = new AntennaEntity();
            cell.Parent.AntConfiguration[0].OutdoorAntenna.Gain = 0;
            cell.ID = 1;
            cell.FreqBand.BandWidth = 0.2f;
            ((GSMTRX)cell).TRXType = TRXType.BCCH;
            ((GSMTRX)cell).MaxPower = 46;
            ((GSMTRX)cell).TRXPower = 46;

            PropModelConfig propModelConfig = new PropModelConfig();
            propModelConfig.CalcRadius = 4000;
            propModelConfig.CalcResolution = 50;
            trans.Cells[0].PropModels.Add(propModelConfig);

            return cell;
        }
예제 #12
0
파일: GSMMock.cs 프로젝트: xiaoyj/Space
        public static GSMSimTRX MockGsmSimTrx()
        {
            IACell aCell = new GSMTRX();
            GSMSimTRX trx = new GSMSimTRX(aCell);
            trx.TSs[0].NETimeSlot.ChanType = Net.ChannelType.BCCH;
            trx.TSs[1].NETimeSlot.ChanType = Net.ChannelType.PDCH;
            trx.TSs[2].NETimeSlot.ChanType = Net.ChannelType.PDCH;
            trx.TSs[3].NETimeSlot.ChanType = Net.ChannelType.DPDCH;
            
            //添加载波的传播模型
            PropModelConfig propModel = new PropModelConfig();
            propModel.CalcRadius = 4000;//计算半径为4000
            trx.NeTRX.PropModels.Add(propModel);

            return trx;
        }
예제 #13
0
파일: MockContext.cs 프로젝트: xiaoyj/Space
 public static List<IACell> CreatIACellList()
 {
     List<IACell> iaCellList = new List<IACell>();
     for (int i = 0; i < 3; i++)
     {
         IACell cell = MockCell.CreatUMTSSimCell(0, 0).NECell;
         iaCellList.Add(cell);
     }
     IACell gsmCell = new GSMTRX();
     iaCellList.Add(gsmCell);
     return iaCellList;
 }
예제 #14
0
 private double GetHopFactor(GSMTRX bestServerTRX, GSMTRX gsmInterfTRX)
 {
     double factor = 1;
     if (gsmInterfTRX.TRXType == TRXType.BCCH)
     {
         return factor;
     }
     int count = GetSameCount(bestServerTRX, gsmInterfTRX);
     factor = GetFactorValue(bestServerTRX, gsmInterfTRX, factor, count);
     return factor;
 }
예제 #15
0
 private double AddDTXHopFactor(double interf, double hopFactor,GSMTRX bestServerTRX)
 {
     if (bestServerTRX.IsUseDTX == true)
     {
         interf = interf * m_PridictionGroup.CovUIParam.TrxDTXFactor;
     }
     interf = interf * hopFactor;
     return interf;
 }
예제 #16
0
 private FrequencyRelationType GetFrequencyRelation(GSMTRX bestServerTRX, GSMTRX gsmInterfTRX, int sourceChannelIndex, int targetChannelIndex)
 {
     bool isSameFrequency = JudgeFrequency(bestServerTRX, gsmInterfTRX, sourceChannelIndex, targetChannelIndex, FrequencyRelationType.SameFrequency);
     if (isSameFrequency)
     {
         return FrequencyRelationType.SameFrequency;
     }
     bool isFirstNeighbourFreq = JudgeFrequency(bestServerTRX, gsmInterfTRX, sourceChannelIndex, targetChannelIndex, FrequencyRelationType.FirstNeighbour);
     if (isFirstNeighbourFreq)
     {
         return FrequencyRelationType.FirstNeighbour;
     }
     bool isSecondNeighbourFreq = JudgeFrequency(bestServerTRX, gsmInterfTRX, sourceChannelIndex, targetChannelIndex, FrequencyRelationType.SecondNeighbour);
     if (isSecondNeighbourFreq)
     {
         return FrequencyRelationType.SecondNeighbour;
     }
     else
     {
         return FrequencyRelationType.Non;
     }
 }
예제 #17
0
 private double CalcAcir(IACell interfCell, GSMTRX bestCell, double deltaFreq)
 {
     double acir = double.NaN;
     Signal usefulSignal = new Signal();
     usefulSignal.FreqBand = bestCell.FreqBand.BandWidth;
     usefulSignal.Frequency = COPredicCommonCalc.GetFrequency((IACell)bestCell);
     usefulSignal.NetType = NetWorkType.GSM;
     Signal source = new Signal();
     source.FreqBand = interfCell.FreqBand.BandWidth;
     source.Frequency = COPredicCommonCalc.GetFrequency(interfCell);
     acir = m_IInterf.findACIR(source, usefulSignal);
     return acir;
 }
예제 #18
0
 private FrequencyRelationType JudgeFreqBandRelationship(IACell interfCell, GSMTRX bestCell, int interfChannelIndex)
 {
     double GSMBandWith =0.2f;
     double bestStartFreq = bestCell.FreqBand.DLFrequency + bestCell.FreqBand.BandWidth * (bestCell.ChannelIndex + 0.5) - GSMBandWith * 0.5;
     double bestEndFreq = bestStartFreq + GSMBandWith;
     double interfStartFreq = interfCell.FreqBand.DLFrequency + interfCell.FreqBand.BandWidth * interfChannelIndex;
     double interfEndFreq = interfStartFreq + interfCell.FreqBand.BandWidth;
     if (bestStartFreq >= interfStartFreq && bestEndFreq <= interfEndFreq)
     {
         return FrequencyRelationType.InnerOfInterfFreq;
     }
     else if (interfStartFreq >= bestStartFreq && interfEndFreq <= bestEndFreq)
     {
         return FrequencyRelationType.InnerOfBestFreq;
     }
     else if (bestEndFreq <= interfStartFreq || bestEndFreq >= interfEndFreq)
     {
         return FrequencyRelationType.OutOfInterfFreq;
     }
     else
     {
         return FrequencyRelationType.Non;
     }
 }
예제 #19
0
 /// <summary>
 /// 返回上行业务信道的CIR
 /// </summary>
 /// <param name="bestCell"></param>
 /// <param name="index"></param>
 /// <returns></returns>
 private double GetULServiceCIR(GSMTRX bestCell, int index)
 {
     float[] linkLoss = linkLossCalc.GetLinkLoss(index, m_TFMatrix, bestCell);
     NetworkTerminal s = new NetworkTerminal();
     s = m_Group.TrafficTerminal.GetNetWorkTerminal(NetWorkType.GSM);
     double P_Rx_ULSerice = s.MaxTxPower - linkLoss[0];
     double ulCIR = GSMPredicCommonCalc.GetULCIR(P_Rx_ULSerice, loT_target_UL, NoisePower);
     return ulCIR;
 }
예제 #20
0
 private double CalcOneCellInterf(IACell interfCell, GSMTRX bestCell, int interfChannelIndex, double linkLoss)
 {
     double interf = 0;
     double interfFreqBandWith = interfCell.FreqBand.BandWidth;
     double bestCellFreqBandWith = bestCell.FreqBand.BandWidth;
     double deltaFreq = CalcFrequencyExcursion(interfCell, bestCell, interfChannelIndex);
     double rxpower = 0;
     if (interfCell.NetType == NetWorkType.UMTS)
     {
         rxpower = ((UMTSCell)interfCell).TotalPower - linkLoss;
     }
     else if (interfCell.NetType == NetWorkType.TDSCDMA)
     {
         rxpower = ((TDSCDMACarrier)interfCell).PCCPCHPower - linkLoss;
     }
     else if (interfCell.NetType == NetWorkType.LTE)
     {
         rxpower = ((LTECell)interfCell).DlActualTxPower - linkLoss;
     }
     FrequencyRelationType type = JudgeFreqBandRelationship(interfCell, bestCell, interfChannelIndex);
     interf = CalcInterfByFreqRelation(interfCell, bestCell, type, interfFreqBandWith, bestCellFreqBandWith, deltaFreq, rxpower);
     return interf;
 }
예제 #21
0
 private double CalcFrequencyExcursion(IACell interfCell, GSMTRX bestCell, int interfChannelIndex)
 {
     double interfFreqBandWith = interfCell.FreqBand.BandWidth;
     double bestFreqBandWith = bestCell.FreqBand.BandWidth;
     double interfDLCenterFreq = 0;
     interfDLCenterFreq = interfCell.FreqBand.DLFrequency + interfFreqBandWith * (interfChannelIndex + 0.5);
     double bestDLCenterFreq = bestCell.FreqBand.DLFrequency + bestFreqBandWith * (bestCell.ChannelIndex + 0.5);
     return Math.Abs(interfDLCenterFreq - bestDLCenterFreq);
 }
예제 #22
0
파일: GSMTRXsDesc.cs 프로젝트: xiaoyj/Space
 public GSMTRXsDesc(CollectionsModel model, GSMTRX gsmTrxEntity) : base(model, gsmTrxEntity, model.GSMFreBandCol, new GSMTRXsCollProvider(model.GSMTRXsColl))
 {
     this.m_Entity = gsmTrxEntity;
 }
예제 #23
0
 private double CalcOtherSystemInterf(IACell interfTRX, GSMTRX bestServerTRX, double linkLoss)
 {
     double interf = 0;
     if (interfTRX.NetType == NetWorkType.UMTS)
     {
         interf = CalcInterfFormUMTS(interfTRX, bestServerTRX, linkLoss);
     }
     else if (interfTRX.NetType == NetWorkType.TDSCDMA)
     {
         interf = CalcInterfFormTDSCDMA(interfTRX, bestServerTRX, linkLoss);
     }
     else if (interfTRX.NetType == NetWorkType.LTE)
     {
         interf = CalcInterfFormLTE(interfTRX, bestServerTRX, linkLoss);
     }
     return interf;
 }
예제 #24
0
 private bool JudgeFrequency(GSMTRX bestServerTRX, GSMTRX gsmInterfTRX, int sourceChannelIndex, int targetChannelIndex, FrequencyRelationType type)
 {
     float sourceBandWith = bestServerTRX.FreqBand.BandWidth;
     float targetBandWith = gsmInterfTRX.FreqBand.BandWidth;
     float sourceDLFrequency = bestServerTRX.FreqBand.DLFrequency;
     float targetDLFrequency = gsmInterfTRX.FreqBand.DLFrequency;
     int multiple = Convert.ToInt32(type);
     bool isSameBandWith = (sourceBandWith == targetBandWith);
     bool isIntegetExcursion = (Math.Abs((sourceDLFrequency + sourceBandWith * sourceChannelIndex) - (targetDLFrequency + targetBandWith * targetChannelIndex)) == sourceBandWith * multiple);
     return isSameBandWith && isIntegetExcursion;
 }
예제 #25
0
        public void DLInterfCaseTest_SC()
        {
            for (int i = 0; i < 3;i++ )
            {
                IACell cell = new GSMTRX();
                cellList.Add(cell);
            }

            double[] x = new double[3] { 50, 100, 150 };
            double[] y = new double[3] { 50, 100, 50 };
            MockCellList.CreateCellList(cellList, x, y);
            for (int i = 0; i < 3; i++)
            {
                m_Context.Add(ContextKeys.CurrentCalcCell, cellList[i]);
                RunCase();
                m_Context.Remove(ContextKeys.CurrentCalcCell);
            }
            ValueMatrixDouble DLRSInterf = m_Context[ContextKeys.GSMSysDLInterf] as ValueMatrixDouble;
            Assert.AreEqual(45.28, DLRSInterf[0], 0.01);
        }
예제 #26
0
 private double CalcInterfByFreqRelation(IACell interfCell, GSMTRX bestCell, FrequencyRelationType type, double interfFreqBandWith, double bestCellFreqBandWith, double deltaFreq, double rxpower)
 {
     double interf = 0;
     double freqBandRatio = 0;
     double acir = 0;
     if (type == FrequencyRelationType.OutOfInterfFreq)
     {
         acir = CalcAcir(interfCell, bestCell, deltaFreq);
         if (!double.IsNaN(acir))
         {
             interf = UnitTrans.dBto(rxpower - acir);
         }
     }
     else if (type == FrequencyRelationType.InnerOfInterfFreq)
     {
         freqBandRatio = UnitTrans.todB(interfFreqBandWith / bestCellFreqBandWith);
         interf = UnitTrans.dBto(rxpower - freqBandRatio);
     }
     else if (type == FrequencyRelationType.InnerOfBestFreq)
     {
         interf = UnitTrans.dBto(rxpower);
     }
     return interf;
 }
예제 #27
0
 private void addNewGsmCarrier(string carrierName, ReceptionEquipment reception)
 {
     GSMTRX cell = new GSMTRX();
     this.SetIACellProperty(carrierName, reception, cell);
     this.AddIACellToCarriers(cell);
 }
예제 #28
0
        private double GetFactorValue(GSMTRX bestServerTRX, GSMTRX gsmInterfTRX, double factor, int count)
        {
            List<int> bestServerTRXMAL = m_HoppingMALDic[bestServerTRX.ID];
            List<int> gsmInterfTRXMAL = m_HoppingMALDic[gsmInterfTRX.ID];
            if (count != 0)
            {
                factor = count / (double)(bestServerTRXMAL.Count * gsmInterfTRXMAL.Count);
            }
            if (count == 0 && bestServerTRXMAL.Count != 0 && gsmInterfTRXMAL.Count != 0)
            {
                factor = 1 / (double)(bestServerTRXMAL.Count * gsmInterfTRXMAL.Count * 2);
            }
            return factor;

        }
예제 #29
0
 private double CalcInterfFormLTE(IACell interfCell, GSMTRX bestCell, double linkLoss)
 {
     double interf = 0;
     interf = CalcOneCellInterf(interfCell, bestCell, interfCell.ChannelIndex, linkLoss);
     return interf;
 }
예제 #30
0
 private int GetSameCount(GSMTRX bestServerTRX, GSMTRX gsmInterfTRX)
 {
     int count = 0;
     List<int> bestServerTRXMAL = m_HoppingMALDic[bestServerTRX.ID];
     List<int> gsmInterfTRXMAL = m_HoppingMALDic[gsmInterfTRX.ID];
     for (int index = 0; index < bestServerTRXMAL.Count; index++)
     {
         if (gsmInterfTRXMAL.Contains(bestServerTRXMAL[index]))
         {
             count++;
         }
     }
     return count;
 }