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. | |
compute_ftr_mean (FtrParams params) | |
Computes the mean of the FTR fading model, given a specific set of parameters. | |
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. | |
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. | |
print_cplusplus_map_from_fit_results (pd.DataFrame fit, str out_fname) | |
tqdm_joblib (tqdm_object) | |
Variables | |
float | ad_meas = compute_anderson_darling_measure(np.sort(ref_data["gain"]), ftr_ecdf) |
list | ad_measures = [] |
args = parser.parse_args() | |
avg_mean = np.mean(mean_list) | |
bbox_inches | |
c_plus_plus_out_fname = args.c_plus_plus_out_fname | |
data | |
tuple | data_query |
default | |
delta | |
df = pd.read_csv(ref_data_fname, sep="\t") | |
Data pre-processing ##. | |
dpi | |
encoding | |
epsilon = float(args.epsilon) | |
exist_ok | |
figs_folder = args.figs_folder | |
fit = pd.read_csv(fit_out_fname, delimiter="\t") | |
fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp) | |
fit_line = fit.query(data_query) | |
fit_out_fname = args.fit_out_fname | |
frequencies = np.sort(list(set(df["fc"]))) | |
ftr_ecdf = get_ftr_ecdf(params, len(ref_data), db=True) | |
help | |
is_los = set(df["cond"]) | |
k | |
label | |
m | |
list | mean_list = [] |
list | mean_th_list = [] |
num | |
num_refinements = int(args.num_refinements) | |
num_search_grid_params = int(args.num_search_grid_params) | |
output_ns3_table = bool(args.output_ns3_table) | |
params = FtrParams() | |
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##. | |
parents | |
parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter) | |
plot_fit_results = bool(args.plot_fit_results) | |
preliminary_fit_test = bool(args.preliminary_fit_test) | |
rc | |
ref_data = df.query(data_query) | |
ref_data_fname = args.ref_data_fname | |
res | |
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 423 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: , where .
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 238 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 266 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by compute_anderson_darling_measure().
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 215 of file two-ray-to-three-gpp-ch-calibration.py.
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 229 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 291 of file two-ray-to-three-gpp-ch-calibration.py.
References compute_anderson_darling_measure(), get_ftr_ecdf(), and get_sigma_from_k().
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 165 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 281 of file two-ray-to-three-gpp-ch-calibration.py.
Referenced by fit_ftr_to_reference().
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 430 of file two-ray-to-three-gpp-ch-calibration.py.
References append_ftr_params_to_cpp_string().
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 100 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 590 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.ad_measures = [] |
Definition at line 567 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.args = parser.parse_args() |
Definition at line 74 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.avg_mean = np.mean(mean_list) |
Definition at line 514 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.bbox_inches |
Definition at line 600 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.c_plus_plus_out_fname = args.c_plus_plus_out_fname |
Definition at line 84 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.data |
Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.
tuple two-ray-to-three-gpp-ch-calibration.data_query |
Definition at line 570 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.default |
Definition at line 28 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.delta |
Definition at line 511 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.df = pd.read_csv(ref_data_fname, sep="\t") |
Data pre-processing ##.
Definition at line 490 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.dpi |
Definition at line 599 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.encoding |
Definition at line 546 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.epsilon = float(args.epsilon) |
Definition at line 88 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.exist_ok |
Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.figs_folder = args.figs_folder |
Definition at line 86 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.fit = pd.read_csv(fit_out_fname, delimiter="\t") |
Definition at line 553 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp) |
Definition at line 92 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.fit_line = fit.query(data_query) |
Definition at line 578 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.fit_out_fname = args.fit_out_fname |
Definition at line 82 of file two-ray-to-three-gpp-ch-calibration.py.
Definition at line 497 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 587 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.help |
Definition at line 29 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.is_los = set(df["cond"]) |
Definition at line 496 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.k |
Definition at line 524 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.label |
Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.m |
Definition at line 581 of file two-ray-to-three-gpp-ch-calibration.py.
list two-ray-to-three-gpp-ch-calibration.mean_list = [] |
Definition at line 508 of file two-ray-to-three-gpp-ch-calibration.py.
list two-ray-to-three-gpp-ch-calibration.mean_th_list = [] |
Definition at line 519 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.num |
Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.num_refinements = int(args.num_refinements) |
Definition at line 78 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.num_search_grid_params = int(args.num_search_grid_params) |
Definition at line 76 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.output_ns3_table = bool(args.output_ns3_table) |
Definition at line 94 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.params = FtrParams() |
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
Definition at line 504 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.parents |
Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter) |
Definition at line 25 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.plot_fit_results = bool(args.plot_fit_results) |
Definition at line 96 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.preliminary_fit_test = bool(args.preliminary_fit_test) |
Definition at line 90 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.rc |
Definition at line 560 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 575 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.ref_data_fname = args.ref_data_fname |
Definition at line 80 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.res |
Definition at line 539 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.scenarios = set(df["scen"]) |
Definition at line 495 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 522 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.start |
Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.stop |
Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.True |
Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.
two-ray-to-three-gpp-ch-calibration.x |
Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.