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

Messrauschen glätten

 

EDA_11
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 16.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.04.2013, 17:02     Titel: Messrauschen glätten
  Antworten mit Zitat      
Hallo liebe Forum-Gemeinde,

ich habe meine Messungen via Oszilloskop aufgenommen.
Jetzt möchte ich meine gewonnenen Messdaten in Matlab darstellen und weiter verarbeiten.

Ich habe versucht das "Messrauschen" über die Filter-Funktion zu glätten.

iN=8; % Länge des Filters
pg=filter(ones(1,iN)/iN, 1, p); % Filterfunktion

Das funktioniert auch ganz gut.

Ich habe nur noch folgendes Problem.

Meine gefilterte Messung beginnt nicht bei 25 (so wie es in Wirklichkeit ist), sondern bei ca. 6.

Dies liegt an meiner verwendeten Filterfunktion.
Hat jemand einen Tipp, wie ich meine Messdaten originalgetreuer filtern könnte?

Danke im Voraus.

Gruß Micha
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 02.04.2013, 11:56     Titel: Re: Messrauschen glätten
  Antworten mit Zitat      
Hallo EDA_11,

Dein Filter ist ein Moving-Average. Das glättet zwar ohne Frage, aber eine physikalisch motivierte Absicht sollte bei einem Filter immer exakt definiert werden. Ansonsten handlet es sich nicht mehr um einen wissenschaftlich Messprozess, sondern ein Zurechtbiegen der Daten, bis sie hübsch aussehen.

Ein an das physikalische Spektrum des Rauschens angepassten Tiefpassfilter wäre deutlich sicherer. Wenn man dann nocht FILTFILT verwendet, werden auch die Ränder freundlicher behandelt. Aber die Randbereiche bleiben beim Filtern immer gewisses Problem, weil das in der Natur des Filtern liegt. Wenn man nur wenige Messdaten zur Verfügung hat, lässt sich ein Rauschen einfach nicht sinnvoll unterdrücken.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
EDA_11
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 16.08.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2013, 15:36     Titel:
  Antworten mit Zitat      
Hallo Jan!

vielen Dank für deine Antwort.

Die physikalische Korrektheit meiner Messwerte ist erstmal zweitrangig, da ich die Plots nicht zur weiteren Verarbeitung, sondern nur zur visuellen Darstellung benötige.

Gruß

Micha
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.04.2013, 09:38     Titel:
  Antworten mit Zitat      
Hallo EDA_11,

Dann ist dies also weniger eine wissenschaftliche Ausarbeitung, sondern eine Art Design-Aufgabe und die Grafiken sollen lediglich "hübsch" aussehen? Gut, man kann Matlab auch einsetzen, um künstlerische Effekte zu produzieren - Photoshop ist ja auch nur ein Programm.

Aber selbst mit dieser Einschränkung kann man nicht einfach drauf los filtern: Das unverrausche Signal kann eine horizontale Grade sein; dann wäre die Fortsetzung am Rand am besten der Mittelwert der weiter inneren Punkte und jese Steigung wäre als Rausch-Effekt zu eliminieren. Das Signal könnte am Rand aber auch eine Steigung haben, und dann würde der Mittelwert zu einem Knick führen. Stattdessen wäre dann die durchschnittliche Steigung der weiter inneren Punkte ausschlaggebend.

Leider hat man nun am Rand aber eben gerade zu wenige Informationen, um eindeutig bestimmen zu können, welche Steigung das "echte" Signal hat. Deswegen gibt es keine mathematische Methode, am Rand "hübsch" zu filtern. Nur wenn man eine physikalisch motivierte Idee hat, lässt sich das ändern: Wenn man z.B. aus irgendwelchen Überlegungen heraus weiß, welche Steigung (oder Krümmung etc) das Signal am Rand hat, kann man dies als Modell einsetzen und ein entsprechendes Polynom an die Daten fitten. Dann bleibt aber der Übergang vom per Polynom geglätteten zum per FILTER geglätteten Bereich tückisch.

Das ist ein Problem, das in der natur des Filterns liegt und man kann es deshalb nicht generell, einfach oder hübsch lösen. Dies merkt man z.B. auch, wenn eine CD Kratzer hat: Eigentlich könnte das Signal dann doch auf Null gesetzt werden, so dass man nicht hört. Aber das interne Filtern sorgt dafür, dann man einen Klick-Laut hört, ähnlich wie es an den Rändern deiner Grafik auftritt.

Statt FILTER könntest Du wohl besser "conv(... 'same')" verwenden.

Gruß, Jan
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.