mirror of https://github.com/PentHertz/srsLTE.git
make eNB UL SNR initial value an exponential average alpha configurable
This commit is contained in:
parent
2a2c56391c
commit
89406b07d6
|
@ -62,6 +62,8 @@ public:
|
||||||
float max_delta_ul_snr = 5;
|
float max_delta_ul_snr = 5;
|
||||||
float adaptive_link_step_size = 0.001;
|
float adaptive_link_step_size = 0.001;
|
||||||
uint32_t min_tpc_tti_interval = 1;
|
uint32_t min_tpc_tti_interval = 1;
|
||||||
|
float ul_snr_avg_alpha = 0.05;
|
||||||
|
int init_ul_snr_value = 5;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct cell_cfg_t {
|
struct cell_cfg_t {
|
||||||
|
|
|
@ -174,6 +174,8 @@ enable = false
|
||||||
# max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link
|
# max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link
|
||||||
# adaptive_link_step_size: Step size or learning rate used in adaptive link
|
# adaptive_link_step_size: Step size or learning rate used in adaptive link
|
||||||
# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
|
# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1
|
||||||
|
# ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR
|
||||||
|
# init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant
|
||||||
#
|
#
|
||||||
#####################################################################
|
#####################################################################
|
||||||
[scheduler]
|
[scheduler]
|
||||||
|
@ -194,6 +196,8 @@ enable = false
|
||||||
#max_delta_ul_snr = 5
|
#max_delta_ul_snr = 5
|
||||||
#adaptive_link_step_size = 0.001
|
#adaptive_link_step_size = 0.001
|
||||||
#min_tpc_tti_interval = 1
|
#min_tpc_tti_interval = 1
|
||||||
|
#ul_snr_avg_alpha=0.05
|
||||||
|
#init_ul_snr_value=5
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# eMBMS configuration options
|
# eMBMS configuration options
|
||||||
|
|
|
@ -39,11 +39,14 @@ public:
|
||||||
float target_pucch_snr_dB_ = -1.0,
|
float target_pucch_snr_dB_ = -1.0,
|
||||||
float target_pusch_sn_dB_ = -1.0,
|
float target_pusch_sn_dB_ = -1.0,
|
||||||
bool phr_handling_flag_ = false,
|
bool phr_handling_flag_ = false,
|
||||||
uint32_t min_tpc_tti_interval_ = 1) :
|
uint32_t min_tpc_tti_interval_ = 1,
|
||||||
|
float ul_snr_avg_alpha = 0.05,
|
||||||
|
int init_ul_snr_value = 5) :
|
||||||
nof_prb(cell_nof_prb),
|
nof_prb(cell_nof_prb),
|
||||||
target_pucch_snr_dB(target_pucch_snr_dB_),
|
target_pucch_snr_dB(target_pucch_snr_dB_),
|
||||||
target_pusch_snr_dB(target_pusch_sn_dB_),
|
target_pusch_snr_dB(target_pusch_sn_dB_),
|
||||||
snr_estim_list({ul_ch_snr_estim{target_pusch_snr_dB}, ul_ch_snr_estim{target_pucch_snr_dB}}),
|
snr_estim_list(
|
||||||
|
{ul_ch_snr_estim{ul_snr_avg_alpha, init_ul_snr_value}, ul_ch_snr_estim{ul_snr_avg_alpha, init_ul_snr_value}}),
|
||||||
phr_handling_flag(phr_handling_flag_),
|
phr_handling_flag(phr_handling_flag_),
|
||||||
max_prbs_cached(nof_prb),
|
max_prbs_cached(nof_prb),
|
||||||
min_tpc_tti_interval(min_tpc_tti_interval_),
|
min_tpc_tti_interval(min_tpc_tti_interval_),
|
||||||
|
@ -206,8 +209,8 @@ private:
|
||||||
int acc_tpc_values = 0;
|
int acc_tpc_values = 0;
|
||||||
uint32_t last_tpc_tti_count = 0;
|
uint32_t last_tpc_tti_count = 0;
|
||||||
|
|
||||||
explicit ul_ch_snr_estim(float initial_snr) :
|
explicit ul_ch_snr_estim(float exp_avg_alpha, int initial_snr) :
|
||||||
snr_avg(0.1, initial_snr < 0 ? 5 : initial_snr), win_tpc_values(FDD_HARQ_DELAY_UL_MS + FDD_HARQ_DELAY_DL_MS)
|
snr_avg(exp_avg_alpha, initial_snr), win_tpc_values(FDD_HARQ_DELAY_UL_MS + FDD_HARQ_DELAY_DL_MS)
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
std::array<ul_ch_snr_estim, nof_ul_ch_code> snr_estim_list;
|
std::array<ul_ch_snr_estim, nof_ul_ch_code> snr_estim_list;
|
||||||
|
|
|
@ -156,6 +156,8 @@ void parse_args(all_args_t* args, int argc, char* argv[])
|
||||||
("scheduler.max_delta_ul_snr", bpo::value<float>(&args->stack.mac.sched.max_delta_ul_snr)->default_value(5.0), "Maximum shift in UL SNR for adaptive UL link")
|
("scheduler.max_delta_ul_snr", bpo::value<float>(&args->stack.mac.sched.max_delta_ul_snr)->default_value(5.0), "Maximum shift in UL SNR for adaptive UL link")
|
||||||
("scheduler.adaptive_link_step_size", bpo::value<float>(&args->stack.mac.sched.max_delta_ul_snr)->default_value(0.001), "Step size or learning rate used in adaptive link")
|
("scheduler.adaptive_link_step_size", bpo::value<float>(&args->stack.mac.sched.max_delta_ul_snr)->default_value(0.001), "Step size or learning rate used in adaptive link")
|
||||||
("scheduler.min_tpc_tti_interval", bpo::value<uint32_t>(&args->stack.mac.sched.min_tpc_tti_interval)->default_value(1), "Minimum TTI interval between positive or negative TPCs")
|
("scheduler.min_tpc_tti_interval", bpo::value<uint32_t>(&args->stack.mac.sched.min_tpc_tti_interval)->default_value(1), "Minimum TTI interval between positive or negative TPCs")
|
||||||
|
("scheduler.ul_snr_avg_alpha", bpo::value<float>(&args->stack.mac.sched.ul_snr_avg_alpha)->default_value(0.05), "Exponential Average alpha coefficient used in estimation of UL SNR")
|
||||||
|
("scheduler.init_ul_snr_value", bpo::value<int>(&args->stack.mac.sched.init_ul_snr_value)->default_value(5), "Initial UL SNR value used for computing MCS in the first UL grant")
|
||||||
|
|
||||||
|
|
||||||
/* Downlink Channel emulator section */
|
/* Downlink Channel emulator section */
|
||||||
|
|
|
@ -39,7 +39,9 @@ sched_ue_cell::sched_ue_cell(uint16_t rnti_, const sched_cell_params_t& cell_cfg
|
||||||
cell_cfg->cfg.target_pucch_ul_sinr,
|
cell_cfg->cfg.target_pucch_ul_sinr,
|
||||||
cell_cfg->cfg.target_pusch_ul_sinr,
|
cell_cfg->cfg.target_pusch_ul_sinr,
|
||||||
cell_cfg->cfg.enable_phr_handling,
|
cell_cfg->cfg.enable_phr_handling,
|
||||||
cell_cfg->sched_cfg->min_tpc_tti_interval),
|
cell_cfg->sched_cfg->min_tpc_tti_interval,
|
||||||
|
cell_cfg->sched_cfg->ul_snr_avg_alpha,
|
||||||
|
cell_cfg->sched_cfg->init_ul_snr_value),
|
||||||
fixed_mcs_dl(cell_cfg_.sched_cfg->pdsch_mcs),
|
fixed_mcs_dl(cell_cfg_.sched_cfg->pdsch_mcs),
|
||||||
fixed_mcs_ul(cell_cfg_.sched_cfg->pusch_mcs),
|
fixed_mcs_ul(cell_cfg_.sched_cfg->pusch_mcs),
|
||||||
current_tti(current_tti_),
|
current_tti(current_tti_),
|
||||||
|
|
Loading…
Reference in New Issue