Introduction

The global navigation satellite system (GNSS) has been used to provide navigation services across various applications that range from autonomous driving vehicles to handheld commercial devices. But, problems occur in urban canyons in which urban structures often reflect GNSS signals, thus creating non-line-of-sight (NLOS) and multipath (MP) reception that introduces delay errors to the ranging measurements and impairs the positioning accuracy. With the growth of GNSS applications, research into mitigating such errors has become increasingly under the spotlight.

For autonomous driving applications, multi-sensor integration is typically used. For example, the use of 3D LiDAR was introduced to detect and correct NLOS-induced errors (Wen et al. 2019). For pedestrian navigation, the use of 3D building models or 3D-mapping-aided GNSS (3DMA) showed promise in detecting and correcting NLOS errors (Hsu et al. 2016; Ng et al. 2021). Ng et al. (2021) proposed the use of 3DMA with an L1–L5 dual-frequency for urban positioning and pointed out positioning accuracy of up to 5 m and an average of 10 m in urban environments. However, these methods depend on external aiding and do not improve sole GNSS receiver performance.

While numerous innovations have been proposed to improve sole GNSS positioning, such as the use of dual-polarized antenna, choke-ring antenna, and machine-learning approaches, few fully solve the problem of MP and NLOS. Closas et al. (2007a) proposed a new GNSS positioning technique, direct position estimation (DPE), which bypasses the intermediate measurements and solves receiver position, velocity, and timing (PVT) directly in the navigation domain based on the maximum likelihood (MLE) principle (Closas et al. 2007a, b). Previous works have shown more robust performance from DPE in weak signal tracking and MP mitigation compared to two-step positioning (2SP) (Closas et al. 2009a; b; 2015; Closas and Gusi-Amigó 2017; Gusi‐Amigó et al. 2018).

Even though the advantages of DPE have been established, a main drawback is its high computational load, from solving the non-convex optimization of DPE. Several algorithms have been introduced to reduce the computational load of DPE. The low-complexity Space-Alternating Generalized Expectation Maximization (SAGE) was presented to DPE, which iteratively estimates a subset of the PVT while keeping the rest constant (Closas et al. 2007b). But SAGE was found to be sensitive to the PVT initialization, which in real cases may not always be reliable. Another iterative-based method is the Accelerated Random Search (ARS), which gradually reduces the search space whenever a PVT estimate with a higher likelihood is found (Closas et al. 2009a; Peretic and Gao 2021). Conversely, Peretic and Gao (2021) introduced an open-sourced parallelized DPE software-defined receiver (SDR), which takes advantage of circular cross-correlation with fast Fourier transform (FFT) to perform a parallel code phase search to obtain correlations for each candidate PVTs. But, the method relies on a GPU to accelerate the computation, which is unsuitable for applications for handheld devices.

Hence, we introduce a low-power MLE algorithm that follows the method of directly solving the PVT in the navigation domain from DPE to acquire the potential of DPE for MP mitigation to serve as an alternative to DPE. Differing from DPE, the candidate PVT correlations are computed through the relationship between pseudorange values and the range of a candidate PVT to satellites, generating a pseudorange correlogram. This also allows the proposed pseudorange correlogram-based algorithm to offer a much lower computational load compared to existing DPE implementations.

Our contributions are twofold, namely,

  1. 1.

    A novel DPE-based positioning method through the generation of correlogram of the candidate PVTs is proposed by making use of pseudorange measurements. The algorithm complexity is also analyzed.

  2. 2.

    The proposed algorithm is validated with open-sourced real GNSS Receiver Independent Exchange Format (RINEX) -level data collected with a commercial receiver in urban environments. We also assess the proposed algorithm with SPIRENT simulation datasets and compared it with 2SP receivers.

As the proposed algorithm is based on the idea of DPE, the basic principles of DPE is first introduced, followed by the proposed DPE-based positioning algorithm, which briefly discusses the algorithm complexity and workflow. Next, the methodology and evaluation results of the proposed algorithm with real GNSS data are presented and discussed, continued with the conclusion of our findings.

Direct position estimation

The basic principle of DPE is to compute the PVT estimates in a single step, without estimation of intermediate measurements i.e., pseudorange and pseudorange rates (Closas and Gao 2020). Differing from 2SP, no acquisition or tracking is involved, and PVT estimates are estimated in the navigation domain through direct correlation with the received intermediate frequency (IF) signal. DPE makes use of the relationship between a specific receiver PVT and the code delay \((\tau )\) and Doppler frequency (\({f}_{{\text{d}}})\) values of a GNSS signal. In other words, \({f}_{{\text{d}}}\) and \(\tau\) can be re-written as a function of the PVT i.e., \({f}_{{\text{d}}}({\varvec{\upgamma}})\) and \(\tau ({\varvec{\upgamma}})\), where \({\varvec{\upgamma}}={[{p}_{{\text{lat}}}, {p}_{{\text{long}}}, {p}_{{\text{height}}},{v}_{{\text{lat}}}, {v}_{{\text{long}}}, {v}_{{\text{height}}},\delta t,\dot{\delta t}]}^{{\text{T}}}\) is PVT of DPE, in which [\({p}_{{\text{lat}}}, {p}_{{\text{long}}}, {p}_{{\text{height}}}]\) and \({[v}_{{\text{lat}}}, {v}_{{\text{long}}}, {v}_{{\text{height}}}]\) are the position and velocity expressed in geodetic coordinates, respectively, \(\delta t\) is the receiver clock bias in meters, and \(\dot{\delta t}\) is the receiver clock drift in meters/second.

