F.3 Weighted Least Squares (WLS) position solution
25.1733GPPRelease 17Requirements for support of Assisted Galileo and Additional Navigation Satellite Systems (A-GANSS) Time Division Duplex (TDD)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 |
2013-11 |
RAN4#69 |
R4-136754 |
A-BDS TS 25.17x (A-BDS TDD) Skeleton |
0.0.1 |
|||
2014-02 |
RAN4#70bis |
R4-142207 |
Approved text proposals in the following document was implemented: R4-141092 Text Proposals for TS 25.173 on introduction BDS to A-GANSS of TDD mode of UTRA |
0.0.1 |
0.1.0 |
||
2014-03 |
RAN4#71 |
R4-142654 |
Approved text proposals in the following document was implemented: R4-142209 Text Proposals for TS 25.173 section 5 and Annex D/E/F |
0.1.0 |
0.2.0 |
||
Approved text proposals in the following document was implemented: R4-142655 Text Proposals to TS 25.173 version 0.2.0 |
0.2.0 |
0.3.0 |
|||||
2014-06 |
RP-64 |
Presentation to plenary for approval |
0.3.0 |
1.0.0 |
|||
2014-06 |
RP-64 |
TR Approved by the plenary |
1.0.0 |
12.0.0 |
|||
2014-12 |
RP-66 |
RP-142151 |
001 |
|
Correction on BDS satellites number |
12.0.0 |
12.1.0 |
2014-12 |
RP-66 |
RP-142151 |
002 |
|
Editorial modification of symbols and abbreviations in 25.173 |
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 |