GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE The C/A code is based on the 10 stage linear feedback register sequence, for which the equence length is L(10)=2-1=1023 bits. The Cla code really has a repeating sequence of 1023 bits; however the design is slightly more complicated than presented above. The c/a code is actually a"Gold code, which is derived by taking the XOr of the output from 2 linear feedback registers. Unique C/A codes can be generated for each satellite by selecting different pairs of cells from each register to define the output In summary, the C/A code is a unique Gold code on each satellite, which is a pseudorandom sequence of bits with a repeating sequence length of 1023. C/a bit transitions occur at 1.023 Mhz. Note that the fundamental frequency in the satellite is 10.23 Mhz, so this represents one transition every 10 cycles. At this rate of bit transitions, the full sequence of 1023 bits is transmitted in I ms. Therefore, the sequence repeats 1000 times per second. The chip length (distance between bit transitions )is 293 m. Therefore, the sequence repeats every 300 km 1.4 P Code The P code is also generated from a combination of two different registers, in such a way that it repeats every 266. 4 days. Each 7 day section is assigned a"PRN code. Satellites are often identified by their PRN number; however, the user should beware that any given satellite can have its PRn code changed. Therefore, PRN codes should not be used in place of Satellite Vehicle Numbers(SVN) when talking about particular satellites.( For example, if someone writes software which identifies satellites using PRN numbers, there might be a problem in orbit modelling, for example, prn 2 is assigned to a block II satellite now, but to a block Iir satellite next year). There are 38 possible PRn codes; given that there are 24 nominal satellites, some PRn codes are left unused. The Prn sequence is reset at Saturday midnigl defining the start of"GPS week. 3.1.5 GPS signal transmission and reception Let us now summarise how the GPS signal is transmitted from space, and then received on the ground. The GPS signal starts in the satellite as a voltage which oscillates at the fundamental clock frequency of 10.23 Mhz. (If selective availability is on, this signal is then"dithered"so that the frequency varies unpredictably). This signal is then separately multiplied in frequency by the integers 154 and 120, to create the LI and L2 carrier signals. The signals are then multiplied by +l and-I according the algorithms described above to generate the C/a code the Navigation Message is encoded onto the signal. The signals are boosted by an apmla (on Ll)and the P code(on both Ll and L2). These codes are unique to each satellite. Finally and then sent to transmitting antennas, which point towards the Earth. These antennas are little more than exposed electrical conductors which radiate the signal into space in the form of electromagnetic waves These electromagnetic waves pass through space and the Earths atmosphere, at very close to the speed of light in a vacuum, until they reach the receiver's antenna. The waves create a minute signal in the antenna, in the form of an oscillating voltage. The signal is now pre amplified at the antenna, to boost the signal strength, so that it is not overcome by noise by the time it gets to the other end of the antenna cable. The signal then enters the receiver, which
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE 11 The C/A code is based on the 10 stage linear feedback register sequence, for which the sequence length is L(10) = 2 10 −1 = 1023 bits. The C/A code really has a repeating sequence of 1023 bits; however the design is slightly more complicated than presented above. The C/A code is actually a “Gold code”, which is derived by taking the XOR of the output from 2 linear feedback registers. Unique C/A codes can be generated for each satellite by selecting different pairs of cells from each register to define the output. In summary, the C/A code is a unique Gold code on each satellite, which is a pseudorandom sequence of bits with a repeating sequence length of 1023. C/A bit transitions occur at 1.023 Mhz. Note that the fundamental frequency in the satellite is 10.23 Mhz, so this represents one transition every 10 cycles. At this rate of bit transitions, the full sequence of 1023 bits is transmitted in 1 ms. Therefore, the sequence repeats 1000 times per second. The chip length (distance between bit transitions) is 293 m. Therefore, the sequence repeats every 300 km. 3.1.4 P Code The P code is also generated from a combination of two different registers, in such a way that it repeats every 266.4 days. Each 7 day section is assigned a “PRN code.” Satellites are often identified by their PRN number; however, the user should beware that any given satellite can have its PRN code changed. Therefore, PRN codes should not be used in place of Satellite Vehicle Numbers (SVN) when talking about particular satellites. (For example, if someone writes software which identifies satellites using PRN numbers, there might be a problem in orbit modelling, for example, PRN 2 is assigned to a Block II satellite now, but to a Block IIR satellite next year). There are 38 possible PRN codes; given that there are 24 nominal satellites, some PRN codes are left unused. The PRN sequence is reset at Saturday midnight, defining the start of “GPS week.” 3.1.5 GPS signal transmission and reception Let us now summarise how the GPS signal is transmitted from space, and then received on the ground. The GPS signal starts in the satellite as a voltage which oscillates at the fundamental clock frequency of 10.23 Mhz. (If selective availability is on, this signal is then “dithered” so that the frequency varies unpredictably). This signal is then separately multiplied in frequency by the integers 154 and 120, to create the L1 and L2 carrier signals. The signals are then multiplied by +1 and −1 according the algorithms described above to generate the C/A code (on L1) and the P code (on both L1 and L2). These codes are unique to each satellite. Finally, the Navigation Message is encoded onto the signal. The signals are boosted by an amplifier, and then sent to transmitting antennas, which point towards the Earth. These antennas are little more than exposed electrical conductors which radiate the signal into space in the form of electromagnetic waves. These electromagnetic waves pass through space and the Earth’s atmosphere, at very close to the speed of light in a vacuum, until they reach the receiver’s antenna. The waves create a minute signal in the antenna, in the form of an oscillating voltage. The signal is now preamplified at the antenna, to boost the signal strength, so that it is not overcome by noise by the time it gets to the other end of the antenna cable. The signal then enters the receiver, which
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE then measures it using a process known as"autocorrelation. It is beyond the scope of this paper to go into the details of receiver design, so our description will be kept at the level equired to understand how the observable model can be developed 3.2 AUTOCORRELATION TECHNIQUE We have described how the GPS satellites construct the GPS signals. Actually, the receiver also generate GPS-like signals internally. The receiver knows precisely what the transmitted GPS signal is supposed to look like at any given time, and it generates an electronic replica, in synchronisation with the receiver's own clock. The receiver then compares the replica signal with the actual signal. Since the GPS signal was actually created in the satellite some time previously(about 0.07 seconds ago, due to the speed of light), the receiver's replica signal must be delayed in to match up the incoming signal with the replica signal. This time delay is actually what the receiver is fundamentally measuring. Clearly, this represents the time taken for the signal to pass from the satellite to the receiver, but it also includes any error in the satellite clock, and any error in the receiver clock. One can see that the time delay is therefore related to the range to the satellite. We return to this model later, and now turn our attention to how the receiver matches the two signals The time difference is computed by autocorrelation. The first bit from signal one is multiplied by the first bit of signal two. For example, if the first bits from the two signals both have values -l, then the result is (1)x(1)=+l. Similarly, if both bits have values +1, then the result is +1. On the other hand, if the two bits disagree, the result is (+1)x(l)= 1. This process is repeated for the second pair of bits, and so on. The result can be written as a sequence of I(where the bits agree)and -l(where the bits disagree). This sequence is then summed, and divided by the total number of bits in each signal. For example, if signal A can be written(+1, -l,-1, +l,-1), and signal B can be written (+l, +l,-1,-1, +1), then multiplication gives(+l,-1, +l, -l,-l); the sum of which gives -1; then dividing by the number of bits (5)gives -0.2. Note that if the two signals matched perfectly, the result would be +1. If the two signals were completely random, we should expect a result close to zero This is why the GPS signals are designed to look random. When the two signals are not properly matched in time, the result of autocorrelation gives an answer close to zero; if the ignals are matched in time, the result is close to +l(but not exactly, since a real signal also has noise, so some bits are incorrect). One can see that the larger the number of bits that are compared, the better the resolution. This is because the random bits will average to zero better, the more bits we compare The Gold codes have the property that the autocorrelation is constant until we get to within one chip of the correct answer. Within that window of +l chip, the autocorrelation function looks like an equilateral triangle, with a value of I at its peak(assuming no noise). We can therefore use the known triangular shape as a model to help us find the time displacement that maximises the autocorrelation. (More sophisticated receivers account for the fact that multipath distorts the shape of this triangle, and can thus reduce the effect of multipath)
12 GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE then measures it using a process known as “autocorrelation.” It is beyond the scope of this paper to go into the details of receiver design, so our description will be kept at the level required to understand how the observable model can be developed. 3.2 AUTOCORRELATION TECHNIQUE We have described how the GPS satellites construct the GPS signals. Actually, the receiver also generate GPS-like signals internally. The receiver knows precisely what the transmitted GPS signal is supposed to look like at any given time, and it generates an electronic replica, in synchronisation with the receiver’s own clock. The receiver then compares the replica signal with the actual signal. Since the GPS signal was actually created in the satellite some time previously (about 0.07 seconds ago, due to the speed of light), the receiver’s replica signal must be delayed in to match up the incoming signal with the replica signal. This time delay is actually what the receiver is fundamentally measuring. Clearly, this represents the time taken for the signal to pass from the satellite to the receiver, but it also includes any error in the satellite clock, and any error in the receiver clock. One can see that the time delay is therefore related to the range to the satellite. We return to this model later, and now turn our attention to how the receiver matches the two signals. The time difference is computed by autocorrelation. The first bit from signal one is multiplied by the first bit of signal two. For example, if the first bits from the two signals both have values −1, then the result is (−1) × (−1) = +1. Similarly, if both bits have values +1, then the result is +1. On the other hand, if the two bits disagree, the result is (+1) × (−1) = −1. This process is repeated for the second pair of bits, and so on. The result can be written as a sequence of +1 (where the bits agree) and -1 (where the bits disagree). This sequence is then summed, and divided by the total number of bits in each signal. For example, if signal A can be written (+1, −1, −1, +1, −1), and signal B can be written (+1, +1, −1, −1, +1), then multiplication gives (+1, −1, +1, −1, −1); the sum of which gives −1; then dividing by the number of bits (5) gives −0.2. Note that if the two signals matched perfectly, the result would be +1. If the two signals were completely random, we should expect a result close to zero. This is why the GPS signals are designed to look random. When the two signals are not properly matched in time, the result of autocorrelation gives an answer close to zero; if the signals are matched in time, the result is close to +1 (but not exactly, since a real signal also has noise, so some bits are incorrect). One can see that the larger the number of bits that are compared, the better the resolution. This is because the random bits will average to zero better, the more bits we compare. The Gold codes have the property that the autocorrelation is constant until we get to within one chip of the correct answer. Within that window of ±1 chip, the autocorrelation function looks like an equilateral triangle, with a value of 1 at its peak (assuming no noise). We can therefore use the known triangular shape as a model to help us find the time displacement that maximises the autocorrelation. (More sophisticated receivers account for the fact that multipath distorts the shape of this triangle, and can thus reduce the effect of multipath)
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE Now that we have found the peak autocorrelation, the inferred time displacement between two signals is multiplied by the speed of light. This observation is called the pseudorang The pseudorange measurement is described schematically in Figure 1 3.3 PSEUDORANGE OBSERVATION EQUATIONS 3.3.1 Simplified Pseudorange Model Receivers record data at regular, specified intervals(say, every 30 seconds, as instructed by the receiver user). It is the reading of the receiver clock time T, which is used to say exactly when the measurement is sampled. Therefore, the value of T at a measurement epoch is known exactly, and is written to the data file along with the observation. What is not known, is the true time of measurement ). The actual observation to satellite s can be writted P=(T-75)c where T is the known reading of the receiver clock when signal is received, T' is the reading of the satellite clock when the signal was transmitted, and c is the speed of light(in a vacuum =299792458m/s. Satellite cock,下 Transmitted signal Received signal, driven by satellite clock T Antenna Replica signal, driven by receiver clock T Receiver (77) clock t Figure 1: A schematic diagram showing how the gPs pseudorange observation is related to the satellite and receiver clocks The modelled observation can be developed by setting the clock time T equal to the true receive time t plus a clock bias t, for both the receiver and satellite clocks T=t+T Substitution gives the pseudorange as a function of the true time the signal was received
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE 13 Now that we have found the peak autocorrelation, the inferred time displacement between the two signals is multiplied by the speed of light. This observation is called the pseudorange. The pseudorange measurement is described schematically in Figure 1. 3.3 PSEUDORANGE OBSERVATION EQUATIONS 3.3.1 Simplified Pseudorange Model Receivers record data at regular, specified intervals (say, every 30 seconds, as instructed by the receiver user). It is the reading of the receiver clock time T, which is used to say exactly when the measurement is sampled. Therefore, the value of T at a measurement epoch is known exactly, and is written to the data file along with the observation. (What is not known, is the true time of measurement). The actual observation to satellite s can be writted: P S = (T− T S ) c where T is the known reading of the receiver clock when signal is received, T S is the reading of the satellite clock when the signal was transmitted, and c is the speed of light (in a vacuum) = 299792458 m/s. (T−Ts ) Received signal, driven by satellite clock Ts Replica signal, driven by receiver clock T Antenna Satellite clock, Ts Transmitted signal Receiver clock T Figure 1: A schematic diagram showing how the GPS pseudorange observation is related to the satellite and receiver clocks. The modelled observation can be developed by setting the clock time T equal to the true receive time t plus a clock bias τ, for both the receiver and satellite clocks: T t T t S S S = + = + τ τ Substitution gives the pseudorange as a function of the true time the signal was received:
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE P()=(t+a)-(r3+r)c (t-t)c p°(t,t3) where p(t, t)is the range from receiver(at receive time) to the satellite(at transmit time) This model is simplified; for example, it assumes the speed of light in the atmosphere is c, and it ignores the theory of relativity; but this simplified model is useful to gain insight into the principles of GPS. From Pythagoras Theorem, we can write p(r)=Vx2()-x()2+(y()-y()2+(y()-yo) The Navigation message allows us to compute the satellite position(x,y, :')and the satellite clock bias t. Therefore we are left with 4 unknowns, the receiver position(x, y, =) and the receiver clock bias T We note here one complication: that the satellite position must be calculated at transmission time,t. This is important, because the satellite range can change as much as 60 metres from the time the signal was transmitted to the time the signal was received, approximately 0.07 seconds later. If the receive time were used instead, the error in computed range could be tens of metres. Starting with the receive time, t, the transmit time can be computed by an iterative algorithm known as" the light time equation, which can be written as follows r3(0)=t=(T-r) t(1)=t- p(t,t5(0) S where the satellite position(and hence the range p(t, t') is calculated at each step using the Keplerian-type elements from the Navigation Message, and the algorithm is stopped once the computed range converges(i.e, don't change by more than a negligible amount ). Although more rapidly converging methods have been implemented, the above method is probably the easiest to understand Note that the above algorithm starts with the true receive time, which requires the receiver clock bias. We usually don' t know in advance what the bias is, but for most receivers it never gets larger than a few milliseconds(beyond which, the receiver will reset its clock ). If we ssume it is zero in the above computation, the error produced is a few metres, which is much smaller than typical point positioning precision of approximately 50 metres with S/A switched on. We can therefore safely ignore this effect for now, and return to it later when we discuss the more precise carrier phase observable
14 GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE P S (t) = ((t + τ) − (t S + τ S ))c = (t − t S )c + cτ − cτ S = ρ S (t, t S ) + cτ − cτ S where ρ S (t, t S ) is the range from receiver (at receive time) to the satellite (at transmit time). This model is simplified; for example, it assumes the speed of light in the atmosphere is c, and it ignores the theory of relativity; but this simplified model is useful to gain insight into the principles of GPS. From Pythagoras Theorem, we can write: ρ ( ) ( ) ( ) S S S S S S S S (t,t ) = x (t ) − x(t) + y (t ) − y(t) + y (t ) − y(t) 2 2 2 The Navigation message allows us to compute the satellite position (x S , y S , z S ) and the satellite clock bias τ S . Therefore we are left with 4 unknowns, the receiver position (x, y, z) and the receiver clock bias τ. We note here one complication: that the satellite position must be calculated at transmission time, t S . This is important, because the satellite range can change as much as 60 metres from the time the signal was transmitted, to the time the signal was received, approximately 0.07 seconds later. If the receive time were used instead, the error in computed range could be tens of metres. Starting with the receive time, t, the transmit time can be computed by an iterative algorithm known as “the light time equation,” which can be written as follows: t t (T ) t t t t c t t t t c S S S S S S S ( ) ( ) ( , ( )) ( ) ( , ( )) 0 1 0 2 1 = = − = − = − τ ρ ρ where the satellite position (and hence the range ρ S (t, t S )) is calculated at each step using the Keplerian-type elements from the Navigation Message, and the algorithm is stopped once the computed range converges (i.e., don’t change by more than a negligible amount). Although more rapidly converging methods have been implemented, the above method is probably the easiest to understand. Note that the above algorithm starts with the true receive time, which requires the receiver clock bias. We usually don’t know in advance what the bias is, but for most receivers it never gets larger than a few milliseconds (beyond which, the receiver will reset its clock). If we assume it is zero in the above computation, the error produced is a few metres, which is much smaller than typical point positioning precision of approximately 50 metres with S/A switched on. We can therefore safely ignore this effect for now, and return to it later when we discuss the more precise carrier phase observable
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE We now look at our system of simplified observation equations from 4 satellites in view of the receiver. Using the above notation, we can write the pseudoranges to each satellite as P=((x2-x)2+(y3-y)2+(1-)2)+cr-cr P2=(x2-x)2+(2-y)2+(2-2)) +CT-c P3=((x3-x)2+(3-y+(23-)%+cr-cr P=((x2-x)2+(4-y)2+(=4-x)2)%+cr-ct (Note that in this and subsequent equations, the superscripts next to the satellite coordinates are meant to identify the satellite, and should not be confused with exponents). In the following section, we proceed to solve this system of equations for the 4 unknowns, (x,y, = t) using familiar least squares methods. Although this is not strictly necessary for 4 unknowns with 4 parameters, it does generalise the solution to the case where we have m> 4 satellites n view 4. POINT POSITIONING USING PSEUDORANGE 4. 1 LEAST SQUARES ESTIMATION 4.1.1 Linearised Model We solve the point positioning problem by first linearising the pseudorange observation equations, and then using the familiar methods of least-squares analysis. For completeness, we summarise the linearisation procedure and the development of the least squares method specifically for the gps point positioning problem. First, we assume we can write the actual observation to be the sum of a modelled observation, plus an error term model t noise P(x,y,=,τ)+v Next, we apply Taylor's theorem, where we expand about the model computed using provisional parameter values(xo, yo, =0, to), and ignore second and higher order terms P(x,y,=,T)≡P(x02y0=0,t0)+(x-x)+(y-y Note that the partial derivatives in the above expression are also computed using provisional values(xo, yo, :0, To). The residual observation is defined to be the difference between the actual observation and the observation computed using the provisional parameter values
GEOFFREY BLEWITT: BASICS OF THE GPS TECHNIQUE 15 We now look at our system of simplified observation equations from 4 satellites in view of the receiver. Using the above notation, we can write the pseudoranges to each satellite as: P 1 = ( (x 1 − x) 2 + (y 1 − y) 2 + (z 1 − z) 2 )½ + cτ − cτ 1 P 2 = ( (x 2 − x) 2 + (y 2 − y) 2 + (z 2 − z) 2 )½ + cτ − cτ 2 P 3 = ( (x 3 − x) 2 + (y 3 − y) 2 + (z 3 − z) 2 )½ + cτ − cτ 3 P 4 = ( (x 4 − x) 2 + (y 4 − y) 2 + (z 4 − z) 2 )½ + cτ − cτ 4 (Note that in this and subsequent equations, the superscripts next to the satellite coordinates are meant to identify the satellite, and should not be confused with exponents). In the following section, we proceed to solve this system of equations for the 4 unknowns, (x, y, z, τ) using familiar least squares methods. Although this is not strictly necessary for 4 unknowns with 4 parameters, it does generalise the solution to the case where we have m ≥ 4 satellites in view. 4. POINT POSITIONING USING PSEUDORANGE 4.1 LEAST SQUARES ESTIMATION 4.1.1 Linearised Model We solve the point positioning problem by first linearising the pseudorange observation equations, and then using the familiar methods of least-squares analysis. For completeness, we summarise the linearisation procedure and the development of the least squares method specifically for the GPS point positioning problem. First, we assume we can write the actual observation to be the sum of a modelled observation, plus an error term: P P P x y z v observed = el + noise = + mod ( , , , τ) Next, we apply Taylor’s theorem, where we expand about the model computed using provisional parameter values (x0, y0, z0, τ0), and ignore second and higher order terms. P x y z P x y z ( x x ) ( ) ( ) ( ) P x y y P y z z P z P P P x x P y y P z z P ( , , ,τ) ( , , , τ ) τ τ τ τ ≅ + − + − + − + − = + + + + 0 0 0 0 0 0 0 0 ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ computed ∆ ∆ ∆ ∆τ Note that the partial derivatives in the above expression are also computed using provisional values (x0, y0, z0, τ0). The residual observation is defined to be the difference between the actual observation and the observation computed using the provisional parameter values: