Commit 80957a42 authored by knopp's avatar knopp

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6522 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 062703ee
...@@ -230,7 +230,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue, ...@@ -230,7 +230,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue,
} }
} }
LOG_D(PHY,"eNB: %d, RSRP_tmp: %d \n",eNB_offset,phy_vars_ue->PHY_measurements.rsrp[eNB_offset]); // LOG_D(PHY,"eNB: %d, RSRP_tmp: %d \n",eNB_offset,phy_vars_ue->PHY_measurements.rsrp[eNB_offset]);
// 2 RE per PRB // 2 RE per PRB
phy_vars_ue->PHY_measurements.rsrp[eNB_offset]/=(24*phy_vars_ue->lte_frame_parms.N_RB_DL); phy_vars_ue->PHY_measurements.rsrp[eNB_offset]/=(24*phy_vars_ue->lte_frame_parms.N_RB_DL);
...@@ -256,7 +256,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue, ...@@ -256,7 +256,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue,
} }
if (((phy_vars_ue->frame_rx %10) == 0) && (slot == 0)) { if (((phy_vars_ue->frame_rx %10) == 0) && (slot == 0)) {
#ifdef DEBUG_MEAS //#ifdef DEBUG_MEAS
if (eNB_offset == 0) if (eNB_offset == 0)
LOG_D(PHY,"[UE %d] Frame %d, slot %d RRC Measurements => rssi %3.1f dBm (digital: %3.1f dB, gain %d)\n",phy_vars_ue->Mod_id, LOG_D(PHY,"[UE %d] Frame %d, slot %d RRC Measurements => rssi %3.1f dBm (digital: %3.1f dB, gain %d)\n",phy_vars_ue->Mod_id,
phy_vars_ue->frame_rx,slot,10*log10(phy_vars_ue->PHY_measurements.rssi)-phy_vars_ue->rx_total_gain_dB, phy_vars_ue->frame_rx,slot,10*log10(phy_vars_ue->PHY_measurements.rssi)-phy_vars_ue->rx_total_gain_dB,
...@@ -274,7 +274,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue, ...@@ -274,7 +274,7 @@ void ue_rrc_measurements(PHY_VARS_UE *phy_vars_ue,
//LOG_D(PHY,"RSRP_dB: %3.2f \n",(dB_fixed_times10(phy_vars_ue->PHY_measurements.rsrp[eNB_offset])/10.0)); //LOG_D(PHY,"RSRP_dB: %3.2f \n",(dB_fixed_times10(phy_vars_ue->PHY_measurements.rsrp[eNB_offset])/10.0));
//LOG_D(PHY,"gain_loss_dB: %d \n",phy_vars_ue->rx_total_gain_dB); //LOG_D(PHY,"gain_loss_dB: %d \n",phy_vars_ue->rx_total_gain_dB);
//LOG_D(PHY,"gain_fixed_dB: %d \n",dB_fixed(phy_vars_ue->lte_frame_parms.N_RB_DL*12)); //LOG_D(PHY,"gain_fixed_dB: %d \n",dB_fixed(phy_vars_ue->lte_frame_parms.N_RB_DL*12));
#endif //#endif
} }
} }
} }
......
...@@ -414,7 +414,7 @@ FD_lte_phy_scope_ue *create_lte_phy_scope_ue( void ) { ...@@ -414,7 +414,7 @@ FD_lte_phy_scope_ue *create_lte_phy_scope_ue( void ) {
return fdui; return fdui;
} }
void phy_scope_UE(FD_lte_phy_scope_ue *form, void phy_scope_UE(FD_lte_phy_scope_ue *form,
PHY_VARS_UE *phy_vars_ue, PHY_VARS_UE *phy_vars_ue,
int eNB_id, int eNB_id,
......
...@@ -399,46 +399,66 @@ typedef enum { ...@@ -399,46 +399,66 @@ typedef enum {
/// Top-level PHY Data Structure for UE /// Top-level PHY Data Structure for UE
typedef struct typedef struct
{ {
/// Module ID indicator for this instance /// \brief Module ID indicator for this instance
uint8_t Mod_id; uint8_t Mod_id;
/// \brief Component carrier ID for this PHY instance
uint8_t CC_id; uint8_t CC_id;
uint8_t local_flag; //uint8_t local_flag;
/// \brief Indicator of current run mode of UE (normal_txrx, rx_calib_ue, no_L2_connect, debug_prach)
runmode_t mode;
/// \brief Indicator that UE should perform band scanning
int UE_scan;
/// \brief Indicator that UE is synchronized to an eNB
int is_synchronized; int is_synchronized;
/// \brief Instance count of TX processing thread (-1 means ready, 0 means busy)
int instance_cnt_tx; int instance_cnt_tx;
/// \brief Instance count of RX processing thread (-1 means ready, 0 means busy)
int instance_cnt_rx; int instance_cnt_rx;
/// \brief Instance cound of initial synchronization thread (-1 means ready, 0 means busy)
int instance_cnt_synch; int instance_cnt_synch;
/// \brief Condition variable for TX processing thread
pthread_cond_t cond_tx; pthread_cond_t cond_tx;
/// \brief Condition variable for RX processing thread
pthread_cond_t cond_rx; pthread_cond_t cond_rx;
/// \brief Condition variable for initial synchronization thread
pthread_cond_t cond_synch; pthread_cond_t cond_synch;
/// \brief Mutex for TX processing thread
pthread_mutex_t mutex_tx; pthread_mutex_t mutex_tx;
/// \brief Mutex for RX processing thread
pthread_mutex_t mutex_rx; pthread_mutex_t mutex_rx;
/// \brief Mutex for initial synchronization thread
pthread_mutex_t mutex_synch; pthread_mutex_t mutex_synch;
/// \brief Pthread structure for RX processing thread
pthread_t thread_rx; pthread_t thread_rx;
/// \brief Pthread structure for TX processing thread
pthread_t thread_tx; pthread_t thread_tx;
/// \brief Pthread structure to RX processing thread
pthread_t thread_synch; pthread_t thread_synch;
/// \brief Total gain of the TX chain (16-bit baseband I/Q to antenna)
uint32_t tx_total_gain_dB; uint32_t tx_total_gain_dB;
/// \brief This is a function of rx_gain_mode (and the corresponding gain) and the rx_gain of the card. /// \brief Total gain of the RX chain (antenna to baseband I/Q) This is a function of rx_gain_mode (and the corresponding gain) and the rx_gain of the card.
uint32_t rx_total_gain_dB; uint32_t rx_total_gain_dB;
/// \brief ?. /// \brief Total gains with maximum RF gain stage (ExpressMIMO2/Lime)
/// - first index: ? [0..3] (hard coded)
uint32_t rx_gain_max[4]; uint32_t rx_gain_max[4];
/* /// \brief Total gains with medium RF gain stage (ExpressMIMO2/Lime)
rx_gain_t rx_gain_mode[4];*/
/// \brief ?.
/// - first index: ? [0..3] (hard coded)
uint32_t rx_gain_med[4]; uint32_t rx_gain_med[4];
/// \brief ?. /// \brief Total gains with bypassed RF gain stage (ExpressMIMO2/Lime)
/// - first index: ? [0..3] (hard coded)
uint32_t rx_gain_byp[4]; uint32_t rx_gain_byp[4];
/// \brief ?. /// \brief Current transmit power
int8_t tx_power_dBm; int8_t tx_power_dBm;
/// \brief Total number of REs in current transmission
int tx_total_RE; int tx_total_RE;
/// \brief Maximum transmit power
int8_t tx_power_max_dBm; int8_t tx_power_max_dBm;
// uint32_t frame; /// \brief Frame counters for TX and RX processing
uint32_t frame_rx,frame_tx; uint32_t frame_rx,frame_tx;
/// \brief Slot counters for TX and RX processing
uint32_t slot_tx,slot_rx; uint32_t slot_tx,slot_rx;
/// \brief Number of eNB seen by UE
uint8_t n_connected_eNB; uint8_t n_connected_eNB;
/// \brief indicator that Handover procedure has been initiated
uint8_t ho_initiated; uint8_t ho_initiated;
/// \brief indicator that Handover procedure has been triggered
uint8_t ho_triggered; uint8_t ho_triggered;
/// \brief Measurement variables. /// \brief Measurement variables.
PHY_MEASUREMENTS PHY_measurements; PHY_MEASUREMENTS PHY_measurements;
......
...@@ -237,6 +237,7 @@ ...@@ -237,6 +237,7 @@
#define AMP 128 #define AMP 128
#else #else
#define AMP 512//1024 //4096 #define AMP 512//1024 //4096
#define AMP_BPSK 724
#endif #endif
#define AMP_OVER_SQRT2 ((AMP*ONE_OVER_SQRT2_Q15)>>15) #define AMP_OVER_SQRT2 ((AMP*ONE_OVER_SQRT2_Q15)>>15)
......
...@@ -523,32 +523,127 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ...@@ -523,32 +523,127 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e
else else
rand = (rand%4)+5; rand = (rand%4)+5;
*/ */
uint32_t bcch_pdu;
DCI_pdu->Num_common_dci = 0; DCI_pdu->Num_common_dci = 0;
DCI_pdu->Num_ue_spec_dci=0; DCI_pdu->Num_ue_spec_dci=0;
switch (subframe) { switch (subframe) {
case 5: case 5:
DCI_pdu->Num_common_dci = 1; DCI_pdu->Num_common_dci = 1;
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD)
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_5MHz_FDD_t;
else
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t;
DCI_pdu->dci_alloc[0].L = 2; DCI_pdu->dci_alloc[0].L = 2;
DCI_pdu->dci_alloc[0].rnti = SI_RNTI; DCI_pdu->dci_alloc[0].rnti = SI_RNTI;
DCI_pdu->dci_alloc[0].format = format1A; DCI_pdu->dci_alloc[0].format = format1A;
DCI_pdu->dci_alloc[0].ra_flag = 0; DCI_pdu->dci_alloc[0].ra_flag = 0;
switch (phy_vars_eNB->lte_frame_parms.N_RB_DL) {
BCCH_alloc_pdu.type = 1; case 6:
BCCH_alloc_pdu.vrb_type = 0; if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
BCCH_alloc_pdu.rballoc = computeRIV(25,10,3); DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_5MHz_FDD_t;
BCCH_alloc_pdu.ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->type = 1;
BCCH_alloc_pdu.rv = 1; ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->vrb_type = 0;
BCCH_alloc_pdu.mcs = 1; ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
BCCH_alloc_pdu.harq_pid = 0; ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
BCCH_alloc_pdu.TPC = 1; // set to 3 PRB ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->rv = 1;
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&BCCH_alloc_pdu,sizeof(DCI1A_5MHz_TDD_1_6_t)); ((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->mcs = 1;
((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_1_5MHz_FDD_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_1_5MHz_TDD_1_6_t));
}
else {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->type = 1;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->rv = 1;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->mcs = 1;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_1_5MHz_TDD_1_6_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_1_5MHz_TDD_1_6_t));
}
break;
case 25:
default:
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_5MHz_FDD_t;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->type = 1;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->rv = 1;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->mcs = 1;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_5MHz_FDD_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_5MHz_TDD_1_6_t));
}
else {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->type = 1;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->rv = 1;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->mcs = 1;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_5MHz_TDD_1_6_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_5MHz_TDD_1_6_t));
}
break;
case 50:
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_10MHz_FDD_t;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->type = 1;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->rv = 1;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->mcs = 1;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_10MHz_FDD_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_10MHz_TDD_1_6_t));
}
else {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_10MHz_TDD_1_6_t;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->type = 1;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->rv = 1;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->mcs = 1;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_10MHz_TDD_1_6_t));
}
break;
case 100:
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_10MHz_FDD_t;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->type = 1;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->rv = 1;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->mcs = 1;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_20MHz_FDD_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_20MHz_TDD_1_6_t));
}
else {
DCI_pdu->dci_alloc[0].dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->type = 1;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->vrb_type = 0;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->rballoc = computeRIV(25,10,3);
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->rv = 1;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->mcs = 1;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = 0;
((DCI1A_20MHz_TDD_1_6_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB
memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_20MHz_TDD_1_6_t));
}
break; break;
}
case 6: case 6:
/* /*
DCI_pdu->Num_ue_spec_dci = 1; DCI_pdu->Num_ue_spec_dci = 1;
...@@ -1169,12 +1264,12 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e ...@@ -1169,12 +1264,12 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
if (subframe == 0) { if (subframe == 0) {
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) { if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
(phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 6 : 5, (phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 6 : 5,
0); 0);
generate_sss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_sss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
(phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 5 : 4, (phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 5 : 4,
0); 0);
...@@ -1293,7 +1388,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e ...@@ -1293,7 +1388,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
if (phy_vars_eNB->lte_frame_parms.frame_type == TDD) { if (phy_vars_eNB->lte_frame_parms.frame_type == TDD) {
// printf("Generating PSS (frame %d, subframe %d)\n",phy_vars_eNB->proc[sched_subframe].frame_tx,next_slot>>1); // printf("Generating PSS (frame %d, subframe %d)\n",phy_vars_eNB->proc[sched_subframe].frame_tx,next_slot>>1);
generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
2, 2,
2); 2);
...@@ -1308,12 +1403,12 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e ...@@ -1308,12 +1403,12 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) { if (phy_vars_eNB->lte_frame_parms.frame_type == FDD) {
generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
(phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 6 : 5, (phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 6 : 5,
10); 10);
generate_sss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_sss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
(phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 5 : 4, (phy_vars_eNB->lte_frame_parms.Ncp==NORMAL) ? 5 : 4,
10); 10);
...@@ -1342,7 +1437,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e ...@@ -1342,7 +1437,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
if (phy_vars_eNB->lte_frame_parms.frame_type == TDD) { if (phy_vars_eNB->lte_frame_parms.frame_type == TDD) {
// printf("Generating PSS (frame %d, subframe %d)\n",phy_vars_eNB->proc[sched_subframe].frame_tx,next_slot>>1); // printf("Generating PSS (frame %d, subframe %d)\n",phy_vars_eNB->proc[sched_subframe].frame_tx,next_slot>>1);
generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0], generate_pss(phy_vars_eNB->lte_eNB_common_vars.txdataF[0],
AMP, AMP_BPSK,
&phy_vars_eNB->lte_frame_parms, &phy_vars_eNB->lte_frame_parms,
2, 2,
12); 12);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment