WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Dynamic Time Warping Distance measures nachvollziehbarkeit

 

LisDeb
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 20.07.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2020, 08:20     Titel: Dynamic Time Warping Distance measures nachvollziehbarkeit
  Antworten mit Zitat      
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]
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.