Простой, однополюсный, низкочастотный, рекурсивный БИХ-фильтр быстро и легко внедряется, например,
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 - это предыдущие значения выходного сигнала на RHS, а новые выходные значения на LHS в приведенном выше выражении.
Обратите внимание, что мы предполагаем, что здесь вы будете дискретизировать сигналы акселерометра через регулярные промежутки времени, например каждые 10 мс Постоянная времени будет функцией как k, так и этого интервала выборки.