GPS and speed measurements

There are two ways for a GPS device to provide speed measurements. Of course they both rely on satellites' information to do this, but in quite a different manner. Hence, we have to distinguish between:

  1. Doppler Effect
  2. Position through time interpolation

1. Doppler effect for instant and max speed

Being a physician or not, you've already experienced doppler effect: when in the street, an emergency vehicule (firemen, ambulance) drives with a loud siren, you'll hear this latter differently wether it comes towards you or it leaves you. In first case, the frequency you hear is higher (more acute) than in the second case. This is due to relative speed between emmetor and receiver.

GPS devices apply this phenomenon to satellite. Since each satellite emmits a steady frequency from a steady place, the different frequency "heard" by the gps are due to the motion of this latter. Observing several satellites, the GPS is hence able to determine it's instant speed (direction and value). This value seems to be very accurate according to brands' documentation, up to 0.1 km/h. It seems to be verified in "real world", since you get a very steady value when driving a car, and since you get a very accurate 0.0 km/H speed when you're standing steadily on the ground.

This doppler computed speed is the one used by GPS to provide instant speed, i.e. the value one can read on the device's screen, and for the max speed (as the max of all instant speeds). Note that at time this is written (mid 2005 year), no personal device provide a recording of the instant values. As soon as printed on screen are they lost for ever, except for the best one... Hence, this is not the one we can rely on to do thorough performance analysis.

2. Position through time interpolation

The other way to get speed measurements from GPS devices is to correlate position data and time to compute speeds. It is as simple as: Speed = Distance / Time. In other words, average speed over a period is the distance travelled within this period by the time it took. For instance, if you travel 10 kilometers in 20 minutes, your (average) speed over that period of time is 10/(1/3)=30 km/h (since 20 minutes = 1/3 hours).

Since GPS provides geographical position at very precise moments, we can compute average speeds on these intervals. Note that all this computation is made by a computer software (such as GpsActionReplay), not by the GPS.

The accuracy of this speed is lesser than doppler one's. Indeed, it entirely depends on the positionning accuracy, which is known to vary from a few meters to 30 meters in most cases. What have to be understood here is that this accuracy will vary with the time period considered: the bigger the time period, the better the accuracy. Indeed, the bigger the time period, the most distance travelled, hence the lesser the relative positionning incertitude.

As a consequence, time periods considered have to be chosen according to the needed accuracy.

Here are two screenshots where the recorded positions (called "trackpoints") are figured as circles :

Hence, for each segment between two trackpoints, the software can calculate an average speed over this time period. We cannot say anything else, since no instant speed information is provided.

What kind of speed measurements can be done?

Well, above we wrote that "speed is distance by time". Everything is simple for time, as it is non-ambiguous, but things are more difficult as far as distance is concerned. What is this distance being considered through time?

Linear distance versus straight distance

We will call linear distance the length travelled, that is to say the length of the curve virtually printed by the gps when moving.

We will call straigth distance the distance from start point to finish point of the considered path, whatever the course.

we will call respectively linear speed and straight speed the associated speeds.

On this film, the blue track is the straight projection of the real red track. This virtual blue track's length is 2.020 kilometers, and the red's one is 2.060 kilometers. Hence the straight speed (blue) is 20.3 knots, whereas the linear one is 20.7 knots. In fact, the more the track has a zig-zag shape, the more difference between these two values. Of course, for a straight course, the two values are the same

So, what speed is the most relevant for speed measurements purpose? Not any is better than the other. In fact, they don't measure the same thing. In one case, the linear speed measures the average of all the instant speeds, whatever the course. In the other case, the straight speed depends on the time it took to go from a given point A to a given point B.

The non-gps speed measurements always provide a straight speed, since the rely on the time elapsed from a starting line to a finish line, using a video system.

The gps speeds are computed by a software, and we're able to provide both. So it's a question of choice. If you want to provide something close to classical speed event, you'll tend to use the straight speed. In other cases, you'll tend to use a linear speed, since it always gives higher values (mathematically!), and since for such measurements as "speed over one hour", it's more relevant: A "one hour straight speed" of a mobile going and coming in a small place will always be close to 0, and even equals to 0 if it's at the same location at beginning and at end of the hour. Moreover, a "one nautical-mile straight speed" of a mobile moving within a less than one nautical-mile place will always be equals to 0, mathematically, since it's impossible to have a 1 NM distance within it...

VirtualRun: measurements as in "real world"

GpsActionReplay provides a special feature for people who want to organise a GPS competition that will behave almost exactly as an official competition with video on a start line and on a finish line. The idea is to delimitate a "virtual run" providing two points (start and finish), and a width. This sets a rectangle which is called "virtualRun".

Then, the software is able to find automatically all runs within this virtualRun, and, for each of them, to compute the exact speed over the run's length. Usually, the run will be set to 500 meters long, to fit the usual requirements, but can be set to any other value to fit the local spot.

This virtualRun is a particular case of straight distance where we want that the riders' performances are all measured on a same and predefined course.

It's very simple to use. On the first picture below, a track has been loaded. Then, on second picture, a virtual run is defined, either entering positions via the mouse, or loading the waypoints from a file or from a gps. The Third picture shows the track being split automatically by GpsActionReplay when we require it, just clicking a button. The fourth picture is in fact a movie picture that shows an animation with all the runs began simultaneously so that we can observe and compare.

Simultaneously, we get all the related speed results, in a detailed table that can be sort or reverse-sort by any of its column (resp. just clicking or shift-clicking the name of the column). This is provided for each run of all riders in the first table, and also the results by rider (average of the two bests) in the second table:

Remark: it is possible to set the benning and ending time of the event so that only the runs made within this period are considered.

How accurate is it really?

This question has been debate for long on several forums for months or even years.

Doppler based speed seems to be very accurate most of the time, and we may beleive the 0.1 knots accuracy announced by the manufacturers. But when the satellite signals are lost, it can give a fully erronate value. The problem is that there is no way to know wether it is true or not besides our own conviction... It's a very interesting data when sailing, but not one we can really rely on.

Software based speed is less accurate, as we've seen, but we can check the data it is based on. Indeed, if a value is huge compared to the others, we can have a look to the regularity of the data, and in most of the cases we can see easily that some trackpoints are wrong. So, at the moment, it's the only way to make speed measurements seriously.

To evalute thorougly the accuracy of software based measurement, we've used GPS tracks of riders participating to an official speed event (with video), and in particular the 46.82 first Finian Maynard allover world record, and other runs from Martin Van Meurs.

People from the crew have set a virtualRun in GpsActionReplay with exact start and finish line of the run, launched it and compared the results to the official ones. The results are in general about 1% accuracy, which means in general less than 0.4 knots for 45 knots speeds over 500 meters. This accuracy can be optimized if we take into account several runs rather than one. For instance, doing an average of the 5 best runs gives statistically a better than 0.1 knot accuracy. Not that bad!

What you should remember from this is that if you consider 500 meter runs, you'll get a 0.3 knots accuray in general, for speeds within the 30-35 knots range.