From 549a0b61b4731a9b55ae1860d64a5640ee89204e Mon Sep 17 00:00:00 2001 From: Raymond Knopp <raymond.knopp@eurecom.fr> Date: Sat, 14 Oct 2017 11:17:27 +0200 Subject: [PATCH] Adjustment for received power calculation in eNB pusch procedures. Added factor to account for mcs (mimic the power control adjustment in UE). activated periodic trace for PHR/PUSCH SNR/PUCCH SNR in MAC. --- openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c | 17 +++++++++++------ openair2/LAYER2/MAC/eNB_scheduler.c | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c index 0a7d7b1a21..43c14bde1c 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c @@ -1164,16 +1164,21 @@ void rx_ulsch(PHY_VARS_eNB *eNB, l/(frame_parms->symbols_per_tti/2)); } + int correction_factor = 1; + int deltaMCS=1; + int MPR_times_Ks; + + if (deltaMCS==1) { +// Note we're using TBS instead of sumKr, since didn't run segmentation yet! + MPR_times_Ks = 5*ulsch[UE_id]->harq_processes[harq_pid]->TBS/(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*4*ulsch[UE_id]->harq_processes[harq_pid]->Nsymb_pusch); + if (MPR_times_Ks > 0) correction_factor = (1<<MPR_times_Ks) - 1; + } for (i=0; i<frame_parms->nb_antennas_rx; i++) { pusch_vars->ulsch_power[i] = signal_energy_nodc(pusch_vars->drs_ch_estimates[i], - ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12); + ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12)/correction_factor; +//printf("%4.4d.%d power harq_pid %d rb %2.2d TBS %2.2d (MPR_times_Ks %d correction %d) power %d dBtimes10\n", proc->frame_rx, proc->subframe_rx, harq_pid, ulsch[UE_id]->harq_processes[harq_pid]->nb_rb, ulsch[UE_id]->harq_processes[harq_pid]->TBS,MPR_times_Ks,correction_factor,dB_fixed_times10(pusch_vars->ulsch_power[i])); -#ifdef LOCALIZATION - pusch_vars->subcarrier_power = (int32_t *)malloc(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12*sizeof(int32_t)); - pusch_vars->active_subcarrier = subcarrier_energy(pusch_vars->drs_ch_estimates[i], - ulsch[UE_id]->harq_processes[harq_pid]->nb_rb*12, pusch_vars->subcarrier_power, rx_power_correction); -#endif } diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 84e6e9e221..5b74cdc4ae 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -481,7 +481,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame UE_list->UE_template[CC_id][i].phr_info, UE_list->UE_sched_ctrl[i].dl_cqi[CC_id], (UE_list->UE_sched_ctrl[i].pusch_snr[CC_id]-128)/2, - (UE_list->UE_sched_ctrl[i].pucch_snr[CC_id]-128)/2); + (UE_list->UE_sched_ctrl[i].pucch1_snr[CC_id]-128)/2); } RC.eNB[module_idP][CC_id]->pusch_stats_bsr[i][(frameP*10)+subframeP]=-63; -- GitLab