void generate_sss(real_t *signal, struct lte_grid_config *config) { int i; int id1 = config->cell_id/3; int id2 = config->cell_id%3; int m0; int m1; if (config->debug) { for (i=0;i<SSS_LEN;i++) { signal[i] = 1.0; } return; } generate_m0m1(id1,id2,&m0,&m1); generate_zsc_tilde(z_t,s_t,c_t); generate_s(s0, s_t, m0); generate_s(s1, s_t, m1); generate_c(c0, c_t, id2,0); generate_c(c1, c_t, id2,1); generate_z(z1_0, z_t, m0); generate_z(z1_1, z_t, m1); for (i=0; i<N_SSS; i++){ /** Even Resource Elements: Sub-frame 0*/ signal[2*i] = (float)(s0[i]*c0[i]); /** Odd Resource Elements: Sub-frame 0*/ signal[2*i+1] = (float)(s1[i]*c1[i]*z1_0[i]); } for (i=0; i<N_SSS; i++){ /** Even Resource Elements: Sub-frame 5*/ signal[2*i+N_SSS*2] = (float)(s1[i]*c0[i]); /** Odd Resource Elements: Sub-frame 5*/ signal[2*i+1+N_SSS*2] = (float)(s0[i]*c1[i]*z1_1[i]); } }
void generate_sss_all_tables(struct sss_tables *tables, int N_id_2) { int i; generate_zsc_tilde(z_t,s_t,c_t); generate_s_all(tables->s,s_t); generate_z_all(tables->z1,z_t); for (i=0;i<2;i++) { generate_c(tables->c[i],c_t,N_id_2,i); } tables->N_id_2 = N_id_2; }
static int generate(void) { return generate_c() || generate_h(); }