Commit c9523b88 authored by Parminder Singh's avatar Parminder Singh

Updated UL ptrs processing wrt DL

- Most DL code is reused for Ul also to reduce code duplication
- Common CPE calculation function is used for error estimation
- Common slot processing function is used for inter/extrapolation
- Removed old implementation dedicated to UL
parent f0c843fa
...@@ -53,28 +53,10 @@ int nr_est_timing_advance_pusch(PHY_VARS_gNB* phy_vars_gNB, int UE_id); ...@@ -53,28 +53,10 @@ int nr_est_timing_advance_pusch(PHY_VARS_gNB* phy_vars_gNB, int UE_id);
void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB, void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
NR_DL_FRAME_PARMS *frame_parms,
nfapi_nr_pusch_pdu_t *rel15_ul, nfapi_nr_pusch_pdu_t *rel15_ul,
uint8_t ulsch_id, uint8_t ulsch_id,
uint8_t nr_tti_rx, uint8_t nr_tti_rx,
uint8_t dmrs_symbol_flag,
unsigned char symbol, unsigned char symbol,
uint32_t nb_re_pusch); uint32_t nb_re_pusch);
void nr_pusch_phase_estimation(NR_DL_FRAME_PARMS *frame_parms,
nfapi_nr_pusch_pdu_t *rel15_ul,
int16_t *ptrs_ch_p,
unsigned char Ns,
unsigned char symbol,
int16_t *rxF_comp,
uint32_t ***ptrs_gold_seq,
int16_t *error_est,
uint16_t *ptrs_sc);
void nr_pusch_phase_interpolation(int16_t *error_est,
uint8_t start_symbol,
uint8_t end_symbol);
int nr_ptrs_find_next_estimate(int16_t *error_est,
uint8_t counter,
uint8_t end_symbol);
#endif #endif
...@@ -1234,16 +1234,16 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB, ...@@ -1234,16 +1234,16 @@ int nr_rx_pusch(PHY_VARS_gNB *gNB,
{ {
start_meas(&gNB->ulsch_ptrs_processing_stats); start_meas(&gNB->ulsch_ptrs_processing_stats);
nr_pusch_ptrs_processing(gNB, nr_pusch_ptrs_processing(gNB,
frame_parms,
rel15_ul, rel15_ul,
ulsch_id, ulsch_id,
nr_tti_rx, nr_tti_rx,
dmrs_symbol_flag,
symbol, symbol,
nb_re_pusch); nb_re_pusch);
stop_meas(&gNB->ulsch_ptrs_processing_stats); stop_meas(&gNB->ulsch_ptrs_processing_stats);
/* Subtract total PTRS RE's in the symbol from PUSCH RE's */ /* Subtract total PTRS RE's in the symbol from PUSCH RE's */
gNB->pusch_vars[ulsch_id]->ul_valid_re_per_slot[symbol] -= gNB->pusch_vars[ulsch_id]->ptrs_sc_per_ofdm_symbol; gNB->pusch_vars[ulsch_id]->ul_valid_re_per_slot[symbol] -= gNB->pusch_vars[ulsch_id]->ptrs_re_per_slot;
} }
/*---------------------------------------------------------------------------------------------------- */ /*---------------------------------------------------------------------------------------------------- */
......
...@@ -465,7 +465,7 @@ typedef struct { ...@@ -465,7 +465,7 @@ typedef struct {
/// bit mask of PT-RS ofdm symbol indicies /// bit mask of PT-RS ofdm symbol indicies
uint16_t ptrs_symbols; uint16_t ptrs_symbols;
// PTRS subcarriers per OFDM symbol // PTRS subcarriers per OFDM symbol
uint16_t ptrs_sc_per_ofdm_symbol; int32_t ptrs_re_per_slot;
/// \brief Estimated phase error based upon PTRS on each symbol . /// \brief Estimated phase error based upon PTRS on each symbol .
/// - first index: ? [0..7] Number of Antenna /// - first index: ? [0..7] Number of Antenna
/// - second index: ? [0...14] smybol per slot /// - second index: ? [0...14] smybol per slot
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment