Пример #1
0
int srslte_sss_synch_init(srslte_sss_synch_t *q, uint32_t fft_size) {
  
  if (q                 != NULL  &&
      fft_size          <= 2048)
  {
    uint32_t N_id_2;
    srslte_sss_tables_t sss_tables;

    bzero(q, sizeof(srslte_sss_synch_t));
    
    if (srslte_dft_plan(&q->dftp_input, fft_size, SRSLTE_DFT_FORWARD, SRSLTE_DFT_COMPLEX)) {
      srslte_sss_synch_free(q);
      return SRSLTE_ERROR;
    }
    srslte_dft_plan_set_mirror(&q->dftp_input, true);
    srslte_dft_plan_set_dc(&q->dftp_input, true);

    q->fft_size = fft_size; 
    
    generate_N_id_1_table(q->N_id_1_table);
    
    for (N_id_2=0;N_id_2<3;N_id_2++) {
      generate_sss_all_tables(&sss_tables, N_id_2);
      convert_tables(&q->fc_tables[N_id_2], &sss_tables);
    }
    q->N_id_2 = 0;
    return SRSLTE_SUCCESS;
  } 
  return SRSLTE_ERROR_INVALID_INPUTS;
}
Пример #2
0
int initialize() {

	input_len=0;
	param_get_int_name("input_len",&input_len);

	sss_pos_in_frame=960-2*137;
	param_get_int_name("sss_pos_in_frame",&sss_pos_in_frame);

	sss_pos_in_symbol=33;
	param_get_int_name("sss_pos_in_symbol",&sss_pos_in_symbol);

	correlation_threshold=3000;
	param_get_int_name("correlation_threshold",&correlation_threshold);

	N_id_2=0;
	param_get_int_name("N_id_2",&N_id_2);

	dft_plan(SSS_DFT_LEN,COMPLEX_2_COMPLEX,FORWARD,&plan);
	plan.options = DFT_MIRROR_POS | DFT_DC_OFFSET;

	generate_sss_all_tables(&sss_tables,N_id_2);
	convert_tables(&sss_tables);

#ifdef _COMPILE_ALOE
	sf_pm_idx = oesr_get_variable_idx(ctx, "ctrl","subframe_rx");
	if (sf_pm_idx < 0) {
		moderror("Error getting remote parameter subframe_rx\n");
	}
	moddebug("Remote subframe_rx parameter is a at %d\n",sf_pm_idx);
#endif

	first=1;
	return 0;
}
Пример #3
0
/** Initializes the SSS sequences for the given N_id_2 */
int sss_synch_set_N_id_2(sss_synch_t *q, int N_id_2) {
	if (N_id_2 < 0 || N_id_2 > 2) {
		fprintf(stderr, "Invalid N_id_2 %d\n", N_id_2);
		return -1;
	}

	struct sss_tables sss_tables;
	generate_sss_all_tables(&sss_tables,N_id_2);
	convert_tables(&q->fc_tables, &sss_tables);

	return 0;
}