Позвольте мне предложить вам просмотреть выходной сигнал вашего датчика как комбинацию двух факторов:
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
Это сложная тема, поэтому вы должны ожидать крутой кривой обучения.Фильтрация Калмана (и связанные с ней байесовские методы оценки) - это формальный способ перехода от «плохого показания датчика» к «скорректированному показанию датчика».