|
RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
|
Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. More...
#include <math.h>#include <stdbool.h>#include <stdio.h>#include <float.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include "matrix.h"#include "vector.h"#include "combinatorics.h"#include "multipath_dist_detection_mitigation.h"#include "norm_dist_rnd_generator.h"#include "shell_sort.h"#include "dist_based_position.h"#include "DOP.h"#include "trilateration.h"Go to the source code of this file.
Functions | |
| matrix_t | get_exact_distance_to_anchor (matrix_t ref_point[], uint32_t exact_point[]) |
| Computes the exact distance between a mobile station and a reference station. More... | |
| bool | is_member (matrix_t vector, uint8_t n, matrix_t multipath[n]) |
| Determine if a candidate is a multipath or not. More... | |
| bool | is_anchor (uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]) |
| Determine if a point is an anchor or not. More... | |
| void | sim_UWB_dist (uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[], matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed, matrix_t r_noised_vec[]) |
| Simulate an UWB-based localization system. More... | |
| void | get_optimal_partial_ref_matrix (uint8_t anchors_num, matrix_t ref_matrix[anchors_num][3], uint8_t k, uint8_t optimal_anchors_comb[k], matrix_t opt_partial_ref_matrix[k][3]) |
| Compute the optimal partial matrix including reference points. More... | |
| void | get_optimal_partial_r_noised_vec (uint8_t k, matrix_t r_noised_vec[], uint8_t optimal_anchors_comb[k], matrix_t opt_sub_r_noised_vec[k]) |
| Compute noised distances corresponding to the optimal partial matrix. More... | |
| void | recog_mitigate_multipath (uint8_t k, uint8_t m, matrix_t ref_matrix[m][3], matrix_t noised_r_vec[m], uint8_t anchors_optimal_combi[k], matrix_t start_optimal_pos[3]) |
| Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. More... | |
Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.
Definition in file multipath_dist_detection_mitigation.c.
Computes the exact distance between a mobile station and a reference station.
| [in] | ref_point | three-dimensional coordinates of a reference station. |
| [in] | exact_point | three-dimensional coordinates of the mobile device. |
Definition at line 42 of file multipath_dist_detection_mitigation.c.
References matrix_t.
Referenced by sim_UWB_dist().
| void get_optimal_partial_r_noised_vec | ( | uint8_t | k, |
| matrix_t | r_noised_vec[], | ||
| uint8_t | optimal_anchors_comb[k], | ||
| matrix_t | opt_sub_r_noised_vec[k] | ||
| ) |
Compute noised distances corresponding to the optimal partial matrix.
| [in] | k | k anchors (possible sub-experiments). |
| [in] | r_noised_vec[] | include noised distances. |
| [in] | optimal_anchors_comb[] | optimal k-anchor combination. |
| [in,out] | opt_sub_r_noised_vec[][] | noised distances corresponding to the optimal k-anchors. |
Definition at line 123 of file multipath_dist_detection_mitigation.c.
Referenced by multipath_algo_own_norm_distr_test(), and recog_mitigate_multipath().
| void get_optimal_partial_ref_matrix | ( | uint8_t | anchors_num, |
| matrix_t | ref_matrix[anchors_num][3], | ||
| uint8_t | k, | ||
| uint8_t | optimal_anchors_comb[k], | ||
| matrix_t | opt_partial_ref_matrix[k][3] | ||
| ) |
Compute the optimal partial matrix including reference points.
| [in] | anchors_num | number of the reference points. |
| [in] | ref_matrix[][] | three-dimensional coordinates of the reference stations. |
| [in] | k | k anchors (possible sub-experiments). |
| [in] | optimal_anchors_comb[] | optimal anchor combination. |
| [out] | opt_partial_ref_matrix[][] | optimal partial matrix of anchors. |
Definition at line 108 of file multipath_dist_detection_mitigation.c.
Referenced by multipath_algo_own_norm_distr_test(), and recog_mitigate_multipath().
| bool is_anchor | ( | uint8_t | m, |
| matrix_t | ref_matr[m][3], | ||
| uint32_t | point[3] | ||
| ) |
Determine if a point is an anchor or not.
| [in] | m | number of the reference points. |
| [in] | ref_matr[][] | three-dimensional coordinates of the reference stations. |
| [in] | point[] | three-dimensional coordinates of a point. |
Definition at line 65 of file multipath_dist_detection_mitigation.c.
Referenced by multipath_algo_own_norm_distr_test().
Determine if a candidate is a multipath or not.
| [in] | vector | a candidate. |
| [in] | n | size of the multipath-vector. |
| [in] | multipath[] | pointer to the multipath-vector. |
Definition at line 55 of file multipath_dist_detection_mitigation.c.
Referenced by sim_UWB_dist().
| void recog_mitigate_multipath | ( | uint8_t | k, |
| uint8_t | m, | ||
| matrix_t | ref_Matrix[m][3], | ||
| matrix_t | r_noised_vec[m], | ||
| uint8_t | anchors_optimal[k], | ||
| matrix_t | start_optimal[3] | ||
| ) |
Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.
| [in] | k | k anchors (possible sub-experiments). |
| [in] | m | number of anchors. |
| [in] | ref_Matrix[][] | three-dimensional coordinates of the reference stations. |
| [in] | r_noised_vec[] | include noised distances. |
| [in] | anchors_optimal[] | optimal k-anchor combination. |
| [in,out] | start_optimal[] | optimal position. |
Definition at line 133 of file multipath_dist_detection_mitigation.c.
References COMBI_ERROR, COMBI_SUCCESS, combinatorics_get_next_without_rep(), combinatorics_init(), get_optimal_partial_r_noised_vec(), get_optimal_partial_ref_matrix(), matrix_t, shell_sort(), trilateration2(), vector_copy(), vector_get_index_vector(), vector_get_norm2(), vector_square(), and vector_sub().
Referenced by multipath_algo_own_norm_distr_test().
| void sim_UWB_dist | ( | uint8_t | m, |
| matrix_t | ref_matrix[m][3], | ||
| uint32_t | exact_point[], | ||
| matrix_t | sigma, | ||
| uint8_t | n, | ||
| matrix_t | multipath[n], | ||
| int | seed, | ||
| matrix_t | r_noised_vec[] | ||
| ) |
Simulate an UWB-based localization system.
The UWB system is simulated by noising the distances from a mobile to the reference station.
| [in] | m | number of the reference points. |
| [in] | ref_matrix[][] | three-dimensional coordinates of the reference stations. |
| [in] | exact_point[] | three-dimensional coordinates of a true position. |
| [in] | sigma | parameter. |
| [in] | n | number of the multipath-affected distances. |
| [in] | multipath[] | multipath vector. |
| [in] | seed | seed value. |
| [in] | r_noised_vec[] | noised distances. |
Definition at line 78 of file multipath_dist_detection_mitigation.c.
References get_exact_distance_to_anchor(), get_norm_distr_rand_num(), get_rand_num(), is_member(), and matrix_t.
Referenced by multipath_algo_own_norm_distr_test().