Запись в wikipedia из moogs является хорошей отправной точкой для сглаживания данных. Но это не поможет вам принять решение.
Все зависит от ваших данных и необходимой скорости обработки.
Скользящий средний Сгладит верхние значения. Если вы заинтересованы в минимальном и максимальном значении, не используйте это. Также я думаю, что использование скользящей средней будет влиять на ваше измерение ускорения, так как оно сгладит ваши данные (немного), тем самым ускорение будет меньше. Все сводится к необходимой точности.
Savitzky-Golay Быстрый алгоритм. Так же быстро, как скользящее среднее. Это сохранит высоту пиков. Несколько сложнее реализовать. И вам нужны правильные коэффициенты. Я бы выбрал этот.
Фильтры Kalman Если вы знаете распределение, это может дать вам хорошие результаты (он используется в системах GPS-навигации). Возможно, несколько сложнее реализовать. Я упоминаю об этом, потому что я использовал их в прошлом. Но они, вероятно, не являются хорошим выбором для стартера в таких вещах.
Вышеуказанное уменьшит шум вашего сигнала.
Далее вам нужно определить начальную и конечную точку «ускорения». Вы можете сделать это, создав Derivative исходного сигнала. Точка (ы), где производная пересекает ось Y (нуль), вероятно, являются пиками в вашем сигнале и могут указывать начало и конец ускорения.
Затем вы можете создать производную второй степени, чтобы получить минимальное и максимальное ускорение.
исправлен. благодаря! – moogs 2008-10-15 09:58:14
Не могли бы вы объяснить, почему использовать 100 значений для 10 Гц? Благодарю. – 2008-10-15 10:16:53
@Guido - из моей интерпретации того, что он сказал, он имеет 1000 значений в секунду, но на самом деле нужно получать данные 10 раз в секунду. Таким образом, простой способ - просто обработать 100 значений как один (получить среднее значение). – moogs 2008-10-15 10:28:44