Development and Positioning Accuracy Assessment of Single-Frequency Precise Point Positioning Algorithms by Combining GPS Code-Pseudorange Measurements with Real-Time SSR Corrections

We have developed a suite of real-time precise point positioning programs to process GPS pseudorange observables, and validated their performance through static and kinematic positioning tests. To correct inaccurate broadcast orbits and clocks, and account for signal delays occurring from the ionosphere and troposphere, we applied State Space Representation (SSR) error corrections provided by the Seoul Broadcasting System (SBS) in South Korea. Site displacements due to solid earth tide loading are also considered for the purpose of improving the positioning accuracy, particularly in the height direction. When the developed algorithm was tested under static positioning, Kalman-filtered solutions produced a root-mean-square error (RMSE) of 0.32 and 0.40 m in the horizontal and vertical directions, respectively. For the moving platform, the RMSE was found to be 0.53 and 0.69 m in the horizontal and vertical directions.


Introduction
In the past decade or so, Precise Point Positioning (PPP) has received a significant amount of attention in the GNSS community as a new and effective option for precise real-time positioning [1,2]. PPP is a technique in which the user only estimates receiver-specific parameters such as receiver clock offsets and zenith tropospheric delays, whereas the satellite orbits and clocks are provided by a global GPS analysis center [3]. Dual-frequency receivers are usually involved in PPP to remove the ionospheric delay effect. However, in the PPP-Real Time Kinematic (RTK) mode of PPP, one can get tropospheric and ionospheric delays generated from a GNSS network. Thus, PPP-RTK can be defined as a positioning technique in which the user obtains satellite-orbit, -clock, and -bias corrections from a service provider. The ionospheric delay is removed either through ionosphere-free combinations or by applying the total electron content (TEC) information generated from a network. Finally, the tropospheric delay is considered through a stochastic estimation or by utilizing zenith hydrostatic delay (ZHD) and zenith wet delay (ZWD) information available from the network.
One of the most prominent PPP services is the IGS-RTS, which is managed by the International GNSS Service (IGS). RTS stands for real-time service, and thus, real-time streams of satellite orbits and clock-offset corrections can be obtained through the IGS-RTS service. When such corrections are applied to broadcast navigation messages, the accuracies of three-dimensional orbits improve to the level of~5 cm, and clock offsets are at a level of~8 cm compared with the European Space Agency/European Space Operations Centre final product [4]. Notable validation studies on IGS-RTS corrections include those by [5,6]. Won [5] developed PPP algorithms and applied IGS-RTS corrections to them. For static positioning, they obtained a level of accuracy of~10 cm in the horizontal direction compared to RTK when integer ambiguities are estimated as float numbers. For a mobile platform, the absolute accuracy was within the range of 20 to 30 cm. The real-time performance of IGS-RTS was evaluated by comparing the positioning accuracies obtained using IGS-RTS and IGS rapid products [6]. They obtained a positioning accuracy of 20 cm with IGS-RTS. When IGS rapid products were used instead of IGS-RTS, the horizontal accuracy achieved was approximately 40 cm. Thus, with IGS-RTS, the accuracy improved by approximately 50%.
As noted above, several studies have applied IGS-RTS corrections in processing the carrier phase data. However, case studies implementing IGS-RTS corrections to pseudorange measurements are difficult to find. The only publication combined pseudorange observations with highly accurate satellite orbits and clock offsets was [7], which applied IGS precise SP3 and CLK products instead of real-time corrections. In place of ionospheric and tropospheric corrections, however, they used global ionospheric maps for the ionospheric delay and pre-processed stochastic tropospheric delay estimates. For four days' worth of data, the horizontal and vertical accuracies were in the range of 0.8-1.6 m and 1.6-2.2 m, respectively. When the same data were processed using Differential GPS (DGPS) positioning mode, PPP outperformed DGPS by 20-70%.
In this paper, we developed PPP algorithms that consider real-time State Space Representation (SSR) corrections for GPS pseudorange processing. SSR corrections have been produced by Seoul Broadcasting System, who operates 20-site GNSS network and a GNSMART server. We start with a pseudorange measurement equation and describe how major error sources were modeled with SSR corrections. The SSR data formats, the categories of information contained in SSR messages, and how they are applied in real-time positioning are explained in detail. Finally, static and kinematic positioning results using GPS pseudorange measurements are described.

