# WIPP: Wi-Fi Compass for Indoor Passive Positioning with Decimeter Accuracy
## 3 System Description
### Signal Path Identification  
In this section, we will study the performance of signal path identification. To distinguish the direct and indirect signal paths, the existing approaches [36; 37; 38] are mainly based on the criterion that the direct signal path is corresponding to the smallest TOA measurement. However, these approaches are limited in practical use due to the problems of the large number of indirect signal paths in indoor environments, as well as the difficulty of guaranteeing the time synchronization between the Wi-Fi APs and receiver. In the WIPP, the direct signal path is identified by using the concept of the volatility of AOA and TOA measurements. In concrete terms, the AOA and TOA measurements corresponding to the direct signal path are normally featured with small variation, while the ones corresponding to the indirect signal path are probably with large variation, which has also been discussed in [39]. Based on this, we use the affinity propagation clustering algorithm to classify the AOA and TOA measurements into different clusters. The ones corresponding to the direct signal path are much likely to be merged together into the same cluster, and, meanwhile, the diameter of each cluster indicates the variation of the corresponding AOA and TOA measurements. To achieve the affinity propagation clustering [40; 41], we first define \(\boldsymbol{\varphi}_{i}=\left[ \begin{array}{cc}aaa_{i}&taa_{i}\end{array}  \right]^{\text{T}}\) as the vector of the \(i\)-th joint AOA and TOA measurement, where the notation \"T\" denotes the transpose operation. The matrix of the joint AOA and TOA measurements is shown below. \[\boldsymbol{\psi}=\left[ \begin{array}{cccc}\boldsymbol{\varphi}_{1}& \boldsymbol{\varphi}_{2}&...&\boldsymbol{\varphi}_{N}\end{array} \right], \tag{14}\]  
where \(N\) stands for the number of the joint AOA and TOA measurements. Second, we rely on the pairwise similarity function _s(i,j)_ in Equation (15) to depict the similarity between the \(i\)-th and \(j\)-th joint AOA and TOA measurements:  
\[s(i,j)=-\left\|\boldsymbol{\varphi}_{i}-\boldsymbol{\varphi}_{j}\right\|^{2},i,j\in\left\{1,\cdots,N\right\}. \tag{15}\]  
Third, as discussed in [40], we define two types of messages: responsibility message _r(i,j)_, which denotes the information about the clustering center; and availability message _a(i,j)_, which denotes the attachment relations between the joint AOA and TOA measurements and clusters. During the clustering, the \(i\)-th joint AOA and TOA measurement sends the responsibility message which is the accumulated fitness of the \(j\)-th joint AOA and TOA measurement to be selected as the cluster center to each candidate cluster. By taking all the potential cluster centers \(j^{\prime}\) into account, the responsibility message _r(i,j)_ is calculated by  
\[r(i,j)=s(i,j)-\underset{j\
eq j}{\max}\{a(i,j^{\prime})+s(i,j^{\prime})\}, \tag{16}\]  
where the availability message _a(i,j)_ is calculated by Equation (18). In addition, the self-responsibility _r(i,j)_ equals  
\[r\left(i,i\right)=\text{median}\left\{s\left(i,j\right),\forall i,j\in\left\{ 1,2,...,N\right\}\right\}, \tag{17}\]  
where the notation \"median\" represents the median operation. At the same time, the availability message is sent from \(i\)-th candidate cluster center to \(j\)-th candidate cluster center.