Pseudo-Random Codes and GPS Signals

GPS Satellite Signals:

     Each satellite transmits two Pseudo Random Codes. The first Pseudo-Random Code is called the C/A (Coarse Acquisition) code, which is the basis for civilian use. It modulates the L1 carrier repeating every 1023 bits and modulates at a 1MHz rate. The second Pseudo-Random Code is called the P (Precision) code. It repeats on a seven day cycle and modulates both the L1 and L2 carriers at a 10MHz rate. This code is intended for military users and can be encrypted. When it's encrypted it's called "Y" code. Since P code is more complicated than C/A it's more difficult for receivers to acquire. That's why many military receivers start by acquiring the C/A code first and then move on to P code.

     The Pseudo Random Code (PRC) is a fundamental part of GPS. Physically it's just a very complicated digital code, or in other words, a complicated sequence of "on" and "off" pulses. The signal is so complicated that it almost looks like random electrical noise. Hence the name "Pseudo-Random."
     There are several good reasons for that complexity: First, the complex pattern helps make sure that the receiver doesn't accidentally sync up to some other signal. The patterns are so complex that it's highly unlikely that a stray signal will have exactly the same shape.
     Since each satellite has its own unique Pseudo-Random Code this complexity also guarantees that the receiver won't accidentally pick up another satellite's signal. So all the satellites can use the same frequency without jamming each other. And it makes it more difficult for a hostile force to jam the system. In fact the Pseudo Random Code gives the DOD a way to control access to the system.
But there's another reason for the complexity of the Pseudo Random Code, a reason that's crucial to making GPS economical. The codes make it possible to use "information theory" to "amplify" the GPS signal. And that's why GPS receivers don't need big satellite dishes to receive the GPS signals.

Here's how that amplification process works:

     The world is full of random electrical noise. If we tuned our receivers to the GPS frequency and graphed what we picked up, we'd just see a randomly varying line (the earth's background noise). The GPS signal would be buried in that noise.
The pseudo random code looks a lot like the background noise but with one important difference:  we know the pattern of its fluctuations. What if we compare a section of our PRC with the background noise and look for areas where they're both doing the same thing? We can divide the signal up into time periods (called "chipping the signal") and then mark all the periods where they match (i.e. where the background is high when the PRC is high). Since both signals are basically random patterns, probability says that about half the time they'll match and half the time they won't.
If we set up a scoring system and give ourselves a point when they match and take away a point when they don't, over the long run we'll end up with a score of zero because the -1's will cancel out the 1's.
     But now if a GPS satellite starts transmitting pulses in the same pattern as our pseudo random code, those signals, even though they're weak, will tend to boost the random background noise in the same pattern we're using for our comparison.
Background signals that were right on the border of being a "1" will get boosted over the border and we'll start to see more matches. And our "score" will start to go up. Even if that tiny boost only puts one in a hundred background pulses over the line, we can make our score as high as we want by comparing over a longer time. If we use the 1 in 100 figure, we could run our score up to ten by comparing over a thousand time periods.
     If we compared the PRC to pure random noise over a thousand time periods our score would still be zero, so this represents a ten times amplification. This explanation is a greatly simplified but the basic concept is significant. It means that the system can get away with less powerful satellites and our receivers don't need big antennas like satellite TV.
     You may wonder why satellite TV doesn't use the same concept and eliminate those big dishes. The reason is speed. The GPS signal has very little information in it. It's basically just a timing pulse, so we can afford to compare the signal over many time periods. A TV signal carries a lot of information and changes rapidly. The comparison system would be too slow and cumbersome.

GPS Data: