Fix EMA cold-start for noise and SNR/RSSI measurements

Initialize n0_subband_power and power control avg_snr/avg_rssi directly from the first measurement instead of starting from zero
This commit is contained in:
rmagueta
2026-04-16 14:50:13 +02:00
committed by Robert Schmidt
parent 5fcd456a46
commit aa5bd641fd
3 changed files with 10 additions and 1 deletions
@@ -910,6 +910,11 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id, frame_t frame, slot_t slot, con
NR_SCHED_UNLOCK(&nrmac->sched_lock);
return;
}
// Msg4 Ack: reset average with first measurement
if (uci_01->ul_cqi != 0xff) {
UE->UE_sched_ctrl.pucch_pc.avg_rssi = uci_01->rssi;
UE->UE_sched_ctrl.pucch_pc.avg_snr = (uci_01->ul_cqi * 5 - 640) * 0.1;
}
}
if (harq_confidence == 1) {
UE->mac_stats.pucch0_DTX++;
@@ -763,7 +763,7 @@ static void nr_rx_ra_sdu(const module_id_t mod_id,
if (ul_cqi != 0xff) {
NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
// Msg3: reset average. If this fails (e.g., ul_cqi == 0xff)
// Msg3: reset average with first measurement. If this fails (e.g., ul_cqi == 0xff)
// everything starts from predetermined value
sched_ctrl->pusch_pc.avg_snr = 0.1 * (ul_cqi * 5 - 640);
sched_ctrl->pusch_pc.avg_rssi = rssi;