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

Messwerte filtern und neu plotten

 

Marc S.
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2008, 12:29     Titel: Messwerte filtern und neu plotten
  Antworten mit Zitat      
Hallo zusammen,

ich habe Messwerte als Asciidatei und habe diese geplottet

Code:
plot (BEISPIEL, 'DisplayName', 'BEISPIEL', 'YDataSource', 'BEISPIEL'); figure(gcf)
 


das sieht dann so aus


Wie man sehen kann stecken da noch ne menge Artefakte drin. Jetzt meine Frage.
Kann man nen Filter machen der die Artefakte rausfildern kann? Und das dann alles in nem neuen Fenster anzeigen? Also das ich Orginal und das Gefildert in zwei Fenster habe?
Hat jemand Tips für mich oder ne Idee?

Gruß
Marc
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 11.01.2008, 12:48     Titel:
  Antworten mit Zitat      
Hi,

hast Du die Signal Processing Toolbox?
Dann guck Dir mal 'sgolay' an.
Sonst such mal nach Savitzky-Golay, im File Exchange gibt es
glaub ich auch ein Programm dazu.
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Marc S.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.01.2008, 15:18     Titel:
  Antworten mit Zitat      
ah ok vielen dank werd ich mich mal durcharbeiten
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 11.01.2008, 19:37     Titel:
  Antworten mit Zitat      
Wenn ich den Plot richtig interpretiere, dann sind die Ausreisser doch alle Null?

also entweder für gleich Null

Code:

data(find(data==0)) = []
 


oder für kleiner 1
Code:

data(find(data < 1)) = []
 


kannst Du sie einfach raus löschen, ohne dass Du irgendeine Toolbox oder unbekannte Filterfunktion verwenden musst.
evtl ist es besser, die Werte NaN zu setzten, falls Du auch noch einen anderen Vektor mit Werten für die X-Achse hast. Dann verliert man die Zeit/Taktungsinformation nicht.
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
Marc S.
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 15.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2008, 15:34     Titel:
  Antworten mit Zitat      
Hallo Michaela,

danke für die Idee hatte es auch mal ausprobiert. Es ergeben sich da halt dann ein zwei kleine Probleme.

1. Rauslöschen von Werten ist schon mal ganz schlecht, dachte halt eher an so was wie einen Medianfilter der mir einen Näherungswert ausgibt oder einen Wahrscheinlichen Wert.

2. Was am meisten ins Gewicht fällt, bei ca 140000 Werten brauch selbst mein Rechner viel viel Zeit.

Ich werde wohl mir einen Filter nach Savitzky-Golay bauen müssen da der am ehesten an das ran kommt was ich brauche aber trotzdem danke für den Anreiz ich denke die Idee lässt sich früher oder später noch für was anderes verwenden.

Lieben Gruß
Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 12.01.2008, 23:22     Titel:
  Antworten mit Zitat      
Hmm Rechenzeit ist natürlich ein Argument. Allerdings kann ich mir nicht vorstellen, dass ein Filter schneller ist als ein Find-Befehl? Für find muss ja jeder Eintrag nur einmal ausgelesen werden und dann verglichen und evtl ersetzt werden. Ein Filter verlangt doch durchaus mehr Rechenoperationen? Oder ist der in der Toolbox vorhandene Filter einfach schneller, da er kompiliert vorliegt?
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
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 - 2024 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.