## F.3 Weighted Least Squares (WLS) position solution

25.1723GPPRelease 17Requirements for support of Assisted Galileo and Additional Navigation Satellite Systems (A-GANSS) Frequency Division Duplex (FDD)TS

The WLS position solution problem is concerned with the task of solving for four unknowns; xu, yu, zu the receiver coordinates in a suitable frame of reference (usually ECEF) and bu the receiver clock bias relative to the selected GNSS specific system time. It typically requires the following steps:

Step 1: Formation of pseudo-ranges

The observation of code phase reported by the UE for each satellite SVi is related to the pseudo-range/c modulo the "GANSS Code Phase Ambiguity", or modulo 1 ms (the length of the C/A code period) in case of GPS L1 C/A signal measurements. For the formation of pseudo-ranges, the integer number of milliseconds to be added to each code-phase measurement has to be determined first. Since 1 ms corresponds to a travelled distance of 300 km, the number of integer ms can be found with the help of reference location and satellite ephemeris. The distance between the reference location and each satellite SVi at the time of measurement is calculated, and the integer number of milliseconds to be added to the UE code phase measurements is obtained.

Step 2: Correction of pseudo-ranges for the GNSS-GNSS time offsets

In case the UE reports measurements for more than a single GNSS, the pseudo-ranges are corrected for the time offsets between the GNSSs relative to the selected reference time using the GNSS-GNSS time offsets available at the system simulator:

,

where is the measured pseudo-range of satellite i of GNSSm. The system time of GNSSk is the reference time frame, andis the available GNSS-GNSS time offset, and c is the speed of light.

Step 3: Formation of weighting matrix

The UE reported "Code Phase RMS Error" and/or "Pseudorange RMS Error" values are used to calculate the weighting matrix for the WLS algorithm described in [16]. According to 3GPP TS 25.331 [14], the encoding for these fields is a 6 bit value that consists of a 3 bit mantissa, Xi and a 3 bit exponent, Yi for each SVi of GNSSj:

The weighting Matrix W is defined as a diagonal matrix containing the estimated variances calculated from the "Code Phase RMS Error" and/or "Pseudorange RMS Error" values:

Step 4: WLS position solution

The WLS position solution is described in e.g., [16] and usually requires the following steps:

1) Computation of satellite locations at time of transmission using the ephemeris parameters and user algorithms defined in the relevant ICD of the particular GNSS. The satellite locations are transformed into WGS-84 reference frame, if needed.

2) Computation of clock correction parameters using the parameters and algorithms as defined in the relevant ICD of the particular GNSS.

3) Computation of atmospheric delay corrections using the parameters and algorithms defined in the relevant ICD of the particular GNSS for the ionospheric delay, and using the Gupta model defined in [17] p. 121 equation (2) for the tropospheric delay. For GNSSs which do not natively provide ionospheric correction models (e.g., GLONASS), the ionospheric delay is determined using the available ionospheric model (see subclause F.2) adapted to the particular GNSS frequency.

4) The WLS position solution starts with an initial estimate of the user state (position and clock offset). The Reference Location is used as initial position estimate. The following steps are required:

a) Calculate geometric range (corrected for Earth rotation) between initial location estimate and each satellite included in the UE measurement report.

b) Predict pseudo-ranges for each measurement including clock and atmospheric biases as calculated in 1) to 3) above and defined in the relevant ICD of the particular GNSS and [16].

c) Calculate difference between predicted and measured pseudo-ranges .

d) Calculate the "Geometry Matrix" G as defined in [16]:

with where rsGNSSm,i is the satellite position vector for SVi of GNSSm (calculated in 1) above), and is the estimate of the user location.

e) Calculate the WLS solution according to [16]:

f) Adding the to the initial state estimate gives an improved estimate of the state vector:

.

5) This new state vector can be used as new initial estimate and the procedure is repeated until the change in is sufficiently small.

Step 5: Transformation from Cartesian coordinate system to Geodetic coordinate system

The state vector calculated in Step 4 contains the UE position in ECEF Cartesian coordinates together with the UE receiver clock bias relative to the selected GNSS system time. Only the user position is of further interest. It is usually desirable to convert from ECEF coordinates xu, yu, zu to geodetic latitude  , longitude  and altitude h on the WGS84 reference ellipsoid.

Step 6: Calculation of "2-D Position Errors"

The latitude  / longitude obtained after Step 5 is used to calculate the 2-D position error.

Annex G (informative):
Change history

 Date Meeting Document CR num Rev Comment Version old Version New 2010-02 RAN4#54 R4-100668 Text proposal for A-GANSS minimum performance requirements in UTRAN 0.0.1 2010-03 RAN#47 RP-100133 TS presented for information 0.0.1 1.0.0 2010-05 RAN4#55 R4-101671 Minor editorial corrections and allignments with GERAN 1.0.0 2.0.0 2010-05 RAN4#55 R4-101671 Approved by TSG RAN 2.0.0 10.0.0 2010-12 RP-50 RP-101350 001 1 Addition of Galileo sensitivity numbers in the A-GANSS minimum performance requirements in UMTS 10.0.0 10.1.0 2011-04 RP-51 RP-110351 002 Addition of missing values and references 10.1.0 10.2.0 2012-09 SP-57 – – – Update to Rel-11 version (MCC) 10.2.0 11.0.0 2014-06 RP-64 RP-140924 004 2 CR to TS 25.172 on introduction BDS to A-GANSS of FDD mode of UTRA 11.0.0 12.0.0 2014-12 RP-66 RP-142151 005 – Correction on BDS satellites number 12.0.0 12.1.0 2016-01 SP-70 – – – Update to Rel-13 version (MCC) 12.1.0 13.0.0 2017-03 RP-75 – – – Update to Rel-14 version (MCC) 13.0.0 14.0.0
 Change history Date Meeting TDoc CR Rev Cat Subject/Comment New version 2018-06 SA#80 – – – – Update to Rel-15 version (MCC) 15.0.0 2020-06 SA#88 – – – – Update to Rel-16 version (MCC) 16.0.0 2022-03 SA#95 Update to Rel-17 version (MCC) 17.0.0