GPS signals


GPS signals are broadcast by Global Positioning System satellites to enable satellite navigation. Using these signals, receivers on or near the Earth's surface can determine their Position, Velocity and Time. The GPS satellite constellation is operated by the 2nd Space Operations Squadron of Space Delta 8, United States Space Force.
GPS signals include ranging signals, which are used to measure the distance to the satellite, and navigation messages. The navigation messages include ephemeris data which are used both in trilateration to calculate the position of each satellite in orbit and also to provide information about the time and status of the entire satellite constellation, called the [|almanac].
There are four GPS signal specifications designed for civilian use. In order of date of introduction, these are: L1 C/A, L2C, [|L5] and L1C. L1 C/A is also called the legacy signal and is broadcast by all currently operational satellites. L2C, L5 and L1C are modernized signals and are only broadcast by newer satellites. Furthermore, as of 2021, none of these three signals are yet considered to be fully operational for civilian use. In addition to the four aforementioned signals, there are restricted signals with published frequencies and chip rates, but the signals use encrypted coding, restricting use to authorized parties. Some limited use of restricted signals can still be made by civilians without decryption; this is called codeless and semi-codeless access, and this is officially supported.
The interface to the User Segment is described in the . The format of civilian signals is described in the Interface Specification which is a subset of the ICD.

Common characteristics

The GPS satellites transmit simultaneously several ranging codes and navigation data using binary phase-shift keying.
Only a limited number of central frequencies are used. Satellites using the same frequency are distinguished by using different ranging codes. In other words, GPS uses code-division multiple access. The ranging codes are also called chipping codes, pseudorandom noise and pseudorandom binary sequences.
Some satellites transmit several BPSK streams at the same frequency in quadrature, in a form of quadrature amplitude modulation. However, unlike typical QAM systems where a single bit stream is split into two, half-symbol-rate bit streams to improve spectral efficiency, the in-phase and quadrature components of GPS signals are modulated by separate bit streams.
Satellites are uniquely identified by a serial number called space vehicle number which does not change during its lifetime. In addition, all operating satellites are numbered with a space vehicle identifier and pseudorandom noise number which uniquely identifies the ranging codes that a satellite uses. There is a fixed one-to-one correspondence between SV identifiers and PRN numbers described in the interface specification. Unlike SVNs, the SV ID/PRN number of a satellite may be changed. That is, no two active satellites can share any one active SV ID/PRN number. The current SVNs and PRN numbers for the GPS constellation are published at .

Legacy GPS signals

The original GPS design contains two ranging codes: the coarse/acquisition code, which is freely available to the public, and the restricted precision code, usually reserved for military applications.

Frequency information

For the ranging codes and navigation message to travel from the satellite to the receiver, they must be modulated onto a carrier wave. In the case of the original GPS design, two frequencies are utilized; one at 1575.42 MHz called L1; and a second at 1227.60 MHz, called L2.
The C/A code is transmitted on the L1 frequency as a 1.023 MHz signal using a bi-phase shift keying modulation technique. The P-code is transmitted on both the L1 and L2 frequencies as a 10.23 MHz signal using the same BPSK modulation, however the P-code carrier is in quadrature with the C/A carrier.
Besides redundancy and increased resistance to jamming, a critical benefit of having two frequencies transmitted from one satellite is the ability to measure directly, and therefore remove, the ionospheric delay error for that satellite. Without such a measurement, a GPS receiver must use a generic model or receive ionospheric corrections from another source. Advances in the technology used on both the GPS satellites and the GPS receivers has made ionospheric delay the largest remaining source of error in the signal. A receiver capable of performing this measurement can be significantly more accurate and is typically referred to as a dual frequency receiver.

Modulation codes

Coarse/acquisition code

The C/A PRN codes are Gold codes with a period of 1023 chips transmitted at 1.023 Mchip/s, causing the code to repeat every 1 millisecond. They are exclusive-ored with a 50 bit/s navigation message and the result phase modulates the carrier as [|previously described]. These codes only match up, or strongly autocorrelate when they are almost exactly aligned. Each satellite uses a unique PRN code, which does not correlate well with any other satellite's PRN code. In other words, the PRN codes are highly orthogonal to one another. The 1 ms period of the C/A code corresponds to 299.8 km of distance, and each chip corresponds to a distance of 293 m. Receivers track these codes well within one chip of accuracy, so measurement errors are considerably smaller than 293 m.
The C/A codes are generated by combining two bit streams, each generated by two different maximal period 10 stage linear-feedback shift registers. Different codes are obtained by selectively delaying one of those bit streams. Thus:
where:
The arguments of the functions therein are the number of bits or chips since their epochs, starting at 0. The epoch of the LFSRs is the point at which they are at the initial state; and for the overall C/A codes it is the start of any UTC second plus any integer number of milliseconds. The output of LFSRs at negative arguments is defined consistent with the period which is 1,023 chips.
The delay for PRN numbers 34 and 37 is the same; therefore their C/A codes are identical and are not transmitted at the same time.

Precision code

The P-code is a PRN sequence much longer than the C/A code: 6.187104 x 1012 chips. Even though the P-code chip rate is ten times that of the C/A code, it repeats only once per week, eliminating range ambiguity. It was assumed that receivers could not directly acquire such a long and fast code so they would first "bootstrap" themselves with the C/A code to acquire the spacecraft ephemerides, produce an approximate time and position fix, and then acquire the P-code to refine the fix.
Whereas the C/A PRNs are unique for each satellite, each satellite transmits a different segment of a master P-code sequence approximately 2.35 x 1014 chips long. Each satellite repeatedly transmits its assigned segment of the master code, restarting every Sunday at 00:00:00 GPS time. For reference, the GPS epoch was Sunday January 6, 1980 at 00:00:00 UTC, but GPS does not follow UTC exactly because GPS time does not incorporate leap seconds. Thus, GPS time is ahead of UTC by an integer number of seconds.
The P code is public, so to prevent unauthorized users from using or potentially interfering with it through spoofing, the P-code is XORed with W-code, a cryptographically generated sequence, to produce the Y-code. The Y-code is what the satellites have been transmitting since the anti-spoofing module was enabled. The encrypted signal is referred to as the P-code.
The details of the W-code are secret, but it is known that it is applied to the P-code at approximately 500 kHz, about 20 times slower than the P-code chip rate. This has led to semi-codeless approaches for tracking the P signal without knowing the W-code.

Navigation message

In addition to the PRN ranging codes, a receiver needs to know the time and position of each active satellite. GPS encodes this information into the navigation message and modulates it onto both the C/A and P ranging codes at 50 bit/s. The navigation message format described in this section is called LNAV data.
The navigation message conveys information of three types:
  • The GPS date and time, and the satellite's status.
  • The ephemeris: precise orbital information for the transmitting satellite.
  • The almanac: status and low-resolution orbital information for every satellite.
An ephemeris is valid for only four hours, while an almanac is valid–with little dilution of precision–for up to two weeks. The receiver uses the almanac to acquire a set of satellites based on stored time and location. As the receiver acquires each satellite, each satellite’s ephemeris is decoded so that the satellite can be used for navigation.
The navigation message consists of 30-second frames 1,500 bits long, divided into five 6-second subframes of ten 30-bit words each. Each subframe has the GPS time in 6-second increments. Subframe 1 contains the GPS date, satellite clock correction information, satellite status and satellite health. Subframes 2 and 3 together contain the transmitting satellite's ephemeris data. Subframes 4 and 5 contain page 1 through 25 of the 25-page almanac. The almanac is 15,000 bits long and takes 12.5 minutes to transmit.
A frame begins at the start of the GPS week and every 30 seconds thereafter. Each week begins with the transmission of almanac page 1.
There are two navigation message types: LNAV-L is used by satellites with PRN numbers 1 to 32 and LNAV-U is used by satellites with PRN numbers 33 to 63. The two types use very similar formats. Subframes 1 to 3 are the same, while subframes 4 and 5 are almost the same. Each message type contains almanac data for all satellites using the same navigation message type but not the other.
Each subframe begins with a Telemetry Word, which enables the receiver to detect the beginning of a subframe and determine the receiver clock time at which the navigation subframe begins. Next is the handover word giving the GPS time and identifies the specific subframe within a complete frame. The remaining eight words of the subframe contain the actual data specific to that subframe. Each word includes 6 bits of parity generated using an algorithm based on Hamming codes, which take into account the 24 non-parity bits of that word and the last 2 bits of the previous word.
After a subframe has been read and interpreted, the time the next subframe was sent can be calculated through the use of the clock correction data and HOW. The receiver knows the receiver clock time of when the beginning of the next subframe was received from detection of the Telemetry Word thereby enabling computation of the transit time and thus the pseudorange.