Code-Pseudorange Measurement Equation
Pseudorange measurements are the range or distance from the user antenna to each satellite, and are calculated based on the signal transmission time from the satellites to the user. Such observables, however, contain clock offsets at both the satellite and the user receiver, and are thus not exactly "true" or "geometric" ranges. To make things worse, ionospheric and tropospheric delays, in addition to hardware effects and multipath, come into play. To achieve reliable positioning results, a variety of error sources have to be corrected or compensated for using measurement and force models. A general pseudorange measurement equation can be represented by the following equation: where p is the pseudorange measurement, ρ is the three-dimensional distance from the receiver to a satellite, c is the speed of light, δt r is the receiver clock offset, δt s is the satellite clock offset, I is the ionospheric delay, T is the tropospheric delay, M is a multipath error, b s is a satellite bias error, b r is a receiver bias error, and ε is a random error [8].
In the above equation, considerations regarding the multipath error were not included in our positioning algorithm. This is not because its effects are small, but rather because we were unable to find a reliable and real-time multipath correction model to apply to pseudorange measurements. The satellite ephemeris, e.g., the three-dimensional coordinates (x s , y s , z s ) in WGS-84, and an unknown receiver position (x r , y r , z r ) are included as ρ = (x s − x r ) 2 + (y s − y r ) 2 + (z s − z r ) 2 in Equation (1). Both the satellite ephemeris and the satellite clock offsets are broadcast from the satellite and can be extracted from real-time navigation messages. However, the accuracy of broadcast orbit is at the level of 1 to 2 m [9], it is insufficient for use in precise point positioning. Thus, the first priority is for us to correct them with SSR messages, the procedure of which is explained in Sections 3.2.1 and 3.2.2 Although the satellite hardware bias b s is included in the navigation message as T gd , whose value was set up in the satellite manufacturing stage, but the current and up-to-date value should be estimated on the user side because it is a variable quantity [10]. For this reason, the satellite bias is also included in SSR messages, and satellite-dependent values are given as piecewise constants. The ionospheric and tropospheric errors are the two most prominent medium-dependent error sources, and are usually provided at pre-defined grid points. How these three quantities (b s , I, and T) are handled with SSR messages is explained in Sections 3.2.3-3.2.5. Now, the remaining error source is the receiver bias, b r . This quantity applies to every satellite, and thus, it can be estimated as one lumped value with the receiver clock offset, δt r [11].
The gravitational attraction of the moon and sun causes periodic deformations of the solid earth, which is referred to as earth tides. The combined tidal variation can reach up to 5 and 30 cm in the horizontal and vertical directions, respectively [12]. Earth tides are expressed using Laplace equations, and the second degree of spherical harmonics account for 98% of the total variation [13]. It is advised to consider only second and third degree of spherical harmonics in space geodetic technology using GNSS. Thus, we considered only the second and third degrees. Although a solid earth tide is not included in Equation (1), we corrected its effect by following the procedure suggested by IERS convention [14].
In summary, if the multipath error is neglected in Equation (1), the pseudorange-based measurement equation has four unknowns: three-dimensional receiver coordinates implicit within range ρ, the lump sum of the receiver clock offset δt r and the receiver hardware bias b r . In estimating four states, we used an extended Kalman filter (EKF) in addition to the usual weighted least squares (LS). In the case of the EKF, a priori states were obtained through an LS estimation of the first-epoch measurements.

