I am trying to measure temperature with the MLX90614 BCC IR sensor for my project, and I am having problems with my precision requirement. I had taken data for 1 second then took the mean of these values. I measured the hand of a human, which was 36.2°C. I took measurements for different distances also like 1 cm, 3 cm, and 5 cm. However, sometimes there is more than 0.1 °C difference between the mean of all measurements( I take measurements for 1 second always), and my goal is to compensate this difference to < 0.1 °C. I tried median, moving average, Savitzky-Golay filter, and a couple more, but none of them lowers the difference. When I checked the histogram of my data, I saw that even for a constant distance from the sensor, there is 0.4 °C variance. Is there any way to compensate for this difference by a filter, or do I need to use more physical requirements while taking measurements? Here are my histograms of data measurements for different distances and mean values: Mean of the first figure - unfiltered: 32.2072 Mean of the second figure - unfiltered: 32.3612 Mean of the third figure - unfiltered: 32.2749 Mean of the fourth - unfiltered: 32.2735 Mean of the fifth figure - unfiltered: 32.2243 Mean of the sixth figure - unfiltered: 32.1224 Mean of the seventh - unfiltered: 32.0925 Mean of the last figure - unfiltered: 32.2129 In summary, is there any way to decrease these mean differences up to max 0.1.
In any measurement application the VERY FIRST thing you should to do is to calibrate the hardware and characterize it's noise floor and data variance by doing measurements on a known device.
Start with measuring something that's guaranteed to be at a constant and known temperature and take histograms. These SHOULD have a more or less a gaussian shape with the mean matching the temperature of the device under test and the standard deviation being the capability of your measurement setup. If that's not the case or if the standard deviation is larger than you need it to be, you need to start debugging the hardware.
You histograms do not make a lot of sense. Typically you would expect a gaussian shape with a continuous distribution around the mean. The large gaps you have in your histograms indicate that there is something not working as it should .