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

Peaks in Signal automatisch erkennen

 

dani1632
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2012, 20:13     Titel: Peaks in Signal automatisch erkennen
  Antworten mit Zitat      
Hallo!

Ich habe folgendes Problem:
Im Anhang befindet sich eine figure. Dieses Signal hat ca 2400 Datenpunkte (siehe Zeitachse, also jede Sekunde wurde ein Datenpunkt aufgenommen).

Es sind 11 peaks mit plateuas zu erkennen, welche ca 100 s dauern (die ersten sind leider wegen der auflösung nur mit zoom zu erkennen).

Ich will nun die Werte dieser 11 peak-plateaus automatisch erkennen (weil diese peaks von messung zu messung zeitlich vesrchoben sein könnten). Am besten wäre es, die positionen in der Mitte der peaks automatisch zu erkennen.

Hat jemand eine Idee, wie ich das am besten anstelle? Ich habe es mit der funktion "findpeaks" versucht, allerdings funktioniert das nicht gut, weil die peaks nicht ein einzelner datenpunkt sind, sondern aus ca 100 punkten bestehen...

Wäre sehr dankbar für eine Hilfe!
Gruß dani

Signal.fig
 Beschreibung:

Download
 Dateiname:  Signal.fig
 Dateigröße:  23.41 KB
 Heruntergeladen:  543 mal
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.05.2012, 07:37     Titel:
  Antworten mit Zitat      
Es ist immer sehr einfach eine Regel für einen Spezialfall aufzustellen, aber echte Applikationen sollten das immer lösen können. Daher ist die Frage was mit dem Algorithmus passieren soll. Einmal für diese Grafik zum Erlernen? Oder eine "echte" Applikation die mal auf Hardware landet?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2012, 08:04     Titel:
  Antworten mit Zitat      
Hy, danke für die Antwort!

Fürs erste will ich nur solche Grafiken auswerten, ich denke nicht, dass diese Applikation einmal für hardware benötigt wird.

Weiters würde ich gerne die Wendepukte bei den Flanke erkennen.

Das Ganze ist doch nur möglich, wenn ich eine Funktionsgleichung habe oder?

Lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.05.2012, 08:47     Titel:
  Antworten mit Zitat      
Also Quick and Dirty würde ich diese Daten so auswerten:

1. DIFF bilden
2. Dann ggf. noch vor-glätten, wahrscheinlich reicht aber #3, dass auch eine Glättung ist.
3. Gleitender Filter, z.B. FILTER
Code:

windowSize = 5;
filter(ones(1,windowSize)/windowSize,1,data)
 

4. Dann ist überall dort wo ein Betragsminumum ist ein relatives Minimum oder Maximum im Originalsignal.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2012, 19:17     Titel:
  Antworten mit Zitat      
Hy! Danke für den Tipp, allerdings verstehe ich das nicht ganz...

Hab folgenden Code eingefügt:
Code:

difference = diff(data);
windowSize = 5;
filtered_data = filter(ones(1,windowSize)/windowSize,1,difference);
 


Das Ergebnis ist im Anhang (rote Kurve) zu sehen. Das blaue Signal ist das Originalsignal. Was genau soll ich nun aus den neuen kleinen peaks im roten signal sehen?

Lg

Signal2.fig
 Beschreibung:

Download
 Dateiname:  Signal2.fig
 Dateigröße:  43.91 KB
 Heruntergeladen:  598 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
dani1632
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 65
Anmeldedatum: 28.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2012, 07:44     Titel:
  Antworten mit Zitat      
Ok, jetz hab ich es verstanden... wenn ich den Betrag vom neuen,roten Signal plotte, dann brauch ich nur noch die Minima im roten Signal finden und ich hab die Positionen des rel Min und Max im Originalsignal...

Ich werds mal probieren! Danke!
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.