Overview of SBS-SSR Messages
The Seoul Broadcasting System (SBS) of South Korea constructed the PPP-RTK infrastructure and has been testing its performance over the past several months. The infrastructure consists of 20 reference sites, a GNSMART server, and digital multimedia broadcasting (DMB) transmission facilities. Base stations are well distributed throughout the South Korean territory, except Jeju Island (Figure 1), and feed real-time GNSS measurements to the server. The server runs GNSMART software developed by Geo++ of Germany and generates SSR-type correction messages [1]. In addition to broadcasting SSR messages through terrestrial DMB, SBS allows Internet connections to the server. and are usually provided at pre-defined grid points. How these three quantities (b s , I, and T) are handled with SSR messages is explained in Sections 3.2.3, 3.2.4 and 3.2.5. Now, the remaining error source is the receiver bias, br. This quantity applies to every satellite, and thus, it can be estimated as one lumped value with the receiver clock offset, δtr [11]. The gravitational attraction of the moon and sun causes periodic deformations of the solid earth, which is referred to as earth tides. The combined tidal variation can reach up to 5 and 30 cm in the horizontal and vertical directions, respectively [12]. Earth tides are expressed using Laplace equations, and the second degree of spherical harmonics account for 98% of the total variation [13]. It is advised to consider only second and third degree of spherical harmonics in space geodetic technology using GNSS. Thus, we considered only the second and third degrees. Although a solid earth tide is not included in Equation (1), we corrected its effect by following the procedure suggested by IERS convention [14].
In summary, if the multipath error is neglected in Equation (1), the pseudorange-based measurement equation has four unknowns: three-dimensional receiver coordinates implicit within range , the lump sum of the receiver clock offset δtr and the receiver hardware bias br. In estimating four states, we used an extended Kalman filter (EKF) in addition to the usual weighted least squares (LS). In the case of the EKF, a priori states were obtained through an LS estimation of the first-epoch measurements.

Overview of SBS-SSR Messages
The Seoul Broadcasting System (SBS) of South Korea constructed the PPP-RTK infrastructure and has been testing its performance over the past several months. The infrastructure consists of 20 reference sites, a GNSMART server, and digital multimedia broadcasting (DMB) transmission facilities. Base stations are well distributed throughout the South Korean territory, except Jeju Island (Figure 1), and feed real-time GNSS measurements to the server. The server runs GNSMART software developed by Geo++ of Germany and generates SSR-type correction messages [1]. In addition to broadcasting SSR messages through terrestrial DMB, SBS allows Internet connections to the server.  SBS-SSR messages include corrections regarding five different types of GNSS errors: satellite orbit, satellite clock offsets, satellite biases, ionospheric delays, and tropospheric delays. Message protocols follow the Radio Technical Commission for Maritime (RTCM) services standards for SSR. In the following sub-sections, typical SSR message structures and application procedures are described.

Satellite Orbit Corrections
In the GPS Standard Positioning Service, real-time broadcast ephemeris is used, and its accuracy is currently at a level of 1 to 2 m [9]. To remove or handle inaccuracies of the broadcast orbits, SBS-SSR provides corrections in the radial, along-track, and cross-track directions. Sample messages are listed in Table A1. The procedures for utilizing SSR orbit messages in correcting broadcast orbits are shown in Equation (2), where δX indicates corrections to the broadcast orbit X b [4]. The reference system for corrected coordinates X c is the earth-centered earth-fixed coordinate system, WGS-84. The value of δX should be calculated by applying the inner product of the rotation matrix [e radial , e along, e cross ] with SSR corrections, δO. An explanation regarding the rotation matrix is given in the next paragraph: SSR orbit corrections, δO, are provided in the radial, along-track, and cross-track directions, and are denoted as δO = [δO radial , δO along , δO cross ] in Equation (2). Direction cosines [e radial , e along, e cross ] are obtained from Equation (3): where r s b and v s b are the satellite position and velocity vectors, respectively, calculated using the broadcast ephemeris [15].

Satellite Clock Corrections
Atomic clocks onboard GNSS satellites provide highly stable frequency standards, but the broadcast clock offsets contain errors whose magnitudes are at the level of 5 ns, which corresponds to the range error of 1.5 m. Satellite clock errors are typically modeled according to the second-degree polynomial ax 2 + bx + c, and three coefficients a, b and c are contained in satellite navigation messages, allowing the GNSS user to consider the clock offsets instantaneously. For the purpose of reducing or removing these errors, SBS-SSR messages provide three coefficients, C 0 , C 1 , and C 2 , samples of which are shown in Table A2. In this case, the user can utilize the following formula [15]: where δt s is corrected satellite clock offsets while δt s b are non-corrected offsets computed from real-time navigation messages. In Equation (4), δC is satellite clock corrections derived from SSR messages, and is computed through the following equation: C 0 , C 1 , and C 2 are three coefficients for the second-degree polynomial while t and t o correspond to the current epoch and the reference epoch, respectively.

Satellite Bias Corrections
Satellite bias is an error caused by the satellite transmission circuit hardware design, and produces different amounts of signal delay on the pseudorange and carrier phase measurements. In addition, it is dependent on the signal frequency. If not corrected for, the bias influences the satellite clock offsets, causing positioning errors. SBS-SSR messages provide four (C1, P1, L1, and L2) bias estimates for each satellite, a sample output of which is listed in Table A3. Because the GNSMART server computes signal biases relative to that of the C1 signal, the C1 bias is always set to zero, as shown in the table. Although the bias of C1 is null, its actual value is lumped into satellite clock offsets, as explained in Section 3.2.2. For this reason, we do not apply the C1 bias values as long as the clock offsets from the SBS-SSR are used simultaneously.

Ionospheric Delay Corrections
The amount of GNSS signal delay from the ionosphere depends on the number of electrons existing along the signal path, the corresponding number of which is referred to as the TEC. The unit of the TEC is TECU, which equals 1 × 10 16 electrons in a 1-m 2 column along the line of sight. Using a dual-frequency receiver, the ionospheric delay error can almost be completely removed using ionosphere-free combinations. In the case of single-frequency receivers, Klobuchar model parameters broadcast from a satellite can be used in real-time, although the accuracy is unsatisfactory, only compensating~50% of the total delay [16]. SBS-SSR contains ionospheric delay corrections in terms of the Slant TEC (STEC) at approximately 30 grid points in and around South Korea. As shown in Figure 1, the grid points are made with a resolution of 1 • × 1 • and cover 34-39 • N and 126-130 • E. Sample STEC messages are listed in Table A4.

Tropospheric Delay Corrections
The tropospheric delay of GNSS signals is divided into two parts, which are referred to as 'dry' and 'wet' components. Although a dry or hydrostatic delay amounts to~90% of the total tropospheric delay, it can be quite accurately determined using surface pressure measurements [17]. A wet delay has a very high spatial and temporal variability and cannot be reliably determined even with accurate surface meteorological observations. Thus, a wet delay should be estimated stochastically.
In the case of SBS-SSR, ZHD and ZWD are provided at pre-defined grid points, eliminating the need for their estimation. After interpolating such delays for the user location, the following equation is applied to obtain the total tropospheric delay along the Line-of-Sight (LoS) direction toward each satellite: where δT, δT h and δT w are the slant total delay, slant hydrostatic delay, and slant wet delay, respectively. The hydrostatic and wet mapping functions (m h and m w ) are used to translate the zenith delay to the LoS direction and are functions of elevation angle e. Sample tropospheric delays are listed in Table A5.

Test Data and GPS Equipment
For validation of the developed PPP positioning algorithms, we collected GPS C/A measurements at a permanent GNSS site, SBSA, located in the northwest region of South Korea (Figure 1). This site is being operated by SBS, and has a Javad Sigma-G3T receiver and a Javad choke-ring antenna whose ANTEX code is JAVRINGANT-DM. One-second sampling data recorded for a 24-h period on 19 September (DOY 230) and 26 September (DOY 237) of 2015 were taken for the positioning tests. We divided the collected C/A measurements into 48 hourly datasets, and 44 datasets were finally chosen after removing four incomplete datasets. The accuracy of our data processing was evaluated by comparing the estimated coordinates to the precise coordinates of SBSA, which were derived from our routine data processing based on GIPSY-OASIS developed by NASA Jet Propulsion Laboratory. Detailed description of the procedure can be found in [3].

