The words "Code-Phase" and
"Carrier-Phase" may sound like electronic mumbo-jumbo but, in fact, they just
refer to the particular signal that we use for timing measurements. Using the GPS carrier
frequency can significantly improve the accuracy of GPS.
The concept is simple but to understand it let's review a few basic principles of GPS.
Remember that a GPS receiver determines the travel time of a signal from a satellite by
comparing the "pseudo random code" it's generating, with an identical code in
the signal from the satellite.
The receiver slides its code later and later in time until it syncs up with the
satellite's code. The amount it has to slide the code is equal to the signal's travel
The problem is that the bits (or cycles) of the pseudo random code are so wide that
even if you do get synced up there's still plenty of slop.
Consider these two signals:
If you compared them logically you'd say they matched. When signal A is a one, signal B
is a one. When signal A is a zero, signal B is a zero.
But you can see that while they match they're a little out of phase. Notice that, even
though they are the same most of the time, signal A may change state a little before
signal B. This is the source of positioning error.
That's the problem with code-phase GPS. It's comparing pseudo random codes that have a
cycle width of almost a microsecond. And at the speed of light a microsecond is almost 300
meters of error!
Code-phase GPS isn't really that bad because receiver designers have come up with ways
to make sure that the signals are almost perfectly in phase. Good machines get with in a
percent or two. But that's still at least 3-6 meters of error.