DPE signal model can be written as

$$\mathbf{x}=\mathbf{C}\left({\varvec{\upgamma}}\right)\mathbf{a}+\mathbf{n}$$
(1)

where x is the received signal vector, a is the complex signal amplitudes, C is the local signal replica as a function of \({\varvec{\upgamma}}\), and n is the additive noise, which is assumed to be additive white Gaussian noise (AWGN).

In solving non-convex optimization problem of DPE, we consider the divide-and-conquer, grid search approach, in which a grid of candidate PVTs are established, each corresponding to a specific \({f}_{{\text{d}}}\) and \(\tau\) from a satellite. Based on DPE signal model, \({f}_{{\text{d}}}\) and \(\tau\) for each candidate PVT are computed by the following equations.

$${\tau }_{{\text{PVT}} }^{i}= \frac{\Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{x,y,z}\Vert + \left(\delta t-{\delta t}_{i}\right)}{c}$$
(2)
$${f}_{d, {\text{PVT}} }^{i}= -\frac{{f}_{c}}{c}\left[{{(\mathbf{v}}_{i}-{\mathbf{v}}_{x,y,z})}^{{\text{T}}}\bullet \frac{{\mathbf{p}}_{i}- {\mathbf{p}}_{x,y,z}}{\Vert {\mathbf{p}}_{i}- {\mathbf{p}}_{x,y,z}\Vert } +\dot{\delta t}-\dot{{\delta t}_{i}}\right]$$
(3)

where \({\mathbf{p}}_{i}={[{p}_{i,{\text{x}}} {p}_{i,{\text{y}}} {p}_{i,{\text{z}}}]}^{{\text{T}}}\) and \({\mathbf{p}}_{{\text{x}},{\text{y}},{\text{z}}}={[{p}_{{\text{x}}}, {p}_{{\text{y}}}, {p}_{z}]}^{{\text{T}}}\) are position in Earth-Centerd-Earth-Fixed (ECEF) coordinates of satellite i and the candidate PVT, respectively, converted from geodetic coordinates, \({\mathbf{v}}_{i}\) and \({\mathbf{v}}_{x,y,z}\) are the velocities of satellite i and candidate position x, y, and z in meters/second, \({\delta t}_{i}\) and \(\dot{{\delta t}_{i}}\) are clock bias and drift of satellite i, respectively, \({f}_{{\text{c}}}\) is the carrier frequency in Hertz, and \(c\) is the speed of light in meters/second. From obtaining \({\tau }_{{\text{PVT}}}^{i}\) and \({f}_{d,{\text{lat}}}^{i}\), a signal replica for each candidate PVT is generated and correlated with the incoming signal. Correlations from every satellite are then summed, which produces a correlogram over the candidate PVTs. The candidate PVT that yields the highest correlation value represents the PVT estimate of DPE, which is modeled in (4).

$$\widehat{{\varvec{\upgamma}}}={\text{arg}}\underset{{\varvec{\upgamma}}}{{\text{max}}}\sum_{i=1}^{{\text{M}}}{\Vert {\mathbf{x}}^{{\text{H}}}{\mathbf{c}}_{i}({\varvec{\upgamma}})\Vert }^{2}$$
(4)

where \({\mathbf{x}}^{{\text{H}}}\) is the Hermitian transpose of \(\bf {\text{x}}\) from (1), \(\widehat{{\varvec{\upgamma}}}\) is the PVT estimate of DPE from a total of M satellites, \({\mathbf{c}}_{i}({\varvec{\upgamma}})\) is the signal replica for PRN i for the candidate PVT \({\varvec{\upgamma}}\) (Closas and Gao 2020). A visualization of the navigation domain of DPE is given in Fig. 1.

Fig. 1
figure 1

Illustration of (4) to produce a position estimate. The pink lines represent the correlation values from each satellites

Proposed pseudorange correlogram-based positioning

The proposed approach makes use of the relationship between the pseudoranges of a binary phase-shift keying (BPSK) modulated signal and the range of candidate PVTs to obtain a pseudorange-based correlation value (pseudorange correlation) of candidate PVTs to optimize the computation of correlations. This relationship can be illustrated by (5).

$${{\text{R}}}_{i}\left({\mathbf{p}}_{x,y,z},\delta t\right)=1- \left|\frac{\left(\Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{x,y,z}\Vert +\left(\delta t-{\delta t}_{i}\right)\right)-{\rho }_{i}}{c{\bullet T}_{{\text{c}}}}\right|$$
(5)

where \({{\text{R}}}_{i}\left({\mathbf{p}}_{x,y,z},\delta t\right)\) represents the correlation value for a candidate position \({\mathbf{p}}_{x,y,z}\) for satellite i, \({T}_{{\text{c}}}\) is the chip period of the PRN code e.g.,, \(9.776 \times {10}^{-7}\) seconds for GPS L1 C/A, and \({\rho }_{i}\) is the pseudorange of satellite i. Figure 2 below shows an illustration of the pseudorange correlation obtained from (5). Based on (5), the proposed approach will only estimate \({\varvec{\upgamma}}={[{p}_{{\text{lat}}}, {p}_{{\text{long}}}, {p}_{{\text{height}}},\delta t]}^{{\text{T}}}\).

Fig. 2
figure 2

The relationship between the range of a candidate position to a satellite and its correlation value, with ρ as the pseudorange value of a BPSK modulated signal

Based on (5), the correlation value of a candidate position will be given based on its range to a particular satellite, which generates a pseudorange correlogram over the candidate PVTs. Instead of correlating the signal replicas of each candidate PVTs and the received signal based on their \(\tau\) values, correlation is done by directly comparing the \(\tau\) values of each candidate PVTs and that of the incoming signal. In other words, rather than performing correlations at an IF level like DPE, correlations are done at the pseudorange level, which makes the proposed algorithm a pseudorange correlogram-based positioning, and its correlogram is called a pseudorange correlogram.

In the basic implementation of DPE, satellites with higher signal power would yield higher correlation values than those with lower signal power, which would give a naturally higher weighting to stronger satellite signals. As such property is not expressed with (5), weights are added to (5) based on the carrier-to-noise ratio of the received satellites to allow (5) to better replicate the implicit weighting of DPE from correlations of IF signal. Hence, (5) can be rewritten as the following.

$${{\text{R}}}_{i}\left({\mathbf{p}}_{x,y,z},\delta t\right)=\left[1- \left|\frac{\left(\Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{x,y,z}\Vert +\left(\delta t-{\delta t}_{i}\right)\right)-{\rho }_{i}}{c{\bullet T}_{{\text{c}}}}\right|\right]\times \frac{C/{N}_{0,i}}{C/{N}_{0, {\text{Max}}}}$$
(6)

where \(C/{N}_{0,i}\) is the carrier-to-noise ratio of satellite i and \(C/{N}_{0,{\text{Max}}}\) is the maximum carrier-to-noise ratio of the satellites in view.

Empirically, the pseudorange correlogram can be obtained by iteratively computing the pseudorange correlation for every candidate PVT. However, to reduce the computational load further, we take advantage of interpolation to obtain the pseudorange correlogram. Instead of iteratively computing the pseudorange correlation, correlation values are established for satellite ranges at 0.1 chip intervals, as shown in Fig. 2, with the highest correlation value, i.e., 1 going to the range equal to the pseudorange. The pre-established correlation values are then multiplied with carrier-to-noise ratio weights following (6), and the candidate PVTs ranges will act as query points for linear interpolation, producing a pseudorange correlogram over the candidate PVTs (Fig. 3). We utilize a MATLAB built-in interpolation function, interp1, and is written as \({{\text{R}}}_{i}(\mathbf{P})\) = interp1(pseudoranges per 0.1 chip interval, correlations per 0.1 chip interval, \(\left[\begin{array}{c}\Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{1}\Vert \\ \vdots \\ \Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{\mathbf{N}\mathbf{o}. \, \mathbf{o}\mathbf{f} \, \mathbf{c}\mathbf{a}\mathbf{n}\mathbf{d}\mathbf{i}\mathbf{d}\mathbf{a}\mathbf{t}\mathbf{e} \, \mathbf{p}\mathbf{o}\mathbf{s}\mathbf{i}\mathbf{t}\mathbf{i}\mathbf{o}\mathbf{n}\mathbf{s}}\Vert \end{array}\right]\), 'linear')\(,\) where \({{\text{R}}}_{i}(\mathbf{P})\) are the correlations for every candidate PVT from satellite i and \(\left[\begin{array}{c}\Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{1}\Vert \\ \vdots \\ \Vert {\mathbf{p}}_{i}-{\mathbf{p}}_{\mathbf{N}\mathbf{o}. \, \mathbf{o}\mathbf{f} \, \mathbf{c}\mathbf{a}\mathbf{n}\mathbf{d}\mathbf{i}\mathbf{d}\mathbf{a}\mathbf{t}\mathbf{e} \, \mathbf{p}\mathbf{o}\mathbf{s}\mathbf{i}\mathbf{t}\mathbf{i}\mathbf{o}\mathbf{n}\mathbf{s}}\Vert \end{array}\right]\) are vector of all the ranges for every candidate PVT with \(\mathbf{P}\) as the matrix of coordinates of all the candidate PVT. An illustration of the generated pseudorange correlogram is shown below.

Fig. 3
figure 3

Pseudorange correlogram from a single L1 C/A satellite (top) and from all the satellites in view (bottom)

Notice that the use of intermediate measurements by the proposed method i.e., pseudorange measurements, to reconstruct the satellite signal correlation causes it to lose some precision compared to DPE, which do not suffer the errors from estimation of intermediate measurements as it uses raw IF signal in generating the correlogram. The proposed method utilizes the concept of directly solving the PVT in the navigation domain of DPE to reduce the effects of MP and NLOS errors in urban areas by excluding the correlations of error-affected satellites from the global maximum of the cost function (4) (Closas et al. 2017). This allows DPE positioning to remain accurate by using the correlations of the remaining LOS satellites for obtaining the global maximum (Vicenzo et al. 2023). Consequently, the proposed pseudorange correlogram-based positioning is put forward as a compromise between the high computational load of DPE and its more accurate positioning.

Algorithm complexity

This section will compare the complexity of iteratively computing the pseudorange correlation for every candidate position i.e., repeating (6) for every candidate PVT, with the complexity of linearly interpolating the pseudorange correlogram, as explained in the previous section. As the proposed algorithm is a grid-based algorithm, also known as divide-and-conquer algorithm, the algorithm complexity is highly dependent on the size and intervals of the PVT search space.

For a spacing of one meter between candidate PVTs, the number of candidate points to estimate both the latitude and longitude coordinates of the receiver with a span of ± n meters can be expressed as \({\left[\left(n \times 2\right)+1\right]}^{2}\). To estimate the receiver height, the established latitude–longitude candidate points are simply repeated across heights’ search space, i.e., \({[(h \times 2)+1] \times \left[\left(n \times 2\right)+1\right]}^{2}\), with ± h being the span of the height search space in meters. Finally, estimating the receiver clock bias follows the same step as estimating for the receiver height, as shown in (7).

$$\text{No. of candidate PVTs}={[(b\times 2)+1] \times [(h \times 2)+1] \times \left[\left(n \times 2\right)+1\right]}^{2}$$
(7)

where ± b is the span of the clock bias’ search space in units of meters. Note that the plus ones for the equations above are due to the inclusion of the initialization coordinates of the search space.

For the iterative-based method, the algorithm complexity would be simply bounded by (No. of candidate PVTs), which means the complexity of the iterative process linearly increases with the number of candidates. On the contrary, the complexity of the interpolation-based method depends on the linear interpolation algorithm used. For simplicity, the complexity of the interpolation-based method can be estimated by measuring the average processing time of MATLAB interp1 function to interpolate an increasing number of candidate PVTs. Figure 4 shows the results. It was found that the mean processing time of the interp1 function can be fitted by the Eq. (8), which is also plotted in Fig. 4.

Fig. 4
figure 4

The relationship between the processing time of MATLAB in-built interp1 function and the number of interpolated candidate PVTs

$${\text{Processing}} \, \mathrm{ Time}\, \left({\text{seconds}}\right)=0.00002334{\times ({\text{No}}. \, \mathrm{of } \, {\text{candidate}} \, \mathrm{ PVTs})}^{0.3147}-0.0001216$$
(8)

Based on (8), it can be concluded that the use of interpolation with interp1 can be bounded by \(O\left({{\text{No. of candidate PVTs}}}^{0.3147}\right)\). At higher number of candidate PVTs, the interpolation process would provide less complexity compared to the iterative process, since as seen from Fig. 4, the processing time flattens out with an increasing number of PVTs. But it must be noted that since the actual interpolation process by the MATLAB software is unknown, (8) may not be accurate and is to be used only as an illustration of how using interpolation is more computationally efficient compared to iteratively repeating (6) for every candidate PVT. For proof-of-concept, Fig. 5 provides a comparison between the average computation time of the iterative and interpolation methods.

Fig. 5
figure 5

Comparison between processing time of MATLAB in-built interp1 function and iterative process

Algorithm workflow

From the previous section, it was established that the complexity of the proposed pseudorange correlogram-based positioning is highly affected by the size search space, even though interpolation was already implemented to reduce the complexity of the proposed method. Ideally, the smaller the search space, the better it is for algorithms employing the grid-based method. But at the same time, it increases the chances of the estimates to diverge, which is especially a problem for the estimation of the receiver clock bias. While estimation of other PVTs i.e., position can always converge back to the true receiver position, an insufficiently large clock bias search space for the proposed method may cause the clock bias estimates to permanently diverge, leading to a clock runoff that induces large positioning errors. Such a phenomenon is prominent when the receiver experiences blackouts i.e., no output for several seconds and continues afterward.

Hence, this section provides a workflow to optimize the pseudorange correlogram-based positioning algorithm by minimizing the span of the PVT search space and at the same time, preventing the estimated PVT, especially the clock bias from diverging. The workflow is presented in Fig. 6.

Fig. 6
figure 6

Workflow of the pseudorange correlogram-based positioning algorithm

The 2SP coordinates as well as the clock bias estimate are used for the initialization. The initial search space is made sufficiently large to ensure the proposed method can obtain its coordinates and clock bias estimates. For the next epoch, the algorithm checks whether the epoch is continuous from the previous. If no blackout occurs, the search space is minimized to allow for greater processing efficiency. If a blackout occurs, the search space will be centered back at the 2SP coordinates and is made to be large enough i.e., ± 200 m for latitude–longitude and clock bias and ± 50 m for height, to allow the proposed method estimates to converge back. While the height search space may not seem to be large due to the naturally high vertical uncertainty of GNSS positioning, position estimates can always converge back in the continuing epochs in the case the height estimate becomes inaccurate from the blackout. The clock bias search space will also be centered at the clock bias estimate from 2SP.

In Fig. 6, the clock bias search space is minimized to a span of ± 20 m, which is insufficient for the clock bias estimate to converge if the initialization point is the clock bias of the previous epoch. But from post-processing of previous datasets, the average rate of increase of the clock bias in between epochs can be obtained beforehand i.e., clock drift. Hence, the clock bias search space of the next epoch is centered at the previous clock bias, added with the mean increase of clock bias in between epochs i.e., mean clock drift.

On the other hand, the search space for the estimation of latitude, longitude, and height would simply be centered on the estimates from the previous epoch for simplicity, since the divergence of the position estimates is highly unlikely to cause the whole PVT estimates to perpetually diverge away from the true user position.

Methodology

To evaluate the performance of the proposed positioning method, we utilize the UrbanNav dataset provided by Hsu et al. (2021). The RINEX output from a u-Blox M8T receiver was used to obtain pseudorange measurements at various urban locations in Hong Kong. The receiver produces RINEX measurements at 1 Hz and includes measurements from GPS L1, Galileo E1, and Beidou B1 signals. Real-Time Kinematic (RTK) and inertial positioning from a NovAtel SPAN-CPT was used to provide centimeter-level ground truth.

As the proposed algorithm is aimed to obtain the advantage of MP mitigation from DPE, we use the UrbanNav datasets collected at Tsim Sha Tsui and Mong Kok, Hong Kong, representing a medium urban and a harsh urban environment, respectively (Hsu et al. 2021). 3D building models were used to generate a skymask to classify whether satellites are either visible or blocked. Visible satellites imply a non-obstructed view of the satellite, while blocked means otherwise.

The performance of the proposed pseudorange correlogram-based positioning is evaluated against a non-linear Weighted Least Squares (WLS) method, which represents 2SP. Similar to the pseudorange correlogram-based positioning, weights for WLS are also obtained from the carrier-to-noise ratio of each satellite (Closas et al. 2009a). Both pseudorange correlogram-based positioning and 2SP are processed with MATLAB software that runs on a computer equipped with a 5.30 GHz Intel Core i9-12900 K hexadeca-core processor and a DDR5 32 Gigabyte Random Access Memory (RAM) with a memory speed of 5200 MHz.

Results and discussion

The average processing time of the optimized search space i.e., n = 50, h = 10, and b = 20 for a single epoch, which based on (7) generates 8,783,061 PVT candidate points, is approximately 0.6721 s. But this value includes a variable number of visible satellites, which often differs between epochs. On average, the time taken to compute the pseudorange correlation from a single satellite with the optimized search space is around 0.0503 s. Dividing the value with the number of candidate PVTs yields the time to compute the pseudorange correlation for one candidate PVT i.e., a single iteration, which is 5.7299 × 10–9 s.

As the computational cost of DPE has yet to be previously investigated in much detail, in order to compare the computation cost of our proposed method with DPE, the average computation time of DPE is estimated with the mean processing time of obtaining the prompt correlation value in the tracking stage of an open-source MATLAB 2SP receiver, which we assume to be equivalent to the processing time of the DPE in obtaining correlation between a single PRN and a candidate PVT (Borre et al. 2007).

A real IF dataset with sampling frequency of 20 MHz and 1 ms of coherent integration time was processed by a 2SP and on average, it takes 1.4924 × 10–4 s or approximately 0.149 ms to compute the correlation between a satellite and a candidate PVT based on the traditional implementation. In other words, our proposed method presents a significantly faster computation time compared to DPE. But it is worth mentioning that our setup for DPE is very specific and is only to be only to be used as a reference.

The processing time for the proposed method is summarized in Table 1 below. Note that the values do not consider the processing time of the u-Blox receiver to obtain the pseudorange measurements.

Table 1 Summary of the proposed method processing time

Regarding the positioning performance, 2D positioning errors for both the pseudorange correlogram-based positioning and 2SP are shown in Figs. 7 and 8. The statistics are given in Table 2. As both positioning methods use carrier-to-noise ratios as weights for the correlations, the carrier-to-noise ratio of each satellite for both datasets are provided in Figs. 9 and 10. It is evident from Figs. 7, 8, 9, and 10 that the drop in carrier-to-noise ratios are concurrent with the drop of the number of visible satellites.

Fig. 7
figure 7

Positioning result of pseudorange correlogram-based positioning and 2SP in Tsim Sha Tsui, a medium urban environment in Hong Kong

Fig. 8
figure 8

Positioning result of the pseudorange correlogram-based positioning and 2SP in Mong Kok, a harsh urban environment in Hong Kong

Table 2 Positioning statistics of the pseudorange correlogram-based positioning and 2SP across three different degrees of urban environments
Fig. 9
figure 9

Carrier-to-noise ratio for each satellite in view of the medium urban dataset. Even though the color labeling for the satellites may repeat, the figure should give an overall picture of the carrier-to-noise ratios of the satellites at a given epoch

Fig. 10
figure 10

Carrier-to-noise ratio for each satellite in view of the harsh urban dataset

Table 2 shows that both the pseudorange correlogram-based positioning and 2SP offer very similar 2D positioning performance for the medium urban dataset, with the results favoring slightly to the proposed method. On the other hand, the label of the Mong Kok dataset as a harsh urban environment dataset is evident from the consistently lower satellite visibility compared to the Tsim Sha Tsui dataset and even being close to zero at certain epochs throughout the dataset, as seen in Fig. 8.

In Fig. 7 and 8, the superior performance of the proposed method is well-shown when the satellite visibility drops. In the Tsim Sha Tsui dataset, when the satellite visibility is high, such as between epochs 275 to 343 s, and 552 to 619 s, 2SP tends to have an edge to the pseudorange correlogram-based positioning. But when the satellite visibility is low or even the majority of satellites are blocked, Fig. 7 reveals that our proposed method manages to attain lower error compared to 2SP, such as epochs 39 to 72, where the total number of satellites fluctuate between 12 and 15, but the visible satellites remain stable at 6. Our proposed method also has lower positioning to 2SP when positioning error of 2SP can reach hundreds of meters, such as in epochs 686 to 689, and 1113 s of Fig. 8. During these cases, the error of pseudorange correlogram-based positioning is consistently lower than 2SP, with its error capped at under 100 m, apart from epochs 1224 to 1227, which we consider as outliers.

We further compare the positioning performance at epochs when the proposed method outperforms 2SP, and vice versa. Figure 11 shows the pseudorange correlogram from epoch 1113 of the Mong Kok dataset, in which 4 out of 11 satellites are blocked. The proposed method has a recorded 2D error of 19.57 m and 2SP has 149.56 m. Figure 11 shows that the proposed pseudorange correlogram-based positioning manages to exclude the deviated pseudorange correlations of PRN 22 and 30, which are labeled as blocked i.e., NLOS.

Fig. 11
figure 11

Pseudorange correlogram from the harsh urban dataset, at epoch 1113. Each colorful line represents the direction of each satellite pseudorange correlogram. The correlogram is plotted at the estimated altitude and clock bias of the proposed method. GT refers to ground truth. For the sake of illustration, a wide search space is used, centered with 2SP position

The same phenomenon can be seen in epoch 530, as seen in Fig. 12. Positioning at epoch 530 occurs right after a blackout and thus, a wide search space is used. While the error of 2SP diverges to 226.27 m, we can observe that the global maxima of the proposed method extends beyond the search space as it tries to converge to the GT, which is outside of the established search space, and manages to exclude the correlations from PRN 17, which is labeled blocked, and PRN 71, which is labeled visible, thus possibly an MP reception. For that reason, the proposed method manages to provide a lower positioning error than 2SP, with only 17.97 m of error.

Fig. 12
figure 12

Pseudorange correlogram from the harsh urban dataset, at epoch 530

As a result, the pseudorange correlogram-based positioning manages to outperform 2SP by adopting the method of excluding the correlations of error-affected satellites from DPE (Vicenzo et al. 2023). Furthermore, since the blocked satellites’ correlations are also excluded from the global maximum, the proposed method not only manages to adopt MP mitigation from DPE, but it also shows prospect in terms of NLOS mitigation.

Figure 13, on the other hand, shows the pseudorange correlogram from epoch 1841 of the Mong Kok dataset. While the proposed method has a recorded 2D error of 13.08 m, 2SP has only 0.5589 m. Figure 13 shows that the majority of the satellite pseudorange correlations converge well to the ground truth, which signify a LOS reception from most of the satellites (Vicenzo et al. 2023). However, because the satellite correlations are artificially generated and estimated by (6) instead of raw signal correlation like DPE, the position estimate fails to converge accurately to the ground truth and is deviated by a small margin. Hence, 2SP benefits from obtaining a solution that minimizes the error between the received pseudoranges and outperforms the proposed pseudorange correlogram-based positioning in larger sky visibility areas.

Fig. 13
figure 13

Pseudorange correlogram from the harsh urban dataset, at epoch 1841

This explains why we notice a larger 2D positioning performance improvement to 2SP for the Mong Kok dataset compared to the Tsim Sha Tsui dataset, as seen from Table 2, since the medium urban dataset presents an overall larger sky visibility that would give higher number of visible satellites. To that end, future research may delve into developing a switching algorithm that switches between the pseudorange correlogram-based positioning and 2SP depending on the degree of urbanization for an overall more robust urban positioning. This may be done by using environmental recognition schemes previously introduced by our research group. For example, Xu et al. (2019) developed a Support Vector Machine (SVM)-based classifier to classify signals into either LOS, NLOS, or MP. This classifier can be used as a form of an environment context awareness algorithm since the number of MP/NLOS detected is directly correlated to the degree of urbanization of an environment i.e., the more urbanized an environment is, the more MP/NLOS received by the GNSS receiver. Another example is from Zhang et al. (2020), which makes use of shadow matching from 3D model aided (3DMA) GNSS to differentiate LOS satellites with NLOS.

We further evaluate the performance of the proposed pseudorange correlogram-based positioning by comparing its positioning error from the RINEX datasets against 2SP, shown in Fig. 14. The curve fit shows that the 2D error of pseudorange correlogram-based positioning tends to flatten out with the increasing positioning error of 2SP. But as the proposed method fails to outperform 2SP in large sky visibility areas where 2SP errors are typically low, the curve fit pointed out a positioning bias from the pseudorange correlogram-based positioning when 2SP error is zero and only places the error of pseudorange correlogram-based positioning to be lower than 2SP after only approximately 12 m of 2SP error. Consequently, the proposed method shows better promise for applications in harsh urban environments.

Fig. 14
figure 14

2D error of the proposed algorithm with respect to WLS, which represents 2SP

For the sake of completion, we compare the performance of the proposed pseudorange correlogram-based positioning with an open-sourced 2SP MATLAB code to provide a clearer picture on how the proposed algorithm is expected to outperform 2SP. The 2SP will use the open-source 2SP MATLAB SDR by Borre et al. (2007), which is based on a non-weighted Least Squares (LS) method. The 2SP SDR uses a 1 ms coherent integration time. The proposed method will make use of the pseudorange measurements, carrier-to-noise ratios, and satellite positions from the 2SP SDR for positioning.

As the 2SP SDR utilizes IF samples, which are unavailable from a u-Blox receiver, static IF datasets from a SPIRENT simulator were used instead. Two simulation datasets were used, one to simulate a medium urban area and the other a harsh urban. The medium urban dataset has 8 GPS L1 C/A satellites in total, with one simulated MP of 0.1 chip delay error for the reflected signal and one NLOS with 0.2 chip delay error. The harsh urban on the other hand has 9 satellites in total, with three simulated MP, one with 0.05 chip delay error and two with 0.1 chip delay error for the reflected signal, and one NLOS with 0.3 chip delay error.

As seen from Fig. 15 and 16, the results from both simulated datasets show that the proposed pseudorange correlogram-based positioning manages to adopt DPE advantages of excluding error-affected satellites i.e., both MP and NLOS, and outperforms 2SP. It must be reiterated that such a clear positioning improvement cannot be observed with the real RINEX datasets due to the uncertainties and unknown parameters of the MP and NLOS reception in real urban scenarios.

Fig. 15
figure 15

Proposed method and 2SP positioning error in a simulated medium urban area. The proposed method has a mean error of 1.48 m and 2SP 17.53 m, meaning that the proposed method outperforms by 91.6%

Fig. 16
figure 16

Proposed method and 2SP positioning error in a simulated harsh urban area. The proposed method has a mean error of 8.73 m and 2SP 10.98 m, meaning that the proposed method outperforms by 20.5%

Analyzing the robustness of the proposed method from each error source independently, MP and NLOS satellites were removed from the medium urban simulated dataset to create MP-only and NLOS-only conditions. Figure 17 and 18 show the positioning errors from the MP-only and NLOS-only conditions, respectively.

Fig. 17
figure 17

Proposed method and 2SP positioning error with a single MP satellite of 0.1 chip delay out of 7 satellites in view. The proposed method has a mean error of 1.57 m and 2SP 1.43 m

Fig. 18
figure 18

Proposed method and 2SP positioning error with a single NLOS satellite with 0.2 chip delay out of 7 satellites in view. The proposed method has a mean error of 3.03 m and 2SP 47.35 m

Since the resulting pseudorange error from the code delay of MP are relatively small i.e., under 10 m for a 0.1 chip delay error for the tracking configurations we used, it presents more difficulty for the pseudorange correlogram-based positioning to exclude the correlation of the MP satellite. For that reason, we can observe from Fig. 17 that our proposed method performs similarly with 2SP under only one MP satellite.

On the other hand, NLOS satellites tend to have larger pseudorange errors that made it easier by the pseudorange correlogram-based positioning to exclude, as well as a much lower carrier-to-noise ratio compared to line-of-sight satellites, which makes NLOS satellites to be significantly weighted down following (6). Ergo, we observe a significant outperformance of 93.61% from the pseudorange correlogram-based positioning against 2SP in the NLOS-only simulated dataset, as shown in Fig. 18. From Figs. 17 and 18, we deduce that the pseudorange correlogram-based positioning performs better against errors from NLOS compared to MP.

The robustness of our proposed method against extreme errors may extend its applications to geodetic networks. In the field of geodesy, GNSS are used for establishing geodetic networks for various surveying purposes, mapping activities, geoinformation, and infrastructure works (Koch et al. 2019). Similar to GNSS application in positioning, outliers such as MP and NLOS may also impair the accuracy of the estimated parameters. Thus, robust estimators, such as Least Median of Squares (LMS) and Least Trimmed Squares (LTC) are typically employed in geodetic adjustments due to their insensitivity to outliers. As noted in Fig. 18, the much-improved position accuracy obtained by our proposed method compared to LS may give an opportunity for applications of the pseudorange correlogram-based positioning as a robust estimator for geodesy applications.

The result laid out in Fig. 13 may give the impression that the proposed pseudorange correlogram-based positioning may not attain optimum solution from errors coming only from thermal noise i.e., open-sky conditions. It must be reminded that larger sky visibility areas in urban environments does not fully signify consistent LOS measurements from visible satellites (satellites not blocked by buildings), and it is entirely possible that the majority of the visible satellite pseudoranges are affected by small errors from MP. On that account, the bias shown in Fig. 13 is not an inherent characteristic of the proposed pseudorange correlogram-based positioning in an open-sky environment.

For further clarification, both MP and NLOS satellites were removed from the medium urban dataset to generate an open-sky dataset. Figure 19 shows that both the pseudorange correlogram-based positioning and 2SP attain very similar positioning result, which denotes that the proposed method attains optimum solution the same way as LS from 2SP. Note that the slightly higher positioning error from the proposed method is due to the biased nature of the grid-based method.

Fig. 19
figure 19

Proposed method and 2SP positioning error in a simulated open-sky area, with 6 satellites in view. The proposed method has a mean error of 1.41 m and 2SP 1.32 m

Conclusion

We have presented a novel positioning method based on DPE to acquire its benefit of MP mitigation for enhanced positioning in urban environments by making use of DPE MLE method of solving the PVT in the navigation domain. Differing from DPE, the proposed pseudorange correlogram-based positioning takes advantage of the relationship between the ranges of candidate PVT to satellites and the received pseudorange values to generate a correlogram over the candidate PVTs, which presents a much-reduced computational load compared to DPE, that necessitates the use of raw IF signal correlation.

A workflow was also introduced to reduce the proposed pseudorange correlogram-based positioning computational complexity by reducing the PVT search space. Tested with open-source urban datasets, the pseudorange correlogram-based positioning offers an overall similar performance to 2SP in a medium urban environment and more robust positioning in a harsh urban environment, with a reduced positioning error of around 19% respectively in the latter. The proposed method was also tested with IF simulation data and was shown to outperform an open-sourced 2SP algorithm by up to 91%.

While the positioning improvement is not notably large, positioning results indicate that the proposed method shows promise in providing more accurate positioning in cases where 2SP positioning diverges to hundreds of meters through the exclusion of error-affected satellites in the pseudorange correlogram. Not only does the algorithm manage to adopt the MP mitigation capability of DPE, but it also shows prospect in NLOS mitigation. The case is evident in low satellite visibility areas where surrounding urban structures often induces MP reception and abundant satellites are NLOS. As MP and NLOS correlations deviate from the GT, the use of MLE by the proposed method allows for the exclusion of error-affected correlations from the final position estimate and harnesses the remaining LOS correlations to obtain a more accurate position in comparison with 2SP. Additionally, as destructive MP and NLOS tend to have lower carrier-to-noise ratios compared to the LOS signals, their correlations are weighted down more effectively by (6) compared to WLS. This allows the proposed method to outperform 2SP in cases even when the majority of satellites are not visible i.e., NLOS. This puts our proposed method to bear potential as a robust estimator in the field of geodesy, where geodetic adjustments typically rely on robust estimators to counteract outliers in the observations.

But the use of pseudorange correlation instead of IF level correlation was found to result in a positioning bias, which causes the proposed method to falter behind 2SP in cases with larger sky visibility. For that reason, the pseudorange correlogram-based positioning is proposed as an alternative to 2SP in harsh urban areas and a balanced compromise between the high computational load of DPE and its accurate positioning.