Update the ad_shift, considering the previous improvement
This commit is contained in:
@@ -1925,7 +1925,13 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
|
|||||||
int off = ((rel15_ul->rb_size&1) == 1)? 4:0;
|
int off = ((rel15_ul->rb_size&1) == 1)? 4:0;
|
||||||
uint32_t rxdataF_ext_offset = 0;
|
uint32_t rxdataF_ext_offset = 0;
|
||||||
uint8_t shift_ch_ext = rel15_ul->nrOfLayers > 1 ? log2_approx(max_ch >> 11) : 0;
|
uint8_t shift_ch_ext = rel15_ul->nrOfLayers > 1 ? log2_approx(max_ch >> 11) : 0;
|
||||||
uint8_t ad_shift = 1 + log2_approx(frame_parms->nb_antennas_rx >> 2) + (rel15_ul->nrOfLayers == 2);
|
|
||||||
|
int ad_shift = 0;
|
||||||
|
if (rel15_ul->nrOfLayers == 1) {
|
||||||
|
ad_shift = 1 + log2_approx(frame_parms->nb_antennas_rx >> 2);
|
||||||
|
} else {
|
||||||
|
ad_shift = -3; // For 2-layers, we are already doing a bit shift in the nr_ulsch_zero_forcing_rx_2layers() function, so we can use more bits
|
||||||
|
}
|
||||||
|
|
||||||
for(uint8_t symbol = rel15_ul->start_symbol_index; symbol < (rel15_ul->start_symbol_index + rel15_ul->nr_of_symbols); symbol++) {
|
for(uint8_t symbol = rel15_ul->start_symbol_index; symbol < (rel15_ul->start_symbol_index + rel15_ul->nr_of_symbols); symbol++) {
|
||||||
uint8_t dmrs_symbol_flag = (rel15_ul->ul_dmrs_symb_pos >> symbol) & 0x01;
|
uint8_t dmrs_symbol_flag = (rel15_ul->ul_dmrs_symb_pos >> symbol) & 0x01;
|
||||||
@@ -1994,7 +2000,10 @@ void nr_rx_pusch(PHY_VARS_gNB *gNB,
|
|||||||
for (aarx=0;aarx<frame_parms->nb_antennas_rx;aarx++)
|
for (aarx=0;aarx<frame_parms->nb_antennas_rx;aarx++)
|
||||||
avgs = cmax(avgs,avg[aatx*frame_parms->nb_antennas_rx+aarx]);
|
avgs = cmax(avgs,avg[aatx*frame_parms->nb_antennas_rx+aarx]);
|
||||||
|
|
||||||
gNB->pusch_vars[ulsch_id]->log2_maxh = (log2_approx(avgs) / 2) + ad_shift;
|
gNB->pusch_vars[ulsch_id]->log2_maxh = (log2_approx(avgs) >> 1) + ad_shift;
|
||||||
|
if (gNB->pusch_vars[ulsch_id]->log2_maxh < 0) {
|
||||||
|
gNB->pusch_vars[ulsch_id]->log2_maxh = 0;
|
||||||
|
}
|
||||||
gNB->pusch_vars[ulsch_id]->cl_done = 1;
|
gNB->pusch_vars[ulsch_id]->cl_done = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user