I saw that after the scheduling algorithm, in lteScheduler.m there is an algorithm to filter RBs according to their CQI; the RBs with a CQI=0 are not used and the RB_grid.user_allocation is updated, putting to zero those RBs that were filtered.
However, I noticed that the RB_grid.power_allocation is not updated and even those RBs that were filtered still have a power value.
Also, when calculating the UE SINR, we consider all the RBs with a received power, due to the previous fact, as this received power is calculated as RB_grid.power_allocation/(pathlossxfading).
I’d like to know why it’s implemented this way instead of setting to zero the power of the RBs that were filtered according to their CQI.
thank you for pointing that out. In lteScheduler.m, skip_null_CQIs is set to false per default. The if-branch where the respective RBs are taken care off is in so far incomplete as it does not update the power allocation. It should be solved by adding ‘RB_grid.power_allocation(non_valid_RBs) = 0;’ in the respective if-branch. We will fix this for the next release.
Please let us know if you have any further questions!