RSSI, RSRP, RSRQ, SINR in LteRealisticChannelModel
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 235
- Forks
- 116
- PR merge metrics
- No merged PRs in 30d
Description
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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading LteRealisticChannelModel.cc, especially getSINR and getRSRP, and LtePhyUe::initialize(...) where the RSRP-based RSSI value is obtained. Trace how incoming airframes and existing SINR/RSRP signals are handled, then inspect the rsrqFile.dat path and rsrqScale_/rsrqShift_. Done means runtime RSSI and RSRQ values have a defined calculation and signal path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100