## 2 Signal Analysis
### The Weighting Function
We note that the \(\chi^{2}\)-test is performed separately for the code- and phase-processing. As the residuals are already corrected by the ambiguities and the ground truth of the rover (Equations (7) and (8)), they are assumed to contain only the noise and miss-modelled effects like the multipath and the remaining atmospheric residuals. To evaluate the impacts of the weighting coefficients on the positional results, the weighting coefficients are searched as mentioned at the end of Section 2. The mean of the 3D positioning errors, i.e., the mean of \(|\Delta r_{\phi}|\) for phase and \(|\Delta r_{p}|\) for code, is used for the purpose of evaluation. \(|\cdot|\) denotes the norm of the vector. The weighting coefficients leading to the smallest mean are given for the phase and code solutions, and for different measurement scenarios in Table 2. The improvement ratio \(P\) is computed as:  
\[P= \begin{cases}\dfrac{\text{Mean}_{\phi}(0,0,0)-\text{Mean}_{\phi}(\hat{a}_{ \phi},\hat{b}_{\phi,1},\hat{b}_{\phi,2})}{\text{Mean}_{\phi}(0,0,0)},&\text {Phase processing}\\ \dfrac{\text{Mean}_{p}(0,0,0)-\text{Mean}_{p}(\hat{a}_{p},\hat{b}_{p,1},\hat {b}_{p,2})}{\text{Mean}_{p}(0,0,0)},&\text{Code processing}\end{cases}  \tag{22}\]  
where \(\text{Mean}_{\phi}(u_{1},u_{2},u_{3})\) and \(\text{Mean}_{p}(u_{1},u_{2},u_{3})\) refer to the mean of the phase- and code-based 3D positional errors applying the three weighting coefficients \(u_{1}\), \(u_{2}\) and \(u_{3}\), respectively, and \(\hat{a}_{\phi}\), \(\hat{a}_{p}\), \(\hat{b}_{\phi,j}\) and \(\hat{b}_{p,j}\) denote the weighting coefficients leading to the smallest mean value for the corresponding observation types. The case when setting all coefficients to zeros represents the case without using any weighting function. Note that \(a_{\phi}\) and \(a_{p}\), used as weighting coefficients for the elevation angles, are not frequency-dependent, whereas \(b_{\phi,j}\) and \(b_{p,j}\), used as weighting coefficients for the C/N\({}_{0}\), are frequency-dependent. The coefficient combinations delivering invalid solutions, i.e., with PDOP\(>\)10 or with too many observations screened in the \(\chi^{2}\)-test, in more than 1% of the tested time epochs are not considered for further evaluations. To make a fair comparison, only the time epochs that produce valid positional results using all valid coefficient combinations are used for computing the statistics in Table 2. For comparison purposes, the statistics are also given for the following cases:  
* When \(\hat{b}_{\phi,j}\) and \(\hat{b}_{p,j}\) (\(j\)=1, 2) are set to zero, i.e., using only the elevation-dependent weighting function in the model. * When \(\hat{a}_{\phi}\) and \(\hat{a}_{p}\) are set to zero, i.e., using only the C/N\({}_{0}\)-dependent weighting function in the model. Together with the improvement ratio \(P\), the actual improvement in range, denoted as \(P_{m}\), is also given in Table 2 with \(P_{m}=P\times\text{Mean}_{\phi}(0,0,0)\) for phase processing, and \(P_{m}=P\times\text{Mean}_{p}(0,0,0)\) for code processing. As shown in Table 2, using the proposed weighting model related to both the elevation angle and the C/N\({}_{0}\), larger positional improvements can be achieved in the suburban scenario than in the open-sky scenario. Higher elevation-related weighting coefficients, i.e., about 10 to 16, are needed for the phase processing than those for the code processing, i.e., about 0 to 6 for the latter. Compared with the elevation-dependent weighting function with \(b_{\phi,j}\) and \(b_{p,j}\) set to zero, the C/N\({}_{0}\)-related weighting functions can generate larger improvements in some cases. For the code processing in the suburban scenario as an example, using solely the C/N\({}_{0}\)-related weighting function has led to an improvement of about 19%, which is much higher than using solely the elevation-dependent weighting function with an improvement of about 8%.