F.3 Weighted Least Squares (WLS) position solution
25.1723GPPRelease 17Requirements for support of Assisted Galileo and Additional Navigation Satellite Systems (AGANSS) 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 pseudoranges
The observation of code phase reported by the UE for each satellite SVi is related to the pseudorange/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 pseudoranges, the integer number of milliseconds to be added to each codephase 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 pseudoranges for the GNSSGNSS time offsets
In case the UE reports measurements for more than a single GNSS, the pseudoranges are corrected for the time offsets between the GNSSs relative to the selected reference time using the GNSSGNSS time offsets available at the system simulator:
,
where is the measured pseudorange of satellite i of GNSS_{m}. The system time of GNSS_{k} is the reference time frame, andis the available GNSSGNSS 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 GNSS_{j}:
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 WGS84 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 pseudoranges 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 pseudoranges .
d) Calculate the "Geometry Matrix" G as defined in [16]:
with where rs_{GNSS}_{m,i} is the satellite position vector for SVi of GNSS_{m} (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 "2D Position Errors"
The latitude / longitude obtained after Step 5 is used to calculate the 2D position error.
Annex G (informative):
Change history
Date 
Meeting 
Document 
CR num 
Rev 
Comment 
Version old 
Version New 
201002 
RAN4#54 
R4100668 
Text proposal for AGANSS minimum performance requirements in UTRAN 
0.0.1 

201003 
RAN#47 
RP100133 
TS presented for information 
0.0.1 
1.0.0 

201005 
RAN4#55 
R4101671 
Minor editorial corrections and allignments with GERAN 
1.0.0 
2.0.0 

201005 
RAN4#55 
R4101671 
Approved by TSG RAN 
2.0.0 
10.0.0 

201012 
RP50 
RP101350 
001 
1 
Addition of Galileo sensitivity numbers in the AGANSS minimum performance requirements in UMTS 
10.0.0 
10.1.0 
201104 
RP51 
RP110351 
002 
Addition of missing values and references 
10.1.0 
10.2.0 

201209 
SP57 
– 
– 
– 
Update to Rel11 version (MCC) 
10.2.0 
11.0.0 
201406 
RP64 
RP140924 
004 
2 
CR to TS 25.172 on introduction BDS to AGANSS of FDD mode of UTRA 
11.0.0 
12.0.0 
201412 
RP66 
RP142151 
005 
– 
Correction on BDS satellites number 
12.0.0 
12.1.0 
201601 
SP70 
– 
– 
– 
Update to Rel13 version (MCC) 
12.1.0 
13.0.0 
201703 
RP75 
– 
– 
– 
Update to Rel14 version (MCC) 
13.0.0 
14.0.0 
Change history 

Date 
Meeting 
TDoc 
CR 
Rev 
Cat 
Subject/Comment 
New version 
201806 
SA#80 
– 
– 
– 
– 
Update to Rel15 version (MCC) 
15.0.0 
202006 
SA#88 
– 
– 
– 
– 
Update to Rel16 version (MCC) 
16.0.0 
202203 
SA#95 
Update to Rel17 version (MCC) 
17.0.0 