main() { unsigned short Nid_cell=0; unsigned int Ncp = 0; int output00[1024]; int output01[1024]; int output10[1024]; int output11[1024]; memset(output00,0,1024*sizeof(int)); memset(output01,0,1024*sizeof(int)); memset(output10,0,1024*sizeof(int)); memset(output11,0,1024*sizeof(int)); lte_gold(Nid_cell,Ncp); lte_dl_cell_spec(output00, ONE_OVER_SQRT2_Q15, 50, Nid_cell, Ncp, 0, 0, 0, 0); lte_dl_cell_spec(output10, ONE_OVER_SQRT2_Q15, 50, Nid_cell, Ncp, 0, 1, 0, 0); lte_dl_cell_spec(output01, ONE_OVER_SQRT2_Q15, 50, Nid_cell, Ncp, 0, 0, 1, 0); lte_dl_cell_spec(output11, ONE_OVER_SQRT2_Q15, 50, Nid_cell, Ncp, 0, 1, 1, 0); write_output("dl_cell_spec00.m","dl_cs00",output00,1024,1,1); write_output("dl_cell_spec01.m","dl_cs01",output01,1024,1,1); write_output("dl_cell_spec10.m","dl_cs10",output10,1024,1,1); write_output("dl_cell_spec11.m","dl_cs11",output11,1024,1,1); }
void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmission_mode) { unsigned int ind; printf("Start lte_param_init\n"); PHY_vars_eNb = malloc(sizeof(PHY_VARS_eNB)); PHY_vars_UE = malloc(sizeof(PHY_VARS_UE)); PHY_config = malloc(sizeof(PHY_CONFIG)); mac_xface = malloc(sizeof(MAC_xface)); randominit(0); set_taus_seed(0); lte_frame_parms = &(PHY_vars_eNb->lte_frame_parms); lte_frame_parms->N_RB_DL = 25; //50 for 10MHz and 25 for 5 MHz lte_frame_parms->N_RB_UL = 25; lte_frame_parms->Ncp = 1; lte_frame_parms->Nid_cell = 0; lte_frame_parms->nushift = 0; lte_frame_parms->nb_antennas_tx = N_tx; lte_frame_parms->nb_antennas_rx = N_rx; lte_frame_parms->first_dlsch_symbol = 4; lte_frame_parms->num_dlsch_symbols = 6; lte_frame_parms->Csrs = 2; lte_frame_parms->Bsrs = 0; lte_frame_parms->kTC = 0; lte_frame_parms->n_RRC = 0; lte_frame_parms->mode1_flag = (transmission_mode == 1)? 1 : 0; init_frame_parms(lte_frame_parms); copy_lte_parms_to_phy_framing(lte_frame_parms, &(PHY_config->PHY_framing)); phy_init_top(N_tx); //allocation lte_frame_parms->twiddle_fft = twiddle_fft; lte_frame_parms->twiddle_ifft = twiddle_ifft; lte_frame_parms->rev = rev; PHY_vars_UE->lte_frame_parms = *lte_frame_parms; lte_gold(lte_frame_parms); generate_ul_ref_sigs(); generate_ul_ref_sigs_rx(); generate_64qam_table(); generate_16qam_table(); generate_RIV_tables(); generate_pcfich_reg_mapping(lte_frame_parms); generate_phich_reg_mapping_ext(lte_frame_parms); phy_init_lte_ue(&PHY_vars_UE->lte_frame_parms, &PHY_vars_UE->lte_ue_common_vars, PHY_vars_UE->lte_ue_dlsch_vars, PHY_vars_UE->lte_ue_dlsch_vars_cntl, PHY_vars_UE->lte_ue_dlsch_vars_ra, PHY_vars_UE->lte_ue_dlsch_vars_1A, PHY_vars_UE->lte_ue_pbch_vars, PHY_vars_UE->lte_ue_pdcch_vars, PHY_vars_UE); phy_init_lte_eNB(&PHY_vars_eNb->lte_frame_parms, &PHY_vars_eNb->lte_eNB_common_vars, PHY_vars_eNb->lte_eNB_ulsch_vars, 0, PHY_vars_eNb); printf("Done lte_param_init\n"); }
void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmission_mode,unsigned char extended_prefix_flag,unsigned char frame_type, uint16_t Nid_cell,uint8_t N_RB_DL,uint8_t osf) { // unsigned int ind; LTE_DL_FRAME_PARMS *lte_frame_parms; int i; printf("Start lte_param_init\n"); PHY_vars_eNb = malloc(sizeof(PHY_VARS_eNB)); PHY_vars_eNb1 = malloc(sizeof(PHY_VARS_eNB)); PHY_vars_eNb2 = malloc(sizeof(PHY_VARS_eNB)); PHY_vars_UE = malloc(sizeof(PHY_VARS_UE)); //PHY_config = malloc(sizeof(PHY_CONFIG)); mac_xface = malloc(sizeof(MAC_xface)); randominit(0); set_taus_seed(0); lte_frame_parms = &(PHY_vars_eNb->lte_frame_parms); lte_frame_parms->N_RB_DL = N_RB_DL; //50 for 10MHz and 25 for 5 MHz lte_frame_parms->N_RB_UL = N_RB_DL; lte_frame_parms->Ncp = extended_prefix_flag; lte_frame_parms->Nid_cell = Nid_cell; lte_frame_parms->nushift = Nid_cell%6; lte_frame_parms->nb_antennas_tx = N_tx; lte_frame_parms->nb_antennas_tx_eNB = N_tx; lte_frame_parms->nb_antennas_rx = N_rx; // lte_frame_parms->Csrs = 2; // lte_frame_parms->Bsrs = 0; // lte_frame_parms->kTC = 0; // lte_frame_parms->n_RRC = 0; lte_frame_parms->mode1_flag = (transmission_mode == 1)? 1 : 0; lte_frame_parms->tdd_config = 3; lte_frame_parms->frame_type = frame_type; init_frame_parms(lte_frame_parms,osf); //copy_lte_parms_to_phy_framing(lte_frame_parms, &(PHY_config->PHY_framing)); PHY_vars_UE->lte_frame_parms = *lte_frame_parms; phy_init_lte_top(lte_frame_parms); PHY_vars_UE->PHY_measurements.n_adj_cells=2; PHY_vars_UE->PHY_measurements.adj_cell_id[0] = Nid_cell+1; PHY_vars_UE->PHY_measurements.adj_cell_id[1] = Nid_cell+2; for (i=0; i<3; i++) lte_gold(lte_frame_parms,PHY_vars_UE->lte_gold_table[i],Nid_cell+i); phy_init_lte_ue(PHY_vars_UE,1,0); phy_init_lte_eNB(PHY_vars_eNb,0,0,0); for (i=0; i<10; i++) { PHY_vars_UE->scan_info[0].amp[0][i] = 0; PHY_vars_UE->scan_info[0].amp[1][i] = 0; PHY_vars_UE->scan_info[0].amp[2][i] = 0; } memcpy((void*)&PHY_vars_eNb1->lte_frame_parms,(void*)&PHY_vars_eNb->lte_frame_parms,sizeof(LTE_DL_FRAME_PARMS)); PHY_vars_eNb1->lte_frame_parms.Nid_cell=Nid_cell+1; PHY_vars_eNb1->lte_frame_parms.nushift=(Nid_cell+1)%6; PHY_vars_eNb1->Mod_id=1; memcpy((void*)&PHY_vars_eNb2->lte_frame_parms,(void*)&PHY_vars_eNb->lte_frame_parms,sizeof(LTE_DL_FRAME_PARMS)); PHY_vars_eNb2->lte_frame_parms.Nid_cell=Nid_cell+2; PHY_vars_eNb2->lte_frame_parms.nushift=(Nid_cell+2)%6; PHY_vars_eNb2->Mod_id=2; phy_init_lte_eNB(PHY_vars_eNb1,0,0,0); phy_init_lte_eNB(PHY_vars_eNb2,0,0,0); phy_init_lte_top(lte_frame_parms); printf("Done lte_param_init\n"); }