Example #1
0
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]);
	}
}
Example #2
0
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;
}
Example #3
0
static int
generate(void)
{
    return generate_c() || generate_h();
}