I know more or less how the GPS system works. But I would like to understand it in more details. Exactly what data is sent from a GPS satellite to a GPS receiver?

I think there is multiple types of data, since when I start up a GPS receiver, it takes some time before it becomes useful. As what I know this is because the receiver waits on some data that aren't received very often. I guess that the GPS signal that is used for the position is sent more often, but I don't know.

Is there anyone that can explain this in more detail? Or have a useful link?


There are 3 parts to the GPS signal:

  • A satellite ID (called the Pseudo Random Code)
  • Almanac data (orbital information for all the satellites)
  • Ephemeris data (the orbital information for the single satellite in question, including the very precise clock information necessary to calculate the distance)

Basically, the almanac enables the receiver to know which satellites to search for. It tells which SHOULD be in sight at this point, but obviously something may block line of sight to it. But before ephemeris data has been received for at least 3 satellites, a (2D) position cannot be given. That data is broadcast every 30 seconds.

The receiver may cache almanac information but ephemeris data cannot be cached for long (due to clock drift, mainly), so waiting for reception of fresh ephemeris data is generally what's causing the startup time on GPS receivers.

  • Does the almanac data contain absolute UTC, or just an offset as well? – TJJ Apr 10 at 17:52

There's also a tic mark (not the right term -it's been a while) that is sent at the start of the whole second to allow back calculation to the actual location at the time of signal receipt. Look at Forward Error Correction here for for a better explanation: http://en.wikipedia.org/wiki/GPS_signals. We used it in aerial photography and found that there was often a delay of up to .4 sec to calculate and output the GPS location from the device. Knowing when the tic came in meant we could work backwards and assign a slightly more accurate location to the photo.


To add to Cumbayah's answer, the pseudo-random code also carries the time stamp that allows the receiver to know at exactly what time the signal it is receiving was transmitted. The triangulation that the receiver does depends on knowing the travel time of the radio signals from each satellite. The pseudo-random code is prearranged, so the receiver knows it in advance and knows when a given part of it originated from the satellite. It's all devilishly clever. The Wikipedia page at http://en.wikipedia.org/wiki/GPS_signals is pretty good.


Each satellite is sending exact (atomic) time, and GPS receiver calculates thanks to it, it's position. There is also some additional data, like position of satellite (almanac) which is also required to perform calculations, and a few minor things.

In order to increase accuracy, data may be sent on two different frequencies (L1 which is available for everybody, and L2 which is restricted for US military).

  • 1
    L2 is available to the general public as well. You just need to have GPS that captures data in L2 frequency. – George Silva Jul 23 '10 at 11:48
  • In the initial design, the L2 frequency only carried the precise military signal. It has since been enhanced to also carry a less precise civilian signal. Dual-receiver GPS can use both of the civilian signals to cancel out some sources of error. – JasonBirch Jul 24 '10 at 6:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.