diff --git a/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c b/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c index e73671823704f40afabc7a18c42c59b212099f08..14e4acdbbf7b1f97578eb0262d9e6d074cdf0465 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c +++ b/openair1/PHY/NR_UE_TRANSPORT/pss_nr.c @@ -661,7 +661,6 @@ int pss_search_time_nr(int **rxdata, ///rx data in time domain { unsigned int n, ar, peak_position, pss_source; int64_t peak_value; - int64_t result; int64_t avg[NUMBER_PSS_SEQUENCE]={0}; double ffo_est=0; @@ -704,11 +703,13 @@ int pss_search_time_nr(int **rxdata, ///rx data in time domain for (ar=0; ar<frame_parms->nb_antennas_rx; ar++) { /* perform correlation of rx data and pss sequence ie it is a dot product */ - result = dot_product64((short*)primary_synchro_time_nr[pss_index], - (short*)&(rxdata[ar][n+is*frame_parms->samples_per_frame]), - frame_parms->ofdm_symbol_size, - shift); - pss_corr_ue += squaredMod(*(c32_t*)&result); + const int64_t result = dot_product64((short *)primary_synchro_time_nr[pss_index], + (short *)&(rxdata[ar][n + is * frame_parms->samples_per_frame]), + frame_parms->ofdm_symbol_size, + shift); + const c32_t r32 = *(c32_t*)&result; + const c64_t r64 = {.r = r32.r, .i = r32.i}; + pss_corr_ue += squaredMod(r64); //((short*)pss_corr_ue[pss_index])[2*n] += ((short*) &result)[0]; /* real part */ //((short*)pss_corr_ue[pss_index])[2*n+1] += ((short*) &result)[1]; /* imaginary part */ //((short*)&synchro_out)[0] += ((int*) &result)[0]; /* real part */