Merge remote-tracking branch 'origin/NR_SR_fixes' into integration_2022_wk17
This commit is contained in:
@@ -290,7 +290,7 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
|
||||
xr[aa][l][n].i = (int32_t)x_re[l][n] * r[n].i - (int32_t)x_im[l][n] * r[n].r;
|
||||
#ifdef DEBUG_NR_PUCCH_RX
|
||||
printf("x (%d,%d), r%d.%d (%d,%d), xr (%lld,%lld)\n",
|
||||
x_re[l][n],x_im[l][n],l2,re_offset[l],r[n].r,r[n].i,xr[aa][l][n].r,xr[aa][l][n].i);
|
||||
x_re[l][n],x_im[l][n],l2,re_offset[l],r[n].r,r[n].i,xr[aa][l][n].r,xr[aa][l][n].i);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -417,11 +417,12 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
|
||||
if (pucch_pdu->bit_len_harq==0) {
|
||||
uci_pdu->harq = NULL;
|
||||
uci_pdu->sr = calloc(1,sizeof(*uci_pdu->sr));
|
||||
uci_pdu->sr->sr_confidence_level = no_conf;
|
||||
uci_pdu->sr->sr_confidence_level = SNRtimes10 < uci_stats->pucch0_thres;
|
||||
uci_stats->pucch0_sr_trials++;
|
||||
if (xrtmag_dBtimes10>(10*gNB->measurements.n0_power_tot_dB)) {
|
||||
if (xrtmag_dBtimes10>(10*max_n0+100)) {
|
||||
uci_pdu->sr->sr_indication = 1;
|
||||
uci_stats->pucch0_positive_SR++;
|
||||
LOG_D(PHY,"PUCCH0 got positive SR. Cumulative number of positive SR %d\n", uci_stats->pucch0_positive_SR);
|
||||
} else {
|
||||
uci_pdu->sr->sr_indication = 0;
|
||||
}
|
||||
@@ -442,7 +443,10 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
|
||||
uci_pdu->sr = calloc(1,sizeof(*uci_pdu->sr));
|
||||
uci_pdu->sr->sr_indication = (index>1);
|
||||
uci_pdu->sr->sr_confidence_level = no_conf;
|
||||
uci_stats->pucch0_positive_SR++;
|
||||
if(uci_pdu->sr->sr_indication == 1 && uci_pdu->sr->sr_confidence_level == 0) {
|
||||
uci_stats->pucch0_positive_SR++;
|
||||
LOG_D(PHY,"PUCCH0 got positive SR. Cumulative number of positive SR %d\n", uci_stats->pucch0_positive_SR);
|
||||
}
|
||||
}
|
||||
uci_stats->pucch01_trials++;
|
||||
}
|
||||
@@ -466,6 +470,10 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
|
||||
uci_pdu->sr = calloc(1,sizeof(*uci_pdu->sr));
|
||||
uci_pdu->sr->sr_indication = (index>3) ? 1 : 0;
|
||||
uci_pdu->sr->sr_confidence_level = no_conf;
|
||||
if(uci_pdu->sr->sr_indication == 1 && uci_pdu->sr->sr_confidence_level == 0) {
|
||||
uci_stats->pucch0_positive_SR++;
|
||||
LOG_D(PHY,"PUCCH0 got positive SR. Cumulative number of positive SR %d\n", uci_stats->pucch0_positive_SR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1674,7 +1682,8 @@ void nr_decode_pucch2(PHY_VARS_gNB *gNB,
|
||||
LOG_D(PHY,"metric %d dB\n",corr_dB);
|
||||
}
|
||||
|
||||
// estimate CQI for MAC (from antenna port 0 only)
|
||||
// estimate CQI for MAC (from antenna port 0 only)
|
||||
// TODO this computation is wrong -> to be ignored at MAC for now
|
||||
int SNRtimes10 = dB_fixed_times10(signal_energy_nodc(&rxdataF[0][soffset+(l2*frame_parms->ofdm_symbol_size)+re_offset[0]],
|
||||
12*pucch_pdu->prb_size)) -
|
||||
(10*gNB->measurements.n0_power_tot_dB);
|
||||
|
||||
@@ -658,8 +658,6 @@ typedef struct {
|
||||
unsigned int n0_power_tot;
|
||||
//! estimated avg noise power (dB)
|
||||
unsigned int n0_power_tot_dB;
|
||||
//! estimated avg noise power (dB)
|
||||
int n0_power_tot_dBm;
|
||||
//! estimated avg noise power per RB per RX ant (lin)
|
||||
unsigned int n0_subband_power[MAX_NUM_RU_PER_gNB][275];
|
||||
//! estimated avg noise power per RB per RX ant (dB)
|
||||
|
||||
@@ -1494,10 +1494,11 @@ void handle_nr_uci_pucch_2_3_4(module_id_t mod_id,
|
||||
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
||||
|
||||
// tpc (power control)
|
||||
sched_ctrl->tpc1 = nr_get_tpc(RC.nrmac[mod_id]->pucch_target_snrx10,
|
||||
uci_234->ul_cqi,
|
||||
30);
|
||||
sched_ctrl->pucch_snrx10 = uci_234->ul_cqi * 5 - 640;
|
||||
// TODO PUCCH2 SNR computation is not correct -> ignore the following
|
||||
//sched_ctrl->tpc1 = nr_get_tpc(RC.nrmac[mod_id]->pucch_target_snrx10,
|
||||
// uci_234->ul_cqi,
|
||||
// 30);
|
||||
//sched_ctrl->pucch_snrx10 = uci_234->ul_cqi * 5 - 640;
|
||||
|
||||
if ((uci_234->pduBitmap >> 1) & 0x01) {
|
||||
// iterate over received harq bits
|
||||
|
||||
Reference in New Issue
Block a user