diff --git a/srsue/src/phy/phch_recv.cc b/srsue/src/phy/phch_recv.cc index 9225c6f73..9b728cddd 100644 --- a/srsue/src/phy/phch_recv.cc +++ b/srsue/src/phy/phch_recv.cc @@ -155,7 +155,6 @@ void phch_recv::radio_error() } void phch_recv::set_cfo(float cfo) { - Debug("set_ref_cfo=%f\n",cfo*15000); srslte_ue_sync_set_cfo_ref(&ue_sync, cfo); } @@ -645,9 +644,6 @@ void phch_recv::run_thread() worker->set_cfo(ul_dl_factor * metrics.cfo / 15000); worker_com->set_sync_metrics(metrics); - Debug("current_cfo=%f, pss_stable_cnt=%d, cfo_pss=%f Hz\n", - metrics.cfo, ue_sync.pss_stable_cnt, srslte_sync_get_cfo(&ue_sync.strack)*15000); - worker->set_sample_offset(srslte_ue_sync_get_sfo(&ue_sync)/1000); /* Compute TX time: Any transmission happens in TTI+4 thus advance 4 ms the reception time */ @@ -1193,7 +1189,8 @@ void phch_recv::scell_recv::init(srslte::log *log_h, bool sic_pss_enabled) measure_p.init(sf_buffer, log_h, 1, DEFAULT_MEASUREMENT_LEN); - if(srslte_sync_init(&sync_find, 15*max_sf_size, 5*max_sf_size, max_fft_sz)) { + //do this different we don't need all this search window. + if(srslte_sync_init(&sync_find, 50*max_sf_size, 5*max_sf_size, max_fft_sz)) { fprintf(stderr, "Error initiating sync_find\n"); return; } @@ -1211,6 +1208,10 @@ void phch_recv::scell_recv::init(srslte::log *log_h, bool sic_pss_enabled) sync_find.pss.chest_on_filter = true; + if (!sic_pss_enabled) { + sync_find.sss_channel_equalize = false; + } + reset(); } @@ -1255,7 +1256,10 @@ int phch_recv::scell_recv::find_cells(cf_t *input_buffer, float rx_gain_offset, srslte_sync_reset(&sync_find); srslte_sync_cfo_reset(&sync_find); - sync_res = srslte_sync_find(&sync_find, input_buffer, 0, &peak_idx); + int sf5_cnt=0; + do { + sync_res = srslte_sync_find(&sync_find, input_buffer, sf5_cnt*5*sf_len, &peak_idx); + } while(sync_res != SRSLTE_SYNC_FOUND && sf5_cnt < nof_sf/5); switch(sync_res) { case SRSLTE_SYNC_ERROR: