## B.5 WLS position solution

37.571-13GPPPart 1: Conformance test specificationRelease 16TSUser Equipment (UE) conformance specification for UE positioning

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. 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 "GNSS Code Phase Ambiguity" (UTRAN), or "gnss‑CodePhaseAmbiguity" (E-UTRAN and NR), 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 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 the case that 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 GNSS_{m}. The system time of GNSS_{k} 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 "codePhaseRMSError" (E-UTRAN and NR) or "Code Phase RMS Error" and/or "Pseudorange RMS Error" (UTRAN) values are used to calculate the weighting matrix for the WLS algorithm [9]. According to 3GPP TS 25.331 [30] and 3GPP TS 36.355 [4] and 3GPP TS 37.355 [49], the encoding for this field is a 6 bit value that consists of a 3 bit mantissa, Xi and a 3 bit exponent, Yi for each SVi:

The weighting Matrix **W** is defined as a diagonal matrix containing the estimated variances calculated from the "codePhaseRMSError" (E-UTRAN and NR) or "Code Phase RMS Error" and/or "Pseudorange RMS Error" (UTRAN) values:

Step 4: WLS position solution

The WLS position solution is described in reference [9] 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 in reference [10] 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 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 [9].

c) Calculate difference between predicted and measured pseudo-ranges

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

with where **r**s_{GNSS}* _{m,i}* is the satellite position vector for SVi of GNSS

*(calculated in 1) above), and is the estimate of the user location.*

_{m}e) Calculate the WLS solution according to [9]:

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 C (normative):

General test conditions and declarations

The requirements of this clause apply to all applicable tests in the present document.

In all the relevant clauses in this clause all 2D position error** **measurements shall be carried out according to the general rules for statistical testing in Annex D.

In this clause, the terms GNSS and A-GNSS also include the cases where the only satellite system used is GPS unless otherwise stated.

The test tolerances may not be valid for operating bands above 4200 MHz since some test system uncertainties are changed for frequencies above 4200 MHz. The test tolerances for bands above 4200 MHz are For Further Study [FFS].