equal
deleted
inserted
replaced
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 } |