|
EDA_11 |

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 16.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.04.2013, 17:02
Titel: Messrauschen glätten
|
 |
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
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 02.04.2013, 11:56
Titel: Re: Messrauschen glätten
|
 |
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
|
|
|
EDA_11 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 16.08.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 07.04.2013, 15:36
Titel:
|
 |
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
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 08.04.2013, 09:38
Titel:
|
 |
|
 |
|
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|