added ground truth to java method
fixed some bugs improved algo and results
This commit is contained in:
@@ -8,8 +8,8 @@
|
||||
%files = dir(fullfile('../../measurements/2018.06/manfred/LGWatchR/', '*.csv'));
|
||||
%files = dir(fullfile('../../measurements/2018.06/peter/Huawai/', '*.csv'));
|
||||
%files = dir(fullfile('../../measurements/2018.06/peter/mSensor/', '*.csv'));
|
||||
%files = dir(fullfile('../../measurements/2018.06/frank/mSensor/', '*.csv'));
|
||||
files = dir(fullfile('../../measurements/2018.06/leon/mSensor/', '*.csv'));
|
||||
files = dir(fullfile('../../measurements/2018.06/frank/mSensorTest/', '*.csv'));
|
||||
%files = dir(fullfile('../../measurements/2018.06/leon/mSensor/', '*.csv'));
|
||||
|
||||
%files_sorted = natsortfiles({files.name});
|
||||
for file = files'
|
||||
@@ -98,7 +98,7 @@ for file = files'
|
||||
|
||||
%set cur ground truth
|
||||
if(length(gtData) > 1)
|
||||
curTimestamp = timestamps(i);
|
||||
curTimestamp = timestamps(i) - timestamps(1);
|
||||
while(curTimestamp > gtData(gtIdx,1) && gtIdx < length(gtData))
|
||||
curGtBpm = gtData(gtIdx,2);
|
||||
gtIdx = gtIdx + 1;
|
||||
@@ -106,6 +106,8 @@ for file = files'
|
||||
else
|
||||
curGtBpm = gtData;
|
||||
end
|
||||
|
||||
|
||||
%measure periodicity of window and use axis with best periodicity
|
||||
[corr_x, lag_x] = xcov(m(i-window_size:i,3), (window_size/2), "coeff");
|
||||
[corr_y, lag_y] = xcov(m(i-window_size:i,4), (window_size/2), "coeff");
|
||||
@@ -121,7 +123,7 @@ for file = files'
|
||||
%distanz zwischen den vektoren nehmen und in eine normale autocorrelation zu packen
|
||||
%aufpassen wegen der norm, dass die richtung quasi nicht verloren geht.
|
||||
%https://en.wikipedia.org/wiki/Lp_space
|
||||
[corr_3D, lag_3D] = distCorr(m(i-window_size:i, 3:5), (round(window_size * 0.8)));
|
||||
[corr_3D, lag_3D] = distCorr(m(i-window_size:i, 3:5), (window_size/2));
|
||||
|
||||
corr_x_pos = corr_x;
|
||||
corr_y_pos = corr_y;
|
||||
@@ -150,19 +152,20 @@ for file = files'
|
||||
idx_y = findFalseDetectedPeaks(idx_y_raw, lag_y, corr_y);
|
||||
idx_z = findFalseDetectedPeaks(idx_z_raw, lag_z, corr_z);
|
||||
idx_mag = findFalseDetectedPeaks(idx_mag_raw, lag_mag, corr_mag);
|
||||
idx_3D = findFalseDetectedPeaks(idx_3D_raw, lag_3D', corr_3D);
|
||||
%idx_3D = findFalseDetectedPeaks(idx_3D_raw, lag_3D', corr_3D);
|
||||
idx_3D = idx_3D_raw;
|
||||
|
||||
Dwindow = m(i-window_size:i,3);
|
||||
Dwindow_mean_ts_diff = mean(diff(lag_3D(idx_3D) * sample_rate_ms)); %2.5 ms is the time between two samples at 400hz
|
||||
Dwindow_mean_bpm = (60000 / (Dwindow_mean_ts_diff));
|
||||
|
||||
figure(10);
|
||||
plot(lag_3D, corr_3D, lag_3D(idx_3D), corr_3D(idx_3D), 'r*', lag_3D(idx_3D_raw), corr_3D(idx_3D_raw), 'g*')
|
||||
hold ("on")
|
||||
m_label_ms = strcat(" mean ms: ", num2str(Dwindow_mean_ts_diff));
|
||||
m_label_bpm = strcat(" mean bpm: ", num2str(Dwindow_mean_bpm));
|
||||
title(strcat(" ", m_label_ms, " ", m_label_bpm));
|
||||
hold ("off");
|
||||
% figure(10);
|
||||
% plot(lag_3D, corr_3D, lag_3D(idx_3D), corr_3D(idx_3D), 'r*', lag_3D(idx_3D_raw), corr_3D(idx_3D_raw), 'g*')
|
||||
% hold ("on")
|
||||
% m_label_ms = strcat(" mean ms: ", num2str(Dwindow_mean_ts_diff));
|
||||
% m_label_bpm = strcat(" mean bpm: ", num2str(Dwindow_mean_bpm));
|
||||
% title(strcat(" ", m_label_ms, " ", m_label_bpm));
|
||||
% hold ("off");
|
||||
|
||||
Xwindow = m(i-window_size:i,3);
|
||||
Xwindow_mean_ts_diff = mean(diff(lag_x(idx_x) * sample_rate_ms)); %2.5 ms is the time between two samples at 400hz
|
||||
|
||||
Reference in New Issue
Block a user