diff --git a/lib/include/srslte/interfaces/ue_interfaces.h b/lib/include/srslte/interfaces/ue_interfaces.h index 2a3af47da..44b9d96a0 100644 --- a/lib/include/srslte/interfaces/ue_interfaces.h +++ b/lib/include/srslte/interfaces/ue_interfaces.h @@ -466,10 +466,11 @@ typedef struct { float dl_freq = -1.0f; float ul_freq = -1.0f; - bool ul_pwr_ctrl_en = false; - float prach_gain = -1; - int pdsch_max_its = 8; - int nof_phy_threads = 3; + bool ul_pwr_ctrl_en = false; + float prach_gain = -1; + uint32_t pdsch_max_its = 8; + bool meas_evm = false; + int nof_phy_threads = 3; int worker_cpu_mask = -1; int sync_cpu_affinity = -1; diff --git a/srsue/src/main.cc b/srsue/src/main.cc index 431ace10d..53aec6c14 100644 --- a/srsue/src/main.cc +++ b/srsue/src/main.cc @@ -254,9 +254,13 @@ static int parse_args(all_args_t* args, int argc, char* argv[]) "Sets the noise estimation algorithm. (Default refs)") ("phy.pdsch_max_its", - bpo::value(&args->phy.pdsch_max_its)->default_value(8), + bpo::value(&args->phy.pdsch_max_its)->default_value(8), "Maximum number of turbo decoder iterations") + ("phy.meas_evm", + bpo::value(&args->phy.meas_evm)->default_value(false), + "Measure PDSCH EVM, increases CPU load (default false)") + ("phy.nof_phy_threads", bpo::value(&args->phy.nof_phy_threads)->default_value(3), "Number of PHY threads") diff --git a/srsue/src/phy/phy_common.cc b/srsue/src/phy/phy_common.cc index cdf116cfd..09300f2e3 100644 --- a/srsue/src/phy/phy_common.cc +++ b/srsue/src/phy/phy_common.cc @@ -110,9 +110,9 @@ void phy_common::set_ue_dl_cfg(srslte_ue_dl_cfg_t* ue_dl_cfg) void phy_common::set_pdsch_cfg(srslte_pdsch_cfg_t* pdsch_cfg) { - bzero(pdsch_cfg, sizeof(srslte_pdsch_cfg_t)); pdsch_cfg->csi_enable = args->pdsch_csi_enabled; pdsch_cfg->max_nof_iterations = args->pdsch_max_its; + pdsch_cfg->meas_evm_en = args->meas_evm; pdsch_cfg->decoder_type = (args->equalizer_mode == "zf") ? SRSLTE_MIMO_DECODER_ZF : SRSLTE_MIMO_DECODER_MMSE; } diff --git a/srsue/ue.conf.example b/srsue/ue.conf.example index 2a847de9a..facf5ead3 100644 --- a/srsue/ue.conf.example +++ b/srsue/ue.conf.example @@ -285,6 +285,7 @@ enable = false # refs: use difference between noise references and noiseless (after filtering) # empty: use empty subcarriers in the boarder of pss/sss signal # pdsch_max_its: Maximum number of turbo decoder iterations (Default 4) +# pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false) # nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 2) # equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any # non-negative real number to indicate a regularized zf coefficient. @@ -326,6 +327,7 @@ enable = false #snr_ema_coeff = 0.1 #snr_estim_alg = refs #pdsch_max_its = 8 # These are half iterations +#pdsch_meas_evm = false #nof_phy_threads = 3 #equalizer_mode = mmse #correct_sync_error = false