Convergence Time Analysis
The convergence time is a critical factor in evaluating the performance of PPP processing engines. When carrier phase measurements are used, the position coordinates are stochastically estimated along with the integer ambiguities. Through this approach, the convergence times can be measured explicitly by taking the time required for ambiguity fixing. In our case, we do not estimate the integer ambiguities because only pseudorange measurements are involved. For this reason, we had to devise a new criterion for convergence. Figure 2 shows a 5-min segment of the estimated coordinates of SBSA for the first hour on DOY 230 of 2015. The positioning accuracy improves quite quickly during the early stage of the estimation process. After about a minute or so, the improvement is either very slow or barely noticeable. This pattern of "fast convergence at the beginning" was found in every dataset we processed. For this reason, we conclude that the rate of change of the estimated position qualifies as a reliable criterion for determining the convergence of a Kalman-filtered solution of a pseudorange-only PPP. The rate of change in the estimated coordinate is referred to as the coordinate rate of change (CROC).

Convergence Time Analysis
The convergence time is a critical factor in evaluating the performance of PPP processing engines. When carrier phase measurements are used, the position coordinates are stochastically estimated along with the integer ambiguities. Through this approach, the convergence times can be measured explicitly by taking the time required for ambiguity fixing. In our case, we do not estimate the integer ambiguities because only pseudorange measurements are involved. For this reason, we had to devise a new criterion for convergence. Figure 2 shows a 5-min segment of the estimated coordinates of SBSA for the first hour on DOY 230 of 2015. The positioning accuracy improves quite quickly during the early stage of the estimation process. After about a minute or so, the improvement is either very slow or barely noticeable. This pattern of "fast convergence at the beginning" was found in every dataset we processed. For this reason, we conclude that the rate of change of the estimated position qualifies as a reliable criterion for determining the convergence of a Kalman-filtered solution of a pseudorange-only PPP. The rate of change in the estimated coordinate is referred to as the coordinate rate of change (CROC). We computed the CROC values of 44 datasets in all three coordinate directions, the results of which are plotted in Figure 3, where the vertical axes have the range of ±5 cm/s. Although the CROC values oscillate significantly at the beginning, they quickly subside in the horizontal direction. In the vertical direction, however, the convergence of CROC is somewhat slow.  We computed the CROC values of 44 datasets in all three coordinate directions, the results of which are plotted in Figure 3, where the vertical axes have the range of ±5 cm/s. Although the CROC values oscillate significantly at the beginning, they quickly subside in the horizontal direction. In the vertical direction, however, the convergence of CROC is somewhat slow.

Convergence Time Analysis
The convergence time is a critical factor in evaluating the performance of PPP processing engines. When carrier phase measurements are used, the position coordinates are stochastically estimated along with the integer ambiguities. Through this approach, the convergence times can be measured explicitly by taking the time required for ambiguity fixing. In our case, we do not estimate the integer ambiguities because only pseudorange measurements are involved. For this reason, we had to devise a new criterion for convergence. Figure 2 shows a 5-min segment of the estimated coordinates of SBSA for the first hour on DOY 230 of 2015. The positioning accuracy improves quite quickly during the early stage of the estimation process. After about a minute or so, the improvement is either very slow or barely noticeable. This pattern of "fast convergence at the beginning" was found in every dataset we processed. For this reason, we conclude that the rate of change of the estimated position qualifies as a reliable criterion for determining the convergence of a Kalman-filtered solution of a pseudorange-only PPP. The rate of change in the estimated coordinate is referred to as the coordinate rate of change (CROC). We computed the CROC values of 44 datasets in all three coordinate directions, the results of which are plotted in Figure 3, where the vertical axes have the range of ±5 cm/s. Although the CROC values oscillate significantly at the beginning, they quickly subside in the horizontal direction. In the vertical direction, however, the convergence of CROC is somewhat slow.  From these patterns, we can conclude that convergence has been reached when CROC remains below 1 cm/s for 10 consecutive epochs. Out of the 44 datasets, the average convergence times were found to be 48, 35, and 74 s for the north, east, and vertical directions, respectively. In the following analysis, we evaluated positioning accuracies after all three directions have converged.

