Add flag for Tx phase pre compensation
Used in ulsim to verify waveform in MATLAB
This commit is contained in:
committed by
alexjiao
parent
b2174cb8e1
commit
83bf140bc3
@@ -170,7 +170,8 @@ uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
c16_t **txdataF,
|
c16_t **txdataF,
|
||||||
c16_t **txdata,
|
c16_t **txdata,
|
||||||
uint32_t linktype,
|
uint32_t linktype,
|
||||||
bool was_symbol_used[NR_NUMBER_OF_SYMBOLS_PER_SLOT]);
|
bool was_symbol_used[NR_NUMBER_OF_SYMBOLS_PER_SLOT],
|
||||||
|
bool no_phase_pre_comp);
|
||||||
|
|
||||||
void clean_UE_harq(PHY_VARS_NR_UE *UE);
|
void clean_UE_harq(PHY_VARS_NR_UE *UE);
|
||||||
|
|
||||||
|
|||||||
@@ -1506,10 +1506,12 @@ uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
c16_t **txdataF,
|
c16_t **txdataF,
|
||||||
c16_t **txdata,
|
c16_t **txdata,
|
||||||
uint32_t linktype,
|
uint32_t linktype,
|
||||||
bool was_symbol_used[NR_NUMBER_OF_SYMBOLS_PER_SLOT])
|
bool was_symbol_used[NR_NUMBER_OF_SYMBOLS_PER_SLOT],
|
||||||
|
bool no_phase_pre_comp)
|
||||||
{
|
{
|
||||||
int N_RB = (linktype == link_type_sl) ? frame_parms->N_RB_SL : frame_parms->N_RB_UL;
|
int N_RB = (linktype == link_type_sl) ? frame_parms->N_RB_SL : frame_parms->N_RB_UL;
|
||||||
|
|
||||||
|
if (!no_phase_pre_comp) {
|
||||||
for (int i = 0; i < NR_NUMBER_OF_SYMBOLS_PER_SLOT; i++) {
|
for (int i = 0; i < NR_NUMBER_OF_SYMBOLS_PER_SLOT; i++) {
|
||||||
if (was_symbol_used[i] == false)
|
if (was_symbol_used[i] == false)
|
||||||
continue;
|
continue;
|
||||||
@@ -1517,7 +1519,7 @@ uint8_t nr_ue_pusch_common_procedures(PHY_VARS_NR_UE *UE,
|
|||||||
apply_nr_rotation_TX(frame_parms, txdataF[ap], frame_parms->symbol_rotation[linktype], slot, N_RB, i, 1);
|
apply_nr_rotation_TX(frame_parms, txdataF[ap], frame_parms->symbol_rotation[linktype], slot, N_RB, i, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (int ap = 0; ap < n_antenna_ports; ap++) {
|
for (int ap = 0; ap < n_antenna_ports; ap++) {
|
||||||
if (frame_parms->Ncp == 1) { // extended cyclic prefix
|
if (frame_parms->Ncp == 1) { // extended cyclic prefix
|
||||||
|
|||||||
@@ -499,6 +499,9 @@ typedef struct PHY_VARS_NR_UE_s {
|
|||||||
/// RF and Interface devices per CC
|
/// RF and Interface devices per CC
|
||||||
openair0_device rfdevice;
|
openair0_device rfdevice;
|
||||||
|
|
||||||
|
/// Phase precompensation flag
|
||||||
|
bool no_phase_pre_comp;
|
||||||
|
|
||||||
void* scopeData;
|
void* scopeData;
|
||||||
// Pointers to hold PDSCH data only for phy simulators
|
// Pointers to hold PDSCH data only for phy simulators
|
||||||
void *phy_sim_rxdataF;
|
void *phy_sim_rxdataF;
|
||||||
|
|||||||
@@ -404,7 +404,8 @@ void phy_procedures_nrUE_TX(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc, n
|
|||||||
(c16_t **)txdataF,
|
(c16_t **)txdataF,
|
||||||
txp,
|
txp,
|
||||||
link_type_ul,
|
link_type_ul,
|
||||||
was_symbol_used);
|
was_symbol_used,
|
||||||
|
ue->no_phase_pre_comp);
|
||||||
stop_meas_nr_ue_phy(ue, OFDM_MOD_STATS);
|
stop_meas_nr_ue_phy(ue, OFDM_MOD_STATS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -313,7 +313,15 @@ void phy_procedures_nrUE_SL_TX(PHY_VARS_NR_UE *ue, const UE_nr_rxtx_proc_t *proc
|
|||||||
was_symbol_used[i] = true;
|
was_symbol_used[i] = true;
|
||||||
if (tx_action) {
|
if (tx_action) {
|
||||||
LOG_D(NR_PHY, "Sending Uplink data \n");
|
LOG_D(NR_PHY, "Sending Uplink data \n");
|
||||||
nr_ue_pusch_common_procedures(ue, proc->nr_slot_tx, fp, fp->nb_antennas_tx, txdataF, txp, link_type_sl, was_symbol_used);
|
nr_ue_pusch_common_procedures(ue,
|
||||||
|
proc->nr_slot_tx,
|
||||||
|
fp,
|
||||||
|
fp->nb_antennas_tx,
|
||||||
|
txdataF,
|
||||||
|
txp,
|
||||||
|
link_type_sl,
|
||||||
|
was_symbol_used,
|
||||||
|
ue->no_phase_pre_comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_D(NR_PHY, "****** end Sidelink TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, slot_tx);
|
LOG_D(NR_PHY, "****** end Sidelink TX-Chain for AbsSubframe %d.%d ******\n", frame_tx, slot_tx);
|
||||||
|
|||||||
Reference in New Issue
Block a user