Pseudorange Bias of L1 Frequency

1. Introduction

It has long been known that there are GPS satellite-dependent biases between the L1 pseudorange observables, C/A and P1. Because these can adversely affect carrier phase ambiguity resolution, this study is developing methods to measure them. This section addresses the background of the receiver mixing problem and the pseudorange code biases.

1.1. Receiver Types and Mixing Problem

GPS receivers have responded to restrictions on the GPS signal structure in different ways. The impact of their decisions means that different GPS observable combinations are available to the geophysical community depending on which receiver it purchases. Since each receiver model provides different pseudorange data types, precise positioning of baselines will be degraded due to the mixture of data types if the receiver type is mixed in a network. Furthermore, it is not clear how receiver manufacturers will respond to the second civilian code (L2 C/A-code) and the third frequency 1176.45\,MHz (L5), which will be added by the Department of Defense in the near future.

Table 1. Five typical receiver types and their data characteristics

Five receiver types based on the pseudorange observables are summarized in Table \ref{tab:type}. P1 and $P2$ mean the P-code pseudoranges on the L1 and L2 frequencies. P2' is codeless pseudorange at L2 frequency, which is defined as C/A+(P2-P1). Of dual frequency receivers, these can be divided into two types: cross-correlation type and codeless tracking type. The cross-correlation types produce degraded accuracy, while the codeless tracking is more accurate \citep{intro}. The observables and their relationship between cross-correlation and non cross-correlation type receivers are well described in Appendix \ref{app:igsmail}. If the satellite dependent biases between the two pseudorange observables, C/A and P1, are precisely known, they can improve ambiguity resolution in a receiver mixed network by calibrating $C/A$ to mimic P1 pseudorange.

Since the International GPS Service (IGS) started the multinational GPS service in 1994, its data products and tracking network has played a major role in geodetic positioning and geophysical research. Over the past decade the IGS global network has evolved with equipment with newer technology as well as growth in size. Replacement of receivers over time has eventually caused there to be a mixture of receiver types. There are 382 IGS global stations as of July 2005. The portion of Ashtech receivers is increasing (Figure \ref{fig:manufac}). But there are still many other receivers mixed in the global IGS sites.

{Classification of receivers of the global IGS sites, 1999--2005 (Source: IGS).}

As the IGS global tracking network began to replace the cross-correlating type older style receivers generating $C/A$ and $P2'$ pseudoranges with the codeless type (Z-tracking) receivers such as Ashtech Z-12, generating $C/A$, $P1$, and $P2$ pseudoranges, it was noticed that the $C/A$ and $P1$ data were inconsistently biased, at the level of 1--3\,nsec which is equivalent to 30--90\,cm. Simple mixing of data from these different types of receivers produced corrupt timing estimates and degraded ambiguity resolution. The IGS have made the $C/A$ versus $P1$ calibration to minimize timing errors of the mixed networks using simple equations. These differential code bias (DCB) values for each satellite have been noticed as similar patterns for different receiver, therefore this implies that there are transmitter specific biases, $\Delta_{PC}^s$, between $C/A$ and $P1$ for each satellite (Equation \ref{eq:satbias}).

P1 = {C/A} + \Delta_{PC}^s

where, $s$ is a satellite number, pseudorandom noise (PRN). Currently, $s=1\ldots31$.

1.2. Differential Code Biases

Differential Code Bias (DCB) is a pseudorange bias between the C/A and P1 for each satellite, and it has been recognized for several years. An initial effort to address the issue was provided by Jefferson et~al. \citep{jefferson} They analyzed a multiple week global comparison of cross-correlation type receivers with the codeless type receivers, and their bias estimates were initially adopted by the IGS and later replaced by the ongoing work of the Center for Orbit Determination in Europe (CODE) headed by the University of Bern, Switzerland. Since April 2000, CODE has provided the DCB values on a monthly basis using the global IGS network. They use $C/A$ observations obtained from cross-correlation style receivers and P1 from codeless type receivers in order to directly reflect the code biases between two types of receivers \citep{code2000}. The CODE biases for all satellites in January 2004 are shown in Figure \ref{fig:code_prn}(a). This shows the magnitude of the correction (1--3\,ns) being discussed in \ref{subs:mixing}. It is clear that the DCB values are quite large, and in no sense will a double difference \footnote{When the pseudorange observations of one receiver from two satellites are subtracted from each other, it is called ``single difference". This removes the receiver clock bias. Similarly, another single difference can be obtained for another receiver to the same two satellites. If the two single differences are subtracted from each other, which is called ``double difference", it results in removing satellite clock biases as well. It is used to resolve integer ambiguities of carrier phase measurements.} remove them. Figure \ref{fig:code_prn}(b) shows more than 2 years' time series of DCB values for 8 arbitrary satellites. The biases have a significant time varying component. Therefore, pseudorange biases need to be continuously monitored over time.

{(a) Differential Code Biases (DCB) estimated by the CODE, University of Bern (January 2004). PRN identifies the satellite number. The mean of these estimates has been removed. (b) Timeseries of selected satellites shows time-varying }

One major in situ pseudorange bias experiment has been conducted by Gao et~al.\citep{gao-ion,gao-geodesy,gao-calgary} of the University of Calgary. He assembled a large number of receivers and used a splitter to set up a ``zero-baseline" experiment. If a difference of observables between the two receivers is not zero, there is an evidence of a systematic error. His research found fairly good agreement with the JPL's pseudorange bias study. He also confirmed that there are receiver-dependent as well as transmitter-dependent biases. He introduced a satellite/receiver-independent but time-varying biases as well. The following Sections show the receiver dependent, temperature independent biases. The primary goal of this Chapter is to calibrate pseudorange biases with receiver-dependent bias fixed values. In this way the biases can be applied either to old type or newer type receivers without any further receiver-specific calibration.

2. Methods for Obtaining Pseudorange Biases

2.1. Simple Difference using a Reference Satellite

If there is a receiver recording both C/A and P1, the DCB can be obtained in a simple way; C/A-P1 for each satellite and epoch. Figure \ref{fig:badex} shows the simple subtraction of $C/A$ and $P1$. Each dot indicates daily averaged value. From day 184 to 191, there was an step of 6.15\,ns due to the antenna cable for 6 days. Simple difference of $C/A$ and $P1$ still has a jump of cable effect. If you set PRN 25 as a reference satellite, the jump is removed. However, if the reference satellite happens to be time-varying (Figure \ref{fig:code_prn}(b)), this method could end up with misleading results.

{C/A-P1 biases using the reference satellite method. Jump due to the cable change has been removed but a drift is added by selecting unhealthy satellite (PRN 25) as a reference.}

2.2. Least Square of Observables

The pseudorange biases of the satellites are relative to each other. If you subtract two observables and two satellites (Equation \ref{eq:RL1} and \ref{eq:CL1}) for a single receiver, you can obtain a linear algebraic form, $\mathbf{A}\mathbf{x}=\mathbf{b}$, where $\mathbf{A} \in \mathbb{R}^{m\times n}$, $\mathbf{x} \in \mathbb{R}^{n}$, and $\mathbf{b} \in \mathbb{R}^{m}$, where $m$ is the number of observation and $n$ is the number of satellites, which is currently 31.
  A  = 1  -1  ...  0  0 
       1   0   -1 ... 0 
       ..  .. .. ..  ..
       0  ...   1 -1  0
       1  ...   0  1 -1 

  x  = x_1
       x_2
       ...
       x_n

  b  = b_1
       b_2
       ...
       b_m
In this particular case, the linear equation is overdetermined, m>n, and Equation \ref{eq:Amatrix} is a singular matrix. In order to keep the $\mathbf{A}$ matrix full rank, another row is added to make a zero mean. If k is defined as m+1, $k th row can be expressed as
  A_{k,:}  =  1   1  ...  1  
which makes
  sum_{i=1}^{n} x_i = b_k = 0
and the each element of {b} is a mean of double differences of a given satellite set.
  b_i  =  {sum_{j=1}^{h} (({P1}_j^{sat1} -{C/A}_j^{sat1}) - ({P1}_j^{sat2} -{C/A}_j^{sat2}))}/ h
       =  Mean (-c(Delta^{sat1}_{PC} -  Delta^{sat2}_{PC}))
where, h is the number of epochs with both satellites are in view.

