SRSUE: expose correct synch error parameter

master
Xavier Arteaga 5 years ago committed by Xavier Arteaga
parent c0b611dd0d
commit c080cb3395

@ -495,6 +495,7 @@ typedef struct {
float snr_ema_coeff = 0.1f; float snr_ema_coeff = 0.1f;
std::string snr_estim_alg = "refs"; std::string snr_estim_alg = "refs";
bool agc_enable = true; bool agc_enable = true;
bool correct_sync_error = false;
bool cfo_is_doppler = false; bool cfo_is_doppler = false;
bool cfo_integer_enabled = false; bool cfo_integer_enabled = false;
float cfo_correct_tol_hz = 1.0f; float cfo_correct_tol_hz = 1.0f;

@ -255,6 +255,11 @@ static int parse_args(all_args_t* args, int argc, char* argv[])
bpo::value<uint32_t>(&args->phy.intra_freq_meas_period_ms)->default_value(200), bpo::value<uint32_t>(&args->phy.intra_freq_meas_period_ms)->default_value(200),
"Period of intra-frequency neighbour cell measurement in ms. Maximum as per 3GPP is 200 ms.") "Period of intra-frequency neighbour cell measurement in ms. Maximum as per 3GPP is 200 ms.")
("phy.correct_sync_error",
bpo::value<bool>(&args->phy.correct_sync_error)->default_value(false),
"Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage, improves PDSCH "
"decoding in high SFO and high speed UE scenarios.")
("phy.cfo_is_doppler", ("phy.cfo_is_doppler",
bpo::value<bool>(&args->phy.cfo_is_doppler)->default_value(false), bpo::value<bool>(&args->phy.cfo_is_doppler)->default_value(false),
"Assume detected CFO is doppler and correct the UL in the same direction. If disabled, the CFO is assumed" "Assume detected CFO is doppler and correct the UL in the same direction. If disabled, the CFO is assumed"

@ -104,7 +104,7 @@ void phy_common::set_ue_dl_cfg(srslte_ue_dl_cfg_t* ue_dl_cfg)
} }
chest_cfg->rsrp_neighbour = false; chest_cfg->rsrp_neighbour = false;
chest_cfg->sync_error_enable = false; chest_cfg->sync_error_enable = args->correct_sync_error;
chest_cfg->interpolate_subframe = args->interpolate_subframe_enabled; chest_cfg->interpolate_subframe = args->interpolate_subframe_enabled;
chest_cfg->cfo_estimate_enable = args->cfo_ref_mask != 0; chest_cfg->cfo_estimate_enable = args->cfo_ref_mask != 0;
chest_cfg->cfo_estimate_sf_mask = args->cfo_ref_mask; chest_cfg->cfo_estimate_sf_mask = args->cfo_ref_mask;

@ -281,6 +281,8 @@ enable = false
# equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any # equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any
# non-negative real number to indicate a regularized zf coefficient. # non-negative real number to indicate a regularized zf coefficient.
# Default is MMSE. # Default is MMSE.
# correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
# improves PDSCH decoding in high SFO and high speed UE scenarios.
# sfo_ema: EMA coefficient to average sample offsets used to compute SFO # sfo_ema: EMA coefficient to average sample offsets used to compute SFO
# sfo_correct_period: Period in ms to correct sample time to adjust for SFO # sfo_correct_period: Period in ms to correct sample time to adjust for SFO
# sss_algorithm: Selects the SSS estimation algorithm. Can choose between # sss_algorithm: Selects the SSS estimation algorithm. Can choose between
@ -322,6 +324,7 @@ enable = false
#pdsch_max_its = 8 # These are half iterations #pdsch_max_its = 8 # These are half iterations
#nof_phy_threads = 3 #nof_phy_threads = 3
#equalizer_mode = mmse #equalizer_mode = mmse
#correct_sync_error = false
#sfo_ema = 0.1 #sfo_ema = 0.1
#sfo_correct_period = 10 #sfo_correct_period = 10
#sss_algorithm = full #sss_algorithm = full

Loading…
Cancel
Save