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;