Hi All,
My name is David and I'm one of the founders of AlpineReplay. There are a lot of questions here about phone accuracy and I thought we'd respond from the technical side. We'll eventually turn this into a blog post, but it'll be interesting to get your reactions:
tl;dr
How accurate can GPS be for speed? About 0.5 mph (really accurate). Do you get this accuracy on your phone? Probably not. Is there a way to increase the accuracy? Yes, there is, but you need to post process all of your data, which AlpineReplay does on servers, and not on the phone.
Full Post
GPS technology is known as the basis for devices that accurately measure user position. In fact, GPS, if designed properly, is much better in measuring velocity. The reason is that to measure position GPS must accurately measure time that takes signals to travel from the GPS satellites to the receiver. Since the signal travels at the speed of light, which is 186,282 mph (or 300,000 kph), an error of even one microsecond (0.00001 seconds) brings about 300 m position error. Even if the time is measured very accurately, which is possible, to get a position accuracy to 2 m as it is often advertised, one need to know so called atmospheric corrections which are time and season dependant. These corrections are computed based on the actual depth and amount of water in the the troposphere and the effective sickness of ionosphere. These corrections must be received from satellites other than GPS - WAAS for US and EGNOS for Europe. Without these corrections GPS position accuracy is about 10 m (30’)
Alternatively, velocity is measured from the Doppler shift measurement which is done with PLL (Phase Lock Loop) and FLL (Frequency Lock Loop) that must run in order to track GPS satellite signal. It is very common to have velocity accuracy as good as 0.2 m/s or 0.45 mph.
Does this mean that the velocity that you are getting from your phone GPS is so accurate? Not really. Firstly, many cheap GPS providers are cutting corners and compute velocity as delta_distance/delta_time which is way less accurate than using velocity from doppler. However, the major source of problems is that mass market GPS is designed for car navigation and geo location. These applications does not require high dynamics but instead call for very smooth low dynamic motions. The most common way is to combine velocity and position using a Kalman filter. The result is a very slowly changing position with velocity computed as a derivative of this smooth position.
This leads to two problems - when GPS position jumps, which happens often due to poor signal, strong reflection from the building, or a short error in time measurement, velocity becomes very high. Another common issue is a delay in velocity change. Try to stop for a while, make sure that vel is zero for several seconds, and then start moving very fast. If you watch you phone GPS at the same time you will see that velocity would stay zero for several seconds and then will start to increase smoothly instead of an abrupt jump that you would expect. The same with a sharp stop. Velocity will be going down for several seconds. This delay could be seen in our video when filming starts when subject is still stationary.
Another issue is that cheap GPS devices have very poor tracking loops that are tuned for low dynamics car motion (cars don’t zig zag, they make 90 degree turns). This means that when a skier shoots down the slopes with very sharp turns the GPS signal tracking is lost and the data are not recorded.
We at AlpineReplay take data issues very seriously. Because our data processing is done on the server we can employ much more powerful tools than when data are processed directly on the phone in real time.
Firstly, we have more data - for every point we have its past - the same as on the phone, and its future, because we are doing post processing. This allows us to detect wrong data much more accurately. We are looking for jumps in position, altitude, or velocity, looking for data consistency, etc.. We even automatically fill in some data, such as lift up motion, and are removing car driving to make sure that our Leaderboard is the most accurate. If our data processing algorithms cannot solve the problem automatically, they put the data in a “quarantine” for our engineers to manually look at the data and make a decision. This makes AlpineReplay LeaderBoard the most accurate in the industry.