RcdMathLib_doc
Open Source Library for Linear and Non-linear Algebra
multipath_dist_detection_mitigation.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Zakaria Kasmi <zkasmi@inf.fu-berlin.de>
3  * 2020 Freie Universität Berlin
4  *
5  * This file is subject to the terms and conditions of the GNU Lesser General
6  * Public License v2.1. See the file LICENSE in the top level directory for more
7  * details.
8  */
9 
25 #ifndef POSITIONING_ROBUST_OTF_H_
26 #define POSITIONING_ROBUST_OTF_H_
27 
28 #include <inttypes.h>
29 
30 #include "matrix.h"
31 
42  uint32_t exact_point[]);
54 bool is_member(matrix_t vector, uint8_t n, matrix_t multipath[n]);
55 
66 bool is_anchor(uint8_t m, matrix_t ref_matr[m][3], uint32_t point[3]);
67 
83 void sim_UWB_dist(uint8_t m, matrix_t ref_matrix[m][3], uint32_t exact_point[],
84  matrix_t sigma, uint8_t n, matrix_t multipath[n], int seed,
85  matrix_t r_noised_vec[]);
96 void get_optimal_partial_ref_matrix(uint8_t anchors_num,
97  matrix_t ref_matrix[anchors_num][3],
98  uint8_t k, uint8_t optimal_anchors_comb[k],
99  matrix_t opt_partial_ref_matrix[k][3]);
100 
111 void get_optimal_partial_r_noised_vec(uint8_t k, matrix_t r_noised_vec[],
112  uint8_t optimal_anchors_comb[k],
113  matrix_t opt_sub_r_noised_vec[k]);
114 
126 void recog_mitigate_multipath(uint8_t k, uint8_t m, matrix_t ref_Matrix[m][3],
127  matrix_t r_noised_vec[m],
128  uint8_t anchors_optimal[k],
129  matrix_t start_optimal[3]);
130 
131 #endif /* POSITIONING_ROBUST_OTF_H_ */
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.
Definition: multipath_dist_detection_mitigation.c:65
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.
Definition: multipath_dist_detection_mitigation.c:123
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.
Definition: multipath_dist_detection_mitigation.c:133
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.
Definition: multipath_dist_detection_mitigation.c:42
matrix.h
Matrix computations.
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.
Definition: multipath_dist_detection_mitigation.c:108
is_member
bool is_member(matrix_t vector, uint8_t n, matrix_t multipath[n])
Determine if a candidate is a multipath or not.
Definition: multipath_dist_detection_mitigation.c:55
matrix_t
#define matrix_t
Define the data type of the matrix elements.
Definition: matrix.h:38
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.
Definition: multipath_dist_detection_mitigation.c:78