ich habe zwei voneinander unabhängige Zeitreihen (TS1 und TS2, jeweils vorliegend als eindimensionaler Datenvektor mit dazugehörigem datetime-Vektor), welche den selben Zeitraum abdecken, wobei TS2 vorne und hinten darüber hinausgeht (diese überschüssigen Daten sind unwichtig) und die Zeitintervalle ungleich sind (TS1: etwa 30 s, TS2: 1 h).
Jedem Zeitpunkt von TS1 möchte ich nun einen entsprechenden Wert der Zeitreihe TS2 zuordnen, sodass ich im Endeffekt den datetime-Vektor von TS1 habe mit den zugehörigen Werten von TS1 sowie interpolierten (spline) Werten von TS2.
Leider fehlen mir Ansätze für die Umsetzung, da die Timestamps auch nicht gerade günstig liegen. Deshalb würde ich mich sehr über Hilfestellungen freuen.
hallo, du solltest erstmal die zeitangabe (bei dir strings) in reele zahlen konvertieren https://de.mathworks.com/help/matlab/ref/datenum.html . anschließend kannst du deine interpolation mit dem befehl interp1 vornehmen.
Zunächst muss Du die Kommas in den Werten gegen Punkte austauschen, denn sonst sind sie für Matlab nicht erkennbar. Das ist ein uraltes Drama und ich würde mir die Haare raufen darüber, dass die Deutschen (und einige andere Länder) mit ihren Din-Normen hier eine einheitliche Schreibweise verhindert haben. Aber so ist es nun mal.
Bist Du Dir bei der Spline-Interpolation sicher, z.B. in Form physikalischer Argumente? Ein Spline kann nämlich über die (lokalen) Maxima und Minima hinaus-Schwingen. Wenn die Daten nicht "ziemlich glatt" sind, handelt man sich damit eventuell starkes Rauschen ein.
Wegen der Kommas gehe ich davon aus, dass die Daten in Text-Files vorliegen. Dann lies sie zunächst ein. Das geht mit
textscan
, ich selbst mache es lieber direkt mit
fscanf
. Das Umwandeln der Datum-Strings geht direkt mit
datenum
und
interp1
hat Harald ja auch bereits vorgeschlagen.
Probiere es mal und poste wieder, wenn Du auf Schwierigkeiten stößt.
Gruß, Jan
Lucas
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 16.11.2016, 13:08
Titel:
Vielen Dank für eure Antworten, dass es doch so einfach wäre, hätte ich nicht gedacht.
Die Kommas waren jetzt nicht das Problem. Sind eigentlich auch Punkte. Die müssen sich durch irgendeinen Copy+Paste Automatismus eingeschlichen haben, sorry.
Ich mache eine Gezeitenkorrektur. Bei der zu interpolierenden Zeitreihe handelt es sich dabei um eine simulierte Datenreihe, die ich von den gemessenen Daten subtrahiere. Um einen "eckigen" Tidenverlauf zu verhindern, bzw. einen realistischen Tidenverlauf zu konstruieren, ist die Spline-Interpolation, denke ich, ganz gut geeignet.
Das hat mit den Messwerten nur bedingt etwas zu tun.
Gruß, Jan
Lucas
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 16.11.2016, 15:19
Titel:
Vielen Dank für deinen Hinweis, Jan.
Das simulierte Gezeitensignal setzt sich aus verschiedenen Partialtiden zusammen. Da jedoch die kürzeste Periode dieser Konstituenten immer noch bei mindestens 4 Stunden liegt, sollte das Problem hier, bei einer Abtastrate von einer Stunde, (nach Nyquist ) nicht auftreten, oder bin ich hier völlig auf dem falschen Dampfer?
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
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.