|
|
Dynamic Time Warping Distance measures nachvollziehbarkeit |
|
LisDeb |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 20.07.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.07.2020, 08:20
Titel: Dynamic Time Warping Distance measures nachvollziehbarkeit
|
|
|
|
|
Hallo zusammen,
ich arbeite momentan mit der Matlab nativen Funktion dtw, in welcher dynamic time warping implementiert ist. Im Rahmen dessen, dass ich einen beliebigen warping path auf ein signal anwenden wollte, habe ich versucht, die distance measures, die im dtw implementiert sind, anhand von zwei absichtlich verzerrten Siagnalen nachzuvollziehen (siehe Code). Dies gelang mir mit der 'absolute' und der 'squared' distance measure, nicht jedoch mit der 'euclidean', und ich verstehe nicht ganz wieso. Laut der Dokumentation bin ich der Meinung, dass sich die euklidische Distanz der zwei gewarpten Signale so berechnen müsste. Auch irritiert mich, dass der warping path sich verändert, je nachdem welche distance measure ich verwende - sollte das nicht derselbe sein zwischen absolute, squared und euclidean? Die Minima sind ja dieselben, ob ich nun die quadrierte Funktion betrachte oder die Wurzel hieraus.
ich hoffe, ihr könnt mir hier weiterhelfen!
[code]
time = 1:1:100;
signal1 = sin(time);
signal2 = 5.*sin(time);
signal1_shifted = sin(time+9);
signal2_shifted = 5.*sin(time+15);
%dynamic time warping with either signal - default
tic_default = tic;
[dist_1_default,ix_1_default,iy_1_default] = dtw(signal1,signal1_shifted);
[dist_2_default,ix_2_default,iy_2_default] = dtw(signal2,signal2_shifted);
time_default = toc(tic_default);
%dynamic time warping with either signal - euclidean
tic_eucl = tic;
[dist_1_eucl,ix_1_eucl,iy_1_eucl] = dtw(signal1,signal1_shifted,'euclidean');
[dist_2_eucl,ix_2_eucl,iy_2_eucl] = dtw(signal2,signal2_shifted,'euclidean');
time_eucl = toc(tic_eucl);
%dynamic time warping with either signal - squared
tic_sqr = tic;
[dist_1_sqr,ix_1_sqr,iy_1_sqr] = dtw(signal1,signal1_shifted,'squared');
[dist_2_sqr,ix_2_sqr,iy_2_sqr] = dtw(signal2,signal2_shifted,'squared');
time_sqr = toc(tic_sqr);
%dynamic time warping with either signal - absolute
tic_abs = tic;
[dist_1_abs,ix_1_abs,iy_1_abs] = dtw(signal1,signal1_shifted,'absolute');
[dist_2_abs,ix_2_abs,iy_2_abs] = dtw(signal2,signal2_shifted,'absolute');
time_abs = toc(tic_abs);
%% Reproduce distance measures
%absolute
dist_1_abs_reproduced = sum(sqrt((signal1(ix_1_abs)-signal1_shifted(iy_1_abs)).^2));
%squared
dist_1_sqr_reproduced = sum((signal1(ix_1_sqr)-signal1_shifted(iy_1_sqr)).^2);
%euclidean
dist_1_eucl_repdroduced = sqrt(sum((signal1(ix_1_eucl)-signal1_shifted(iy_1_eucl)).^2));
[/code]
|
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|