Skip to content

WIP: fixing the RE offset for each Rx antenna in pusch channel estimation

sarma PVNP requested to merge sarma_pvnp_oai into develop

Hi,

I see in the function nr_pusch_channel_estimation() (File: /openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c, branch origin/develop ) the re_offset is initialized before the Rx antenna loop.

  ch_offset     = gNB->frame_parms.ofdm_symbol_size*symbol;

74 75 symbol_offset = gNB->frame_parms.ofdm_symbol_sizesymbol; 76 77 k = bwp_start_subcarrier; 78 int re_offset = k; 79 80 uint16_t nb_rb_pusch = pusch_pdu->rb_size; 81 82 / 83 #ifdef DEBUG_CH

So if we configure with more than one rx antennas(gNB->frame_parms.nb_antennas_rx > 1 ) there will be an issue. re_offset is getting updated
re_offset = (re_offset+2) % gNB->frame_parms.ofdm_symbol_size; at each interpolation, in the aarx loop. the re_offset difference between 1st and 2nd antenna will be big in aarx loop.

I think re_offset should be initialized for each antenna in the loop , as shown below

@@ -157,7 +157,7 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB gNB, printf("%d+j(%d)\n",((int16_t*)pilot)[2i],((int16_t)pilot)[1+(2*i)]); #endif for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) {

  • re_offset = k; pil = (int16_t *)&pilot[0]; rxF = (int16_t *)&rxdataF[aarx][(symbol_offset+k+nushift)]; ul_ch = (int16_t *)&ul_ch_estimates[aarx][ch_offset];
Can you please confirm the  above analysis   ?
Edited by Florian Kaltenberger

Merge request reports

Loading