## 3 Measurement Model and Positioning Algorithm  
As introduced in the previous section, the user position estimation depends on the range between user terminal and TAs, which is included in the pseudorange measured by the GPS receiver module of user terminal. The pseudorange measurements \(\rho_{i}^{RGPS}\) from the user terminal to the \(i\)-th TA is modelled as:  
\[\rho_{i}^{RGPS}=\rho_{i}^{GPS*}+\delta_{i}^{RT}+d_{i}+\delta_{cic}^{u}+\epsilon _{i}^{u} \tag{1}\]  
where \(\rho_{i}^{GPS*}\) represents the range due to real GPS signal reproduction in \(i\)-th Rx/Tx channel, \(\delta_{i}^{RT}\) represents the distance between the receiving and transmitting antenna, \(d_{i}\) represents the range between  
Figure 4: Architecture of the user terminal. Figure 3: Rx and Tx information and information matching. the user terminal and the _i_-th TA, \(\delta^{u}_{dc}\) represents the range due to the clock error of user terminal and \(\epsilon^{u}_{i}\) represents the delay due to the thermal noise of the GPS module in the user terminal. In the above equation, the term of \(\rho^{GPS^{\star}}_{i}\) has the same description as \(\rho^{GPS}_{i}\) since \(\rho^{GPS^{\star}}_{i}\) is from the duplication of corresponding GPS signal, which is modelled as [20]:  
\[\rho^{GPS^{\star}}_{i}=\left|\textbf{R}^{RA}-\textbf{R}^{SAT}_{i}\right|+ \delta^{RA}_{clk}+\delta^{SAT}_{clk,j}+\delta_{ion,j}+\delta_{rup,i}+\delta_{ muJ,i}+\epsilon^{Rx}_{i} \tag{2}\]  
where \(\textbf{R}^{RA}\) represents the position vector of receiving antenna, \(\textbf{R}^{SAT}_{i}\) represents the position vector of _i_-th GPS satellite, \(\delta^{RA}_{clk}\) represents the clock error of Rx, \(\delta^{SAT}_{clk,i}\) represents the clock error of the _i_-th GPS satellite, \(\delta_{ion,j}\) represents the ionospheric range delay, \(\delta_{trap,j}\) represents the tropospheric delay, \(\delta_{mul,j}\) represents the multipath error, and \(\epsilon^{Rx}_{i}\) represents thermal noise of Rx. If the user terminal synchronizes the time of \(\rho^{GPS}_{i}\) and \(\rho^{GPS^{\star}}_{i}\), \(\rho^{GPS^{\star}}_{i}\approx\rho^{GPS}_{i}\) can be obtained. The synchronization is satisfied using satellite transmission time which is obtained from the C/A code on the real-world GPS signal and repeated GPS signal. Therefore, the difference between \(\rho^{RGPS}_{i}\) and \(\rho^{GPS}_{i}\) can be written as:  
\[ \begin{split}\Delta\rho_{i}&=\rho^{RGPS}_{i}-\rho^{ GPS}_{i}\\ &=\rho^{GPS^{\star}}_{i}+\delta^{RT}_{i}+d_{i}+\delta^{u}_{ck}+ \epsilon^{u}_{i}-\rho^{GPS}_{i}\\ &\approx\delta^{RT}_{i}+d_{i}+\delta^{u}_{ck}+\epsilon^{u}_{i} \end{split}  \tag{3}\]  
The difference between \(\rho^{RGPS}_{i}\) and \(\rho^{GPS}_{i}\) removes the GPS signal propagation errors, such as ionospheric delay, tropospheric delay and orbit errors. As a result, the proposed indoor positioning system has high robustness to the effects of the GPS signal propagation environment. In addition, the difference cancels the errors due to the Rx component, such as the clock error. This indicates that the accuracy of the proposed system is independent of the accuracy of Rx and hence a low-cost GPS receiver can be used as the Rx component. The term \(\delta^{RT}_{i}\) is a known quantity, saved in the server and delivered to the user terminal:  
\[ \begin{split}\Delta\rho_{i}&=d_{i}+\delta^{u}_{ ck}+\epsilon^{u}_{i}\\ &=\left|\textbf{R}^{u}-\textbf{R}^{TA}_{i}\right|+\delta^{u}_{ ck}+\epsilon^{u}_{i}\end{split}  \tag{4}\]  
where \(\textbf{R}^{u}=[x^{u}\quad y^{u}\quad z^{u}]^{T}\) represents the unknown user position and \(\textbf{R}^{TA}_{i}=[x^{TA}_{i}\quad y^{TA}_{i}\quad z^{TA}_{i}]^{T}\) represents the position of _i_-th TA obtained from the server. Similar to GPS positioning algorithm, user position is estimated through solving the equation:  
\[ \begin{split}(x^{u},\,y^{u}\,,\,z^{u},\delta^{u}_{ck})=\underset{( x^{u},\,y^{u},\,z^{u},\,\delta^{u}_{ck})}{\arg\min}\,\sum_{i=1}^{N}\left(\left| \textbf{R}^{u}-\textbf{R}^{TA}_{i}\right|-\Delta\rho_{i}\right)^{2}\end{split}