# The Implementation of Precise Point Positioning (PPP): A Comprehensive Review
## 2 Error Sources in PPP
### Code Biases  
Code biases, originating from time delays induced by satellite and receiver hardware, are influenced by various factors, including signal frequency, waveform, and tracking technology [46; 47]. Receiver code biases are typically assumed to be independent of the satellite for a given code observation and are incorporated in the estimated receiver clock bias [7; 47]. In contrast, satellite code biases are usually represented in a differential form rather than their absolute values. Differential Code Bias (DCB) denotes the time delay between two code observations of the same satellite at the same or different frequency [48]. For instance, a specific DCB exists between the P1 code and the C/A code, hereafter referred to as C1, both operating at the L1 frequency of GPS. This DCB is symbolized as \(DCB_{P1\text{-}C1}\). Likewise, \(DCB_{P1\text{-}P2}\) represents the DCB between P1 and P2 code observations, which function at different frequencies. For GPS and GLONASS systems, satellite clock corrections in both broadcast and precise ephemerides are calculated based on the IF combination of P-code observations at L1 and L2 frequencies (P1/P2) [7]. Consequently, there is no necessity for DCB corrections in DF-PPP when employing the P1/P2 IF combination. However, when alternative code combinations are utilized instead of P1/P2, the appropriate DCB correction must be applied. For example, when using the IF combination C1/P2, the term \(\alpha_{IF}DCB_{P1\text{-}C1}\) is introduced to adjust the IF code observation, where \(c\) is the speed of light and \(\alpha_{IF}\) is as defined in Section 2.1. This principle also applies to other constellations and frequencies. Although the high precision of PPP is predominantly derived from carrier-phase observation, incorporating DCBs reduces convergence time and expedites ambiguity resolution [7]. Figure 1 illustrates the impact of DCB on float-ambiguity DF-PPP convergence, utilizing two hours of static GPS data from the YELL IGS station. The final IGS products were adopted in this example, and all other centimeter-level PPP errors were accounted for. The application of \(DCB_{\text{P1-C1}}\) yielded lower initial solution errors and accelerated convergence, especially in eastward and upward directions for this specific dataset. After the convergence, the influence of the carrier phase becomes dominant, and the effect of the DCB corrections is no longer significant, as evidenced by the nearly identical trajectories in the corresponding graphs. Applying \(DCB_{\text{P1-P2}}\) in single-frequency PPP is indispensable when incorporating P1 or P2 observations. Additional DCB parameters may be invoked should alternative code observations be considered. In the case of GPS, the \(DCB_{\text{P1-P2}}\) value is available through the Timing Group Delay (TGD) parameter in the broadcast navigation message [49]. The new civil navigation message, started with Block IIR-M of the GPS satellites, contains Inter-Signal Correction (ISC) parameters, which provide the DCBs between the L1 P(Y) or P1 code and L1 C/A (C1) and between L1 P(Y) and L2C code. Alternatively, the DCBs for different frequencies and constellations can be obtained post mission through the IGS products [50] or in real time through the IGS RTS. The DCB terms are often employed with the satellite clock correction \(dt^{s}_{\text{P1-P2}}\), which is referenced to the P1/P2 IF combination \(P_{IF}\) for GPS and GLONASS systems. In the case of the single-frequency GPS C1 observation, the satellite clock error \(dt^{s}_{\text{C1}}\) can be expressed as [47; 49]  
\[dt^{s}_{\text{C1}} =dt^{s}_{\text{P1-P2}}-TGD+ISC_{\text{L1C/A}}\] \[=dt^{s}_{\text{P1-P2}}+\frac{f^{2}_{\text{L2}}}{f^{2}_{\text{L1}}- f^{2}_{\text{L2}}}DCB_{\text{P1-P2}}+DCB_{\text{P1-C1}} \tag{6}\]  
Equation (6) relates the GPS broadcast parameters (TGD, ISC) and the DCBs as defined by the IGS. The bias parameters are expressed in units of seconds, and \(f_{\text{L1}}\), \(f_{\text{L2}}\) represent the carrier frequencies of the L1 and L2 GPS bands.