diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index a407171d01..6795f2d1fa 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -1088,7 +1088,7 @@ (Test7: 106 PRB 51 PDSCH-Offset), (Test8: 217 PRB 100 PDSCH-PRBs), (Test9: 217 PRB 80 PDSCH-Offset), - (Test10: 217 PRB 100 PDSCH-PRBs 80 PDSCH-Offset), + (Test10: 217 PRB 100 PDSCH-PRBs 110 PDSCH-Offset), (Test11: 106 PRBs 50 PDSCH-PRBs MCS Index 28 $OPENAIR_DIR/cmake_targets/build_oai @@ -1105,7 +1105,7 @@ -n100 -R106 -a51 -n100 -R217 -b100 -n100 -R217 -a80 - -n100 -R217 -a80 -b100 + -n100 -R217 -a110 -b100 -n100 -e28 nr_dlsim.test1 nr_dlsim.test2 nr_dlsim.test3 nr_dlsim.test4 nr_dlsim.test5 nr_dlsim.test6 nr_dlsim.test7 nr_dlsim.test8 nr_dlsim.test9 nr_dlsim.test10 nr_dlsim.test11 diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c index 89321f637b..28a6df7902 100644 --- a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c +++ b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c @@ -267,7 +267,8 @@ int nr_pusch_channel_estimation(PHY_VARS_gNB *gNB, // check if PRB crosses DC and improve estimates around DC - if ((bwp_start_subcarrier >= gNB->frame_parms.ofdm_symbol_size/2) && (bwp_start_subcarrier+nb_rb_pusch*12 >= gNB->frame_parms.ofdm_symbol_size)) { + uint16_t ofdm_symb_size = gNB->frame_parms.ofdm_symbol_size; + if ((bwp_start_subcarrier%ofdm_symb_size >= ofdm_symb_size/2) && ((bwp_start_subcarrier+nb_rb_pusch*12)%ofdm_symb_size >= ofdm_symb_size)) { ul_ch = (int16_t *)&ul_ch_estimates[aarx][ch_offset]; uint16_t idxDC = 2*(gNB->frame_parms.ofdm_symbol_size - bwp_start_subcarrier); uint16_t idxPil = idxDC/2; diff --git a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c index 752d06fb21..f0c6684f27 100644 --- a/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c +++ b/openair1/PHY/NR_UE_ESTIMATION/nr_dl_channel_estimation.c @@ -874,7 +874,8 @@ int nr_pdsch_channel_estimation(PHY_VARS_NR_UE *ue, //} // check if PRB crosses DC and improve estimates around DC - if ((bwp_start_subcarrier >= ue->frame_parms.ofdm_symbol_size/2) && (bwp_start_subcarrier+nb_rb_pdsch*12 >= ue->frame_parms.ofdm_symbol_size)) { + uint16_t ofdm_symb_size = ue->frame_parms.ofdm_symbol_size; + if ((bwp_start_subcarrier%ofdm_symb_size >= ofdm_symb_size/2) && ((bwp_start_subcarrier+nb_rb_pdsch*12)%ofdm_symb_size >= ofdm_symb_size)) { dl_ch = (int16_t *)&dl_ch_estimates[aarx][ch_offset]; uint16_t idxDC = 2*(ue->frame_parms.ofdm_symbol_size - bwp_start_subcarrier); uint16_t idxPil = idxDC/2;