GPS Satellite Signals:
- The satellites transmit two microwave carrier signals. The L1 frequency (1575.42 MHz) carries the navigation message and the SPS code signals. The L2 frequency (1227.60 MHz) is used to measure the ionospheric delay by PPS equipped receivers.
- Three binary codes shift the L1 and/or L2 carrier phase.
- The C/A Code (Coarse Acquisition) modulates the L1 carrier phase. The C/A code is a repeating 1 MHz Pseudo Random Noise (PRN) Code. This noise-like code modulates the L1 carrier signal, "spreading" the spectrum over a 1 MHz bandwidth. The C/A code repeats every 1023 bits (one millisecond). There is a different C/A code PRN for each satellite. GPS satellites are often identified by their PRN number, the unique identifier for each Pseudo-Random Code. The C/A code that modulates the L1 carrier is the basis for the civil SPS.
- The P-Code (Precise) modulates both the L1 and L2 carrier phases. The P-Code is a very long (seven days) 10 MHz PRN code. In the Anti-Spoofing (AS) mode of operation, the P-Code is encrypted into the Y-Code. The encrypted Y-Code requires a classified AS Module for each receiver channel and is for use only by authorized users with cryptographic keys. The P (Y)-Code is the basis for the PPS.
- The Navigation Message also modulates the L1-C/A code signal. The Navigation Message is a 50 Hz signal consisting of data bits that describe the GPS satellite orbits, clock corrections, and other system parameters.
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.
There is also 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:
- The GPS Navigation Message consists of time-tagged data bits marking the time of transmission of each subframe at the time they are transmitted by the satellite. A data bit frame consists of 1500 bits divided into five 300-bit subframes. A data frame is transmitted every thirty seconds. Three six-second subframes contain orbital and clock data. satellite Clock corrections are sent in subframe one and precise satellite orbital data sets (ephemeris data parameters) for the transmitting satellite are sent in subframes two and three. Subframes four and five are used to transmit different pages of system data. An entire set of twenty-five frames (125 subframes) makes up the complete Navigation Message that is sent over a 12.5 minute period.
- Data frames (1500 bits) are sent every thirty seconds. Each frame consists of five subframes.
- Data bit subframes (300 bits transmitted over six seconds) contain parity bits that allow for data checking and limited error correction.
- Clock data parameters describe the satellite clock and its relationship to GPS time.
- Ephemeris data parameters describe satellite orbits for short sections of the satellite orbits. Normally, a receiver gathers new ephemeris data each hour, but can use old data for up to four hours without much error. The ephemeris parameters are used with an algorithm that computes the satellite position for any time within the period of the orbit described by the ephemeris parameter set.
- Almanacs are approximate orbital data parameters for all satellites. The ten-parameter almanacs describe satellite orbits over extended periods of time (useful for months in some cases) and a set for all satellites is sent by each satellite over a period of 12.5 minutes (at least). Signal acquisition time on receiver start-up can be significantly aided by the availability of current almanacs. The approximate orbital data is used to preset the receiver with the approximate position and carrier Doppler frequency (the frequency shift caused by the rate of change in range to the moving satellite) of each satellite in the constellation.
- Each complete satellite data set includes an ionospheric model that is used in the receiver to approximates the phase delay through the ionosphere at any location and time.
- Each satellite sends the amount to which GPS Time is offset from Universal Coordinated Time. This correction can be used by the receiver to set UTC to within 100 ns.
- Other system parameters and flags are sent that characterize details of the system.