Я что-то кодирую в тот момент, когда я беру кучу значений с течением времени от аппаратного компаса. Этот компас очень точен и очень часто обновляется, в результате чего, если он слегка дрожит, я получаю нечетное значение, которое дико несовместимо со своими соседями. Я хочу сгладить эти значения.
Проделав некоторое чтение, казалось бы, что я хочу, это фильтр верхних частот, фильтр нижних частот или скользящее среднее. Скользящее среднее, с которым я могу справиться, просто сохранить историю последних 5 значений или что-то еще, и использовать среднее значение этих значений ниже по потоку в моем коде, где я когда-то использовал последнее значение.
Это должно, я думаю, сгладить эти смешки красиво, но мне кажется, что он, вероятно, довольно неэффективен, и это, вероятно, одна из тех известных проблем для правильных программистов, для которых существует действительно аккуратное решение Clever Math.
Я, однако, один из тех ужасных программистов-самоучек, не имеющих формального образования ни в чем, даже смутно связанных с CompSci или Math. Чтение немного говорит о том, что это может быть фильтр с высоким или низким пропусканием, но я не могу найти ничего, что объясняет в терминах, приемлемых для взлома, как я, что эффект этих алгоритмов будет на массив значений, не говоря уже о том, как математика работает. Ответ, приведенный здесь, например, технически отвечает на мой вопрос, но только в терминах, понятных тем, кто, вероятно, уже знает, как решить проблему.
Было бы очень симпатичным и умным человеком, который мог бы объяснить, как это проблема, и как работают решения, с точки зрения понятных для выпускников искусств.