I have an object that I am tracking with bluetooth indoor positioning system (angle measurement). The object usually moves with velocity around 30-50 km/h, but it can peak over 150 km/h. The object also makes sharp turns.
I have the absolutely raw data (xy-coordinates), but it has terrible noise. I also have radar data so I can verify the velocity with accuracy that is suitable for me. The object can move in 3d, but the z-coordinate is small.
The system gives me data between 1 to 100 ms. The interval is not even.
So far I have calculated the velocity from the noisy data, and then I have applied low pass filter (finite impulse response) to it. Yes, I loose the spikes, but the speed is way off compared to radar.
My goal is to find as good as possible velocity estimate for the peak between those sharp turns. That means when the object is going straight.
Does anyone have any tricks and tips for designing a filter for the noise from the positioning data?
Suppose the incoming data is in variable y where y is a function of time, y(t). Suppose too that a new data point is collected each millisecond.
$Saved\_Data=y(t)\cdot.005+(1-.005)\cdot Saved\_Data$
By this method, at each millisecond, instead of saving the data value, y(t) , we save a very small part of it, $y(t)\cdot.005$ and add it to a very large part of the already saved data, $0.995\cdot Saved\_Data$.
I adjust the value 0.005 as needed since the data reception is slowed by the method - i.e. there is a lag, but it is usually not too bad.