How to get Neighbouring Cell RSRP and RSRQ in LTE ?

748 views
Skip to first unread message

islamm...@gmail.com

unread,
Oct 9, 2017, 5:11:30 AM10/9/17
to ns-3-users
Hi Experts and altruists,

I am simulating LTE handover scenario where i want to get the information of RSRP and RSRQ of serving cell
and target cell.I am using lena-x2-handover measures.cc example code where i have added below functions in my script.

void NotifyMeasureMentReport (string context, uint64_t imsi, uint16_t cellid, uint16_t rnti, LteRrcSap::MeasurementReport msg)
{
   std::cout<< Simulator::Now().GetSeconds() << " CellId=" << cellid << " RSRQ=" << (uint16_t) msg.measResults.rsrqResult<<" RSRP=" <<(uint16_t) msg.measResults.rsrpResult<<endl;

}

and i am calling them as:
      Config::Connect ("/NodeList/*/DeviceList/*/LteEnbRrc/RecvMeasurementReport",
                   MakeCallback (&NotifyMeasureMentReport));

So, right now i am getting printed RSRQ and RSRP of serving cell in my screen. My serving cell RSRP is postive number like RSRP=82. But if i look at trace file  DlRSRPSINRstats.txt then i am getting different RSRP values and values are negative. So, my questions are as follows:

1. Why such mismatch in RSRP values ?
2. In my code, the process of getting serving cell RSRP and RSRQ is correct or not?
3. I don't know how to get neighboring cell RSRP and RSRQ simultaneously with serving cell ?

I look forward for your help and directions.

Thanks,
Mahmud

Zoraze Ali

unread,
Oct 9, 2017, 12:34:38 PM10/9/17
to ns-3-users


1. Why such mismatch in RSRP values ?
       It is not a mismatch, RSRP and RSRQ values in RecvMeasurementReport are expressed as range. Please, read the lte user documentation section https://www.nsnam.org/docs/models/html/lte-user.html#configure-ue-measurements

2. In my code, the process of getting serving cell RSRP and RSRQ is correct or not?
it is correct.

3. I don't know how to get neighboring cell RSRP and RSRQ simultaneously with serving cell ?
 
  It is a trace full of info. Go to lte-rrc-sap.h and see the MeasResults struct or just go to lte-enb-rrc.cc from where this trace get triggered and you will know all.

Kind regards,
Zoraze

Mahmud Islam

unread,
Oct 9, 2017, 11:38:17 PM10/9/17
to ns-3-...@googlegroups.com
Hi Zoraze,

Thanks a lot for your kind reply and it was really very helpful.

I looked into the documentation in detail and they are expressing RSRP and RSRQ as range. Looking into the LTE specification i can find RSRP as dBm. Suppose if i get RSRP=87 that means from the specification i can say that -36<=RSRP<-37 so approximately it will be -36 dBm. Similar thing i can do for RSRQ calculation from specification sheet.

Now, for neighboring cell RSRP and RSRQ i am using printing statement in lte-enb-rrc.cc

for (std::list <LteRrcSap::MeasResultEutra>::iterator it = msg.measResults.measResultListEutra.begin ();
       it != msg.measResults.measResultListEutra.end ();
       ++it)
    {
      NS_LOG_LOGIC ("neighbour cellId " << it->physCellId
                                        << " RSRP " << (it->haveRsrpResult ? (uint16_t) it->rsrpResult : 255)
                                        << " RSRQ " << (it->haveRsrqResult ? (uint16_t) it->rsrqResult : 255));

                      std::cout<<"neighbour cellId"<< it->physCellId<< " RSRP " << (it->haveRsrpResult ? (uint16_t) it->rsrpResult : 255)<< " RSRQ " << (it->haveRsrqResult ? (uint16_t) it->rsrqResult : 255);  // newly added
    }

Using printing statement i am getting neighboring cell RSRP and RSRQ in my screen. I am getting very weired values for neighbouring cell RSRQ. I am not sure why so.

So my questions are as follows:

1. The way i am converting RSRP and RSRQ from LTE specification sheet is either okay or not?
2.For neighboring cell why i am getting so weired RSRQ ?
3. I am using printing statement for getting neighboring cell RSRP and RSRQ; is there any other way like calling them in a function of the script for getting trace result; i tried but it did not work?

I again appreciate for your helping hand. I look forward to hearing you soon.

Thanks,
Mahmud


--
Posting to this group should follow these guidelines https://www.nsnam.org/wiki/Ns-3-users-guidelines-for-posting
---
You received this message because you are subscribed to the Google Groups "ns-3-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+unsubscribe@googlegroups.com.
To post to this group, send email to ns-3-...@googlegroups.com.
Visit this group at https://groups.google.com/group/ns-3-users.
For more options, visit https://groups.google.com/d/optout.

RSRP_rsrq.png

Zoraze Ali

unread,
Oct 10, 2017, 7:15:26 PM10/10/17
to ns-3-users

So my questions are as follows:

1. The way i am converting RSRP and RSRQ from LTE specification sheet is either okay or not?
 
   What do you mean by you are converting? Is it not the RSRQ value from the code?

2.For neighboring cell why i am getting so weired RSRQ ?
 
     I am not in position to run the test, so please try to debug yourself. For example, check UE RRC where these measurments are performed and sent to eNB.

3. I am using printing statement for getting neighboring cell RSRP and RSRQ; is there any other way like calling them in a function of the script for getting trace result; i tried but it did not work?
 
   I dont know what method you used and why it didnt work. However, there is already a trace you were using, why you are not using that to get this info?

Kind regards,
Zoraze

Mahmud Islam

unread,
Oct 10, 2017, 9:21:56 PM10/10/17
to ns-3-...@googlegroups.com
Hi Zoraze,

Thanks for your reply.

Kindly have a look

What do you mean by you are converting? Is it not the RSRQ value from the code?

I mean i am getting RSRP and RSRQ as a range values. I need to use them as dBm and dB. For that reason, i am converting them from LTE specification sheet to use RSRP and RSRQ values as dBm and dB; am i clear to you? I want to know the way i am converting them using LTE specification sheets either correct or not?

For neighboring cell why i am getting so weired RSRQ ?
For neighboring cell i am getting reasonable amount of RSRP and RSRQ is not working correctly; so i am debugging my code.

3. In my trace file if i call neighboring cell RSRP and RSRQ it did not work in stead of that if i use print statement in lte-ue-rrc; will that be okay or not?

Thanks,
Mahmud


--

el jari ouarda

unread,
Jul 12, 2018, 10:07:12 AM7/12/18
to ns-3-users
hello,
I want to store the values of rsrp and rsrq in a vector then chose the max to attach the user to the cell that corresponds on the max value, can you help me please :!!!
thank you
To unsubscribe from this group and stop receiving emails from it, send an email to ns-3-users+...@googlegroups.com.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages