An introduction to global satellite navigation systems (GNSS)

Every hour of every day, we’re surrounded by radio waves. While some transmissions like TV and radio entertain us, others such as GPS provide invaluable information that we would quite literally be lost without. And yet despite the importance of GPS in our daily lives, we generally understand very little about how it works.

This document is designed to shed a little light on the subject of satellite navigation. It goes deeper than some explanations, but avoids the complicated things only system engineers need to know. By the end of it, you’ll have strong understanding of how satellite navigation actually works, and more importantly what it can, and can’t, do for you.

What is GNSS?

The term GPS is now so familiar to the general public that it has become synonymous with any satellite navigation system—but we need to be careful. The term GPS is actually the name of the system created by the American military, and stands for Global Positioning system. There are other systems too. The Russian military system for example is called GLONASS (Global Orbiting Navigation Satellite System), while China is developing a system called BeiDou-2.

When talking about satellite navigation systems, a term you will often encounter is GNSS, which stands for Global Navigation Satellite System. This is the generic name used to describe any global system of satellites that transmit signals for navigation purposes on Earth. The distinction of using terms like GPS or GLONASS is important if you’re using satellite systems for measurement purposes because each system works in a slightly different way (although the end result appears to be the same).

As of 2017, the main GNSSs are:
• GPS. America’s Global Position System.
• GLONASS. Russia’s Global Orbiting Navigation Satellite System.
• BeiDou-2. A system being developed by China—not currently fully operational.
• Galileo. A system being developed by the EU—not currently fully operational.

How does a GNSS receiver work?

There are two parts to most GNSS receivers, the antenna and the processing unit or receiver. The antenna is where the satellite signals are received, while the receiver makes sense of the information being received and turns it into measurements we understand, such as latitude and longitude.

It’s important to recognise that the calculations about position, speed and altitude relate to the antenna itself, and not the receiver. To understand how a GNSS works, we need to break the GNSS into parts and understand a little bit about each one. As GPS is the system people are most familiar with we’ll just look at that, and break it down into three parts:

• The space segment
• The control segment
• The user segment

The space segment

The space segment is concerned with the satellites in orbit. In 2015 the GPS constellation consists of 32 non-geostationary satellites in medium Earth orbit, although not all satellites are active. Each satellite orbits once every 11 hours, 58 minutes and 2 seconds at an average altitude of 20,200 km (that’s an orbital radius of 26,571 km).

The GPS satellite constellation is arranged into six equally-spaced orbital planes, with no fewer than four satellites in each plane. This arrangement ensures a minimum of four satellites can be seen 15° above the horizon at almost any time, from any point on the planet—although in reality there are generally more.

While satellites vary in age and design, their principal of operation remains the same. Each one contains four highly accurate clocks with a fundamental frequency of 10.23 MHz, and they and constantly transmit two carrier waves in the L-Band that travel back to earth at the speed of light. These carrier waves are referred to as L1 and L2.

• The L1 carrier has a frequency of 1575.42 MHz (10.23 MHz × 154 = 1575.42 MHz).
• The L2 carrier has a frequency of 1227.60 MHz (10.23 MHz × 120 = 1227.60 MHz).

The carrier waves are important because they bring the information from the satellite back to earth, and it’s that information that allows our receiver to work out where we are. But we’ll come back to how this is done later.

Control segment

The control segment refers to a number of ground stations situated around the globe (close to the equator) that are used to track, control and send information to each of the GPS satellites. This is an important role as it is vital the clocks in each satellite are synchronised—because the whole system relies on timing.

The orbit information that is sent up to each satellite is vital too, because we need it in order to work out where the satellite was when the information was sent. All of this information is sent up to the satellites, then carried to your GPS receiver within the L1 carrier wave navigation message.

User segment

The user segment is the part most people are interested in. This segment includes anyone or anything with a GPS receiver; sat navs, mobile phones, UAVs, law enforcement. So how does it work?

As we’ve already seen, there is a constellation of satellites orbiting above our heads, sending a constant steam of information back to earth at the speed of light. Understanding how this helps pinpoint our location takes a bit of time, but it is based on a process called trilateration.

Before we get too involved, we should correct a common misconception. At no point does the GNSS receiver inside your sat nav or phone send any information up to the satellites. The receivers we use today are completely passive—they only receive information. When Europe’s Galileo system is operational, its receivers will be slightly different because there will be an emergency function, which will send information when activated, but this won’t apply in normal operation.

When you hear people talking about something being tracked by GPS, an armoured car for example, what is happening is this. The GNSS receiver on the vehicle is receiving signals from the satellites and working out where it is. Once it knows its position, it sends this information using some other system, a GSM data connection for example, back to some monitoring station.

So, for the time being, GNSS receivers work by receiving signals sent from the relevant satellites in orbit. The signals that are used depend on the type of receiver. A GPS receiver can only make use of signals from the GPS satellites, while a GLONASS receiver can only use signals from GLONASS satellites. There is another kind of receiver that can actually take signals from both types of satellites though (GPS and GLONASS), to augment its measurements.

Again, for now we’ll just concentrate on GPS receivers.

How does a GPS receiver work out where I am?

The short and over simplified answer to how a GPS receiver works out where you are is:
• It calculates how long it takes the signal from each satellite it can see to arrive.
• It multiplies that time by the speed of light to calculate the distance to each satellite.
• It then calculates its position relative to no fewer than three satellites using trilateration.
• Because the receiver knows the precise position of each satellite when the signal was sent, it can translate its own relative position into an Earth-based co-ordinate system.

Of course this explanation causes an explosion of questions in most minds. How can a receiver calculate the travel time of the signal unless it knows when it was sent—and how could it possible know that? What is trilateration? How does the receiver know where a satellite was when it sent the signal? And that’s just the beginning.

The good news is you don’t need to understand any of this in order to use GPS. However, there’s no such thing as too much information, so if you’re curious to understand a little more about how it works (which might help you when you’re collecting measurements for work), carry on reading.

The GPS signal

The hardest part of understanding GPS is the signal itself. Calculating distance based on time is quite straight forward, and even trilateration (which we’ll look at shortly), isn’t as tricky as it sounds when you add a few diagrams. But the GPS signal and how it works is pretty involved.

So what information is sent down to us? The unique signal transmitted from each satellite contains two codes and a message:
• C/A code (coarse/acquisition code)
• P code (precision code) [called Y code in its encrypted form]
• Navigation message

The P code is encrypted for military use, and so can be ignored. It’s encrypted to stop spoofing and to control who has access to the system. Incidentally, once the P code has been encrypted, it’s referred to as Y code.

As civilians we’re only interested in the C/A code and navigation message. The C/A code is actually a binary string made up of 1,023 bits. At first glance the sequence appears to be completely random—but it isn’t. The sequence has been carefully composed so that if you wrote the sequence out on two pieces of tracing paper and overlaid them, there is only one position where they will match (as shown below).

We’ll look at why it’s important the C/A code only matches in one position later, when we look at how distance from the satellite is calculated. For now, all we need to know is that the C/A code each satellite transmits is unique to that satellite, and that while it appears to be a random string of bits, it is not. The code actually follows a precise deterministic pattern, and so it is often called pseudo-random noise (PRN).

The navigation message is different to C/A code because it contains data. This includes information about clock corrections, satellite health, ephemeris (precise orbit) data, ionosphere model parameters and almanac (general information about all satellites in the constellation) data. Because of the amount of information contained in the navigation message, and the relatively slow rate that it’s transmitted, it takes 12.5 minutes to send the whole message. Again, we’ll look at this message in more detail later.

The final part of the GPS signal we need to look at is the carrier itself. As we’ve already said, each satellite transmits two frequencies—L1 at 1575.42 MHz and L2 at 1227.60 MHz. All three elements (the C/A code, Y code and navigation message) are modulated onto the L1 carrier, while only the Y code is modulated onto the L2 carrier. However, while civilian users can’t demodulate the Y code from the L2 carrier, we can make use of the L2 carrier wave itself, as we’ll see later in differential corrections.

The C/A code is modulated onto the carrier wave at 1.023 Mb/s. The Navigation message is modulated onto the carrier at 50 b/s.

Finding satellites

The first thing a receiver needs to do when it’s powered up is look for satellites. How it does this depends on long it has been since the receiver was last locked on to a GPS satellite. That’s because as we’ve already seen, each satellite in the GPS constellation transmits a navigation message, and part of that message is an almanac that contains rough information on the orbit of every satellite in the constellation.