Test Results of Static Positioning
To determine the accuracy of static positioning, we took the first 10-m segment of each of the 44 datasets of SBSA. The positioning accuracy was evaluated in terms of the RMSE of the position estimates with respect to the precise coordinates derived through GIPSY-OASIS. As noted earlier, only those estimates after convergence were used to compute the RMSE. The average horizontal and vertical errors of the 44 datasets were 0.32 and 0.40 m, respectively. It is interesting to note that the accuracy in the vertical direction is quite similar to that of the horizontal direction.
Static positioning results are plotted as histograms in Figure 4, where the number of intervals is 11 with a bin size of 0.1 m. The highest frequency for the horizontal direction was observed in a bin of 0.1 to 0.2 m, which corresponds to 41% (18 out of 44). For the vertical direction, bins within a range of 0.1 to 0.3 m account for 50% (22 out of 44). Although all values converge to less than 1 m in the horizontal direction, three cases had an error of larger than 1 m in the vertical direction.
From these patterns, we can conclude that convergence has been reached when CROC remains below 1 cm/s for 10 consecutive epochs. Out of the 44 datasets, the average convergence times were found to be 48, 35, and 74 s for the north, east, and vertical directions, respectively. In the following analysis, we evaluated positioning accuracies after all three directions have converged.

Test Results of Static Positioning
To determine the accuracy of static positioning, we took the first 10-m segment of each of the 44 datasets of SBSA. The positioning accuracy was evaluated in terms of the RMSE of the position estimates with respect to the precise coordinates derived through GIPSY-OASIS. As noted earlier, only those estimates after convergence were used to compute the RMSE. The average horizontal and vertical errors of the 44 datasets were 0.32 and 0.40 m, respectively. It is interesting to note that the accuracy in the vertical direction is quite similar to that of the horizontal direction.
Static positioning results are plotted as histograms in Figure 4, where the number of intervals is 11 with a bin size of 0.1 m. The highest frequency for the horizontal direction was observed in a bin of 0.1 to 0.2 m, which corresponds to 41% (18 out of 44). For the vertical direction, bins within a range of 0.1 to 0.3 m account for 50% (22 out of 44). Although all values converge to less than 1 m in the horizontal direction, three cases had an error of larger than 1 m in the vertical direction. The PPP positioning results were compared to those from Standard Point Positioning (SPP) and DGPS modes. For this comparison, we put up a temporary site at a high school in the city of Incheon, South Korea. The data were collected for three hours with 1-s sampling rate using a ComNav K500 receiver and a u-blox ANN-MS-0-005-0 antenna on 1 November (DOY 305) 2015. In SPP modes, the ionospheric delay was corrected using the Klobuchar model [16]. Of the two components of tropospheric delay, the hydrostatic delay was modeled using the GPT model, and the remaining wet delay was stochastically estimated along the zenith direction [18]. In DGPS modes, the raw data from the receiver were processed by feeding the pseudorange corrections (PRC) from the DGPS reference site [19], EOCH, which is only 9 km away from the high school. Because we do not apply SPP and DGPS with Kalman filtering, we modified our algorithm to conduct least-squares estimations with SSR messages. The results are shown in Table 1. The Positioning accuracy was evaluated with respect to the Virtual Reference System (VRS) Positions. A few South Korean government agencies provide real-time VRS services, and the service offered by the National Geographic Information Institute was used in this study. The PPP positioning results were compared to those from Standard Point Positioning (SPP) and DGPS modes. For this comparison, we put up a temporary site at a high school in the city of Incheon, South Korea. The data were collected for three hours with 1-s sampling rate using a ComNav K500 receiver and a u-blox ANN-MS-0-005-0 antenna on 1 November (DOY 305) 2015. In SPP modes, the ionospheric delay was corrected using the Klobuchar model [16]. Of the two components of tropospheric delay, the hydrostatic delay was modeled using the GPT model, and the remaining wet delay was stochastically estimated along the zenith direction [18]. In DGPS modes, the raw data from the receiver were processed by feeding the pseudorange corrections (PRC) from the DGPS reference site [19], EOCH, which is only 9 km away from the high school. Because we do not apply SPP and DGPS with Kalman filtering, we modified our algorithm to conduct least-squares estimations with SSR messages. The results are shown in Table 1. The Positioning accuracy was evaluated with respect to the Virtual Reference System (VRS) Positions. A few South Korean government agencies provide real-time VRS services, and the service offered by the National Geographic Information Institute was used in this study. As shown in Table 1, the least-squares PPP positioning accuracy was 0.95 and 2.17 m for the horizontal and vertical directions, respectively, which is better than the least-squares SPP by about 0.5 and 1.8 m and DGPS by about 0.5 and 1.3 m. Thus, we can conclude that PPP modes applied SSR correction are more effective than SPP and DGPS modes. The reason for this can be attributed to the fact that the SSR of each error source can represent the individual error characteristics better than the lump-sum magnitude, such as PRC. For the case of the Kalman-filtered PPP, the accuracy improves in the horizontal and vertical directions respectively by 1.2 and 3.5 m than SPP, 1.2 and 3.0 m than DGPS.

