-
Notifications
You must be signed in to change notification settings - Fork 0
How is SNR defined? And then, which is the mechanism that choose the MCS? #1
Comments
Currently this is being set statically in: https://github.com/adjacentlink/srsLTE-emane/blob/master/srsue/src/phy/phch_worker.cc
We are working on integrating the emane snr info into these parameters in a future release. |
Very clear, thank you! However, if I can, I should ask you for another help in analyzing the code. I understood how the SNR is managed, but the setting of the MCS is not clear to me. I have verified, as you said, that the values are static and do not change with the SNR. But how, in which area of the code, are MCS values set? Thanks!! |
Have a look at the alloc_tbs function in scheduler_ue.cc: https://github.com/adjacentlink/srsLTE-emane/blob/master/srsenb/src/mac/scheduler_ue.cc#L1201 |
I'm sorry, but I'm afraid I have to ask you another help. In these days I have tried to analyze the code, but I'm not so familiar with C++. |
EMANE does not implement physical layer modulation processes. Instead, it uses PCR curves to statistically determine the probability of a packet reception based on the received SINR of the packet and physical layer modulation parameters particular to a given waveform. For LTE, the PCR curves describe the probability that a single resource block is received based on its receive SINR and the modulation type for the physical channel contained in that block - the modulation type is carried in a header and known to the receiver. Users provide the PCR values in configuration. An example file is provided in the release: https://github.com/adjacentlink/emane-model-lte/blob/master/demo/templates/enb/pcr.xml Packet reception is determined by performing a pass/fail test on each resource block that comprises a message and then determining if enough resource blocks were received to channel decode the message based on the relative size of the transport block and the number of message resource elements. On the UE the implementation is here: https://github.com/adjacentlink/emane-model-lte/blob/master/src/uemessageprocessor.cc#L158 |
Ok, thank you... so, if I have well understood: the UE receiver knows the number of resource blocks (numResourceBlocks of line 170), the modulation type (modType of line 178) and the number of bits of the message to decode (numberOfBits of line 180). Then the receiver makes the tests with the two for cycle of lines 252 and 342, each of them on a "slot column" frequency by frequency of a subframe, right? This message that you are talking about, and of which you test the reception in line 419, is a RLC PDU? And I have to ask your help for the variables rbParams.res_ and numberChannelCodeREs, that sincerely I'm not able to understand what do they stand for. Thank you!! |
To be precise, for "log files" I meant the emane.log file of the User Equipment, where i find lines like this one:
where rbParams.res_ assumes values that I did not expect. Thank you very much for your help! |
Issue Description
I have enabled the printing of the metrics in srsue (by pressing "t") and I have seen that the EU detects a SNR of 40dBm in downlink; it also uses the MCS 2 and 16 respectively for the downlink and uplink. I would like to understand where the 40dBm SNR is defined (it's uncorrelated from the "real" SNR dependent by pathloss, rxpower and txpower in EMANE, right?) in the code and then where the MCS choice is implemented. Is it a task entrusted to srsLTE-emane or to EMANE LTE Model?
Setup Details
My configuration is the same of the demonstrations in this page: https://github.com/adjacentlink/emane-model-lte
Additional Information
I have tried to analyze the code of srsLTE-emane. I have found the variables metrics.phy.dl.sinr and metrics.phy.dl.mcs in metrics_stdout.cc; I think I understood that their values come out of the calculations in phch_common.cc. But then? I'm not able to understand the exact chain leading to the SNR and MCS values mentioned above.
Thank you!
Andrea
The text was updated successfully, but these errors were encountered: