Verfasst am: 01.11.2017, 14:20
Titel: Plotverschiebung - denselben Zeitpunkt bei allen Verläufen
Hallo liebe Matlab Community,
ich sitze vor einem mittelschweren Problem.
Ich habe 120 Verläufe eines Signals, die alle zu unterschiedlichen Zeitpunkten beginnen, da der Startpunkt der Messung manuell erfolgte. Die Verläufe sehen jedoch im Grunde ähnlich aus. Jetzt möchte ich, dass alle Verläufe zum selben Zeitpunkt starten, also quasi alle Verläufe sollen den gleichen Start haben.
Wozu das ganze?
Anhand dieser Verläufe muss ich andere Kurvenverläufe bearbeiten. Vielleicht mal besser anhand von Bildern gezeigt und exemplarisch nur anhand von 4 Verläufen dargestellt:
Signal1: 4 Durchläufe
Signal2: 4 Durchläufe
Wie ihr seht, ist Signal1 (die 4 Durchläufe meine ich) verschoben. Um dieselbe Verschiebung ist auch Signal2 (auch hier die 4 Durchläufe gemeint) verschoben. Da es später bei Mittelung dann zu Fehlern kommt, möchte ich das gern ändern.
woher weiß ich, wann der Anfangszeitpunkt ist?
Also anhand der Kurve sehe ich ihn zwar, aber das wäre wahrscheinlich etwas ungenau. Gibt es eine Funktion, die mir bei jedem Durchlauf des Signal1 ausgibt, wann der erste Ausschlag erfolgt?
Es mag jetzt komisch klingen, aber das musst schon du wissen.
Eine Möglichkeit könnte sein: der erste Zeitpunkt, zu dem das Signal einen bestimmten Schwellwert überschreitet.
Code:
start = find(abs(signal) > schwellwert, 1);
t = t - t(start);
Der Anfangszeitpunkt ist halt leider stets anders, mal bei 0,2 Sekunden, mal bei 2 Sekunden und dazwischen. Ich frage mich halt, ob ich das programmieren kann, damit ich bei 120 Kurven weiß, wann jede Kurve ihr 1. Signal bekommt (dieses ist immer negativ).
Leider bin ich nicht so versiert im Umgang mit Matlab.
ich habe dir doch eben einen entsprechenden Vorschlag gemacht.
Das einzige, was du nun noch tun musst, ist: den Vorschlag auf deine Signale anwenden. Alternativ beschreiben, inwiefern der Vorschlag nicht wie gewünscht funktioniert.
den Faktor "time" habe ich bereits in Verwendung. Harald, du meinst also, dass der Faktor "t" neu zugewiesen werden muss? Das klingt iwie einleuchtend. Das probiere ich nachher mal aus. Wie aber sage ich, dass der "neue" Verlauf der Kurve (nicht der Zeitvektor) auch vernünftig als Variable gespeichert wird. Also, nehmen wir an, dass die Variable P1 um den Starwert nach links oder rechts verschoben werden muss. Dann gibt es ja einen neuen Startwert. D. h. die Variable P1 sollte dann quasi ja neu beschrieben werden, sodass nicht nur für den plot der Startwert gilt, sondern auch die Variable mit dem errechnetem Startwert beginnt.
Versteht man, was ich meine?! Oh Gott, ich kann soooo schlecht erklären.
Grundsätzlich sehe ich zwei Möglichkeiten:
a) nur den Zeitvektor wie vorgeschlagen verschieben. Mit den Daten muss dann gar nichts gemacht werden.
b) zusätzlich den Teil vor Beginn des Signals abschneiden. Das ginge mit:
Ich habe mal einen Screenshot angehängt. Ich verstehe noch nicht, wie der Zusammenhang zw. den beiden Verläufen hergestellt wird. Ich arbeite ja immer nur mit einem Signal. Mein Ziel ist ja Quasi, jetzt vorerst 2 Kurven zu verschieben, sodass sie den selben Startpunkt haben.
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
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.