Как правильно пользоваться методом скользящего окна при обработке сигналов?
Пытаюсь определить наличие и отсутствие плавания по показаниям акселерометра на голове пловца. Делаю так: бегу скользящим окном (длина 1с, смещение 0.2с) по значениям, нахожу энергию каждого окна (и суммирую энергию каждой оси), строю график. На графике высокие пики показывают гребки, низкие пики всякие мелкие движения головы при отсутствии гребков. Вот только возникает проблема: пики смещены. По видео я вижу гребок в одно время, а на графике на пару секунд позже. Уже все перепроверил, походу я как-то неправильно использую метод.
Что мне следует сделать, чтобы положение этих пиков соответствовало моменту гребка?
Вы интегрируете окно, соответственно максимум энергии будет смещен во времени.
Теперь ваш сигнал скорее всего имеет пилообразную форму, когда он резко возрастает, и потом медленно убывает, соответственно в любом случае задержка между гребком и максимумом будет 1с (ширина окна) + добавьте инерцию самого датчика (я не вкурсе правда об этом, каков порядок такой задержки).
Т.о. чем шире окно вы сделаете, тем больше задержку получите.
Может стоит делать окно 0.1 сек со смещенеие 0.02 ?
А еще мне нужно анализировать не только энергию, но и ускорение по одной из осей. Я для каждого окна нахожу среднее значение и строю график, по длине совпадающий с графиком энергии. Вот только кажется, что один немного смещен относительно другого. Что я делаю не так?
Мне кажется у вас в голове смешалось одно с другими, определитесь сначала что вы делаете и каков ваш результат. Расшарьте картинки и т.п. чтобы было что-то понятно.
Сергей: Вот график, построенный по показаниям датчиков. Синие пики это энергия, красная линия - положение головы. Тут четыре стиля плавания. Мне надо определить время плавания и посчитать время кругов.
Сергей: Вот сырые данные https://drive.google.com/file/d/0B0gwcxY1U5bUUjAyQ...
В строку: timestamp acc_x acc_y acc_z gyro_x gyro_y gyro_z
Там же лежит json, который мы составили по видео, но там могут быть мелкие неточности. Видео, к сожалению, дать не могу