Almanac data is useable for about 6 months, so using its last known position and the current time, the receiver can make an educated guess about which satellites should be in view. It tries this because the alternative is to blindly search for all satellites—and that can take some time. In fact that’s why a receiver that hasn’t been powered up for some time, or has been shipped around the world since it was last powered on, can take a great deal of time to acquire GPS lock—because it has to blindly search.

On the assumption that our receiver has valid almanac data, and hasn’t moved much since it was last powered up, it will have a reasonable idea of which satellites it should be able to see at the current time and how the signal frequency will be affected by Doppler shift. It can now start to look for the signal from the satellites it expects to see in the signal the antenna is picking up.

The receiver begins by conducting a two-dimensional search for the signal’s frequency and C/A code phase. This is not easy, but as end-users we don’t need to worry too much about this. Once the receiver thinks it has found the signal from a satellite it confirms this, then locks onto it with a PLL (Phase Locked Loop) and a CLL (Code Locked Loop). It then searches for bit synchronisation before demodulating the data.

Working out the range to a satellite

As we’ve already seen, each satellite in the GPS constellation transmits a unique C/A code, which appears to be random noise, but is in fact a deterministic sequence. Because the sequence is deterministic, a GPS receiver has the ability to generate exactly the same sequence of code as the satellite itself. By generating the same pattern internally, the receiver looks for the pattern being transmitted by the satellite, then works out how much of a delay there is compared to its own pattern.

It can do this because of the accurate clock synchronisation. For instance, imagine you and friend are stood in a very large field. You synchronise your watches and your friend agrees to fire a starting pistol at exactly mid-day. Your friend then walks off to the other end of the field. At precisely mid-day they fire the pistol, but according to your watch you don’t hear the bang until four seconds after mid-day because the sound had to travel across the field. If we assume the speed of sound is 340 m/s, we can multiply that by the time taken work out that your friend is 1,360 metres away.

The receiver and GPS satellite work in a similar way. Because the receiver is able to accurately synchronise its clock with those of the satellites, and because it knows what the time was when the speed by the time taken to work out how far away the satellite is.

There are other factors it needs to take into account of course, but that is the underlying principal.

How can distance measurements help me work out where I am?

Continuing with the example of you and some friends in a field, image you are stood in a large square field. Each friend has a way of making a different noise (starter pistol, cymbal, shouting etc.). You synchronise watches, and one friend goes and stands in each corner of the field. Starting at mid-day, they agree to start making a noise once every 10 seconds.

Now suppose when they start to make noise that two of the sounds arrive simultaneously, shortly followed by the other two. You then move a little in the direction of delayed sounds. Ten seconds later another burst of noise arrives, but this time the delay for the second pair is shorter. If you keep moving you will get to a point where all four noises arrive simultaneously. As you know each person is stood in the corner of the field, you can also work out that you must be stood exactly at the centre.

In terms of GPS navigation, the satellites may not be nicely located in the corners of the sky, but because of the ephemeris data, we can work out their precise location relative to a known co-ordinate system when the signal was sent, and using the C/A code, we can also work out how far we are from that know location. What happens next is a process called trilateration.

Trilateration is a bit like triangulation. With triangulation, you identify a specific point by saying it is at angle of a from point 1 and angle of b from point 2. Lines drawn at those specified angles from each point will cross, and the point at which they cross is the location of our new point.

Trilateration works in a similar way, but uses distance rather than angles to find a point. The other major difference is that with trilateration, you need a minimum of three reference points rather than two to narrow the search down to one location.

GPS uses the same technique, but has to approach things slightly differently. The circles we’ve been looking at are two-dimensional. In real life things are far more three-dimensional, and that means our intersecting circles become intersecting spheres.

When two spheres intersect, you don’t end up with two points of intersection, you end up with a ring of intersection (imagine two bubbles joined together). If a third bubble joins in, it creates two points where all three intersection rings meet. This is shown below.

At this point you might recall hearing that GPS only needs three satellites in order to generate a position measurement. This statement is both right and wrong. It’s clear from the image above that in order to use trilateration to arrive a single point, a fourth sphere is required (to show us which point is the correct one). However, as GPS uses an Earth centred, Earth fixed coordinate system, one of the points can be ruled out immediately as it would be well outside Earth’s atmosphere. The other point must therefore be the correct one.