Test Data and GPS Equipment
To evaluate the performance of the SSR messages for the moving platform, we test drove an automobile on about a 4-km stretch of freeway. Test drives were conducted on two separate days: 6 July (DOY 187) and 28 July (DOY 209) 2015. We used a Javad GrAnt-G3 antenna and a Javad Alpha-G3T receiver. It should be noted that the receiver is a single-frequency receiver. C/A observables were taken every second, and the total drive time was approximately 9 min. To compute the positioning accuracies, we applied a splitter to the antenna and fed the same GPS signal to a Septentrio PolaRX3e receiver, through which VRS positions were obtained. As is well known from previous studies, real-time kinematic VRS provides a positioning accuracy of approximately 5 cm in the horizontal direction with respect to RTK [20].
On both days, the convergence criterion of 1 cm/s was achieved well within 90 s in all directions. The positioning accuracy for the horizontal and vertical directions after initialization was around 0.3 and 0.6 m, respectively. After static initialization, we drove the car at various speeds to see if the positioning algorithm is sensitive to the velocity. The maximum speed was~90 km/h. We adaptively adjusted the parameters of the system noise Q matrix of the EKF according to the vehicle speed. Instead of using two consecutive positions to derive the velocities, instantaneous Doppler measurements were used. Figure 5 shows the Doppler-based velocity estimates during the entire test period. It can be seen that the speed dropped below 10 km/h at around 7.6 min, which is when the car made a U-turn. As shown in Table 1, the least-squares PPP positioning accuracy was 0.95 and 2.17 m for the horizontal and vertical directions, respectively, which is better than the least-squares SPP by about 0.5 and 1.8 m and DGPS by about 0.5 and 1.3 m. Thus, we can conclude that PPP modes applied SSR correction are more effective than SPP and DGPS modes. The reason for this can be attributed to the fact that the SSR of each error source can represent the individual error characteristics better than the lump-sum magnitude, such as PRC. For the case of the Kalman-filtered PPP, the accuracy improves in the horizontal and vertical directions respectively by 1.2 and 3.5 m than SPP, 1.2 and 3.0 m than DGPS.

Test Data and GPS Equipment
To evaluate the performance of the SSR messages for the moving platform, we test drove an automobile on about a 4-km stretch of freeway. Test drives were conducted on two separate days: 6 July (DOY 187) and 28 July (DOY 209) 2015. We used a Javad GrAnt-G3 antenna and a Javad Alpha-G3T receiver. It should be noted that the receiver is a single-frequency receiver. C/A observables were taken every second, and the total drive time was approximately 9 min. To compute the positioning accuracies, we applied a splitter to the antenna and fed the same GPS signal to a Septentrio PolaRX3e receiver, through which VRS positions were obtained. As is well known from previous studies, realtime kinematic VRS provides a positioning accuracy of approximately 5 cm in the horizontal direction with respect to RTK [20].
On both days, the convergence criterion of 1 cm/s was achieved well within 90 s in all directions. The positioning accuracy for the horizontal and vertical directions after initialization was around 0.3 and 0.6 m, respectively. After static initialization, we drove the car at various speeds to see if the positioning algorithm is sensitive to the velocity. The maximum speed was ~90 km/h. We adaptively adjusted the parameters of the system noise Q matrix of the EKF according to the vehicle speed. Instead of using two consecutive positions to derive the velocities, instantaneous Doppler measurements were used. Figure 5 shows the Doppler-based velocity estimates during the entire test period. It can be seen that the speed dropped below 10 km/h at around 7.6 min, which is when the car made a U-turn.

