make eNB UL SNR initial value an exponential average alpha configurable

This commit is contained in:
Francisco 2021-05-28 15:24:34 +01:00 committed by Francisco Paisana
parent 2a2c56391c
commit 89406b07d6
5 changed files with 18 additions and 5 deletions

View File

@ -62,6 +62,8 @@ public:
float max_delta_ul_snr = 5;
float adaptive_link_step_size = 0.001;
uint32_t min_tpc_tti_interval = 1;
float ul_snr_avg_alpha = 0.05;
int init_ul_snr_value = 5;
};
struct cell_cfg_t {

View File

@ -174,6 +174,8 @@ enable = false
# 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
# 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]
@ -194,6 +196,8 @@ enable = false
#max_delta_ul_snr = 5
#adaptive_link_step_size = 0.001
#min_tpc_tti_interval = 1
#ul_snr_avg_alpha=0.05
#init_ul_snr_value=5
#####################################################################
# eMBMS configuration options

View File

@ -39,11 +39,14 @@ public:
float target_pucch_snr_dB_ = -1.0,
float target_pusch_sn_dB_ = -1.0,
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),
target_pucch_snr_dB(target_pucch_snr_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_),
max_prbs_cached(nof_prb),
min_tpc_tti_interval(min_tpc_tti_interval_),
@ -206,8 +209,8 @@ private:
int acc_tpc_values = 0;
uint32_t last_tpc_tti_count = 0;
explicit ul_ch_snr_estim(float 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)
explicit ul_ch_snr_estim(float exp_avg_alpha, int initial_snr) :
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;

View File

@ -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.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.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 */

View File

@ -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_pusch_ul_sinr,
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_ul(cell_cfg_.sched_cfg->pusch_mcs),
current_tti(current_tti_),