Although many numerical methods are available to solve the least square problem, Singular Value Decomposition (SVD) method is used to solve this articular problem. One advantage of this method is that it is numerically stable for any case even when the equations are very close to singular \citep{nr}. Detailed description of SVD can be found in Appendix \ref{app:SVD}.

3. Temperature Dependency of Differential Code Biases

Several years have passed since the experiment was conducted by Gao et~al.\cite{gao-ion,gao-geodesy,gao-calgary} In this section the general form of the experiment was repeated but with some improvements, i.e., a temperature variation experiment. It is well known in the timing community that the pseudoranges are sensitive to temperature \citep{overney}. By using a thermal isolation chamber the source of the time-varying error can be carefully determined.

3.1. Experimental Settings

A 9-day thermal isolation chamber experiment was conducted in order to determine the possible DCB changes due to the receiver temperature variations. The experiment was run at the UNAVCO facility at Boulder, Colorado. A Trimble Choke Ring antenna was installed on the edge of the rooftop (Figure \ref{fig:antenna}). The thermal isolation chamber (Figure \ref{fig:chamber}) was programmed to change the temperature automatically from -20\,$\tccentigrade$ to +50\,$\tccentigrade$ with 3 day interval (Figure \ref{fig:profile}). An Ashtech microZ receiver with the site name ING3 was put in the chamber and an Ashtech Z-12 receiver (ING1) was connected to the same antenna and was installed out of the chamber as a reference.

{Picture of rooftop antenna used in this experiment. This Trimble Choke Ring antenna is located on the rooftop of UNAVCO facility at Boulder, Colorado. Photo is taken eastward.}

{Picture of thermal isolation chamber used in this experiment. This chamber is programmed to change temperature as in Figure \ref{fig:profile}. }

{Temperature profile of the experiment. It ranges from -20 to +50\,$\tccentigrade$. }

{Comparison of daily averaged DCB values during the experiment. Each background color indicates the temperature of the chamber. }

3.2. Experimental Results