Test Results of Kinematic Positioning
An evaluation of the PPP performance was conducted using two estimation scheme modes. The first is a Kalman-filtered (KF) mode, and the other is an LS mode. The latter mode has an advantage in that no initialization is required. SPP modes were also attempted for a comparison to the LS mode of PPP.
The results of the kinematic positioning accuracy analysis are listed in Table 2. If we consider the average positioning accuracies of SPP for DOY 187 and 209, the RMSE for the horizontal and vertical directions is 2.00 and 3.05 m, respectively. Meanwhile, the best accuracy was achieved using KF mode: 0.53 m for the horizontal direction, and 0.69 m for the vertical direction. Thus, an improvement of 75% was achieved for all directions. Another notable aspect of SPP is that the levels of accuracy are not consistent between the two test dates. For example, the horizontal accuracy is 2.96 m on DOY 187, and 1.03 m on DOY 209. The sensitivity of the positioning accuracy with regard to the vehicle speed was analyzed in Figure 6, which shows the SPP and PPP cases. According to the figure, deviations predominantly reside within the range of 0 to 1 m. As was expected from the results in Table 2, larger scatters were observed in the SPP mode of the kinematic positioning.

Test Results of Kinematic Positioning
An evaluation of the PPP performance was conducted using two estimation scheme modes. The first is a Kalman-filtered (KF) mode, and the other is an LS mode. The latter mode has an advantage in that no initialization is required. SPP modes were also attempted for a comparison to the LS mode of PPP.
The results of the kinematic positioning accuracy analysis are listed in Table 2. If we consider the average positioning accuracies of SPP for DOY 187 and 209, the RMSE for the horizontal and vertical directions is 2.00 and 3.05 m, respectively. Meanwhile, the best accuracy was achieved using KF mode: 0.53 m for the horizontal direction, and 0.69 m for the vertical direction. Thus, an improvement of ~75% was achieved for all directions. Another notable aspect of SPP is that the levels of accuracy are not consistent between the two test dates. For example, the horizontal accuracy is 2.96 m on DOY 187, and 1.03 m on DOY 209. The sensitivity of the positioning accuracy with regard to the vehicle speed was analyzed in Figure 6, which shows the SPP and PPP cases. According to the figure, deviations predominantly reside within the range of 0 to 1 m. As was expected from the results in Table 2, larger scatters were observed in the SPP mode of the kinematic positioning.  However, no dependency can be found between speed and positioning error. Thus, we can conclude that the developed algorithm is capable of producing a consistent positioning accuracy without regard to the vehicle speed.

Conclusions
We developed PPP programs to process GPS code-pseudorange observables with real-time SSR corrections, and validated their performance through static and kinematic positioning tests. The performance of PPP algorithm was assessed based on the convergence time and positioning accuracy. With CROC, convergence was considered to be achieved when the rate of change in each direction was less than 1 cm/s. Among the 44 datasets, the average convergence times were found to be 48, 35, and 74 s for the north, east, and vertical directions, respectively. In performance analysis, we evaluated the positioning accuracy after all three directions converged. The proposed algorithm in static modes achieves horizontal and vertical RMSE of 0.32 and 0.40 m, respectively. To examine PPP algorithm for a moving platform, we test drove an automobile on a freeway. The horizontal and vertical RMSE along the test route were 0.53 and 0.69 m, respectively. From the above result, it was verified that the developed PPP algorithm utilizing SSR corrections can be provide reliable sub-meter level accuracy in both static and kinematic modes.

Conflicts of Interest:
The authors declare no conflict of interest.