75 lines
2.9 KiB
Matlab
75 lines
2.9 KiB
Matlab
% Gait Variability Analysis
|
|
% Script created for BAP students 2020
|
|
% Iris Hagoort
|
|
% April 2020
|
|
|
|
% Input: needs mat file which contains all raw accelerometer data
|
|
% Input: needs excel file containing the participant information including
|
|
% leg length.
|
|
|
|
%% Clear and close;
|
|
clear;
|
|
close all;
|
|
|
|
%% Load data
|
|
load('Phyphoxdata.mat'); % loads accelerometer data, is stored in struct with name AccData
|
|
load('ExcelInfo.mat');
|
|
Participants = fields(AccData);
|
|
|
|
%% Settings
|
|
FS = 100; % sample frequency
|
|
LegLengths = excel.data.GeneralInformation(:,5); % leglength info is in 5th column
|
|
LegLengthsM = LegLengths/100; % convert to m
|
|
|
|
%% Calculate parameters;
|
|
for i = 1: length(Participants);
|
|
tic;
|
|
LegLength = LegLengthsM(i);
|
|
WalkingConditions = fields(AccData.([char(Participants(i))]));
|
|
|
|
for j = 1: length(WalkingConditions);
|
|
|
|
if strcmp(char(WalkingConditions(j)),'Treadmill')
|
|
|
|
SubConditions = fieldnames(AccData.([char(Participants(i))]).([char(WalkingConditions(j))]));
|
|
|
|
for k = 1: length(SubConditions);
|
|
inputData = AccData.([char(Participants(i))]).([char(WalkingConditions(j))]).([char(SubConditions(k))]);
|
|
WindowLength = FS*10;
|
|
ApplyRealignment = true;
|
|
ApplyRemoveSteps = true;
|
|
[ResultStruct] = GaitOutcomesTrunkAccFuncIH(inputData,FS,LegLength,WindowLen,ApplyRealignment,ApplyRemoveSteps);
|
|
OutcomesAcc.([char(Participants(i))]).([char(WalkingConditions(j))]).([char(SubConditions(k))]) = ResultStruct;
|
|
end
|
|
|
|
elseif strcmp(char(WalkingConditions(j)),'Balance') || strcmp(char(WalkingConditions(j)),'TwoMWT')
|
|
disp('Files are not used for current analysis');
|
|
|
|
elseif strcmp(char(WalkingConditions(j)),'InsideStraight')
|
|
inputData = AccData.([char(Participants(i))]).([char(WalkingConditions(j))]);
|
|
ApplyRealignment = true;
|
|
ApplyRemoveSteps = false; % don't remove steps for the straight conditions
|
|
% function specific for the walking conditions containing a lot
|
|
% of turns
|
|
[ResultStruct] = GaitVariabilityAnalysisIH_WithoutTurns(inputData,FS,LegLength,ApplyRealignment,ApplyRemoveSteps);
|
|
OutcomesAcc.([char(Participants(i))]).([char(WalkingConditions(j))]) = ResultStruct;
|
|
|
|
else
|
|
inputData = AccData.([char(Participants(i))]).([char(WalkingConditions(j))]);
|
|
ApplyRealignment = true;
|
|
ApplyRemoveSteps = true;
|
|
WindowLen = FS*10;
|
|
[ResultStruct] = GaitOutcomesTrunkAccFuncIH(inputData,FS,LegLength,WindowLen,ApplyRealignment,ApplyRemoveSteps)
|
|
OutcomesAcc.([char(Participants(i))]).([char(WalkingConditions(j))]) = ResultStruct;
|
|
end
|
|
end
|
|
|
|
toc;
|
|
end
|
|
|
|
% Save struct as .mat file
|
|
save('GaitVarOutcomes30pril.mat', 'OutcomesAcc');
|
|
|
|
|
|
|