RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
multipath_dist_detection_mitigation.h File Reference

Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. More...

#include <inttypes.h>
#include "matrix.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 r_noised_vec[m], uint8_t anchors_optimal[k], matrix_t start_optimal[3])
 Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm. More...
 

Detailed Description

Implement the Multipath Distance Detection and Mitigation (MDDM) algorithm.

Author
Zakaria Kasmi zkasm.nosp@m.i@in.nosp@m.f.fu-.nosp@m.berl.nosp@m.in.de
Abdelmoumen Norrdine a.nor.nosp@m.rdin.nosp@m.e@goo.nosp@m.glem.nosp@m.ail.c.nosp@m.om
Naouar Guerchali

Definition in file multipath_dist_detection_mitigation.h.

Function Documentation

◆ get_exact_distance_to_anchor()

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.

Parameters
[in]ref_pointthree-dimensional coordinates of a reference station.
[in]exact_pointthree-dimensional coordinates of the mobile device.
Returns
the exact distance between the mobile station and the reference station.

Definition at line 42 of file multipath_dist_detection_mitigation.c.

References matrix_t.

Referenced by sim_UWB_dist().

◆ get_optimal_partial_r_noised_vec()

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.

Parameters
[in]kk 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().

◆ get_optimal_partial_ref_matrix()

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.

Parameters
[in]anchors_numnumber of the reference points.
[in]ref_matrix[][]three-dimensional coordinates of the reference stations.
[in]kk 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().

◆ is_anchor()

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.

Parameters
[in]mnumber of the reference points.
[in]ref_matr[][]three-dimensional coordinates of the reference stations.
[in]point[]three-dimensional coordinates of a point.
Returns
true, if a point is an anchor.
false, if not.

Definition at line 65 of file multipath_dist_detection_mitigation.c.

Referenced by multipath_algo_own_norm_distr_test().

◆ is_member()

bool is_member ( matrix_t  vector,
uint8_t  n,
matrix_t  multipath[n] 
)

Determine if a candidate is a multipath or not.

Parameters
[in]vectora candidate.
[in]nsize of the multipath-vector.
[in]multipath[]pointer to the multipath-vector.
Returns
true, if a candidate is a multipath.
false, if not.

Definition at line 55 of file multipath_dist_detection_mitigation.c.

Referenced by sim_UWB_dist().

◆ recog_mitigate_multipath()

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.

Parameters
[in]kk anchors (possible sub-experiments).
[in]mnumber 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().

◆ sim_UWB_dist()

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.

Parameters
[in]mnumber 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$ \sigma_{M,W} $ parameter.
[in]nnumber of the multipath-affected distances.
[in]multipath[]multipath vector.
[in]seedseed 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().