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

unregelmäßige Zeitachse und streikendes interp1

 

NexX
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2013, 20:46     Titel: unregelmäßige Zeitachse und streikendes interp1
  Antworten mit Zitat      
Hallo,

ich habe folgendes Problem.

Ich habe 3 zeitabhängige Kurven mit 100Hz aufgenommen und möchte gerne die Datenmenge reduzieren (z.B. nur 2 Werte pro Sekunde) und den Mittelwert der 3 Kurven berechnen/plotten.

Nun ist es aber so, dass die Aufzeichnung nicht ganz exakt funktioniert hat. Meine Zeitachse sieht so aus:

0 0.01 0.03 0.04 0.05 0.07 0.08 0.10

und für genau diese Werte liegen auch nur Y-Werte vor (keine Lücken). Dieses Muster ist aber zufällig und nicht bei allen 3 Kurven gleich, weshalb ich auch unterschiedlich viele Zeilen habe bei gleicher Zeitdauer. Deswegen muss ich sie synchronisieren, bevor ich sie für den Mittelwert addieren und teilen kann.
Dabei habe ich an die interp1 funktion gedacht und einen entsprechenden X-Vektor erstellt. Allerdings will Matlab das nicht machen, weil meine Y-Werte nicht "strictly montone" sind (Messrauschen).

Was kann ich da nun machen? Ich wäre froh, wenn ich um eine Regression herum kommen würde...
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2013, 21:36     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Allerdings will Matlab das nicht machen, weil meine Y-Werte nicht "strictly montone" sind (Messrauschen).

Das würde mich wundern. Meines Erachtens gilt diese Bedingung nur für die X-Werte.

Bitte die Fehlermeldung kopieren, nicht irgendwie interpretieren.
Das ganze am besten mit einem konkreten Beispiel.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2013, 22:07     Titel:
  Antworten mit Zitat      
Hier der Code mit dem ich das gemacht habe:

Code:
x = AKK57_1.t
y = AKK57_1.Tg
xi = 0:0.5:1800 (nur die ersten 1800 Sekunden interessieren mich) oder auch % 0:0.01:2828.06 [Gesamtzeit, entspricht AKK57_1.t(length(AKK57_1.t)), selber Fehler]
xi = xi'

yi = interp1(x,y,xi)


Fehlermeldung:
Code:

Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.

Error in interp1 (line 191)
        F = griddedInterpolant(X,V,method);


Angehängt der Datensatz und die angelegten Variablen, falls du da mal drüber schauen willst.

datensatz.zip
 Beschreibung:

Download
 Dateiname:  datensatz.zip
 Dateigröße:  4.9 MB
 Heruntergeladen:  725 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2013, 22:37     Titel:
  Antworten mit Zitat      
Hallo,

du hast in deinen Daten doppelte t's. Es sind nicht viele, daher würde ich die doppelten einfach rauswerfen (ob das okay ist musst letztlich natürlich du entscheiden):
Code:
AKK57_1(diff(AKK57_1.t)==0,:) = [];


Tipps:
- Strichpunkte ans Zeilenende, sonst wird nur das Command Window vollgespammt.
- Daten glätten, z.B. über filter

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2013, 23:47     Titel:
  Antworten mit Zitat      
Wow, super danke. Jetzt hat's geklappt.

Zwecks Filterung habe ich schon einmal geschaut und ein bisschen mit einem Tiefpassfilter herum probiert. Allerdings habe ich zu wenig Ahnung um das effektiv zu nutzen und keine Zeit mich komplett in die Grundlagen des Signal Processing einzulesen. Bisher sind die Daten mit nem Moving Average mit boxsize 50 geglättet weil das in der Messsoftware so hinterlegt war. Die Rohdaten sind auch im Datensatz (die ohne g hinten dran), aber vor allem D ist da echt recht übel verrauscht.

Kannst du mir da was empfehlen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.08.2013, 10:41     Titel:
  Antworten mit Zitat      
Hallo,

ich bin kein Signalverarbeitungexperte. Tiefpass hört sich erstmal richtig an.

Im Zweifelsfall dafür einen separaten Thread aufmachen, denn das hat ja mit ursprünglicher Frage und Titel nichts mehr zu tun.

Grüße,
Harald
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.