Example #1
0
 private void GetPrachSinr( int index)
 {
     if (m_bestServer is LteCellEx)
     {
         LteCellEx lteCellEx = (LteCellEx)m_bestServer;
         m_frenquentBand = lteCellEx.LteCell.FreqBand;
         m_FrequencyBandEx = lteCellEx.LteFreqBandEx;
         m_ulActualIoT = lteCellEx.LteCell.UlActualIoT;
     }
     else 
     {
         if (m_bestServer is RelayCellEx)
         {
             RelayCellEx relayCellEx = (RelayCellEx)m_bestServer;
             m_frenquentBand = relayCellEx.RelayCell.FreqBand;
             m_FrequencyBandEx = relayCellEx.RelayFreqBandEx;
             m_ulActualIoT = relayCellEx.RelayCell.UlActualIoT;
         }
     }
     int rbNum = 6;
     double sinr = double.MinValue;
     double ulLinkLoss = 0.0;
     ulLinkLoss = ((float)this.m_ULBestServerLinkLoss[index]) * LteConst.TIMES_TO_FLOAT;
     double powerOfPrach = (this.m_PrachPower - ulLinkLoss) + this.m_OneBinValueTemp.m_ModelShadowMargin;
     double ulNoisePower = this.CalculateUlNoisePower(rbNum);
     if (m_isFDD)
     {
         sinr = powerOfPrach - ((ulNoisePower + this.m_ulActualIoT) + this.m_OneBinValueTemp.m_C_i_nShadowMargin);
     }
     else 
     {
         //double dlInterf = (double)this.m_DLInterfMatrix[index];
         double dlInterf = 0;
         sinr = powerOfPrach - dlInterf - ((ulNoisePower + this.m_ulActualIoT) + this.m_OneBinValueTemp.m_C_i_nShadowMargin);
     }
     this.m_OneBinValueTemp.PRACH_SINR = UnitTrans.DoubleToShort(sinr);
 } 
Example #2
0
 private void CalcReceivePower(int index, CellEx cellEx, double DLLinkLoss, double ULLinkLoss, double tempReceivePower, double receivePower,LTETransceiverEX tranInfo)
 {
       if ((receivePower > tempReceivePower) && (receivePower > this.m_RsRxSensitivity))
      {
         this.m_BestServerRSRP[index] = Convert.ToInt16((double) (receivePower * 100.0));
         if (cellEx is LteCellEx)
         {
             LteCellEx lteCellEx = (LteCellEx)cellEx;
             if (this.m_NeedCalSymbolRSRP || this.m_NeedCalRSRQ)
             {
                 this.m_RsMaxCarrierFrequecyBandEx = lteCellEx.LteFreqBandEx;
                 /*m_RsMaxCarrierFrequecyBandEx.RSNumOfBandWidth是dB值,对应100*2个RS(一个OFDM符号内)*/
                 this.m_SymbolRSRP[index] = Convert.ToInt16((double)((receivePower + this.m_RsMaxCarrierFrequecyBandEx.RSNumOfBandWidth) * 100.0));
             }
             this.m_BestServerCellID[index] = lteCellEx.LteCell.ID;
             this.m_BestServerTransID[index] = tranInfo.Transceiver.ID;
         }
         else 
         {
             if (cellEx is RelayCellEx)
             {
                 RelayCellEx relayCellEx = (RelayCellEx)cellEx;
                 if (this.m_NeedCalSymbolRSRP || this.m_NeedCalRSRQ)
                 {
                     this.m_RsMaxCarrierFrequecyBandEx = relayCellEx.RelayFreqBandEx;
                     /*m_RsMaxCarrierFrequecyBandEx.RSNumOfBandWidth是dB值,对应100*2个RS(一个OFDM符号内)*/
                     this.m_SymbolRSRP[index] = Convert.ToInt16((double)((receivePower + this.m_RsMaxCarrierFrequecyBandEx.RSNumOfBandWidth) * 100.0));
                 }
                 this.m_BestServerCellID[index] = relayCellEx.RelayCell.ID;
                 this.m_BestServerTransID[index] = tranInfo.Transceiver.ID;
             }
         }
         //this.m_BestServerTransID[index] = cellInfo.Transceiver.ID;
         if (this.m_NeedCalActualRxIntf || this.m_NeedCalMaxRxIntf)
         {
             /*dBֵ*/
             this.m_DlBestServerLinkLoss[index] = Convert.ToInt32((double) (DLLinkLoss * LteConst.TIMES_TO_BIG_INT));
         }
         if (this.m_IsNeedCalULStudy)
         {
             this.m_UlBestServerLinkLoss[index] = Convert.ToInt32((double) (ULLinkLoss * LteConst.TIMES_TO_BIG_INT));
         }
     }
  }