[Windows Mobile Apps and Games] sprog123:
Thanks for the response. Eagerly awaiting the new version!

My experience with other GPS devices and tracking programs yields reasonable speed results without a sawtooth pattern (taking delta distance/delta time between track points as you mentioned to derive the speed). Even NaviComputer's own display of the speed during tracking is correct.

I don't think it's a weak signal issue since the coordinates are within a few feet of actual and 8-10 satellites are in use. The fact that all my derived speed data collected using NaviComputer has this very regular sawtooth pattern, but NaviComputer's own displayed calculated speed does not show it during tracking leads me to believe it's either an issue with how NaviComputer writes out the logfile, or my phone's GPS chip (I have an HTC Touch Pro 2, btw). When I get the chance, I will check track logs using OziExplorerCE on my phone to see if they experience the same sawtooth pattern or not in the derived/calculated speed.

To support my point, when moving at high speeds, the effective "signal to noise ratio" of the derived speed becomes higher since we are moving faster for a given positional accuracy. As an example, you can think that when standing still, due to a noisy location reading, your calculated position will drift and wander over time by a few feet or more. This will cause your speed to read a non-zero value. As you move faster and the distance between points becomes greater, the effect of this "uncertainty cloud" becomes much smaller when calculating speed, so your speed should become more accurate, not less.

In terms of the math:

speed = delta distance / delta time

Delta time is fixed and well known since it comes from the GPS signal directly, and for this example, let's just say all points are saved 1sec apart, so delta time = 1 sec.

If I'm travelling at 20 ft for every second, but the GPS accuracy is +/-10 ft, then my speed reading will be very inaccurate/noisy and vary between 0 ft/sec to 30 ft/sec (0mph to 20.5mph).

However, if I'm travelling 220 ft/sec (150mph), then with the same +/-10ft positional uncertainty, you'd expect the absolute worst case variation to be between 210ft/sec and 230ft/sec, or 143.2mph to 156.8mph. However, in my data, you can see the there is nearly 70mph variation, and on top of that, it is an extremely consistent sawtooth variation every 5sec. This isn't due to a random noisy inaccurate signal. It's more likely that the time points are logged incorrectly (or maybe my GPS hardware is reporting them incorrectly, which I need to verify).

If you don't mind, I have some questions about how NaviComputer works (in the interest to see if there is a real bug here or not). From the FAQ, the program is supposed to record a track point if the change in distance is greater than 3 meters, but how often does it sample? For instance, does it compare points every second, and if the distance has changed by more than 3 meters, then it logs the point? If so, why are there options to write out the log file at 5, 10, 15, etc. sec intervals? Why not just save all the data points more than 3 meters apart? What happens if data points aren't collected at those exact 5, 10, 15sec intervals because points are only be recorded if the delta distance is greater than 3 meters (without regard to delta time)?

When moving at high speeds, if sampling is done every second, then every point should be more than 3 meters apart. There should be data for every second. Is there any way to save all of this data instead of only every 5 sec worth? What happens when data points aren't recorded on an exact 5 sec boundary?

Thanks again for such a wonderful and useful program. I'm eagerly awaiting the new version!