# Cloud-Based Single-Frequency Snapshot RTK Positioning
## 2 Methodology
### Measurement Generation
#### 2.3.3 Global Time Tag Determination  
Accurate absolute time information is a cornerstone of the SRTK algorithm, it provides an edge over typical coarse time positioning engines in two ways. First, it allows satellite positions to be computed with much higher accuracy compared to those computed with a coarse time. Typically pseudorange rates of GNSS satellites vary from \(-800\) m/s to \(800\) m/s, which means that the range rate difference between two satellites can reached \(1600\) m/s in the worst case scenarios. In those cases, even 1 ms of time error could result in 1.8 m of error in the Single Differenced (SD) measurements. Since these SD measurements are later used by the RTK filter to form Double Differenced (DD) measurements, such time errors are not bearable for high precision navigation filters. The second point where accurate timing is extremely important is for deducing the modulated data bits using external data sources. The smaller the timing error, the less possibility of retrieving the wrong bit from these distributed data set. The absolute time accuracy in the SRTK filter has evolved through 3 stages as illustrated in the Figure 3. The first time information comes from the assistance data, typically from a cellular network, and it may include a time error of up to 2 s [14]. Then, the second stage of time accuracy is reached at millisecond level after the CTN filter generates a TOW solution based on the time from assistance data [15; 25]. Finally, the third stage aims at an accuracy that is equivalent to the precision of the code delay estimates after interpolation, i.e., the corresponding range error is meter-level and the time error is then of the order of nanoseconds. The transition from stage 1 to stage 2 mainly relies on solving the five-state navigation equation, which is extensively described in GNSS literature [14; 25; 26], and will not be further discussed here. The key question now is how to achieve the 3 rd stage of accuracy. Figure 4 presents the relationships of different time parameters that are used to answer this question. The received signals from different satellites are transmitted at different times, as represented by the red line in Figure 4. The ultimate goal of setting a global receiver time tag is to increase the transmission time accuracy of all the satellites in view to nanosecond level. These transmission times can be expressed as:  
\[t_{tx}^{(k)}=t_{g}-(X^{(k)}+\tau^{(k)})=t_{g}-\tau_{a}^{(k)}-N_{sc}^{(k)}\cdot T _{sc}^{(k)}, \tag{10}\]  
where:  
* \(t_{tx}^{(k)}\) is the transmission time for satellite \(k\), in seconds;
* \(t_{g}\) represents the global time tag to be determined in this step, in seconds;
* \(X^{(k)}\) is a multiple of secondary code periods, and can be denoted by \(N_{sc}\cdot T_{sc}^{(k)}\);
* \(N_{sc}^{(k)}\) represents an integer that also needs to be determined in this step;
* \(T_{sc}^{(k)}\) is the duration of the secondary code for satellite \(k\), in seconds;
* \(\tau_{a}^{(k)}\) is the code delay that has been augmented by the correct navigation bit hypothesis, in seconds. Figure 4: Relationship between the global time tag and other time parameters. Figure 3: Time precision evolution in the SRTK positioning engine. Note that Equation (10) holds only when the time tag \(t_{g}\) is set at the edge of a secondary code period in a GNSS time scale, otherwise the integer nature of \(X^{(k)}\) is no longer maintained. In addition, \(\tau_{a}^{(k)}\) is a modulo-\(T_{sc}^{(k)}\) value and can be computed using  
\[\tau_{a}^{(k)}=\hat{\tau}^{(k)}+N_{c}^{(k)}\cdot T^{(k)}, \tag{11}\]  
with the code delay \(\hat{\tau}^{(k)}\) and the \(N_{c}^{(k)}\) value previously estimated using Equation (8). The next step is to determine \(t_{g}\) and the corresponding number of secondary code cycles to be added for each satellite, i.e., the \(N_{sc}^{(k)}\) value, while maintaining the relative code delays relationship between satellites.