Classes | |
class | FtrParams |
FtrParams class. More... | |
Functions | |
str | append_ftr_params_to_cpp_string (str text, FtrParams params) |
float | compute_anderson_darling_measure (list ref_ecdf, list target_ecdf) |
Computes the Anderson-Darling measure for the specified reference and targets distributions. | |
np.ndarray | compute_ecdf_value (list ecdf, float data_points) |
Given an ECDF and data points belonging to its domain, returns their associated EDCF value. | |
def | compute_ftr_mean (FtrParams params) |
Computes the mean of the FTR fading model, given a specific set of parameters. | |
def | compute_ftr_th_mean (FtrParams params) |
Computes the mean of the FTR fading model using the formula reported in the corresponding paper, given a specific set of parameters. | |
str | fit_ftr_to_reference (pd.DataFrame ref_data, tuple ref_params_combo, int num_params, int num_refinements) |
Estimate the FTR parameters yielding the closest ECDF to the reference one. | |
def | get_ftr_ecdf (FtrParams params, int n_samples, db=False) |
Returns the ECDF for the FTR fading model, for a given parameter grid. | |
float | get_sigma_from_k (float k) |
Computes the value for the FTR parameter sigma, given k, yielding a unit-mean fading process. | |
def | print_cplusplus_map_from_fit_results (pd.DataFrame fit, str out_fname) |
def | tqdm_joblib (tqdm_object) |
Variables | |
float | ad_meas = compute_anderson_darling_measure(np.sort(ref_data["gain"]), ftr_ecdf) |
list | ad_measures = [] |
argp | args = parser.parse_args() |
np | avg_mean = np.mean(mean_list) |
bbox_inches | |
argp | c_plus_plus_out_fname = args.c_plus_plus_out_fname |
data | |
tuple | data_query |
default | |
delta | |
pd | df = pd.read_csv(ref_data_fname, sep="\t") |
Data pre-processing ##. | |
dpi | |
encoding | |
float | epsilon = float(args.epsilon) |
exist_ok | |
argp | figs_folder = args.figs_folder |
pd | fit = pd.read_csv(fit_out_fname, delimiter="\t") |
bool | fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp) |
pd | fit_line = fit.query(data_query) |
argp | fit_out_fname = args.fit_out_fname |
np | frequencies = np.sort(list(set(df["fc"]))) |
def | ftr_ecdf = get_ftr_ecdf(params, len(ref_data), db=True) |
help | |
set | is_los = set(df["cond"]) |
k | |
label | |
m | |
list | mean_list = [] |
list | mean_th_list = [] |
num | |
int | num_refinements = int(args.num_refinements) |
int | num_search_grid_params = int(args.num_search_grid_params) |
bool | output_ns3_table = bool(args.output_ns3_table) |
FtrParams | params = FtrParams() |
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##. | |
parents | |
argp | parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter) |
bool | plot_fit_results = bool(args.plot_fit_results) |
bool | preliminary_fit_test = bool(args.preliminary_fit_test) |
rc | |
pd | ref_data = df.query(data_query) |
argp | ref_data_fname = args.ref_data_fname |
joblib | res |
set | scenarios = set(df["scen"]) |
float | sigma = get_sigma_from_k(k) |
start | |
stop | |
True | |
x | |
str two-ray-to-three-gpp-ch-calibration.append_ftr_params_to_cpp_string | ( | str | text, |
FtrParams | params | ||
) |
Definition at line 433 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by print_cplusplus_map_from_fit_results().
float two-ray-to-three-gpp-ch-calibration.compute_anderson_darling_measure | ( | list | ref_ecdf, |
list | target_ecdf | ||
) |
Computes the Anderson-Darling measure for the specified reference and targets distributions.
In particular, the Anderson-Darling measure is defined as:
See https://www.itl.nist.gov/div898/handbook/eda/section3/eda35e.htm for further details.
ref_ecdf | The reference ECDF. |
target_ecdf | The target ECDF we wish to match the reference distribution to. |
Definition at line 248 of file two-ray-to-three-gpp-ch-calibration.py.
References compute_ecdf_value().
Referenced by fit_ftr_to_reference().
np.ndarray two-ray-to-three-gpp-ch-calibration.compute_ecdf_value | ( | list | ecdf, |
float | data_points | ||
) |
Given an ECDF and data points belonging to its domain, returns their associated EDCF value.
ecdf | The ECDF, represented as a sorted list of samples. |
data_points | A list of data points belonging to the same domain as the samples. |
Definition at line 276 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by compute_anderson_darling_measure().
def two-ray-to-three-gpp-ch-calibration.compute_ftr_mean | ( | FtrParams | params | ) |
Computes the mean of the FTR fading model, given a specific set of parameters.
params | The FTR fading model parameters. |
Definition at line 225 of file two-ray-to-three-gpp-ch-calibration.py.
def two-ray-to-three-gpp-ch-calibration.compute_ftr_th_mean | ( | FtrParams | params | ) |
Computes the mean of the FTR fading model using the formula reported in the corresponding paper, given a specific set of parameters.
params | The FTR fading model parameters. |
Definition at line 239 of file two-ray-to-three-gpp-ch-calibration.py.
str two-ray-to-three-gpp-ch-calibration.fit_ftr_to_reference | ( | pd.DataFrame | ref_data, |
tuple | ref_params_combo, | ||
int | num_params, | ||
int | num_refinements | ||
) |
Estimate the FTR parameters yielding the closest ECDF to the reference one.
Uses a global search to estimate the FTR parameters yielding the best fit to the reference ECDF. Then, the search is refined by repeating the procedure in the neighborhood of the parameters identified with the global search. Such a neighborhood is determined as the interval whose center is the previous iteration best value, and the lower and upper bounds are the first lower and upper values which were previously considered, respectively.
ref_data | The reference data, represented as a DataFrame of samples. |
ref_params_combo | The specific combination of simulation parameters corresponding to the reference ECDF |
num_params | The number of values of each parameter in the global and local search grids. |
num_refinements | The number of local refinement search to be carried out after the global search. |
Definition at line 301 of file two-ray-to-three-gpp-ch-calibration.py.
References compute_anderson_darling_measure(), get_ftr_ecdf(), get_sigma_from_k(), max, and min.
def two-ray-to-three-gpp-ch-calibration.get_ftr_ecdf | ( | FtrParams | params, |
int | n_samples, | ||
db = False |
|||
) |
Returns the ECDF for the FTR fading model, for a given parameter grid.
params | The FTR parameters grid. |
n_samples | The number of samples of the output ECDF |
db | Whether to return the ECDF with the gain expressed in dB |
Definition at line 175 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by fit_ftr_to_reference().
float two-ray-to-three-gpp-ch-calibration.get_sigma_from_k | ( | float | k | ) |
Computes the value for the FTR parameter sigma, given k, yielding a unit-mean fading process.
k | The K parameter of the FTR fading model, which represents the ratio of the average power of the dominant components to the power of the remaining diffuse multipath. |
Definition at line 291 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by fit_ftr_to_reference().
def two-ray-to-three-gpp-ch-calibration.print_cplusplus_map_from_fit_results | ( | pd.DataFrame | fit, |
str | out_fname | ||
) |
Prints to a file the results of the FTR fit, as C++ code. Args: fit (pd.DataFrame): A Pandas Dataframe holding the results of the FTR fit. out_fname (str): The name of the file to print the C++ code to.
Definition at line 440 of file two-ray-to-three-gpp-ch-calibration.py.
References append_ftr_params_to_cpp_string(), and list.
def two-ray-to-three-gpp-ch-calibration.tqdm_joblib | ( | tqdm_object | ) |
Context manager to patch joblib to report into tqdm progress bar given as argument. Taken from: https://stackoverflow.com/questions/24983493/tracking-progress-of-joblib-parallel-execution
Definition at line 110 of file two-ray-to-three-gpp-ch-calibration.py.
float two-ray-to-three-gpp-ch-calibration.ad_meas = compute_anderson_darling_measure(np.sort(ref_data["gain"]), ftr_ecdf) |
Definition at line 600 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.ad_measures = [] |
Definition at line 577 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.args = parser.parse_args() |
Definition at line 84 of file two-ray-to-three-gpp-ch-calibration.py.
np two-ray-to-three-gpp-ch-calibration.avg_mean = np.mean(mean_list) |
Definition at line 524 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.bbox_inches |
Definition at line 610 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.c_plus_plus_out_fname = args.c_plus_plus_out_fname |
Definition at line 94 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.data |
Definition at line 603 of file two-ray-to-three-gpp-ch-calibration.py.
tuple two-ray-to-three-gpp-ch-calibration.data_query |
Definition at line 580 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.default |
Definition at line 38 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.delta |
Definition at line 521 of file two-ray-to-three-gpp-ch-calibration.py.
pd two-ray-to-three-gpp-ch-calibration.df = pd.read_csv(ref_data_fname, sep="\t") |
Data pre-processing ##.
Definition at line 500 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.dpi |
Definition at line 609 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.encoding |
Definition at line 556 of file two-ray-to-three-gpp-ch-calibration.py.
float two-ray-to-three-gpp-ch-calibration.epsilon = float(args.epsilon) |
Definition at line 98 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.exist_ok |
Definition at line 576 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.figs_folder = args.figs_folder |
Definition at line 96 of file two-ray-to-three-gpp-ch-calibration.py.
pd two-ray-to-three-gpp-ch-calibration.fit = pd.read_csv(fit_out_fname, delimiter="\t") |
Definition at line 563 of file two-ray-to-three-gpp-ch-calibration.py.
bool two-ray-to-three-gpp-ch-calibration.fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp) |
Definition at line 102 of file two-ray-to-three-gpp-ch-calibration.py.
pd two-ray-to-three-gpp-ch-calibration.fit_line = fit.query(data_query) |
Definition at line 588 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.fit_out_fname = args.fit_out_fname |
Definition at line 92 of file two-ray-to-three-gpp-ch-calibration.py.
Definition at line 507 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.ftr_ecdf = get_ftr_ecdf(params, len(ref_data), db=True) |
Definition at line 597 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.help |
Definition at line 39 of file two-ray-to-three-gpp-ch-calibration.py.
set two-ray-to-three-gpp-ch-calibration.is_los = set(df["cond"]) |
Definition at line 506 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.k |
Definition at line 534 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.label |
Definition at line 603 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.m |
Definition at line 591 of file two-ray-to-three-gpp-ch-calibration.py.
list two-ray-to-three-gpp-ch-calibration.mean_list = [] |
Definition at line 518 of file two-ray-to-three-gpp-ch-calibration.py.
list two-ray-to-three-gpp-ch-calibration.mean_th_list = [] |
Definition at line 529 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.num |
Definition at line 520 of file two-ray-to-three-gpp-ch-calibration.py.
int two-ray-to-three-gpp-ch-calibration.num_refinements = int(args.num_refinements) |
Definition at line 88 of file two-ray-to-three-gpp-ch-calibration.py.
int two-ray-to-three-gpp-ch-calibration.num_search_grid_params = int(args.num_search_grid_params) |
Definition at line 86 of file two-ray-to-three-gpp-ch-calibration.py.
bool two-ray-to-three-gpp-ch-calibration.output_ns3_table = bool(args.output_ns3_table) |
Definition at line 104 of file two-ray-to-three-gpp-ch-calibration.py.
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
Definition at line 514 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.parents |
Definition at line 576 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter) |
Definition at line 35 of file two-ray-to-three-gpp-ch-calibration.py.
bool two-ray-to-three-gpp-ch-calibration.plot_fit_results = bool(args.plot_fit_results) |
Definition at line 106 of file two-ray-to-three-gpp-ch-calibration.py.
bool two-ray-to-three-gpp-ch-calibration.preliminary_fit_test = bool(args.preliminary_fit_test) |
Definition at line 100 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.rc |
Definition at line 570 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.ref_data = df.query(data_query) |
Definition at line 585 of file two-ray-to-three-gpp-ch-calibration.py.
argp two-ray-to-three-gpp-ch-calibration.ref_data_fname = args.ref_data_fname |
Definition at line 90 of file two-ray-to-three-gpp-ch-calibration.py.
joblib two-ray-to-three-gpp-ch-calibration.res |
Definition at line 549 of file two-ray-to-three-gpp-ch-calibration.py.
set two-ray-to-three-gpp-ch-calibration.scenarios = set(df["scen"]) |
Definition at line 505 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.sigma = get_sigma_from_k(k) |
Definition at line 532 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.start |
Definition at line 520 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.stop |
Definition at line 520 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.True |
Definition at line 576 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.x |
Definition at line 603 of file two-ray-to-three-gpp-ch-calibration.py.