diff --git a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
index b854ee8dcf00edd2cff98b0815aa1061b59f9311..6eafad088d1cd5720ddf0aae2c69274c63bebb74 100644
--- a/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
+++ b/openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
@@ -559,6 +559,11 @@ void nr_pusch_ptrs_processing(PHY_VARS_gNB *gNB,
   for (int aarx=0; aarx< frame_parms->nb_antennas_rx; aarx++)
   {
     phase_per_symbol = (int16_t*)gNB->pusch_vars[ulsch_id]->ptrs_phase_per_slot[aarx];
+    /* set the previous estimations to zero at first symbol */
+    if(symbol == rel15_ul->start_symbol_index)
+    {
+      memset(phase_per_symbol,0,sizeof(int32_t)*frame_parms->symbols_per_slot);
+    }
     /* if not PTRS symbol set current ptrs symbol index to zero*/
     gNB->pusch_vars[ulsch_id]->ptrs_symbol_index = 0;
     gNB->pusch_vars[ulsch_id]->ptrs_sc_per_ofdm_symbol = 0;