Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RSSI, RSRP, RSRQ, SINR in LteRealisticChannelModel #181

Open
gehirndienst opened this issue Aug 3, 2023 · 1 comment
Open

RSSI, RSRP, RSRQ, SINR in LteRealisticChannelModel #181

gehirndienst opened this issue Aug 3, 2023 · 1 comment

Comments

@gehirndienst
Copy link

gehirndienst commented Aug 3, 2023

Hello,

I need to estimate these values in runtime in simu5g but I'm quite confused by how these values are partially presented in the model. With RSRP and SINR it is more or less clear and for SINR there are already proper signals. But when we move to RSRQ and RSSI I'm a bit lost.

For RSSI there is a block at the beginning of LtePhyUe::initialize(...) method:

std::vector<double> rssiV = primaryChannelModel_->getRSRP(frame, cInfo);

From my understanding, RSSI can't be just RSRP, especially measuring this from a UE perspective, it needs to take channel width and other stuff into account..

Then we go to RSRQ. There is a very strange block of code that is duplicated in both getSINR and getRSRP methods. Is there any example of such a log? Where should one get it? And what are rsrqScale and rsrqShift?

   {
       int time = -1, rsrq = oldRsrq_;
       double currentTime = simTime().dbl();
       if (currentTime > oldTime_+1)
       {
           std::ifstream file;

           // open the rsrq file
           file.clear();
           file.open("rsrqFile.dat");

           file >> time;
           file >> rsrq;

           file.close();

           oldTime_ = simTime().dbl();
           oldRsrq_ = rsrq;

           std::cout << "LteRealisticChannelModel::getRSRP - time["<<time<<"] rsrq["<<rsrq<<"]" << endl;
       }

       double sinr = rsrqScale_ * (rsrq + rsrqShift_);
       std::vector<double> snrVector;
       snrVector.resize(numBands_, sinr);

       return snrVector;
   }

In short, my question is very simple: how to calculate RSSI and RSRQ parameters in runtime as it is done with both SINR and RSRP using the incoming airframes and appropriate methods from LteRealisticChannelModel.cc? Is there a way to calculate them in order to further propagate in the form of signals? If yes, then could you express how because I'm a bit lost.

With best regards
Nikita

@nazaninmehregan
Copy link

Hi did you find a solution to this? thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants