Introduction

Recently, Low Earth Orbit (LEO) communication constellations such as Starlink and OneWeb have rapidly developed. These broadband internet providers plan to deploy thousands of satellites into their constellations. Compared with Global Navigation Satellite System (GNSS) satellites in Medium Earth Orbit, LEO satellites have advantages in received signal strength, rapid change of geometry in ranging and large Doppler shift in received frequency (Reid et al. 2018). These desirable attributes would be useful in GNSS-challengeable places like urban canyons and indoors. Therefore, LEO constellations have been considered a promising alternative positioning, navigation and timing (PNT) resource.

Existing applications of LEO satellites in navigation are mainly in two aspects, i.e., augmenting GNSS or providing PNT services independently. In the aspect of GNSS augmentation, LEO satellites can enhance the orbit determination for GNSS satellites with their onboard GNSS observations (Zhao et al. 2017; Zeng et al. 2018) and broadcast navigation augmentation information (Meng et al. 2018). Besides, Joerger et al. (2010) and Li et al. (2019) proposed some combined GNSS/LEO observation models to improve convergence performance for precise point positioning (PPP).

There are mainly two methods to provide standalone PNT services with LEO satellites. One is to design new navigation signals and payloads to support navigation capabilities. For example, research groups in the Satelles company and Iridium NEXT designed a Satellite Time and Location (STL) signal to provide PNT services (Lawrence et al. 2016). Reid et al. (2016) studied the approaches of leveraging LEO constellations for navigation. Their results indicate that using the LEO constellation for navigation is feasible. The other is to exploit LEO satellites in opportunistic navigation frameworks. The first issue to be addressed is how to estimate the states (position, velocity and clock drift) of the satellite and receiver simultaneously, as the orbital elements of LEO satellites are not known precisely. Ardito et al. (2019) solved this problem using a simultaneous tracking and navigation framework. Khalife et al. (2020) proposed a differential framework to deal with this problem. The other challenge is to extract navigation observables from the LEO satellite signals. Farhangian and Landry (2020), Khalife and Kassas (2019a, 2019b) and Orabi et al. (2021) designed specialized receivers to obtain the pseudorange, carrier phase and Doppler measurements. Among them, the Doppler shift is generally easy to measure from these modulated signals (Khalife et al. 2021; Psiaki and Slosman 2019). The feasibility is the main advantage of Doppler measurements, especially for LEO communication satellites. Besides, the Doppler measurement is less affected by multipath effects than pseudorange. The Doppler shifts can also be used for velocity estimation (Chen et al. 2013), orbit and attitude determination (Jayles et al. 2010; Park et al. 2011). Thus, the Doppler shift observations have attracted much attention in LEO-based navigation.

In LEO-based Doppler positioning, the pioneering early TRANSIT navigation system is the first satellite-based Doppler positioning system (Kershner and Newton 1962). This system was introduced for military applications in 1964 and then was released for public use to provide positioning and navigation service in 1968 (Kouba 1983). It had more than 10 satellites in polar orbits at an altitude of about 1100 km. Typically one receiver could observe only one satellite at a time. The point positioning accuracy was around 100–200 m using about 2 min of Doppler shift observations. The positioning accuracy can be further improved with ionospheric delay corrected by dual-frequency (150 MHz and 400 MHz). For stationary receivers, the sub-meter positioning accuracy could be achieved using the precise ephemeris determined by the US Defense Mapping Agency and observations over a period of several days with 30 or more satellite passes (Kouba 1983). The relative position of simultaneously observing stations separated by distances up to 250 km could be computed with an accuracy of better than 40 cm at eight-hour intervals (Anderle 1979). With the advent of the Global Positioning System (GPS) and its superior performance, the TRANSIT was decommissioned in 1996.

In recent years, Benzerrouk et al. (2019), Tan et al. (2019) and Neinavaie et al. (2021) have explored the approaches of Doppler positioning using LEO constellations. The positions and velocities of LEO satellites are computed from the Two-line Element (TLE) files with the Simplified General Perturbations model 4 (SGP4). However, the position error of the satellite is about 2–3 km as the orbit is predicted 2 days beyond the epoch at which the TLE file was generated (Vallado and Crawford 2008). Besides, Khalife and Kassas (2019a), Neinavaie et al. (2021) and Orabi et al. (2021) assumed that the satellite and receiver clock drifts did not change with time and lumped them into one term in the estimation. Moreover, they ignored the ionospheric and tropospheric delay rates in the measurements due to their negligible amounts compared with the satellite velocity errors. Nevertheless, these error sources should be carefully considered in the LEO-based Doppler positioning system, or they will reduce the positioning accuracy (Psiaki 2021).

We propose a point-solution algorithm for GNSS-like navigation systems operated in LEO to analyze the error sources of Doppler positioning. LEO satellites could be modified to be equipped with navigation payloads and broadcast signals (e.g., beacon signals, short bursts) to support navigation capabilities (Reid et al. 2016; Psiaki 2021). The proposed algorithm for these LEO-based navigation systems is of great significance as they are becoming reality. In the following sections, we first describe the principle of Doppler positioning. Then, we analyze the main error sources and the Doppler positioning performance with LEO satellites. We test the sensitivity to the initial position error for the proposed algorithm and discuss the possible diversity between reality and the simulations. Finally, the conclusions are drawn.

Method and algorithm

The existing Doppler positioning methods with LEO satellites usually need to collect sufficient observations over a period of time for a static receiver (Benzerrouk et al. 2019; Tan et al. 2019; Neinavaie et al. 2021). The receiver position is calculated by multiple Doppler measurements of different satellites at different epochs. However, the researchers assumed that the satellite and receiver clock drifts were constant during the period of observation. Moreover, they used TLE files to compute the satellites’ positions and ignored atmospheric delay rates in the measurements, both of which will decrease the positioning accuracy.

We propose a single-epoch least-square method for Doppler positioning with LEO satellites. Adequate Doppler measurements can be obtained in just one epoch for such a system. The proposed algorithm can simultaneously estimate the velocity, position and clock drift of the receivers, and models are used to correct for the satellite orbital errors, clock drifts and atmospheric delay rates. We introduce the Doppler dilution of precision (DDOP) to evaluate the positioning performance preliminarily.

Undifferenced Doppler positioning

The Doppler effect is caused by the relative movement between the transmitter and receiver and can be described as (Braasch and Dierendonck 1999):

$$D = f_{R} - f_{T} = \pm \frac{{v_{{{\text{los}}}} }}{c} \cdot f_{T} = \pm \frac{{v_{{{\text{los}}}} }}{{\lambda_{{f_{T} }} }}$$
(1)

where D is Doppler frequency shift; fR and fT are the received and transmitted frequencies, respectively; c is the velocity of light; \(\lambda_{{f_{T} }}\) is the wavelength of the transmitted signal; and vlos is the relative velocity magnitude between transmitter (e.g., satellite) and receiver in line-of-sight (LOS) direction. The Doppler shift is positive if the transmitter and receiver are moving toward, while it is negative if they are moving away. vlos is also referred to as the pseudorange rate (Braasch and Dierendonck 1999):

$$v_{los} = \left( {{\mathbf{v}}^{{\text{s}}} - {\mathbf{v}}_{r} } \right) \cdot \frac{{{\mathbf{p}}^{{\text{s}}} - {\mathbf{p}}_{r} }}{{\left\| {{\mathbf{p}}^{{\text{s}}} - {\mathbf{p}}_{r} } \right\|}} = \dot{\rho }$$
(2)

where \({\mathbf{v}}^{s} = \left[ {v_{x}^{s} ,v_{y}^{s} ,v_{z}^{s} } \right]^{{\text{T}}}\) and \({\mathbf{v}}_{r} = \left[ {v_{{r_{x} }} ,v_{{r_{y} }} ,v_{{r_{z} }} } \right]^{{\text{T}}}\) are the satellite and receiver velocity vectors, respectively; and \({\mathbf{p}}^{{\text{s}}} = \left[ {x^{s} ,y^{s} ,z^{s} } \right]^{{\text{T}}}\) and \({\mathbf{p}}_{r} = \left[ {x_{r} ,y_{r} ,z_{r} } \right]^{{\text{T}}}\) are the satellite and receiver position vectors, respectively; \(\dot{\rho }\) is the pseudorange rate, i.e., the first derivative of pseudorange with respect to time. The pseudorange measurement equation is (Li and Huang 2013):

$$P_{r}^{\;s} = \left\| {{\mathbf{p}}^{{\text{s}}} - {\mathbf{p}}_{r} } \right\| + c \cdot (\delta t_{r} - \delta t^{s} ) + c \cdot dR_{r}^{s} + T_{r}^{\;s} + I_{r,f}^{\;s} + dE_{r}^{s} + \varepsilon_{p}$$
(3)

where \(P_{r}^{\;s}\) is pseudorange; \(\delta t^{s}\) and \(\delta t_{r}\) are the satellite and receiver clock offsets, respectively; \(T_{r}^{\;s}\) and \(I_{r,f}^{\;s}\) are the tropospheric and ionospheric delays, respectively; \(\varepsilon_{p}\) is the unmodeled errors including the observational noise and multipath error; and \(dR_{r}^{s}\) is the relativistic effect correction to satellite clock offset (Petit and Luzum 2010):

$$dR_{r}^{s} = \frac{ - 2}{{c^{2} }}\left( {{\mathbf{p}}^{s} \cdot {\mathbf{v}}^{s} } \right)$$
(4)

\(dE_{r}^{s}\) is the Sagnac effect term which concerns the propagation of electromagnetic signals in Earth rotating reference frame (Gulklett 2003):

$$dE_{r}^{s} = \frac{{w_{e} }}{c}\left( {x^{s} \cdot y_{r} - y^{s} \cdot x_{r} } \right)$$
(5)

where \(w_{e}\) is the Earth rotation angular velocity. The pseudorange rate equation is:

$$- \lambda_{{f_{T} }} \cdot D_{r}^{\;s} = \dot{P}_{r}^{\;s} = \left( {{\mathbf{v}}^{s} - {\mathbf{v}}_{r} } \right) \cdot \frac{{{\mathbf{p}}^{s} - {\mathbf{p}}_{r} }}{{\left\| {{\mathbf{p}}^{s} - {\mathbf{p}}_{r} } \right\|}} + c \cdot (\delta \dot{t}_{r} - \delta \dot{t}^{s} ) + c \cdot d\dot{R}_{r}^{s} + \dot{T}_{r}^{\;s} + \dot{I}_{r,f}^{\;s} + d\dot{E}_{r}^{s} + \varepsilon_{{\dot{\rho }}}$$
(6)

where \(\dot{P}_{r}^{\;s}\) is the pseudorange rate; \(\delta \dot{t}_{r}\) and \(\delta \dot{t}^{s}\) are the satellite and receiver clock drifts, respectively; \(\dot{T}_{r}^{\;s}\) and \(\dot{I}_{r,f}^{\;s}\) are the tropospheric and ionospheric delay rates, respectively; \(d\dot{R}_{r}^{s}\) is the relativistic effect correction to satellite clock drift; and \(d\dot{E}_{r}^{s}\) is the Sagnac effect of the range rate, which can be derived from:

$$d\dot{R}_{r}^{s} = \frac{ - 2}{{c^{2} }}\left( {{\dot{\mathbf{p}}}^{s} \cdot {\mathbf{v}}^{s} + {\mathbf{p}}^{s} \cdot {\dot{\mathbf{v}}}^{s} } \right)$$
(7)
$$d\dot{E}_{r}^{s} = \frac{{w_{e} }}{c}\left( {v_{x}^{s} \cdot y_{r} + v_{{r_{y} }} \cdot x^{s} - v_{y}^{s} \cdot x_{r} - v_{{r_{x} }} \cdot y^{s} } \right)$$
(8)

\(\varepsilon_{{\dot{\rho }}}\) denotes all the unmodeled errors. The satellite velocity, position and clock drift can be obtained from the ephemeris. The linearized equation of (6) with the initial receiver value \({\mathbf{X}}_{{\mathbf{0}}} = \left[ {x_{r}^{0} ,y_{r}^{0} ,z_{r}^{0} ,v_{{r_{x} }}^{0} ,v_{{r_{y} }}^{0} ,v_{{r_{z} }}^{0} ,\delta \dot{t}_{r,0} } \right]^{T}\) is as follows:

$$\begin{aligned} \dot{\rho }_{i} \approx & \dot{\rho }_{i}^{0} + \frac{{\partial \dot{\rho }_{i} }}{{\partial x_{r} }} \cdot \Delta x_{r} + \frac{{\partial \dot{\rho }_{i} }}{{\partial y_{r} }} \cdot \Delta y_{r} + \frac{{\partial \dot{\rho }_{i} }}{{\partial z_{r} }} \cdot \Delta z_{r} + \frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{x} }} }} \cdot \Delta v_{{r_{x} }} + \frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{y} }} }} \cdot \Delta v_{{r_{y} }} + \frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{z} }} }} \cdot \Delta v_{{r_{z} }} + \frac{{\partial \dot{\rho }_{i} }}{{\partial \delta \dot{t}_{r} }} \cdot \Delta \delta \dot{t}_{r} + \varepsilon_{{\dot{\rho }_{i} }} \\ \approx & \dot{\rho }_{i}^{0} + \left[ {\frac{{\Delta v_{{x_{i} }} }}{{\rho_{i}^{0} }} \cdot \left( {e_{{x_{i} }}^{2} - 1} \right) + \frac{{\Delta v_{{y_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{x_{i} }} \cdot e_{{y_{i} }} + \frac{{\Delta v_{{z_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{x_{i} }} \cdot e_{{z_{i} }} } \right] \cdot \Delta x_{r} \\ & + \left[ {\frac{{\Delta v_{{x_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{y_{i} }} \cdot e_{{x_{i} }} + \frac{{\Delta v_{{y_{i} }} }}{{\rho_{i}^{0} }} \cdot \left( {e_{{y_{i} }}^{2} - 1} \right) + \frac{{\Delta v_{{z_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{y_{i} }} \cdot e_{{z_{i} }} } \right] \cdot \Delta y_{r} \\ & + \left[ {\frac{{\Delta v_{{x_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{z_{i} }} \cdot e_{{x_{i} }} + \frac{{\Delta v_{{y_{i} }} }}{{\rho_{i}^{0} }} \cdot e_{{z_{i} }} \cdot e_{{y_{i} }} + \frac{{\Delta v_{{z_{i} }} }}{{\rho_{i}^{0} }} \cdot \left( {e_{{z_{i} }}^{2} - 1} \right)} \right] \cdot \Delta z_{r} \\ & - e_{{x_{i} }} \cdot \Delta v_{{r_{x} }} - e_{{y_{i} }} \cdot \Delta v_{{r_{y} }} - e_{{z_{i} }} \cdot \Delta v_{{r_{z} }} + c \cdot \Delta \delta \dot{t}_{r} + \varepsilon_{{\dot{\rho }_{i} }} \\ \end{aligned}$$
(9)

where \(\rho_{i}^{0}\) and \(\dot{\rho }_{i}^{0}\) are the initial pseudorange and pseudorange rate, respectively; \(\Delta v_{{x_{i} }} = v_{x}^{s,i} - v_{{r_{x} }}^{0}\), \(\Delta v_{{y_{i} }} = v_{y}^{s,i} - v_{{r_{y} }}^{0}\) and \(\Delta v_{{z_{i} }} = v_{z}^{s,i} - v_{{r_{z} }}^{0}\) are the relative velocities between the satellite and receiver; \(\left[ {e_{{x_{i} }} ,e_{{y_{i} }} ,e_{{z_{i} }} } \right]^{T} = \left[ {\frac{{x^{s,i} - x_{r}^{0} }}{{\rho_{i}^{0} }},\frac{{y^{s,i} - y_{r}^{0} }}{{\rho_{i}^{0} }},\frac{{z^{s,i} - z_{r}^{0} }}{{\rho_{i}^{0} }}} \right]^{T}\) is the direction cosine of receiver pointing to the satellite; and \({\mathbf{\Delta X}}_{r} = \left[ {\Delta x_{r} ,\Delta y_{r} ,\Delta z_{r} ,\Delta v_{{r_{x} }} ,\Delta v_{{r_{y} }} ,\Delta v_{{r_{z} }} ,\Delta \delta \dot{t}_{r} } \right]^{T}\) is a correction to the initial value. Combining the observations of M satellites, the least-square iteration equation and the design matrix are:

$${\mathbf{L}} = {\mathbf{G}} \cdot \left[ \begin{gathered} \Delta x_{r} \hfill \\ \Delta y_{r} \hfill \\ \Delta z_{r} \hfill \\ \Delta v_{{r_{x} }} \hfill \\ \Delta v_{{r_{y} }} \hfill \\ \Delta v_{{r_{z} }} \hfill \\ \Delta \delta \dot{t}_{r} \hfill \\ \end{gathered} \right] + \left[ {\begin{array}{*{20}c} {\varepsilon_{{\dot{\rho }_{i} }} } \\ {\varepsilon_{{\dot{\rho }_{j} }} } \\ \vdots \\ {\varepsilon_{{\dot{\rho }_{k} }} } \\ \end{array} } \right] = {\mathbf{G}} \cdot {\mathbf{\Delta X}}_{r} + {{\varvec{\upvarepsilon}}}_{{{\dot{\mathbf{\rho }}}}}$$
(10)
$${\mathbf{G}} = \left[ {\begin{array}{*{20}c} {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{1} }}{{\partial x_{r} }}} & {\frac{{\partial \dot{\rho }_{1} }}{{\partial y_{r} }}} & {\frac{{\partial \dot{\rho }_{1} }}{{\partial z_{r} }}} & {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{1} }}{{\partial v_{{r_{x} }} }}} & {\frac{{\partial \dot{\rho }_{1} }}{{\partial v_{{r_{y} }} }}} & {\frac{{\partial \dot{\rho }_{1} }}{{\partial v_{{r_{z} }} }}} & {\frac{{\partial \dot{\rho }_{1} }}{{\partial \delta \dot{t}_{r} }}} \\ \end{array} } \\ \end{array} } \\ \cdots \\ {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{i} }}{{\partial x_{r} }}} & {\frac{{\partial \dot{\rho }_{i} }}{{\partial y_{r} }}} & {\frac{{\partial \dot{\rho }_{i} }}{{\partial z_{r} }}} & {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{x} }} }}} & {\frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{y} }} }}} & {\frac{{\partial \dot{\rho }_{i} }}{{\partial v_{{r_{z} }} }}} & {\frac{{\partial \dot{\rho }_{i} }}{{\partial \delta \dot{t}_{r} }}} \\ \end{array} } \\ \end{array} } \\ \cdots \\ {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{m} }}{{\partial x_{r} }}} & {\frac{{\partial \dot{\rho }_{m} }}{{\partial y_{r} }}} & {\frac{{\partial \dot{\rho }_{m} }}{{\partial z_{r} }}} & {\begin{array}{*{20}c} {\frac{{\partial \dot{\rho }_{m} }}{{\partial v_{{r_{x} }} }}} & {\frac{{\partial \dot{\rho }_{m} }}{{\partial v_{{r_{y} }} }}} & {\frac{{\partial \dot{\rho }_{m} }}{{\partial v_{{r_{z} }} }}} & {\frac{{\partial \dot{\rho }_{m} }}{{\partial \delta \dot{t}_{r} }}} \\ \end{array} } \\ \end{array} } \\ \end{array} } \right]_{m \times 7}$$
(11)

where L is a column vector of observations; \({{\varvec{\upvarepsilon}}}_{{{\dot{\mathbf{\rho }}}}}\) is a vector of observation noises.\({\mathbf{\Delta X}}_{r}\) is the vector of corrections and can be computed by \({\mathbf{\Delta X}}_{r} = \left( {{\mathbf{G}}^{T} \cdot {\mathbf{W}} \cdot {\mathbf{G}}} \right)^{ - 1} {\mathbf{G}}^{T} \cdot {\mathbf{W}} \cdot {\mathbf{L}}\). W is the weight matrix, which is usually defined as the inverse of the Doppler measurement error covariance matrix. If the Doppler errors are uncorrelated with equal variances, W is a diagonal matrix. Then, the solution is obtained by \({\mathbf{X}}_{0} + {\mathbf{\Delta X}}_{r}\) when the iteration process converges. Using the above method, the receiver velocity, position and clock drift can be solved with at least 7 different satellites at the same time.

Doppler dilution of precision

The positioning error of standard single point positioning can be expressed as (Guan et al. 2020):

$$\sigma_{3D} = {\text{GDOP}} \cdot \sigma_{{{\text{URE}}}}$$
(12)

where \(\sigma_{{{\text{URE}}}}\) is the user ranging error, including clock error, atmospheric effect, etc. GDOP is the geometric dilution of precision and can reflect the positioning error caused by the geometry of visible satellites. Similarly, the relation between positioning error and DDOP is (Morales-Ferre et al. 2020):

$$\sigma_{{3{\text{D}},{\text{Doppler}}}} = {\text{DDOP}} \cdot \sigma_{{{\text{URE}},{\text{Doppler}}}}$$
(13)

where \(\sigma_{{{\text{URE}},{\text{Doppler}}}}\) is the user Doppler ranging error, which is related to the clock drift, atmospheric delay rate, etc. In the DDOP calculation, for the sake of simplicity, the identity weighting is used, i.e., the Doppler measurement weight matrix is diagonal with all the diagonal elements equal to 1. Thus, DDOP can be computed using \({\text{DDOP}} = \sqrt {{\text{trace}}[({\mathbf{G}}^{T} \cdot {\mathbf{G}})^{ - 1} ]}\). According to (13), reducing the DDOP is a way to improve the Doppler positioning accuracy. The velocity and altitude of GNSS satellites are about 3.9 km/s and 20,200 km, respectively, making the item \({{\Delta v_{{x_{1} }} \cdot \left( {e_{{x_{1} }} \cdot e_{{x_{1} }} - 1} \right)} \mathord{\left/ {\vphantom {{\Delta v_{{x_{1} }} \cdot \left( {e_{{x_{1} }} \cdot e_{{x_{1} }} - 1} \right)} {\rho_{1} }}} \right. \kern-0pt} {\rho_{1} }}\) of matrix G in the order of 10–4 and the GNSS-DDOP in the order of 104. For LEO satellites, the item \({{\Delta v_{{x_{1} }} \cdot \left( {e_{{x_{1} }} \cdot e_{{x_{1} }} - 1} \right)} \mathord{\left/ {\vphantom {{\Delta v_{{x_{1} }} \cdot \left( {e_{{x_{1} }} \cdot e_{{x_{1} }} - 1} \right)} {\rho_{1} }}} \right. \kern-0pt} {\rho_{1} }}\) increases to 10–2 and the LEO-DDOP reduces to 102. The LEO-DDOP is less than GNSS-DDOP by 2 orders; thus, the accuracy of LEO Doppler positioning should be 100 times better than GNSS. When there are many visible satellites, one feasible way to reduce DDOP is selecting a group of satellites from all the visible satellites to improve the structure of G matrix and minimize DDOP.

Simulation and experiment

Since most LEO constellations are designed for communication and are still under construction, no public data are released for navigation applications. Thus, we have to simulate the ephemeris and ground observations for LEO satellites. First, we describe the data simulation and positioning processing strategies. Then we analyze the main error sources and the performance of undifferenced Doppler positioning, and discuss the possible diversity between reality and the simulations.

Data simulation and positioning processing strategies

Among all LEO constellations, Starlink is a typical heterogeneous mega-constellation consisting of different orbital shells (Cakaj 2021). An orbital shell is a walker constellation (Walker 1984); the total number of satellites, the number of orbital planes, the orbital altitude and inclination describe its geometric configuration. In order to investigate the influence of different constellations on positioning, two Starlink-like LEO constellations are simulated and their orbital shells’ parameters (Zhang et al. 2022) are shown in Table 1. The 1584 satellites of Constellation A are evenly distributed on the first orbital shell. Constellation B has 4408 satellites and consists of 5 orbital shells. These satellites orbit at altitudes of 540–570 km. With orbital inclinations of 53°, 53.2°, 70° and 97.6°, Constellation B can guarantee global coverage.

Table 1 Orbital shells’ parameters of Starlink-like Constellation A and B

In the simulation, the initial orbital elements of satellites are calculated according to the parameters in Table 1. Then, the satellite position and velocity at any time are propagated using orbital force models. The N-Body perturbation employs JPL DE405 (Earth, Sun, Moon, etc.) (Standish 1998). The other orbital force models include Earth gravity of degree 100 and order 100 (Reigber et al. 2005), solar radiation pressure (Ziebart 2004), DTM94 model for atmospheric density (Berger et al. 1998), tides and relativistic effects (IERS 2010 convention) (Petit and Luzum 2010). Finally, some random errors are added to simulate the orbital errors. The satellite position and velocity coordinates are simulated in the Earth-centered inertial (ECI) frame and then transformed into the Earth-centered Earth-fixed (ECEF) frame.

In early times, LEO satellites are equipped with crystal oscillators or GPS receivers to provide the frequency standard. However, their clock offsets and drifts significantly depend on the hardware. Rybak et al. (2021) recently proposed using the Clip Scale Atomic Clocks (CSACs) for small satellite navigation systems. The CSACs’ clock stability at an average time of 100 min is about 10–12 s/s (Reid et al. 2016). Using the polynomial model proposed by Tavella (2008), the clock offset and drift of every LEO satellite are simulated with standard deviations of 1 us and 10–12 s/s, respectively.

Then, 648 stations with a spatial resolution of 10° are chosen and their distribution is shown in Fig. 1. The data simulation and positioning processing strategies are shown in Table 2. The receiver is assumed to measure a valid Doppler shift if the satellite lies above a 5° elevation angle. The C-band signal frequencies are chosen because they suffer from smaller ionospheric effects than VHF/L-band and lower attenuation (e.g., free space loss, rainfall attenuation) than Ku/Ka/V-band (Irsigler et al. 2004).

Fig. 1
figure 1

Distribution of 648 stations with a spatial resolution of 10°

Table 2 Data simulation and Doppler positioning processing strategies

In the observation simulation, the geometric distance between the station and the satellite is first calculated. Then, the simulated Doppler observation is obtained by adding various error terms. Among them, the atmospheric delay rates are derived from the atmospheric delays by taking difference between epochs. The tropospheric delay is determined using the Saastamoninen model, the global pressure and temperature model 3 (GPT3) and the Vienna mapping functions 3 (VMF3) (Landskron and Böhm 2018). The ionospheric delay is obtained from NeQuick-G model (Aragon-Angel et al. 2019). Finally, some random errors are added to approximate the real observation. Previous studies (Neinavaie et al. 2021; Psiaki and Slosman 2019) show that the Doppler shifts can be measured precisely. Jiang et al. (2022) set the accuracy of the measured Doppler shift to be 0.1 Hz. Thus, the Doppler measurement noise is simulated by a zero-mean Gaussian distribution with a standard deviation of 0.1 Hz.

In the following sections, the receiver position and velocity are solved in ECEF coordinate and then converted into a north–east–up frame centered at the true receiver position. The root mean square (RMS) is used to evaluate the positioning accuracy.

Error analysis

LEO satellites travel at high speeds, rapidly changing their positions and elevation angles. This makes the LEO-based positioning more sensitive to satellite-related errors, i.e., the satellite position and velocity errors. Besides, the ionospheric and tropospheric delay rates become significant and should be considered in detail. Therefore, the main error sources in LEO-based Doppler positioning should be discussed.

Satellite position and velocity errors

One of the main error sources that reduce positioning accuracy is satellite position and velocity errors. The orbit determination of GNSS satellites has been widely studied, and the precision is at the centimeter level or better. However, this may be challenging for LEO satellites without onboard GNSS receivers and atomic clocks (Morales et al. 2019). Blindly using the positions of LEO satellites extrapolated by the TLE and SGP4 will reduce the positioning accuracy. The impact of satellite orbital errors in Doppler positioning should be considered in detail. In the simulation, random errors with different orders are added to the satellite position or velocity. The positioning results are shown in Table 3, where N, E and U denote north, east and up directions, respectively.

Table 3 Doppler positioning accuracy with different orbital errors

The results show that the satellite position error of several meters and velocity error of several centimeters per second will reduce the positioning accuracy. Afterward, when the satellite orbital error increases by one order of magnitude, the positioning error also increases by one order of magnitude. The 30 m per-axis position error and 30 cm/s per-axis velocity error reduce the positioning accuracy by 5.28 and 7.77 times, respectively. The 300 m position error and 3 m/s velocity error increase the positioning error by 50–77 times. Worse still, the errors of 3 km and 30 m/s will cause about 3 km positioning errors.

Ionospheric delay rates

The ionospheric delay rate can be accessible through the first derivative of ionospheric delay with respect to time or simply taking the difference between epochs:

$$\dot{I}_{r,f}^{\;s} (t) = \frac{{I_{r,f}^{\;s} (t + \Delta t) - 2I_{r,f}^{\;s} (t) + I_{r,f}^{\;s} (t - \Delta t)}}{2\Delta t}$$
(14)

where t is the current epoch; Δt is the sampling interval; and \(\dot{I}_{r,f}^{\;s}\) is the ionospheric delay rate. This formula actually calculates the average ionospheric delay rate over a period of time. When Δt is small enough, \(\dot{I}_{r,f}^{\;s}\) can be considered as the instantaneous ionospheric delay rate. Since the ionospheric delay rates are related to signal frequencies and solar activities, we simulate the ionospheric delay rates of different signal frequencies under different solar activities. The simulation strategies are shown in Table 4.

Table 4 Ionospheric delay rate simulation strategies

The results (see Fig. 2) show that the ionospheric delay rates in high solar activity are the largest, while medium and low solar activities follow. The ionospheric delay rates of LEO satellites (350–2000 km altitudes) are much greater than that of satellites at 5000–30,000 km altitudes. Thus, the ionospheric delay rates of LEO satellites should be discussed in detail. Take Orbcomm satellites (825 km altitude and VHF-band) as an example, its ionospheric delay rate ranges from 9 to 29 m/s under different solar activities. If the LEO satellites broadcast signals in L-band, there will be 3–21 cm/s ionospheric delay rates, which will cause 6–42 m errors in Doppler positioning. These indicate that the VHF/L-band signals ionospheric delay rates cannot be neglected in LEO positioning. The ionospheric delay rate is inversely proportional to the square of the frequency. Thus, the higher the frequency, the lower the ionospheric delay rate. If the C-band signal is used for LEO navigation, there will be 0.3–2 cm/s ionospheric delay rates, which will cause 0.6–4 m errors in Doppler positioning. For Ka/K/Ku-band signals, their ionospheric delay rates are less than 0.21 cm/s.

Fig. 2
figure 2

Ionospheric delay rates of different signals under different solar activities and orbital attitudes

Then, we add the C-band signal ionospheric delay rates into the observation simulations. The results in Fig. 3a and b show that there will be errors in all directions if the ionospheric errors are not corrected. The 3D RMS of positioning results in Fig. 3a is 1 m, and the 3D RMS of positioning results in Fig. 3b is 2.1 m. This is consistent with the above theoretical value in Fig. 2. For dual-frequency receivers, the ionospheric delay rate can be eliminated using the ionosphere-free (IF) combination of pseudorange rate measurements:

$$\dot{P}_{IF} = \frac{{f_{1}^{2} }}{{f_{1}^{2} - f_{2}^{2} }} \cdot \dot{P}_{1} - \frac{{f_{2}^{2} }}{{f_{1}^{2} - f_{2}^{2} }} \cdot \dot{P}_{2}$$
(15)

where \(\dot{P}_{1}\) and \(\dot{P}_{2}\) are pseudorange rates at \(f_{1}\) and \(f_{2}\), respectively. The 3D RMS of positioning errors for the IF combination (in Fig. 3c) is about 1.9 m. This is about 2 times as large as the results in Fig. 3a. The reason is that IF combination amplifies the measurement noise (0.1 Hz) and influences the positioning performance (Bolla and Borre 2019; Collins 1999; Zhang et al. 2010).

Fig. 3
figure 3

Doppler positioning errors caused by C-band signal ionospheric delay rates (without orbital errors); three rows represent the positioning accuracy for N, E and U directions, respectively

Tropospheric delay rates

In the simulation, the tropospheric delay rates are derived by taking the difference between epochs. The sampling interval is also set to be 0.1 s. The tropospheric delays are calculated using the Saastamoninen model, GPT3 meteorological parameters and VMF3 mapping function. Among them, the mapping function is related to the elevation angle. The time, station and orbital altitude are the same as the ionospheric delay rates simulation strategies shown in Table 4.

The results of tropospheric delay rates with different satellite orbital altitudes are shown in Fig. 4. For LEO satellites with altitudes of 350–550 km, the tropospheric delay rates are 21–25 cm/s, which, if not corrected, will cause 42–50 m errors in Doppler positioning. As for GNSS satellites with altitudes of about 20,000 km, the tropospheric delay rate is decreased sharply to 1 cm/s. The tropospheric delay rates with satellite altitudes below 1000 km are far greater than those above 2000 km. This phenomenon may be caused by the rapid change of elevation angles when LEO satellites travel at high speeds.

Fig. 4
figure 4

Tropospheric delay rates with different satellite orbital altitudes

Then, the tropospheric errors are added to the observation simulations. The tropospheric delay rates are derived by taking the difference between the tropospheric delays at different epochs. The tropospheric delays along the signal paths are obtained through the simulated zenith total delay (ZTD) with the VMF3 mapping function. The ZTD is calculated by adding the zenith hydrostatic delay (ZHD) into zenith wet delay (ZWD), which are obtained using the Saastamoninen model and GPT3 meteorological parameters. The positioning results of 21 stations with (red bars) or without (yellow bars) tropospheric errors are shown in Fig. 5. These stations are composed of three evenly selected stations at 7 lines of latitude (45W, 30W, 15W, 0, 15N, 30N and 45N). The blue bars are the positioning results after corrections using the Saastamoninen model and its mapping function (which differs from VMF3). The red bars in Fig. 5 show that the positioning accuracy will sharply deteriorate without corrections for the tropospheric errors. The positioning errors in U direction are increased by 20–60 m. This is consistent with the above theoretical value in Fig. 4. The positioning results after corrections (blue bars in Fig. 5) show a bit different from the results without tropospheric errors (yellow bars in Fig. 5). This probably is because the mapping functions we used in the observation simulation and positioning process is different.

Fig. 5
figure 5

Doppler positioning errors caused by tropospheric errors (without orbital errors)

Undifferenced Doppler positioning performance

The data simulation and positioning processing strategies are shown in Table 2. The undifferenced Doppler positioning RMS and DDOP are shown in Figs. 6 and 7. The RMSs and DDOPs of stations in mid latitude zones are the smallest, followed by the low- and high-latitude zones. This phenomenon is thought to be related to the constellation configuration (Reid et al. 2018; Zhang et al. 2022). Then, we calculate the average RMSs of global stations. The average RMSs in N, E and U directions are 1.48, 2.73 and 2.83 m with Constellation A and 0.89, 1.53 and 2.19 m with Constellation B. The positioning accuracy is at the meter level which is comparable to the pseudorange-based positioning in GNSS.

Fig. 6
figure 6

Undifferenced Doppler positioning results with Constellation A (left) and Constellation B (right). The white-colored zones indicate that there are no solutions for these stations

Fig. 7
figure 7

DDOPs of global stations with Constellation A (a) and Constellation B (b)

Besides, the results show that the spatial distribution of DDOPs are consistent with the RMSs. We calculate the correlation between DDOPs and U-RMSs of stations in the 5°N latitudinal zone. The correlation coefficient is 0.907 (Fig. 8). This indicates that the DDOP can reflect the positioning accuracy of undifferenced Doppler positioning.

Fig. 8
figure 8

DDOPs and U-RMSs of stations in the 5° N latitudinal zone

Sensitivity of initial position error

The nonlinear least-square method needs an appropriate initial position value to ensure convergence. In GNSS, even if the initial receiver position value is set to be 0, the solution can still converge. However, the situation is different with LEO satellites due to their low orbital altitudes. Thus, the LEO-based Doppler positioning algorithm should be tested for its sensitivity to initial position error. The actual receiver position is (6,123,320.353, − 136,480.099, 1,773,905.419) km in ECEF. The initial errors are added in all directions. The simulation time is from 1:30 to 22:30 with an interval of 30 s. Thus, there are 2521 epochs in total. The positioning results with different initial position errors are shown in Table 5.

Table 5 Positioning results with different initial receiver position errors

The results show that with an initial position error of 300 km or larger, the iteration process may be divergent. With an initial error of 410 km, the iterative algorithm cannot converge to the actual position, resulting in no solution. These indicate that the LEO-based Doppler positioning is sensitive to the initial position error. The initialization of the receiver position should be paid more attention and an appropriate initial position value must be given in LEO-based Doppler positioning.

Diversity between reality and the simulations

We examine the performance of the proposed methods on simulated data. The possible diversity between reality and the simulations must be discussed in detail to make the proposed methods work in practice.

First, the proposed methods assume that the receiver can see many LEO satellites simultaneously. Generally, the number of visible satellites from one earlier constellation (e.g., Iridium, Orbcomm) is 1–2 for communication purposes. In recent years, the rapidly developed broadband mega-constellations have enabled many satellites to be visible. Among them, the Starlink already has over 3200 satellites in orbit by February 2023 (https://satellitemap.space/?constellation=starlink). Neinavaie et al. (2021) explored the first Doppler tracking and positioning results with six real Starlink LEO satellites over a period of 800 s. In the near future, more than 7 satellites could be visible at the same time with these broadband LEO constellations.

In the simulation, we assumed that the satellite positions could be determined with an error of several meters. In fact, this can be achieved with a GNSS receiver onboard the LEO satellites (Reid et al. 2018). Furthermore, if the real-time precise positions for the GNSS satellites are provided, the position errors of LEO satellites could be in several centimeters (Montenbruck et al. 2005). The satellite clock offset and drift are simulated with standard deviations of 1 us and 10–12 s/s, respectively. This can be easily achieved for LEO satellites with onboard GNSS receivers and CSACs, which has been used for small satellite navigation systems (Reid et al. 2016; Rybak et al 2021).

It must be noted that a mismatch may exist between the true atmospheric effects and the models used in the simulation. However, little is known about the influence of tropospheric or ionospheric modeling errors on Doppler measurements of LEO satellites. Graziani et al. (2009) estimated and corrected the tropospheric effect on Doppler shift for deep space probe navigation purposes. Their results showed that the residual uncalibrated tropospheric and/or antenna mechanical noise dominated the range rate residuals. Our simulation results also showed that the Doppler positioning accuracy would be reduced by dozens of meters if there are no corrections for tropospheric delay rates. The accuracy of tropospheric delays estimation using the precise point positioning (PPP) method with LEO-enhanced GNSS (LeGNSS) observations can be at the millimeter level, although this result is based on simulation and not for the tropospheric delay rates (Zhang et al. 2023). This provides evidence that the tropospheric delay rates of LEO satellites can also be estimated and corrected precisely.

Klobuchar (1996) briefly discussed the ionospheric effects on the Doppler shift and pointed out that the ionosphere could change rapidly by at least one order of magnitude each day. Since most LEO satellites operate within the ionosphere, the classic thin-shell ionospheric model cannot correct ionospheric errors. The NeQuick model, the altimetry data from the JASON/TOPEX satellite and the occultation data from COSMIC may be suitable for LEO satellites (Li et al. 2018; Wang et al. 2017; Yao et al. 2018). Li et al. (2022) proposed a regional bottom-side ionospheric map (RBIM) using the LEO navigation augmentation signals and validated their product based on the NeQuick-G model. Our simulation results based on the NeQuick-G model showed that the ionospheric delay rates of Ka/K/Ku-band signals are less than 0.21 cm/s. This means that the ionospheric delay rates are negligible for the Ku-band Starlink signals and can be removed from the Doppler data.

Conclusion

We propose a point-solution algorithm for a GNSS-like navigation system operated in LEO based on the assumption that LEO satellites could be modified to support navigation capabilities. The proposed algorithm can estimate the state of the receiver solely using Doppler shifts. Then, we discuss the main error sources in LEO-based Doppler positioning. As one of the main error sources, the satellite position and velocity errors should be within several meters and several centimeters per second, respectively, to ensure meter-level positioning accuracy. Otherwise, the positioning results will sharply deteriorate. The ionospheric and tropospheric delay rates for LEO satellites are far greater than that for GNSS satellites due to the rapid change of LEO satellites’ positions. The positioning accuracy will deteriorate sharply by dozens of meters if there are no corrections for the atmospheric errors. Subsequently, we analyze the performance of LEO-based Doppler positioning. The accuracy of undifferenced Doppler positioning is at meter level with a global average RMS better than 3 m. Afterward, the LEO-based Doppler positioning method is tested for its sensitivity to the initial receiver position value. If the initial position error exceeds 300 km, the solution may diverge terribly from the actual position. Thus, an appropriate initialization must be provided to ensure convergence.

Owing to the fact that there are sufficient visible satellites with LEO constellations, the satellite selection algorithm will be developed to improve positioning accuracy. Besides, given the encouraging results shown in this study, additional work should focus on designing the navigation payloads and signals to enable LEO satellites to support navigation capabilities.