В DSP термин «фильтр» обычно относится к усилению или ослаблению (то есть «понижению») частотных составляющих в непрерывном сигнале. Обычно это делается с помощью быстрого преобразования Фурье (БПФ). БПФ начинается с сигнала, записанного в течение определенного промежутка времени (данные находятся в так называемой «временной области»), и преобразует эти значения в так называемую «частотную область», где результаты указывают силу сигнала в серии. частотных «бинов» в диапазоне от 0 Гц до частоты дискретизации (10 Гц в вашем случае). Таким образом, в качестве грубого примера, БПФ, состоящее из ваших данных в одну секунду (10 выборок), сообщит вам силу вашего сигнала при 0-2 Гц, 2-4 Гц, 4-6 Гц, 6-8 Гц и 8-10 Гц.
Чтобы «отфильтровать» эти данные, вы должны увеличить или уменьшить любое или все из этих значений мощности сигнала, а затем выполнить обратное БПФ для преобразования этих значений обратно в сигнал во временной области. Например, предположим, что вы хотели создать фильтр низких частот для преобразованных данных, где частота среза составляла 6 Гц (другими словами, вы хотите удалить любые частотные составляющие в вашем сигнале выше 6 Гц). Вы должны программно установить значение 6-8 Гц на ноль и установить значение 8-10 Гц на 0, а затем сделать обратное БПФ.
Я упоминаю все это, потому что это не похоже на "фильтрацию", это действительно то, что вы хотите сделать здесь. Я думаю, что вы просто хотите отобразить текущее значение вашего датчика, но вы хотите сгладить результаты, чтобы он не реагировал чрезмерно на переходные колебания в измеренном значении датчика. Наилучший способ сделать это - использовать простое скользящее среднее, возможно, с более поздними значениями, взвешенными более старыми, чем более старые.
Скользящее среднее очень легко программировать ( намного проще, чем FFT, поверьте мне), сохраняя коллекцию самых последних измерений. Вы упоминаете, что ваше приложение хранит только значения, которые отличаются от предыдущего значения. Предполагая, что вы также сохраняете время, в которое записывается каждое значение, ваш бегущий средний код должен легко заполнить «пропущенные значения», используя записанные предыдущие значения.