GPS signals and Codes


Global Positioning System (GPS) satellites broadcast radio signals to enable GPS receivers to determine location and synchronized time. These signals include ranging signals – used to measure the distance to the satellite, and navigation messages. The navigation messages include ephemeris data which is used to calculate the position of the satellite in orbit, and information about the time and status of the satellite constellation.

GPS signals

GPS satellites transmit two low power radio signals, designated L1 and L2. Civilian GPS uses the L1 frequency of 1575.42 MHz in the UHF band, while the more precise military use utilizes the L2 frequency of 1227.60 MHz. The signals travel by line of sight, meaning they will pass through clouds, glass and plastic but will not go through most solid objects such as buildings and mountains.  A GPS signal contains three different bits of information - a pseudorandom code, ephemeris data and almanac data.

The pseudorandom code is simply an I.D. code that identifies which satellite is transmitting information. You can view this number on your GPS receiver’s satellite page, as it identifies which satellites it's receiving.

Ephemeris data, which is constantly transmitted by each satellite, contains important information about the status of the satellite (healthy or unhealthy), current date and time. This part of the signal is essential for determining a position.

The almanac data tells the GPS receiver where each GPS satellite should be at any time throughout the day. Each satellite transmits almanac data showing the orbital information for that satellite and for every other satellite in the system.

L1 carrier:  The L1 carrier is 1575.42 MHz over which is modulated a pseudo random code called the C/A (Coarse Acquisition ) code.  It carries both the status message and a pseudo-random code for timing.  The C/A code is a 1,023 bit long pseudonoise code (also pseudorandom binary sequence) (PN or PRN code) which modulates at a 1 MHz rate.  When transmitted at 1.023 megabits per second (Mbit/s), it repeats every millisecond. These sequences only match up, or strongly correlate, when they are exactly aligned. Each satellite transmits 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. This is a form of Code Division Multiple Access (CDMA), which allows the receiver to recognize multiple satellites on the same frequency. Each satellite has a unique pseudo-random code.  The C/A code is the basis for civilian GPS use.

L2 Carrier:  The L2 carrier is 1227.60 MHz and is used for the more precise military pseudo-random code called the P (Precise) code.  The P-code is also a PRN, however each satellite’s P-code PRN is 6.1871 × 1012 bits long (6,187,100,000,000 bits), repeats on a seven day cycle, and modulates both the L1 and L2 carriers at a 10 MHz rate (it is transmitted at 10.23 Mbit/s).   The extreme length of the P-code increases its correlation gain and eliminates any range ambiguity within the Solar System. However, the code is so long and complex it was believed that a receiver could not directly acquire and synchronize with this signal alone. It was expected that the receiver would first lock onto the relatively simple C/A code and then, after obtaining the current time and approximate position, synchronize with the P-code.

Whereas the C/A PRNs are unique for each satellite, the P-code PRN is actually a small segment of a master P-code, which is approximately 2.35 × 1014 bits in length (235,000,000,000,000 bits), and each satellite repeatedly transmits its assigned segment of the master code.

To prevent unauthorized users from using or potentially interfering with the military signal through a process called spoofing, it was decided to encrypt the P-code. To that end the P-code was modulated with the W-code, a special encryption sequence, to generate the Y-code. The Y-code is what the satellites have been transmitting since the anti-spoofing module was set to the “on” state. The encrypted signal is referred to as the P(Y)-code or “Y” code.


In addition to the PRN ranging codes, a receiver needs to know detailed information about each satellite’s position in space. The GPS design has this information modulated on top of both the C/A and P(Y) ranging codes at 50 bit/s and calls it the Navigation Message.

The navigation message is made up of three major components:

  1. The first part contains the GPS date and time, plus the satellite’s status and an indication of its health.
  2. The second part contains orbital information called ephemeris data which allows the receiver to calculate the position of the satellite.
  3. The third part, called the almanac, contains information and status concerning all the satellites; their locations and PRN numbers.

Whereas ephemeris information is highly detailed and considered valid for no more than four hours, almanac information is more general and is considered valid for up to 180 days. The almanac assists the receiver in determining which satellites to search for, and once the receiver picks up each satellite’s signal in turn, it then downloads the ephemeris data directly from that satellite. A position fix using any satellite cannot be calculated until the receiver has an accurate and complete copy of that satellite’s ephemeris data.

The navigation message itself is constructed from a 1,500 bit frame, which is divided into five subframes of 300 bits each and transmitted at 50 bit/s (therefore each subframe requires 6 seconds to transmit).

·         Subframe 1 contains the GPS date and time, plus satellite status and health.

·         Subframes 2 and 3, when combined, contain the transmitting satellite’s ephemeris data.

·         Subframes 4 and 5, when combined, contain 1/25th of the almanac; meaning 25 whole frames worth of data are required to complete the 15,000 bit almanac message. At this rate, 12.5 minutes are required to receive the entire almanac from a single satellite.


For the ranging codes and navigation message to travel from the satellite to the receiver, they must be modulated onto a carrier frequency. In the case of the original GPS design, two frequencies are utilized; one at 1575.42 MHz (10.23 MHz × 154) called L1; and a second at 1227.60 MHz (10.23 MHz × 120), called L2.

The C/A code is transmitted on the L1 frequency as a 1.023 MHz signal using a Bi-Phase Shift Key (BPSK) modulation technique. The P(Y)-code is transmitted on both the L1 and L2 frequencies as a 10.23 MHz signal using the same BPSK modulation, however the P(Y)-code carrier is in quadrature with the C/A carrier; meaning it is 90° out of phase.

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 (such as the Wide Area Augmentation System). Advances in 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.

Notes & Handouts

The Himalayas

Kumaon Himalayas

Askot Basemetals



This website is hosted by

S. Farooq

Department of Geology

Aligarh Muslim University, Aligarh - 202 002 (India)

Phone: 91-571-2721150