If you are introducing Android, you face this problem with large fluctuations due to the lack of a noise reduction algorithm in android. But the same thing can be verified in iOS, and the results are much better, iOS supports algo noise reduction. Now there are 3 things you can do based on the RSSI / Distance received from the beacon -
a) Implement the noise reduction algorithm yourself for your application. (I suggest that this is not easy.)
b) Implement a Gaussian filter for the resulting values. I mean saving all RSSI / distance values โโthat you get from the beacon to arraylist, and for every 10 values, sort in ascending order, exclude 3 minimum and 3 maximum values, and for the remaining 4 values, calculate the average and average value will be yours final value. (Itโs easy and convenient.)
c) Implement a Kalman filter for the resulting values. This is the best filter available by date. However, it is very difficult to implement than the Gaussian Filter, but the results of this filter are better.
You can choose any solution from above :)
source share