So GPS can generate a position measurement using only three satellites, but in order to do that, its internal clock must be accurate otherwise it can’t calculate the distance properly. And correcting the internal clock requires four satellites! That’s why the statement was both right and wrong. As long as the system has used four satellites to correct its internal clock, it can drop back to only three satellites and still make a position estimate—it just can’t do it forever.

What is SPS?

The term SPS stands for Standard Positioning Service, and describes GPS position measurements that are based only on the C/A code. The distinction is needed because not all GPS position measurements are made in the same way, and the method used to calculate the measurement affects the accuracy.

SPS provides the lowest accuracy GPS position measurements, normally in the region of 3–10 metres. To make SPS measurements the GPS receiver locks onto four or more satellites, and then uses the C/A code to estimate the distance to each satellite. These estimates are called pseudo-range measurements.

Using SPS, the accuracy of the measurement comes from the receiver’s ability to correctly align its internally generated C/A code with that received at the antenna. Although even if it were able to do this perfectly, the accuracy is still limited by the design of the system.

In most cases, the best alignment accuracy we can hope to for is about 1% of the width of a bit. As bits are transmitted at 1,023 per millisecond, and light travels about 300,000 metres per millisecond, our 1% alignment gives us an accuracy of roughly three metres. However, some L1 receivers can achieve alignment to roughly 0.6%, giving them an accuracy of 1.8 metres.

While that level of accuracy is adequate for sat navs, greater accuracy is required in many other applications, so other measurement techniques such as DGPS (Differential GPS) and Real Time Kinematics (RTK) are often required.

What are differential corrections or DGPS?

Most of the error in an SPS measurement comes from the fact the receiver has no way of actually knowing how the speed of the satellite signal has been affected as it passed through the ionosphere. It gets a small clue as there are some estimates included in the navigation message, which allow it to make a guess at the likely effects, but these are only estimates. In practice it means the speed by which the delay is multiplied is not quite correct—that in turn means the calculated pseudo-range is also incorrect.

The only way to allow for this is to measure, rather than estimate, how the signal speed is being affected as it makes its way down through the atmosphere. This is where differential GPS come in. DGPS can be achieved in a number of ways, but they essentially use the same technique.

A separate GPS receiver (called a base-station) is placed at a pre-surveyed point and turned on. Because the location of the base-station is already known with great accuracy, the base station is able to compare the position measurement generated by its own GPS receiver with the known co-ordinates. Any difference means they signal from one of more satellites is being delayed. All the system has to do then is work out how much correction should be applied to each satellite in order to correct the GPS position measurement.

Once the base station knows how the signal from each satellite needs to be corrected, it can share this information with any other GPS receivers (often called rovers) in the area. This is often achieved using radio modems. The roving receiver checks if corrections are available for the satellites it is seeing and applies them where applicable—improving the accuracy of its pseudo-range measurements even though it is not at a known location.

There are also other ways to achieve DGPS. Rather than using your own local base-station (that you set-up on your own site), it is possible to receive differential corrections via a web-based service and data connection. In this case your receiver (the rover) works out where it is in the normal way. It then transmits its location to a central server that works out where the nearest reference station is to you, before sending back the differential corrections from that location. The beauty of systems such as these is that you could drive from one end of a country to the other and receive valid corrections for the entire journey.

Another method is to use satellite-based correction services called SBAS (Satellite Based Augmentation System). These work in a slightly different way. Ground stations on earth at known locations work out the differential corrections in different geographic locations. These corrections are then uploaded to the satellite where they can be broadcast down to any receiver that is enabled to receive them. However, as well as needing a receiver with the correct hardware, you often have to pay a subscription fee in order to unlock the corrections.

Using SBAS services improves the accuracy of receivers, but not to the same degree as a local base station. When using DGPS, the accuracy of position measurements often improves to tens of centimetres, say around 40 cm. DGPS that is achieved through SABS is often sub-metre accurate, somewhere in the range of 50–60 cm.

What is RTK?

RTK stands for Real Time Kinematic, and is another technique that improves the accuracy of GPS position measurements—however, it’s one of the hardest to understand and the most intensive to implement.

We’ve already seen that SPS is the first position fix that GPS systems achieve, and they do this using the C/A code. If differential corrections are available, the SPS accuracy can be improved as timing delays on the satellite signals can be removed. Using DPGS position accuracy of around 40 cm is fairly normal. RTK is the next step on from DGPS, and there are two versions of it; RTK float, which achieves decimetre level accuracy and RTK integer, which achieves centimetre level accuracy.

To understand how either version works it’s necessary to understand two things. The first is that RTK is bending the rules of what we should be able to achieve using a civilian GPS receiver. It is not a technology that was designed into the system to help us. Instead, it’s a method that was figured out by GPS manufacturers to achieve greater accuracy than was intended using the C/A code. The second thing to understand is that it is based on the carrier waves themselves, not on the C/A code or navigation message they carry.

So how does it work? We’ve already seen that SPS is based on pseudo-range measurements calculated using the C/A code. The receiver does this by synchronising its clock with the GPS satellites, then generating its own version of the C/A code for each satellite it can see. If it has to delay its own copy of the C/A code by, say seven milliseconds, in order to match the C/A code being received at the antenna, then it knows the travel time of the signal from that satellite is seven milliseconds and it can then work out how far away the satellite is.

The ultimate aim of RTK is to establish how many carrier waves there are between the antenna and the satellite. The reason for this is simple. We’ve already seen that each satellite broadcasts a unique C/A code made up of 1,023 bits. The code is sent at a rate of 1.023 Mb/s, which means one bit is sent about every microsecond. In one microsecond the radio signal from the satellite covers a distance of about 300 metres.

The carrier wave that the C/A code is modulated onto is at a much higher frequency however—1575.42 MHz. This means a single wave covers about 19 cm. If we could work out how many full waves there are were between the satellite and the antenna, then it would be possible to calculate the distance much more accurately. In fact if we know how many full waves there are, and it’s possible to measure partial waves (the phase angle) too, then we can be very precise.

RTK Integer and RTK Float can be considered as two separate (but related) algorithms running concurrently within a system. If RTK Integer has a valid solution, the system switches to it (however the RTK Float algorithm continues running in the back ground). If RTK Integer subsequently becomes invalid, the system reverts back to RTK Float, which does not need to start again as long as the carrier phase lock is not lost.

So how are the algorithms different? RTK Float aims to identify your probable location (improving on the current DGPS accuracy) using statistical methods. It requires a minimum of four common satellites with the base station, and (in lay-terms), looks for a point in a circle around the current position measurement about which the satellites are revolving. Unlike RTK Integer, the Float algorithm never attempts to solve the ambiguity problem—it only tries to identify the most probable position within a circle drawn around the current position estimate. The accuracy for RTK Float starts around 40 cm, but increases to 20 cm at best.

RTK Integer on the other hand aims to solve the ambiguity problem and is not used until it has done so. It requires five common satellites, and when a valid solution is found the system knows there are n carrier waves plus any partial wave between it and the satellite. It can align its measurements to about 0.6% of the 19 cm wavelength, giving an accuracy of about 1 cm.

Doesn’t DGPS or RTK improve the accuracy of velocity measurements?

It’s a common misconception that GPS velocity measurements are made by measuring the time taken to move between two consecutive position measurements. This is not how velocity is measured—and is also the reason why position accuracy has no effect on velocity accuracy.

To work out velocity, GPS receivers actually use Doppler shift. So they look at the frequency shift in the carrier wave from each satellite and calculate a velocity vector using that information. So it doesn’t matter if your receiver is in SPS mode of RTK Integer, the velocity measurements will be equally accurate.

What are the limitations of GNSS?

GNSS systems on the whole are pretty awesome. They’re easy to use, don’t drift and can achieve high-levels of accuracy. However, they’re not perfect. For starters, to reach their full potential they need a clear and uninterrupted view of the sky. That’s great if you’re working in the middle of a field, but if you’re trying to survey city streets, or working under bridges and in tunnels, at best you get reduced accuracy, and at worst you get no measurements at all.

Also, while a GPS receiver is great at capturing position and velocity measurements it’s not much good if you’re also interested in roll, pitch and yaw. A dual-antenna system helps solve some of those problems, but still doesn’t provide a complete picture. And for extremely dynamic manoeuvres, there is simply not the resolution required.

To read more about inertial navigation systems, click here….