mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
ptrs: limit PTRS processing to one antenna port
The current state of PTRS will not work for multiple antenna ports because the function assumes rxdataF_comp has signal for all antenna ports but it doesn't as we do MRC after DMRS compensation. Signed-off-by: Rupanjali <rupanjali.srivastava@openairinterface.org>
This commit is contained in:
@@ -272,15 +272,14 @@ static void inner_rx(PHY_VARS_gNB *gNB,
|
||||
rel15_ul->qam_mod_order);
|
||||
nr_idft((int32_t *)&pusch_vars->rxdataF_comp[0][symbol * buffer_length], pusch_vars->ul_valid_re_per_slot[symbol]);
|
||||
}
|
||||
/* PTRS processing for multiple antenna ports is broken because the following
|
||||
function estimates phase offset from and applies compensation to rxdataF_comp
|
||||
for each antenna port but rxdataF_comp has MRCed data. */
|
||||
/* TODO: Move PTRS phase estimation before immediately after DMRS channels
|
||||
estimation and apply PTRS phase compensation in nr_channel_compensationi() */
|
||||
if (rel15_ul->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS) {
|
||||
nr_pusch_ptrs_processing(gNB,
|
||||
frame_parms,
|
||||
rel15_ul,
|
||||
pusch_vars,
|
||||
slot,
|
||||
symbol,
|
||||
nb_rx_ant,
|
||||
buffer_length);
|
||||
// rxdataF_comp is MRCed so no point in processing all antenna ports. Fixme.
|
||||
nr_pusch_ptrs_processing(gNB, frame_parms, rel15_ul, pusch_vars, slot, symbol, 1, buffer_length);
|
||||
pusch_vars->ul_valid_re_per_slot[symbol] -= pusch_vars->ptrs_re_per_slot;
|
||||
}
|
||||
start_meas(ulsch_llr);
|
||||
|
||||
@@ -1369,7 +1369,7 @@ void nr_pdsch_ptrs_processing(int nbRx,
|
||||
int nscid = dlsch_config->nscid;
|
||||
|
||||
/* loop over antennas */
|
||||
for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
|
||||
for (int aarx = 0; aarx < nbRx; aarx++) {
|
||||
c16_t *phase_per_symbol = (c16_t*)ptrs_phase_per_slot[aarx];
|
||||
ptrs_re_symbol = (int32_t*)ptrs_re_per_slot[aarx];
|
||||
ptrs_re_symbol[symbol] = 0;
|
||||
@@ -1440,5 +1440,5 @@ void nr_pdsch_ptrs_processing(int nbRx,
|
||||
}// if not DMRS Symbol
|
||||
}// symbol loop
|
||||
}// last symbol check
|
||||
}//Antenna loop
|
||||
} // Antenna loop
|
||||
}//main function
|
||||
|
||||
@@ -1099,9 +1099,14 @@ int nr_rx_pdsch(PHY_VARS_NR_UE *ue,
|
||||
pduBitmap = dlsch_config->pduBitmap;
|
||||
}
|
||||
|
||||
/* PTRS processing for multiple antenna ports is broken because the following
|
||||
function estimates phase offset from and applies compensation to rxdataF_comp
|
||||
for each antenna port but rxdataF_comp has MRCed data. */
|
||||
/* TODO: Move PTRS phase estimation before immediately after DMRS channels
|
||||
estimation and apply PTRS phase compensation in nr_channel_compensationi() */
|
||||
/* Check for PTRS bitmap and process it respectively */
|
||||
if((pduBitmap & 0x1) && (dlsch->rnti_type == TYPE_C_RNTI_)) {
|
||||
nr_pdsch_ptrs_processing(nbRx,
|
||||
nr_pdsch_ptrs_processing(1, // rxdataF_comp is MRCed so no point in processing all antenna ports. Fixme.
|
||||
ptrs_phase_per_slot,
|
||||
ptrs_re_per_slot,
|
||||
rx_size_symbol,
|
||||
|
||||
Reference in New Issue
Block a user