src/lte/model/lte-ue-phy.cc
changeset 9802 5dea58a3b261
parent 9703 681f35b212ff
parent 9788 a1c1c87153b5
child 10075 8ae11c94f4ba
equal deleted inserted replaced
9773:8e9ea27f9cee 9802:5dea58a3b261
    20  *         Nicola Baldo <nbaldo@cttc.es>
    20  *         Nicola Baldo <nbaldo@cttc.es>
    21  */
    21  */
    22 
    22 
    23 #include <ns3/object-factory.h>
    23 #include <ns3/object-factory.h>
    24 #include <ns3/log.h>
    24 #include <ns3/log.h>
       
    25 #include <cfloat>
    25 #include <cmath>
    26 #include <cmath>
    26 #include <ns3/simulator.h>
    27 #include <ns3/simulator.h>
    27 #include <ns3/double.h>
    28 #include <ns3/double.h>
    28 #include "lte-ue-phy.h"
    29 #include "lte-ue-phy.h"
    29 #include "lte-enb-phy.h"
    30 #include "lte-enb-phy.h"
   470           // flat within the same RB
   471           // flat within the same RB
   471           double powerTxW = ((*it) * 180000.0) / 12.0;
   472           double powerTxW = ((*it) * 180000.0) / 12.0;
   472           sum += powerTxW;
   473           sum += powerTxW;
   473           rbNum++;
   474           rbNum++;
   474         }
   475         }
   475       double rsrp = sum / (double)rbNum;
   476       double rsrp = (rbNum > 0) ? (sum / rbNum) : DBL_MAX;
   476       // averaged SINR among RBs
   477       // averaged SINR among RBs
   477       sum = 0.0;
   478       sum = 0.0;
   478       rbNum = 0;
   479       rbNum = 0;
   479       for (it = sinr.ConstValuesBegin (); it != sinr.ConstValuesEnd (); it++)
   480       for (it = sinr.ConstValuesBegin (); it != sinr.ConstValuesEnd (); it++)
   480         {
   481         {
   481           sum += (*it);
   482           sum += (*it);
   482           rbNum++;
   483           rbNum++;
   483         }
   484         }
   484       double avSinr = sum / (double)rbNum;
   485       double avSinr = (rbNum > 0) ? (sum / rbNum) : DBL_MAX;
   485       NS_LOG_INFO (this << " cellId " << m_cellId << " rnti " << m_rnti << " RSRP " << rsrp << " SINR " << avSinr);
   486       NS_LOG_INFO (this << " cellId " << m_cellId << " rnti " << m_rnti << " RSRP " << rsrp << " SINR " << avSinr);
   486  
   487  
   487       m_reportCurrentCellRsrpSinrTrace (m_cellId, m_rnti, rsrp, avSinr);
   488       m_reportCurrentCellRsrpSinrTrace (m_cellId, m_rnti, rsrp, avSinr);
   488       m_rsrpSinrSampleCounter = 0;
   489       m_rsrpSinrSampleCounter = 0;
   489     }
   490     }