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;
|
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
|
#ifdef DEBUG_NR_PUCCH_RX
|
||||||
printf("x (%d,%d), r%d.%d (%d,%d), xr (%lld,%lld)\n",
|
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
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -417,11 +417,12 @@ void nr_decode_pucch0(PHY_VARS_gNB *gNB,
|
|||||||
if (pucch_pdu->bit_len_harq==0) {
|
if (pucch_pdu->bit_len_harq==0) {
|
||||||
uci_pdu->harq = NULL;
|
uci_pdu->harq = NULL;
|
||||||
uci_pdu->sr = calloc(1,sizeof(*uci_pdu->sr));
|
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++;
|
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_pdu->sr->sr_indication = 1;
|
||||||
uci_stats->pucch0_positive_SR++;
|
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 {
|
} else {
|
||||||
uci_pdu->sr->sr_indication = 0;
|
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 = calloc(1,sizeof(*uci_pdu->sr));
|
||||||
uci_pdu->sr->sr_indication = (index>1);
|
uci_pdu->sr->sr_indication = (index>1);
|
||||||
uci_pdu->sr->sr_confidence_level = no_conf;
|
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++;
|
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 = calloc(1,sizeof(*uci_pdu->sr));
|
||||||
uci_pdu->sr->sr_indication = (index>3) ? 1 : 0;
|
uci_pdu->sr->sr_indication = (index>3) ? 1 : 0;
|
||||||
uci_pdu->sr->sr_confidence_level = no_conf;
|
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);
|
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]],
|
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)) -
|
12*pucch_pdu->prb_size)) -
|
||||||
(10*gNB->measurements.n0_power_tot_dB);
|
(10*gNB->measurements.n0_power_tot_dB);
|
||||||
|
|||||||
@@ -658,8 +658,6 @@ typedef struct {
|
|||||||
unsigned int n0_power_tot;
|
unsigned int n0_power_tot;
|
||||||
//! estimated avg noise power (dB)
|
//! estimated avg noise power (dB)
|
||||||
unsigned int n0_power_tot_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)
|
//! estimated avg noise power per RB per RX ant (lin)
|
||||||
unsigned int n0_subband_power[MAX_NUM_RU_PER_gNB][275];
|
unsigned int n0_subband_power[MAX_NUM_RU_PER_gNB][275];
|
||||||
//! estimated avg noise power per RB per RX ant (dB)
|
//! 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];
|
NR_UE_sched_ctrl_t *sched_ctrl = &UE_info->UE_sched_ctrl[UE_id];
|
||||||
|
|
||||||
// tpc (power control)
|
// tpc (power control)
|
||||||
sched_ctrl->tpc1 = nr_get_tpc(RC.nrmac[mod_id]->pucch_target_snrx10,
|
// TODO PUCCH2 SNR computation is not correct -> ignore the following
|
||||||
uci_234->ul_cqi,
|
//sched_ctrl->tpc1 = nr_get_tpc(RC.nrmac[mod_id]->pucch_target_snrx10,
|
||||||
30);
|
// uci_234->ul_cqi,
|
||||||
sched_ctrl->pucch_snrx10 = uci_234->ul_cqi * 5 - 640;
|
// 30);
|
||||||
|
//sched_ctrl->pucch_snrx10 = uci_234->ul_cqi * 5 - 640;
|
||||||
|
|
||||||
if ((uci_234->pduBitmap >> 1) & 0x01) {
|
if ((uci_234->pduBitmap >> 1) & 0x01) {
|
||||||
// iterate over received harq bits
|
// iterate over received harq bits
|
||||||
|
|||||||
Reference in New Issue
Block a user