exponenta event banner

Извлечение классификационных признаков из физиологических сигналов

В этом примере показано использование функций. midcross и dtw извлечение признаков из данных сигнала походки. Сигналы походки используются для изучения моделей ходьбы пациентов с нейродегенеративным заболеванием. Сообщалось, что время между шагами различается между здоровыми и больными людьми. midcross предлагает удобный способ рассчитать эти времена. Люди также меняют скорость ходьбы со временем. dtw обеспечивает удобный способ количественного сравнения формы сигналов походки путем искривления для их выравнивания во времени. В этом примере используется midcross для определения местоположения каждого шага в сигнале походки и dtw вычисление расстояний между сегментами сигнала походки. Эти результаты рассматриваются как потенциальные признаки классификации сигналов. Хотя этот пример специфичен для сигналов походки, другие физиологические сигналы, такие как электрокардиограмма (ЭКГ) или фотоплетизмограмма (PPG), также могут быть проанализированы с использованием этих функций.

Измерение межполосных интервалов времени

Анализируемый набор данных содержит силовые данные, собранные во время ходьбы для пациентов с боковым амиотрофическим склерозом (БАС) и контрольной группой. БАС - заболевание, известное Лу Геригом, Стивеном Хокингом и «Ice Bucket Challenge» 2014 года.

Загрузите и постройте график первых 30 секунд данных сигнала походки для одного пациента.

helperGaitPlot('als1m');
xlim([0 30])

Figure contains an axes. The axes with title Gait Signal Data contains 2 objects of type line. These objects represent Left foot, Right foot.

Этот набор данных представляет силу, оказываемую ногой на чувствительный к силе резистор. Сила измеряется в милливольтах. Каждая запись имеет длину одну минуту и содержит отдельные каналы для левой и правой стопы субъекта. Каждый шаг в наборе данных характеризуется резким изменением силы при ударе стопы и выходе из земли. Использовать midcross найти эти резкие изменения для пациента с БАС.

Использовать midcross найти и наметить местоположение каждого пересечения для левой стопы пациента с БАС. Выберите допуск 25%, чтобы убедиться, что каждое пересечение обнаружено.

Fs = 300;
gaitSignal = helperGaitImport('als1m');
midcross(gaitSignal(1,:),Fs,'tolerance',25);
xlim([0 30])
xlabel('Sample Number')
ylabel('mV')

Figure Mid Cross Plot contains an axes. The axes contains 9 objects of type line. These objects represent signal, mid cross, upper boundary, upper state, lower boundary, mid reference, lower state.

midcross правильно определяет пересечения. Теперь используйте его, чтобы рассчитать время между шагами для группы из десяти пациентов. Пять пациентов являются контрольными субъектами, а пять пациентов имеют БАС. Используйте запись левой стопы для каждого пациента и исключите первые восемь переходов для удаления переходных процессов.

pnames = helperGaitImport();
for i = 1:10
  gaitSignal = helperGaitImport(pnames{i});
  IND2 = midcross(gaitSignal(1,:),Fs,'Tolerance',25);
  IST{i} = diff(IND2(9:2:end));   
  varIST(i) = var(IST{i});
end

Постройте график времени между шагами.

figure
hold on
for i = 1:5
  plot(1:length(IST{i}),IST{i},'.-r')
  plot(1:length(IST{i+5}),IST{i+5},'.-b')
end
xlabel('Stride Number')
ylabel('Time Between Strides (sec)')
legend('ALS','Control')

Figure contains an axes. The axes contains 10 objects of type line. These objects represent ALS, Control.

Дисперсия времени между шагами выше в целом для пациентов с БАС.

Измерьте сходство моделей ходьбы

После количественного определения расстояния между шагами, приступить к анализу формы данных сигнала походки независимо от этих межшаговых изменений. Сравнение двух сегментов сигнала с помощью dtw. В идеале, можно сравнить форму сигнала походки с течением времени по мере развития лечения или заболевания. Здесь мы сравниваем два сегмента одной и той же записи, один сегмент, взятый на ранней стадии записи (sigsInitialLeft), и второй к концу (sigsFinalLeft). Каждый сегмент содержит шесть шагов.

Загрузите сегменты данных сигнала походки.

load PNGaitSegments.mat

Пациент не ходит с одинаковой скоростью на протяжении всей записи. dtw обеспечивает измерение расстояния между сегментами путем их деформации для их выравнивания по времени. Сравнение двух сегментов с помощью dtw.

figure
dtw(sigsInitialLeft{1},sigsFinalLeft{1});
legend('Early segment','Later segment','location','southeast')

Figure contains 2 axes. Axes 1 with title Original Signals contains 2 objects of type line. Axes 2 with title Aligned Signals (Euclidean Distance: 11.834667) contains 2 objects of type line. These objects represent Early segment, Later segment.

Два сегмента выровнены по времени. Хотя скорость шага пациента, по-видимому, изменяется с течением времени, как видно из смещения исходных сигналов, dtw соответствует двум сегментам, позволяя повторять выборки каждого сегмента. Расстояние через dtwнаряду с дисперсией времени между шагами, будут изучены как особенности классификатора сигнала походки.

Построение вектора элементов для классификации сигналов

Предположим, вы строите классификатор, чтобы решить, здоров пациент или нет, основываясь на сигналах походки. Исследовать разницу между временами, feature1и расстояние через dtw между начальным и конечным сегментами сигнала, feature2, в качестве классификационных признаков.

Функция 1 была ранее вычислена с помощью midcross.

feature1 = varIST;

Extract Feature 2 для пациентов с БАС и контрольной группы.

feature2 = zeros(10,1);
for i = 1:length(sigsInitialLeft)
  feature2(i) = dtw(sigsInitialLeft{i},sigsFinalLeft{i});
end

Постройте график функций для субъектов БАС и контрольных субъектов.

figure
plot(feature1(1:5),feature2(1:5),'r*',...
    feature1(6:10),feature2(6:10),'b+',...
    'MarkerSize',10,'LineWidth',1)
xlabel('Variance of Inter-Stride Times')
ylabel('Distance Between Segments')
legend('ALS','Control')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent ALS, Control.

Пациенты с БАС, по-видимому, имеют большую дисперсию времени между шагами, но меньшее расстояние через dtw между сегментами. Эти особенности дополняют друг друга и могут быть изучены для использования в классификаторе, таком как нейронная сеть или поддерживающая векторная машина.

Заключения

midcross и dtw обеспечить удобный способ сравнения сигналов походки и других физиологических данных, которые нерегулярно повторяются во времени из-за различных скоростей движения или активности. В этом примере время шага было найдено с использованием midcross и расстояния между сегментами были рассчитаны с использованием dtw. Это были дополнительные меры, как dtw удалил любое изменение времени, которое midcross расстояния будут измерять. В качестве особенностей эти две метрики показали разделение между контрольными и пациентами с БАС для этого набора данных. midcross и dtw также может быть использован для изучения других физиологических сигналов, форма которых изменяется в зависимости от активности.

Ссылки

[1] Гольдбергер, А. Л., Л. А. Н. Амарал, Л. Гласс, Ж. М. Хаусдорф, П. Ч. Иванов, Р. Г. Марк, Р. Г. Миет, Г. Б. Муди, К.-К. Пэн и Х. Э. Стэнли. «PhysioBank, PhysioToolkit и PhysioNet: компоненты нового исследовательского ресурса для сложных физиологических сигналов». Циркуляция. Том 101, номер 23, 2000, стр. e215-e200.

См. также

|