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

Interpolieren zwischen zwei Werten

 

diri3l
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 13.06.2015, 14:28     Titel: Interpolieren zwischen zwei Werten
  Antworten mit Zitat      
Hallo,

ich habe in einem Vektor eine Zeitreihe einer Sinusschwingung, zudem den dazugehörigen Zeitvektor. Ich muss das Signal genau ab der Nullstelle auswerten. Leider ist die Samplingrate etwas ungünstig, sodass nur die Werte


301,4620 -0,00388300
301,4750 0,00395700

(links Zeit rechts Amplitude) vorhanden sind.

Ich muss genau den Zeitschritt finden, bei dem die Amplitude 0 ist. Ich bin mir nicht sicher ob das mit interp1 funktioniert. Bei mir hat es nicht geklappt.


Weiterhin möchte ich dann die Werte auf einen anderen Zeitvektor mit einer anderen Samplingrate umrechnen.

Vielen Dank schon mal.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.06.2015, 15:38     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich bin mir nicht sicher ob das mit interp1 funktioniert. Bei mir hat es nicht geklappt.

Ich bin mir ziemlich sicher, dass es geht ;)Was hast du denn versucht?

Zitat:
Weiterhin möchte ich dann die Werte auf einen anderen Zeitvektor mit einer anderen Samplingrate umrechnen.

Auch das geht mit interp1.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 14.06.2015, 17:42     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich hab auf einen Tip hin, die Nullstelle per regula falsi gesucht. Damit hat es bestens funktioniert. Ich habe aber noch ein Problem.

Vorhanden ist eine Zeitreihe über 360s. Im Signal ist eine Sinusschwingung vorhanden und ich möchte genau eine Periode (10s) fenstern und analysieren. Das soll aber erst ab Sekunde 300 passieren, da das System vorher noch nicht eingeschwungen ist. Das heißt, es soll die erste Nullstelle nach Sekunde 300 gefunden werden.

Da wie gesagt, durch die Samplingrate keine Nullstelle im Zeitvektor vorhanden ist, habe ich sie über die Regula Falsi interpoliert.

Über einige Umwege habe ich nun einen Zeitvektor der bei 301,468438647959 beginnt (da befindet sich die 0-Stelle der Sinuskurve) und bei 311,468438647959 endet (da befindet sich die zweite 0-Stelle).

Die Schrittweite zwischen vorletztem und letztem Wert sowie zwischen ersten und zweiten Wert ist anders als zwischen den restlichen Werten, da hier ja die Nullstelle über Interpolation gefunden wurde.

Zudem habe ich natürlich mehrere Vektoren mit den Signalen die ich untersuchen möchte.
Jetzt habe ich noch einen Vektor mit den Zeitschritten auf die ich die Signale umrechnen will.

Eigentliche Frage:

Per interp1 funktioniert das nun nicht, da die Schrittweite nicht konstant ist. Ein Bekannter hat mir noch Resample empfohlen. Das klappt aber ebenfalls nicht. Ich glaube hier ist aber das Problem, dass mein ursprünglicher Zeitvektor bei 301 sekunden beginnt und mein neuer Zeitvektor bei 0 Sekunden beginnt. Wie kann ich Matlab mittteilen, dass der erste Wert im ursprünglichen Zeitvektor 0 entsprechen soll?

Vielen Dank,
Daniel
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.06.2015, 17:47     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Wie kann ich Matlab mittteilen, dass der erste Wert im ursprünglichen Zeitvektor 0 entsprechen soll?

Diesen Wert abziehen?

Ansonsten: schreibe doch bitte, was du genau versucht hast (Code!), und welche Probleme dabei aufgetreten sind.
Wenn etwas "nicht funktioniert", ist oft nur eine Kleinigkeit das Problem. Damit man dir damit aber weiterhelfen kann, müssen wir schon genau wissen, was du eigentlich machst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
diri3l
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 25.01.14
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 14.06.2015, 18:38     Titel:
  Antworten mit Zitat      
Hallo Harald,

Harald hat Folgendes geschrieben:
Diesen Wert abziehen?


da hatte ich wohl die Tomaten vor den Augen Rolling Eyes

Ein Simples

Code:
TimeW=TimeW-TimeW(1,1);


hat mir geholfen (TimeW ist mein Zeitvektor). Somit fängt mein Zeitvektor jetzt bei 0 an und der Resample befehl funktioniert.

Vielen Dank für den Tip. Die Ausleseroutine steht endlich und ich kann Ansys damit füttern Very Happy

Sorry für die "Glaskugelmentalität". Ich werde mich bemühen das nächste Mal konkrete code snippets zu posten. Ich wusste nur selber teilweise nicht, wie ich überhaupt an das Problem ran gehen kann und ob mein Weg überhaupt der richtige ist.

Einen schönen Sonntag Abend,
Daniel
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 - 2025 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.