During the experiment a serious hardware problem was found on the ING1 receiver. So one of the IGS global sites, GOLD \footnote{This site is located on the JPL's Goldstone Tracking station which is on Fort Irwin, 60 miles north of Barstow, California.} is used for the comparison between two receivers. Daily averaged DCB values of 12 selected satellites are compared in Figure \ref{fig:temperature}. Two tail test of 99\,\% confidence interval was used. The statistical hypothesis test shows that the most of the satellite biases are not significantly different from each other during the temperature varying environment. Although the pseudoranges are known to be sensitive to the temperature changes, the DCB values are found to be stable regardless of temperature variation.

4. Receiver Manufacture Dependent Biases

4.1. Receivers Record both C/A and P1 pseudoranges

To evaluate possible receiver specific biases, we conducted experiments for three different receiver models: Ashtech Z-12, Ashtech microZ, and AOA ACT. Then, we evaluate the accuracy of the pseudorange bias estimates by assessing ambiguity resolution results with and without these corrections. As Gao et~al.\cite{gao-calgary} noticed the receiver-dependent biases, the different types of receivers were selected to investigate the receiver-dependent biases. Total 9 IGS sites were selected and three of each are the same receiver model (Table \ref{tab:9sites}).
{A list of IGS sites of the three receiver types.}

Receiver Model  Ashtech Z-12  Ashtech Micro-Z  AOA ACT
                  BRUS           HYDE            YAR2   
Site Names        MADR           BREW            HOB2   
                  USUD           BLSA            FLIN   

{ A map showing the location of 9 sites indicated in Table \ref{tab:9sites}. Receiver models of each site are indicated by the different marks. }

Two Ashtech and one AOA receiver models are selected and analyzed for one year to get monthly averaged pseudorange biases. Figure \ref{fig:compRCV}(a) shows that the receivers from the same manufacture shows correlated DCB values ($R=\sim1$), whereas Figure \ref{fig:compRCV}(b) shows less correlation ($R=0.66$). This indicates that the GPS users should apply correct DCB values depending on the receiver manufacture.

{Comparison of monthly averaged DCB values between (a) Ashtech Z-12 and micro-Z, (b) Ashtech Z-12 and AOA ACT receivers. Each PRN has up to 12 months of data.}

Most of the Ashtech receivers used in the global tracking sites record both C/A and P1. Therefore it is not necessary to have Ashtech-specific DCB values. Among AOA receivers, however, only ACT models record both codes. For the second dominant AOA receivers, the bias values can be obtained from AOA ACT receivers. Obtaining both codes from a single receiver is beneficiary in terms of noise source; receiver noise can be canceled out and additional error sources from cables and splitter can be avoided. For the other type of receivers such as Trimble and Leica, which record only $C/A$-code in $L1$ frequency, zero-baseline experiment should be considered. It may need additional procedures for removing clock offsets between the receivers.

4.2. Receivers Record only $C/A$ code: Zero-Baseline Experiment

4.2.1. Zero-Baseline Experiment

{This schematic diagram shows the basic concept of the zero-baseline experiment. Both of the receivers are non-cross-correlation type receivers.}

The zero-baseline experiment is illustrated in Figure \ref{fig:basic}. Let us define each receiver clock bias as a constant and it can be modeled as,

  delta_A = delta_{common} + delta_{cable A} + delta_{rcv A}
  delta_B = delta_{common} + delta_{cable B} + delta_{rcv B}
where delta_{A} and delta_{B} are total receiver-specific clock biases for receiver $A$ and $B$, respectively. delta_{common} is a time delay from the antenna to the splitter, delta_{cable A} and $\delta_{cable B}$ are the cable delay from the splitter to each receiver. delta_{rcv A} and delta_{rcv B} are the time delays of each receiver hardware.

If the receiver A records only P1 and receiver B has only the C/A observable, double differences between two receivers will not be zero because of the biases between the two pseudorange observables. As atmospheric delays are canceled out, the observable models, Equation \ref{eq:RL1} and \ref{eq:CL1}, can be rewritten as,

  P1_{A}^{s}  =  rho_A^s - c delta^s + c delta_A + epsilon_{P1}
  C/A_{B}^{s} =  rho_B^s - c delta^s + c delta_B + c Delta_{PC}^s + epsilon_{C}
where P1_{A}^{s} and {C/A}_{B}^{s} are the P1 from satellite s to receiver A and C/A from satellite s to receiver B, respectively, and both are in meters. Delta_{PC}^{s} is a DCB of satellite s (Equation \ref{eq:satbias}). If two receiver noise terms, $\epsilon_{P1}$ and epsilon_{C/A}, are ignored, the double difference of two codes is a difference between DCB's of two satellites , such that
  (P1_{A}^{1} - C/A_{B}^{1}) - (P1_{A}^{2} - C/A_{B}^{2}) =  - c ( Delta_{PC}^1 - Delta_{PC}^2 )
which forms a linear algebraic equation mentioned in Section \ref{subs:svd}.

4.2.2. Experimental Settings

The setup for the receiver mixed experiment is similar to previous setting in Section \ref{section:temp}. An antenna (Trimble Choke Ring) on the roof top and the signal is splitted into four receivers using a splitter. Two Ashtech microZ receivers (ING0 and ING2) and two Trimble NetRS receivers (ING1 and ING3) are used. The receivers and their specifications are listed in Table \ref{tab:zero}. The temperature of the receivers are set to constantly +20 degree during the experiment.
{A list of receivers used in the zero-baseline experiment.}

Site Name   Receiver Model   Pseudorange Observables 
ING0       Ashtech microZ     C/A ,  P1 ,  P2  
ING1       Trimble NetRS      C/A ,  P2  
ING2       Ashtech microZ     C/A ,  P1 ,  P2  
ING3       Trimble NetRS      C/A ,  P2  
An Rubidium external clock (Symmetricom 8040) is served as a frequency standard in 5\,MHz. It is used to get synchronized timing for all the receivers. Therefore, in theory, the $C/A$ observables of four receivers should be the same at each epoch. One month of data (September. 2005) were collected after twenty days of test run.

4.2.3. Experimental Results

Ashtech and Trimble receivers handle external frequency standard differently. Ashtech receivers force the clock biases to be zero for each satellite, whereas Trimble receivers keep the biases and stabilize them with help of external standard. figure of clock offset of Trimbles. Figure \ref{fig:clock}(a) shows the differential C/A-code of ING0 from ING2. The external oscillator was turned on the day 139. The clock biases are converged to near zero for all the satellites when the reference frequency is applied. In the other hand, Figure \ref{fig:clock}(b) is the same setting as above except for using both Trimble NetRS receivers (ING1 and ING3). It still has biased values during the day 140 to 150. This implies that the NetRS receiver may contain unknown bias source in the receiver itself. And it does not seem like random error for each satellite.

{Clock offsets before and after the external frequency are applied. External frequency was turned on the day 138. (a) differences in $C/A$-codes of ING0 and ING2. (b) differences in $C/A$-codes of ING1 and ING3. }

The basic issue here is that when you turn on an external reference, the NetRS clock will be very stable, but the absolute value is not steered to zero. Therefore arbitrary clock offsets are expected for each satellite. The difference in offsets could be as great as 1\,msec (Brian Frohring, personal communication, 2005). The NetRS receivers power up with slightly different clock offsets and they only last the cycle of power. The clock offsets are calibrated by applying the clock offsets to the DCB values. Figure \ref{trmcom} compares DCB values between CODE and Trimble-specific. It shows high agreement ($R=0.96$) and is expected to have little difference in positioning.

{Plot comparing CODE and Trimble-specific DCB values. $R$ value is a correlation coefficient.}

5. Verifying the Calibration Values

5.1. Widelane Test for Daily Effect

Widelaning technique is a very useful tool to resolve ambiguous integer value of the carrier phase observables. The widelane can be obtained using a combination of the phase and pseudorange data \citep{blewitt}.
  L_{delta} = {(f_1 L_1 - f_2 L_2 )}/{(f_1 - f_2 )}
  P_{delta} = {(f_1 P_1 - f_2 P_2 )}/{(f_1 + f_2 )}
  b_{delta} = 1/{lambda_{delta}} * (L_{delta} - P_{delta})
where L_{delta} and P_{delta} are carrier phase and pseudorange widelane combination, respectively. f_1 and f_2 are the L1 and L2 carrier frequency. L and P are the carrier phase and pseudorange data in meters for each frequency. The widelane wavelength, lambda_{delta} = c/{f_1-f_2}, is ~ 86.2 cm. Figure \ref{fig:cpcal} shows three closely located GPS sties of the Southern California Integrated GPS Network (SCIGN). Two AOA receivers (AOA1 and JPLM) are 20--30 km apart from a Ashtech receiver (UCLP). This experiment is designed to reflect the real-world network settings. An arbitrary day (April 15, 2004) was picked for the test. The widelane of 6 different satellite sets and their double differences above 15\textdegree\, elevation angle was tested in order to compare the performance of ambiguity resolution between the CODE and the AOA specific DCB values. Each DCB is applied to the $C/A$-code of the AOA receiver to calibrate its C/A to P1-code. The widelaning method (Equations \ref{eq:wd1} to \ref{eq:wd3}) using pseudoranges can be applied to any length of baselines with common visibility of the satellites \citep{blewitt}. Although the pseudorange data are much noisier than the carrier phase data, averaging over a typical satellite path is usually sufficient to determine the integer value.

{Test sites for short term effect. An Ashtech receiver and two AOA Benchmark receivers in California are marked in different symbols.}

Figure \ref{fig:wldd} compares the averaged widelane values between CODE and AOA-specific DCB. In order to clearly see the widelane cycle differences, only the decimal fractions are shown in the plot. Thus, the fraction closer to an integer ($0$ or $1$) means better ambiguity resolution. All cases show improvement of ambiguity resolution except for the case of PRN 18/22 of UCLP vs. JPLM (Figure \ref{fig:wldd} (b)). Even though it became worse its widelane is below 0.1, which is far below the threshold of bias fixing criteria of the GIPSY software. In the case of PRN 04/24 of Figure \ref{fig:wldd} (b), the integer bias adjusted from 1 to 0 when using AOA-specific DCB values. This indicates that the ambiguity could be resolved incorrectly if inaccurate bias values are applied. The receiver specific bias values seem to work well in a daily widelane double-difference analysis. Since the bias values are changing over time, Section \ref{sub:long} is investigating a long term effect using a year of DCB values to compare the result of ambiguity resolution of the two DCB values.

{Widelane double difference results of selected satellite sets. As in \ref{fig:cpcal}, UCLP is Ashtech Z-12 receiver and AOA1 and JPLM are AOA Rogue SNR receivers. }

5.2. Ambiguity Resolution Test for Long Term Solutions

It is noted that the DCB values are receiver specific in the Section \ref{section:manufacture}: They are slightly biased depending on the receiver manufacture. %In this study, since the temperature variation does not seem to affect the $C/A-P1$ bias values, Two zero-baseline receivers, GOLD (Ashtech Z-XII3) and GOL2 (AOA Rogue SNR-12 RM), were tested for 366 days. Both are connected to a single antenna but using different clock; GOLD is using internal clock whereas GOL2 is using Hydrogen Maser external frequency standard in 5\,MHz.

For the AOA-specific DCB values, forty of AOA ACT receivers were selected from different location of the world (Figure \ref{fig:40aoa}), and the monthly averaged DCB values of each site are weighted averaged for each satellite. Figure \ref{fig:aoaCODE} compares CODE and AOA-specific values. The AOA-specific DCB values slightly differ from the CODE's. Some satellites, such as PRN 9, 26, and 31, shows good agreement with CODE values, whereas others show difference about 0.1 to 0.2\,m, which is equivalent to 0.3--0.6\,ns.

One-year of zero-baseline analysis was performed using the GIPSY software \citep{gipsy}. The carrier phase ambiguity was resolved using pseudorange widelaning technique \citep{blewitt}. The one year ambiguity resolution test shows that the global receiver-specific bias values (AOA-specific) resolve more ambiguities than CODE values (Figure \ref{fig:month_comp}). The receiver-specific DCB values resolved more ambiguities throughout the year 2004; AOA-specific did 90.40\,\%, whereas the CODE did 86.86\,\%.

{A map showing the location of 40 IGS sites using AOA ACT receivers.}

{Comparison of monthly averaged $C/A-P1$ bias values between the global weighted averaged AOA and the CODE values. Both are zero mean.}

{Comparison of ambiguity resolution performance for the year 2004. Each dot is a monthly average ambiguity resolution percentage and error bar is +- 1 sigma. }

Daily positions of GOL2 relative to GOLD are estimated by GIPSY software. In order to closely see the performance of monthly DCB values, the standard deviation of each component is shown in Figure \ref{fig:aoa_pos}. {\bf I am not sure whether I can claim this tiny difference as an improvement.} Although the AOA-specific DCB's distinctly resolved more ambiguities, the standard deviations of the positions show minor improvements of sub-millimeters.

{Monthly standard deviations of each component are compared. }

The DCB values for the Trimble receivers are obtained from zero-baseline experiment in Section \ref{sub:zero}. Although it was not possible to get averaged DCB over many sites, it shows good correlation with CODE DCB values ($R=??$). Some of the worse correlation in some satellites might be caused by less number of data points in double differencing. Two continuous GPS sites in southern California were considered as a test case: BILL \footnote{BILL is one of Southern California Integrated GPS Network (SCIGN), which is located near Lake Skinner, California.} and P474 \footnote{P474 is one of the Plate Boundary Observatory (PBO) sites located in Fallbrook, California.}. They are about 30\,km apart with a receiver mixed case (Figure \ref{fig:cptrm}). BILL is run by a Ashtech Z-XII3 and P474 by Trimble NetRS, and both uses their own internal clock. Owing to little difference in DCB values, the percentage of ambiguity resolution for one month shows similar performance.

{Map showing the test sites for Trimble-specific DCB effect. An Ashtech and a Trimble receiver in Southern California are marked in different symbols.}

Some receiver manufactures tend to smooth pseudoranges to reduce noise particularly in lower elevation angle. However, it sometimes results in false smoothing. Improver smoothing can cause misinterpretation of double differences, which directly affect getting correct DCB values. If the user can turn off smoothing option, DCB values for a particular receiver model can always be obtained using zero-baseline experiment.

6. Future Works

There have been many efforts to classify the receivers by their data types, but it seems to be endless. It will become more complicated when new GPS satellite signal (L2 C/A-code) is available. Then there will be a major issue of hybrid usage of GPS and Galileo. This is a big question but no one seems yet to have a clever answer to it. The bottom line is that there need to be a continuous monitoring on the DCB values for frequencies transmitting multiple codes.

7. Acknowledgements

This research is funded by NSF.