예제 #1
0
파일: pss.c 프로젝트: Intellifora/srsLTE
void srslte_pss_synch_free(srslte_pss_synch_t *q) {
  uint32_t i;

  if (q) {
    for (i=0;i<3;i++) {
      if (q->pss_signal_time[i]) {
        free(q->pss_signal_time[i]);
      }
    }
  #ifdef CONVOLUTION_FFT
    srslte_conv_fft_cc_free(&q->conv_fft);
    
  #endif
    if (q->tmp_input) {
      free(q->tmp_input);
    }
    if (q->conv_output) {
      free(q->conv_output);
    }
    if (q->conv_output_abs) {
      free(q->conv_output_abs);
    }
    if (q->conv_output_avg) {
      free(q->conv_output_avg);
    }

    bzero(q, sizeof(srslte_pss_synch_t));    
  }
}
예제 #2
0
파일: pss.c 프로젝트: srsLTE/srsLTE
void srslte_pss_free(srslte_pss_t *q) {
  uint32_t i;

  if (q) {
    for (i=0;i<3;i++) {
      if (q->pss_signal_time[i]) {
        free(q->pss_signal_time[i]);
      }
      if(q->pss_signal_freq_full[i]){
        free(q->pss_signal_freq_full[i]);
      }
    }
  #ifdef CONVOLUTION_FFT
    srslte_conv_fft_cc_free(&q->conv_fft);

  #endif
    if (q->tmp_input) {
      free(q->tmp_input);
    }
    if (q->conv_output) {
      free(q->conv_output);
    }
    if (q->conv_output_abs) {
      free(q->conv_output_abs);
    }
    if (q->conv_output_avg) {
      free(q->conv_output_avg);
    }

    srslte_dft_plan_free(&q->dftp_input);
    srslte_dft_plan_free(&q->idftp_input);

    if(q->decimate > 1)
    {
        srslte_filt_decim_cc_free(&q->filter);
        free(q->filter.filter_output);
        free(q->filter.downsampled_input);
    }


    bzero(q, sizeof(srslte_pss_t));
  }
}