Здесь есть интересная статья (с исходным кодом), которая может помочь: http://www.analog.com/static/imported-files/application_notes/47076299220991AN_900.pdf.
Графики интересные. Если бы я делал это сам, я бы, вероятно, произвел выборку данных на достаточно высокой частоте, преобразовал бы в частотную область с помощью БПФ, применил цифровой полосовой фильтр, чтобы отрезать все частоты за пределами ожидаемой минимальной / максимальной скорости ходьбы (включая любые Смещение постоянного тока), выполните обратное БПФ, чтобы восстановить теперь отфильтрованный сигнал, а затем пропустите полученные данные через детектор фронтов с функцией гистерезиса. Конечно, это все чисто предположения, но, глядя на эти графики, я думаю, что это сработало бы, было бы относительно быстро кодировать и соответствовать вычислительной мощности мобильного телефона.