我建议您将传感器输出视为两个因素的组合:
sensor_output = emitter_effect + environment_effect
并且您想在emitter_effect
不添加environment_effect
. 所以,当然你需要减去:
emitter_effect = sensor_output - environment_effect
减去环境对传感器的影响通常称为补偿。为了进行补偿,您需要能够建模或预测您的环境(周围漂浮的额外金属)对传感器的影响。环境效果模型的形式可以很简单也可以很复杂。
简单的方法一般使用单独的传感器来估计environment_effect
。我不确定您的具体情况是什么,但您可以选择一个传感器来独立测量您的设置中的干扰(金属)量。
更复杂的方法可以执行补偿,而无需参考用于测量干扰的独立传感器。例如,如果您预计距离平均为 10.0,只有偶尔的偏差,您可以使用该事实来估计存在多少干扰。根据我的经验,这种方法不太可靠。具有用于测量干扰的独立传感器的系统更具可预测性和可靠性。
如果您对基于模型的估计感兴趣,可以开始阅读卡尔曼滤波:
https://en.wikipedia.org/wiki/Kalman_filter
这是一个复杂的话题,所以你应该期待一个陡峭的学习曲线。卡尔曼滤波(和相关的贝叶斯估计方法)是从“坏传感器读数”转换为“校正传感器读数”的正式方法。