Algorithm for filtering / standardizing bad signals
Use GPS to process tracking applications
What algorithm should I run to filter out bad signals? It looks like an application of fuzzy algorithm, but what do you think?
Solution
There are several options:
>Discard outliers > Filter > use better GPS > use external data sources (align roads) > combination of the above
I like to use filters – the Kalman filter is a typical (usually the best) solution – it uses a certain amount of predicted average, which is better than the cheap IIR (infinite impulse response) filter:
FilteredValue = FilteredValue * 0.75 NewValue * 0.25
You can get the GPS module repaired 4-5 times per second, so you can use the above "cheap" filter with reasonable response time
You can also simply get a better GPS (SiRF III or better), which does not produce noise and has better indoor reception (if possible)
The consumer GPS unit is "fast on the road" when possible, so the consumer will not see errors and other technologies
Kalman is not easy to implement, but without external data sets or sensors (such as road speed), it is the best choice see http://www.google.com/search?q=open%20source%20kalman%20filter For code and tutorials
-Adam