| RcdMathLib_doc
    Open Source Library  for Linear and Non-linear Algebra | 
Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. More...
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 r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[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.h.
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().