I'm trying to improve indoor gps accuracy in ios application. Do people apply such filters to gps data in different apps which track your position? I have 10-20 meters error indoors when using raw data from corelocation so will Kalman Filter have any impact on accuracy?

  • 2
    Intuitively, I'd say that statistical techniques can eliminate random noise, e.g. if each GPS measurement gives you a different location that clusters around the true location. However, they would be unable to eliminate systematic errors stemming from reflection and refraction of the GPS signal in the building: if all your measurements are consistently 5m to the west due to the way your signal travels, a Kalman filter can't magically tell you that your measurements are wrong.
    – amon
    Feb 20, 2017 at 20:23
  • The Wikipedia article says "yes, it can." Feb 20, 2017 at 23:29
  • A GPS receiver has a built-in Kalman filter. Filtering already filtered data is fraught with problems. If you want to do a better job, it's best to work with the pseudorange data directly and augment that with some other data such as data from an accelerometer mounted on a person's shoes or data from a video camera fed to SLAM. This is the subject of PhD theses and thus isn't quite on topic for this site. Feb 25, 2017 at 15:26
  • 1
    This doesn't really have anything to do with software engineering.
    – Blrfl
    Aug 25, 2017 at 16:48

1 Answer 1


Some developers do, particularly for tracking run/walk distances. However they are not simply filtering the GPS input, they improve accuracy with sensor fusion. As mentioned in the comments, the GPS data from the receiver should already be filtered so adding another filter wont help. However fusing the data from another sensor, an accelerometer to determine if a user is moving or pressure sensor to track altitude changes, etc. can improve accuracy a great deal and an Extended Kalman Filter is a good way to fuse sensor data so if used properly, yes.

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