Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

So, I come from a programming background, but not a mathematical one. I have a problem that I'm sure has a great mathematical solution!

so, I have GPS data points for every second of a drive a car makes. Due to accuracy issues, if I capture this GPS data from different devices, the points are slightly different, having a bit of noise.

I use this data to work out speed between points and work out acceleration/breaking from this. The problem is, if the points are slightly different between devices, the events captured can be hugely different and I need consistency between devices.

Is there any kind of smoothing etc anyone can suggest that could help me with this?

Many thanks

share|improve this question

closed as off topic by Jonathan Christensen, rschwieb, Henry T. Horton, Asaf Karagila, t.b. Feb 9 '13 at 12:15

Questions on Mathematics Stack Exchange are expected to relate to math within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

This question is better suited for stats.SE. –  Jonathan Christensen Feb 5 '13 at 13:01
Try Kalman filters. It might seem complex, but the web is full of information on this subject. BTW I think that math.SE is much better than stats.SE for this question. –  dtldarek Feb 5 '13 at 13:14
Get several GPS devices, average them. The GPS data sent by the satellites is smeared out on purpose... –  vonbrand Feb 5 '13 at 13:31
Do you need the accelerations online? –  aiao Feb 5 '13 at 13:49
@dtldarek We have the full data when we process it, so Kalman isn't as useful. –  Michael Feb 5 '13 at 14:40

1 Answer 1

Depends on the amount of processing time you have.

  1. If time is not an issue .i.e. not online, use particle filter.
  2. otherwise use Kalman Filter

orocos BFL, is a c++ library, which I found really helpful and has nice architecture, and is used in embedded applications.

IMHO, stay away from Bayes++; in my application it outperformed (speed) the BFL, but has one of the nastiest software architectures I have ever seen, where every variable and function is called f or f().!

Matlab has its own Kalman Filter libraries.

I have seen some papers that use online particle filters, but they must have went into alot of trouble to multithread the algorithm and have some really badass hardware.

Also, you could use DGPS, but given that you are finding acceleration from position .i.e. finding second derivative numerically, I don't expect that this will be enough though

EDIT: As I understand from the comments, this is offline processing. I would suggest particle filters in MATLAB. Check this out

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.