Как Вы используете скользящее среднее значение для отфильтровывания значений акселерометра в iPhone OS

Я хочу отфильтровать значения акселерометра с помощью скользящего среднего значения, как это сделано? Спасибо

9
задан DotSlashSlash 16 February 2010 в 11:36
поделиться

1 ответ

Простой однополюсный рекурсивный БИХ-фильтр нижних частот можно быстро и легко реализовать, например

xf = k * xf + (1.0 - k) * x;
yf = k * yf + (1.0 - k) * y;

где x, y - необработанные (нефильтрованные) сигналы акселерометра X / Y, xf, yf - отфильтрованные выходные сигналы, а k определяет постоянную времени фильтров (обычно значение от 0,9 до 0,9999 ..., где чем больше k, тем больше постоянная времени).

Вы можете определить k эмпирически или, если вам известна требуемая частота среза, Fc , то вы можете использовать формулу:

k = 1 - exp(-2.0 * PI * Fc / Fs)

где Fs - частота дискретизации.

Обратите внимание, что xf, yf - это предыдущие значения выходного сигнала на правой стороне и новые выходные значения на левой стороне выражения выше.

Обратите внимание, что здесь предполагается, что вы будете производить выборку сигналов акселерометра через регулярные промежутки времени, например каждые 10 мс. Постоянная времени будет функцией как k, так и этого интервала выборки.

17
ответ дан 4 December 2019 в 12:17
поделиться