Minor cleanup UE
- removed commented out code - improved logging in UL channel estimation - minor fixes according to OAI coding guidelines - moving fetching TDD configuration parameters in nr-ue.c only in TDD case
This commit is contained in:
+6
-4
@@ -703,12 +703,14 @@ void *UE_thread(void *arg) {
|
|||||||
|
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
int slot_tx_usrp = slot_nr + DURATION_RX_TO_TX - RX_NB_TH;
|
int slot_tx_usrp = slot_nr + DURATION_RX_TO_TX - RX_NB_TH;
|
||||||
uint8_t tdd_period = mac->phy_config.config_req.tdd_table.tdd_period_in_slots;
|
|
||||||
uint8_t num_UL_slots = mac->scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSlots +
|
|
||||||
(mac->scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSymbols!=0);
|
|
||||||
uint8_t first_tx_slot = tdd_period - num_UL_slots;
|
|
||||||
|
|
||||||
if (openair0_cfg[0].duplex_mode == duplex_mode_TDD) {
|
if (openair0_cfg[0].duplex_mode == duplex_mode_TDD) {
|
||||||
|
|
||||||
|
uint8_t tdd_period = mac->phy_config.config_req.tdd_table.tdd_period_in_slots;
|
||||||
|
int nrofUplinkSlots = mac->scc->tdd_UL_DL_ConfigurationCommon->pattern1.nrofUplinkSlots;
|
||||||
|
uint8_t num_UL_slots = nrofUplinkSlots + (nrofUplinkSlots != 0);
|
||||||
|
uint8_t first_tx_slot = tdd_period - num_UL_slots;
|
||||||
|
|
||||||
if (slot_tx_usrp % tdd_period == first_tx_slot)
|
if (slot_tx_usrp % tdd_period == first_tx_slot)
|
||||||
flags = 2;
|
flags = 2;
|
||||||
else if (slot_tx_usrp % tdd_period == first_tx_slot + num_UL_slots - 1)
|
else if (slot_tx_usrp % tdd_period == first_tx_slot + num_UL_slots - 1)
|
||||||
|
|||||||
@@ -61,8 +61,6 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
debug_ch_est = fopen("debug_ch_est.txt","w");
|
debug_ch_est = fopen("debug_ch_est.txt","w");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//uint16_t Nid_cell = (eNB_offset == 0) ? gNB->frame_parms.Nid_cell : gNB->measurements.adj_cell_id[eNB_offset-1];
|
|
||||||
|
|
||||||
uint8_t nushift;
|
uint8_t nushift;
|
||||||
int **ul_ch_estimates = gNB->pusch_vars[ul_id]->ul_ch_estimates;
|
int **ul_ch_estimates = gNB->pusch_vars[ul_id]->ul_ch_estimates;
|
||||||
int **rxdataF = gNB->common_vars.rxdataF;
|
int **rxdataF = gNB->common_vars.rxdataF;
|
||||||
@@ -79,12 +77,17 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
|
|
||||||
uint16_t nb_rb_pusch = pusch_pdu->rb_size;
|
uint16_t nb_rb_pusch = pusch_pdu->rb_size;
|
||||||
|
|
||||||
/*
|
|
||||||
#ifdef DEBUG_CH
|
#ifdef DEBUG_CH
|
||||||
printf("PUSCH Channel Estimation : ch_offset %d, symbol_offset %d OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d symbol %d\n", ,ch_offset,symbol_offset,gNB->frame_parms.ofdm_symbol_size,
|
LOG_I(PHY, "In %s: ch_offset %d, symbol_offset %d OFDM size %d, Ns = %d, k = %d symbol %d\n",
|
||||||
gNB->frame_parms.Ncp,l,Ns,k, symbol);
|
__FUNCTION__,
|
||||||
|
ch_offset,
|
||||||
|
symbol_offset,
|
||||||
|
gNB->frame_parms.ofdm_symbol_size,
|
||||||
|
Ns,
|
||||||
|
k,
|
||||||
|
symbol);
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
switch (nushift) {
|
switch (nushift) {
|
||||||
case 0:
|
case 0:
|
||||||
fl = filt8_l0;
|
fl = filt8_l0;
|
||||||
@@ -124,9 +127,9 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
|
|
||||||
//------------------generate DMRS------------------//
|
//------------------generate DMRS------------------//
|
||||||
|
|
||||||
if (pusch_pdu->transform_precoding == transform_precoder_disabled)
|
if (pusch_pdu->transform_precoding == transform_precoder_disabled) {
|
||||||
nr_pusch_dmrs_rx(gNB, Ns, gNB->nr_gold_pusch_dmrs[pusch_pdu->scid][Ns][symbol], &pilot[0], 1000, 0, nb_rb_pusch, pusch_pdu->rb_start*NR_NB_SC_PER_RB, pusch_pdu->dmrs_config_type);
|
nr_pusch_dmrs_rx(gNB, Ns, gNB->nr_gold_pusch_dmrs[pusch_pdu->scid][Ns][symbol], &pilot[0], 1000, 0, nb_rb_pusch, pusch_pdu->rb_start*NR_NB_SC_PER_RB, pusch_pdu->dmrs_config_type);
|
||||||
|
}
|
||||||
else { // if transform precoding or SC-FDMA is enabled in Uplink
|
else { // if transform precoding or SC-FDMA is enabled in Uplink
|
||||||
|
|
||||||
// NR_SC_FDMA supports type1 DMRS so only 6 DMRS REs per RB possible
|
// NR_SC_FDMA supports type1 DMRS so only 6 DMRS REs per RB possible
|
||||||
@@ -151,11 +154,15 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
//------------------------------------------------//
|
//------------------------------------------------//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef DEBUG_PUSCH
|
#ifdef DEBUG_PUSCH
|
||||||
for (int i=0;i<(6*nb_rb_pusch);i++)
|
for (int i = 0; i < (6 * nb_rb_pusch); i++) {
|
||||||
printf("%d+j*(%d)\n",((int16_t*)pilot)[2*i],((int16_t*)pilot)[1+(2*i)]);
|
LOG_I(PHY, "In %s: %d + j*(%d)\n",
|
||||||
|
__FUNCTION__,
|
||||||
|
((int16_t*)pilot)[2 * i],
|
||||||
|
((int16_t*)pilot)[1 + (2 * i)]);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (aarx=0; aarx<gNB->frame_parms.nb_antennas_rx; aarx++) {
|
for (aarx=0; aarx<gNB->frame_parms.nb_antennas_rx; aarx++) {
|
||||||
|
|
||||||
pil = (int16_t *)&pilot[0];
|
pil = (int16_t *)&pilot[0];
|
||||||
@@ -165,11 +172,11 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
memset(ul_ch,0,4*(gNB->frame_parms.ofdm_symbol_size));
|
memset(ul_ch,0,4*(gNB->frame_parms.ofdm_symbol_size));
|
||||||
|
|
||||||
#ifdef DEBUG_PUSCH
|
#ifdef DEBUG_PUSCH
|
||||||
printf("symbol_offset %d, nushift %d\n",symbol_offset,nushift);
|
LOG_I(PHY, "In %s symbol_offset %d, nushift %d\n", __FUNCTION__, symbol_offset, nushift);
|
||||||
printf("ch est pilot addr %p RB_DL %d\n",&pilot[0], gNB->frame_parms.N_RB_UL);
|
LOG_I(PHY, "In %s ch est pilot addr %p, N_RB_UL %d\n", __FUNCTION__, &pilot[0], gNB->frame_parms.N_RB_UL);
|
||||||
printf("bwp_start_subcarrier %d, k %d, first_carrier %d, nb_rb_pusch %d\n",bwp_start_subcarrier,k,gNB->frame_parms.first_carrier_offset,nb_rb_pusch);
|
LOG_I(PHY, "In %s bwp_start_subcarrier %d, k %d, first_carrier %d, nb_rb_pusch %d\n", __FUNCTION__, bwp_start_subcarrier, k, gNB->frame_parms.first_carrier_offset, nb_rb_pusch);
|
||||||
printf("rxF addr %p p %d\n", rxF,p);
|
LOG_I(PHY, "In %s rxF addr %p p %d\n", __FUNCTION__, rxF, p);
|
||||||
printf("ul_ch addr %p nushift %d\n",ul_ch,nushift);
|
LOG_I(PHY, "In %s ul_ch addr %p nushift %d\n", __FUNCTION__, ul_ch, nushift);
|
||||||
#endif
|
#endif
|
||||||
//if ((gNB->frame_parms.N_RB_UL&1)==0) {
|
//if ((gNB->frame_parms.N_RB_UL&1)==0) {
|
||||||
|
|
||||||
@@ -180,9 +187,18 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||||
|
|
||||||
#ifdef DEBUG_PUSCH
|
#ifdef DEBUG_PUSCH
|
||||||
printf("ch 0 %d\n",((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1]));
|
LOG_I(PHY, "In %s ch 0 %d\n", __FUNCTION__, ((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1]));
|
||||||
printf("pilot 0 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
|
LOG_I(PHY, "In %s pilot 0 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
|
||||||
printf("data 0 : rxF - > (%d,%d) (%d)\n",rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
|
__FUNCTION__,
|
||||||
|
rxF[0],
|
||||||
|
rxF[1],
|
||||||
|
dBc(rxF[0],rxF[1]),
|
||||||
|
ch[0],
|
||||||
|
ch[1],
|
||||||
|
dBc(ch[0],ch[1]),
|
||||||
|
pil[0],
|
||||||
|
pil[1]);
|
||||||
|
LOG_I(PHY, "In %s data 0 : rxF - > (%d,%d) (%d)\n", __FUNCTION__, rxF[2], rxF[3], dBc(rxF[2],rxF[3]));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
multadd_real_vector_complex_scalar(fl,
|
multadd_real_vector_complex_scalar(fl,
|
||||||
@@ -199,9 +215,23 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||||
|
|
||||||
#ifdef DEBUG_PUSCH
|
#ifdef DEBUG_PUSCH
|
||||||
printf("pilot 1 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
|
LOG_I(PHY, "In %s pilot 1 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
|
||||||
printf("data 1 : rxF - > (%d,%d) (%d)\n",rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
|
__FUNCTION__,
|
||||||
|
rxF[0],
|
||||||
|
rxF[1],
|
||||||
|
dBc(rxF[0],rxF[1]),
|
||||||
|
ch[0],
|
||||||
|
ch[1],
|
||||||
|
dBc(ch[0],ch[1]),
|
||||||
|
pil[0],
|
||||||
|
pil[1]);
|
||||||
|
LOG_I(PHY, "In %s data 1 : rxF - > (%d,%d) (%d)\n",
|
||||||
|
__FUNCTION__,
|
||||||
|
rxF[2],
|
||||||
|
rxF[3],
|
||||||
|
dBc(rxF[2],rxF[3]));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
multadd_real_vector_complex_scalar(fml,
|
multadd_real_vector_complex_scalar(fml,
|
||||||
ch,
|
ch,
|
||||||
ul_ch,
|
ul_ch,
|
||||||
@@ -215,9 +245,23 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB,
|
|||||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||||
|
|
||||||
#ifdef DEBUG_PUSCH
|
#ifdef DEBUG_PUSCH
|
||||||
printf("pilot 2 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",rxF[0],rxF[1],dBc(rxF[0],rxF[1]),ch[0],ch[1],dBc(ch[0],ch[1]),pil[0],pil[1]);
|
LOG_I(PHY, "In %s pilot 2 : rxF - > (%d,%d) (%d) ch -> (%d,%d) (%d), pil -> (%d,%d) \n",
|
||||||
printf("data 2 : rxF - > (%d,%d) (%d)\n",rxF[2],rxF[3],dBc(rxF[2],rxF[3]));
|
__FUNCTION__,
|
||||||
|
rxF[0],
|
||||||
|
rxF[1],
|
||||||
|
dBc(rxF[0],rxF[1]),
|
||||||
|
ch[0],
|
||||||
|
ch[1],
|
||||||
|
dBc(ch[0],ch[1]),
|
||||||
|
pil[0],
|
||||||
|
pil[1]);
|
||||||
|
LOG_I(PHY, "In %s data 2 : rxF - > (%d,%d) (%d)\n",
|
||||||
|
__FUNCTION__,
|
||||||
|
rxF[2],
|
||||||
|
rxF[3],
|
||||||
|
dBc(rxF[2],rxF[3]));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
multadd_real_vector_complex_scalar(fmm,
|
multadd_real_vector_complex_scalar(fmm,
|
||||||
ch,
|
ch,
|
||||||
ul_ch,
|
ul_ch,
|
||||||
|
|||||||
Reference in New Issue
Block a user