EAS-591T Ė Space Geodetic Measurements of Active Crustal Motions



GPS data: Multipath and Quality Control


The objective of this lab is to quantify the level of noise in our GPS measurements from the pseudorange and phase data. We are looking for the main contributors to that noise, the multipath effects and the receiver noise.


The GPS pseudorange measurements can be modeled as:


†† (1)


with:†††† P1 = L1 pseudorange (m)

P2 = L2 pseudorange (m)

R = satellite-receiver geometric range (m)

I1 = L1 ionospheric delay

I2 = L2 ionospheric delay

MP1 = P1 multipath plus receiver noise (m)

MP2 = P2 multipath plus receiver noise (m)


Similarly, the phase measurements can be modeled as:


††††††† (2)


with:†††† L1 = L1 phase measurement (m)

L2 = L2 phase measurement (m)

B1 = L1 phase ambiguity (m)

B2 = L2 phase ambiguity (m)

mp1 = L1 phase multipath plus receiver noise (m)

mp2 = L2 phase multipath plus receiver noise (m)


Phase noise is much smaller than pseudorange noise, therefore mp1>>MP1~0 and mp2>>MP2~0.


Now letís combine (1) and (2) in order to find MP1:




We need to solve for I1. Letís combine L1 and L2 from (2):


†† (4)


Now we have to deal with I1 and I2. We know that the ionospheric delay is proportional to the ionospheric electron content (IEC) and depends on the signal wavelenght. It can be written as (see lecture notes):



Substituting (5) into (4) gives:


†††††††††† (6)


Now we can substitute I1 from (6) into (3) to get:


†††††††† (7)


We can rearrange (7) by putting all the constant terms on the right hand side:


†††††††† (8)


Since MP1 has a zero mean, we are only interested in the structure of MP1 over time, notin the constant DC bias term (constant for each given orbit arc). We can therefore compute the constant by averaging MP1 over a given orbit arc, and then substract this average value from the MP1 values at each epoch. Consequently, after removing that bias, the pseudorange multipath noise can be written as (same derivation for MP2):





ř    Isnít there an important additional noise term that is not modeled here and which, consequently, is present in MP1 and MP2 as derived above?

ř    Write a Matlab function to compute and plot MP1 and MP2 from GPS data. The data should be read from a RINEX file using the read_rinexo.m function that you used for lab5.

o       Compute and plot MP1 and MP2 for PRN10 and PRN31.

o       Extra credit if your program plots MP1 and MP2 any PNR requested by the user.


Use the following values:

f1 = 1.57542 x 109 Hz;

f2 = 1.2276 x 109 Hz;

c = 0.299792458 x 109 m/s;

l1 = c/f1;

l2 = c/f2;