Hi, ich suche nach einer Möglichkeit mit Matlab die Flanken vom beigefügten Signal zu erkennen. Die Schwierigkeit liegt darin, dass einzelne Pulse einen so hohen Offset besitzen, dass mancher Low-Pegel höher ist als der High-Pegel zu einem anderen Zeitpunkt. Mittwelwert bilden und einen High-Low Vergleich machen ist hier also nicht... Hat mir jemand einen Tipp, wie man möglichst zuverlässig die Flanken finden kann? Vielleicht bietet Matlab ja eine Funktion die das Finden erleichtert. Gruß Andi
Moin Andi, dein Problem ist ähnlich der Kantendetektion in der Bildbearbeitung. Am einfachsten ist es wohl die Daten mit einem Filterkern zu Falten. Matlab: conv(daten, filterkern, 'same') Als Filterkern bietet sich für deine Problemstellung eine Kombination aus Mittelung und Differenzbildung an. Der Filterkern schaut in etwa so aus [1,...,1,0,-1,...,-1]. Die Länge ist ungerade und auf das spezielle Problem anzupassen. Je mehr Rauschen vorhanden ist desto größer sollte der Filter ausfallen, wenn er jedoch zu groß wird wird irgendwann die Signalform mit raus gemittelt... Ausprobieren hilft da ^^ Das Beispiel im Anhang wurde mit einem Filter der Länge 201 erstellt. Die entstehenden "Nadeln" sind je nach steigender/fallender Flanke positiv oder negativ die Größe gibt Aufschluss über die Stärke des Anstiegs. Hoffe das hilft weiter Gruß Matze
Alternativ das ganze Tiefpass filtern, damit sollte sich einige der Spikes eliminieren lassen und dann einen Median über 2-5 Werte (hab mir die Datei nicht angeschaut) bilden, bei den Schnittpunkten des Median mit deiner Kurve sollten dann die Flanken liegen.
Dr. Flanke schrieb: > Alternativ das ganze Tiefpass filtern, damit sollte sich einige der > Spikes eliminieren lassen und dann einen Median über 2-5 Werte Warum willst du die Spikes erst mit dem Tiefpass breit treten. Die kriegt der Median bei passender Länge raus.
Das verrauschte Rechtecksignal scheint mit einer weiteren langsamen Frequenz überlagert zu sein. Ich würde diese mit TP filtern (sollte den "Versatz" entfernen). Dann, falls notwendig, den höherfrequenten Noise. Oder so wie Matze.^^ LG
Hochpass, damit die "langsame" Überlagerung, quasi der Gleichanteil, raus ist. Dann wackelt das Signal um die Null herum. Über Null bedeutet dann 1 und unter Null bedeutet dann 0.
So vielleicht? nicht perfekt, aber schon mal etwas ;-) in der Bildverarbeitung nennt man das 'local thresholding'.
:
Bearbeitet durch User
Matthias schrieb: > ... langsamen Frequenz überlagert zu sein. Ich würde diese mit TP filtern > (sollte den "Versatz" entfernen). Meinte HP. Im Bild oberhalb würde ich die langsame Frequenzen stärker dämpfen. Schau zB das Spektrum mal an.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.