Деформирование фрагментов сигналов в Matlab - PullRequest
2 голосов
/ 10 ноября 2010

Используя собственный датчик, который я построил, я собрал информацию датчика давления цикла походки человека (как изменяется давление, когда человек ходит) от правой ноги человека. Я хочу разбить каждый сигнал на отдельные шаги, предпринимаемые правой ногой. У меня есть пара датчиков на подошве стопы, но наиболее важным является датчик пятки, так как я использую его в качестве средства понимания начала и конца каждого шага. Это делается путем просмотра всех пиков датчика пятки (поскольку шаг в моем случае определяется как то, что происходит между двумя последовательными ударами пятки). Однако из-за того, что трудно идти с каждым шагом последовательно с одинаковой скоростью, некоторые шаги имеют тенденцию быть немного длиннее или короче, чем другие.

Это подводит меня к рассматриваемому вопросу. Я хочу деформировать каждый шаг так, чтобы все они были одинаковой длины (т.е. я хочу деформировать каждый шаг, чтобы он занимал одинаковое количество времени), но я не совсем уверен, каков наилучший подход. Может кто-нибудь посоветовать мне, как я могу обработать этот единственный сигнал, и изменить каждый шаг так, чтобы все они были равной длины.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Звучит так, будто пересчет будет вашей лучшей ставкой.Допустим, вы определили эталонное число выборок, скажем, 1024, и хотите, чтобы векторы длины 1024 для каждого шага (или, альтернативно, они могли быть столбцами в матрице высоты 1024).Затем для каждого входного вектора x вы можете использовать команду

resample(x, 1024, length(x))

. Для работы интерполяции вам потребуется достаточно высокая исходная частота дискретизации.Вы также можете поиграть с параметрами resample;посмотрите документацию .Надеюсь, это поможет!

2 голосов
/ 10 ноября 2010

Как показано на @ btown , интерполяция это самый простой путь.

1004 * В качестве альтернативного решения, и с учетом опорного сигнала (скажем, запись одного шага при нормальной скорости),вы можете применить Динамическое время Искривление (DTW) метод до перекос все последовательности, так что их соответствие скорости эталонного сигнала. 1010 * вы можете найти несколько реализацийна FEX:

alt text

...