|
|
Problem bei Signalverarbeitung |
|
adrianaachen |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2013, 08:57
Titel: Problem bei Signalverarbeitung
|
|
|
|
|
Hallo zusammen,
und zwar geht es darum, dass ich ein Programm geschrieben habe welches mir Messdaten aus einer .dat Datei einliest. Das Ergebnis nach Bearbeitung ist ein 1x512 Vektor. Die Werte kann ich nun plotten und kriege einen Verlauf heraus, der die Intensität über die Wellenlänge darstellt.
Nun möchte ich gerne bestimmte Peaks finden. Nämlich genau bei bestimmten Wellenlängenbanden (also ein x-Bereich von 247-249 z.b.) und dort den maximalwert. Bisher benutze ich diese Funktion
Diese gibt mir zwar momentan die richtigen Peaks aber kann auch ungenau werden wenn ich ein anderen Datensatz einlesen, weil meine Dadten aus hoch und niedrigfrequenten Werten bestehen. Dafür bräuchte ich eventuell eine Besserung!
Das Hauptproblem besteht nun darin das ich gerne feststellen möchte an welcher Stelle links und rechts vom jeweiligen Peak nur noch 5% der Peakintensität ist. Hoffe ich drücke mich klar aus. Wie kann ich das machen ? anschließend sollen dann die Bereiche wo die Intensität (y-Werte) niederiger als die 5% der jeweiligen Peaks nicht mehr geplottet werden. Also das Ergebnis sollte z.b. bei zwei Peaks, zwei "Eisberge" sein, dazwischen eine Verbindung lediglich mit y=0
Habt ihr Ideen oder ähnliches? Danke schonmal vielmals!!
P.S. Die Werte dürfen nicht gefiltert werden, um z.b. die hochfrequenten Bereiche auszublenden!
|
|
|
|
|
adrianaachen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2013, 09:46
Titel:
|
|
Habe mal den Plot hochgeladen. Geht um den Untersten.
Wie kann ich herausfinden wo sich nur noch 5% des Y-Wertes des ersten Peaks (zweiten, dritten usw), links und rechts davon, und das Ergebnis dann plotten lassen ?
Beschreibung: |
|
Download |
Dateiname: |
filters.fig |
Dateigröße: |
18.94 KB |
Heruntergeladen: |
616 mal |
|
|
|
adrianaachen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2013, 13:52
Titel:
|
|
gibt es niemanden der mir helfen kann? ich kann auch gerne mehr oder was ihr noch benötigt posten nur ich weiß halt nicht was man noch braucht ?
habe nochmal ein anderes File hochgeladen wo das Problem ebenfalls zu erkennen ist und ich nicht weiß wie ich die Peaks bestimmen soll, wenn die sich bei nem anderen Bild etwas verschieben oder es mehr/weniger, stärkere/schwächere werden.
Viele Grüße und Danke schonmal
Beschreibung: |
|
Download |
Dateiname: |
figure1.fig |
Dateigröße: |
7.7 KB |
Heruntergeladen: |
621 mal |
|
|
|
Napomleb |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 27.08.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2013, 15:35
Titel:
|
|
Hallo,
ich kann mal versuchen dir zu helfen, wobei ich fast glaube das du mit diesem Thema in einem anderen Forumsbereich schneller Hilfe gefunden hättest, da es hier nicht wirklich um Signalverarbeitung geht, sondern "nur" um Extremwertfindung etc.
Hab aber noch ein paar Fragen:
1. Dein Hauptproblem ist es das der jeweilige Peak immer auf die 5% bezogen sein soll und dafür keine pauschaule Aussage getroffen werden kann für die findepeaks funktion?
2. Was passiert wenn sich die "Hügel" überlappen und die 5% gar nicht erreicht werden?
3. Schonmal versucht die Extremstellen per Ableitung zu finden und anschließend von den LokalenMaxima die 5% zu ermitteln und dann abzuschneiden?
4. Gibt es eine untere Grenze ab welcher überhaupt Peaks als Peaks anzusehen sind?
Viele Grüße
|
|
|
adrianaachen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.09.2013, 17:20
Titel:
|
|
Hi, danke schonmal für die Hilfe.
Habe schon eine Teillösung gefunden. Bin nun in der Lage die Peaks zu finden, auch bei unterschiedlichen Messdaten
habe nun ein neues Problem:
zu beginn hatte ich einen 1x512 Vektor. Nun berechne ich ausgehend von meinen Peaks nach links und rechts jeweils neue Vektoren, z.b. mit Abstand nach links/rechts von 15 ergeben sich anzahlpeaks*1x31 vektoren. Wie kriege ich es nun hin das die anderen werte zu 0 gesetzt werden und ich wieder auf meine urpsrünglichen 1x512 komme.
So sollte es aussehen:
0 0 0 0 0 0 0 0 1 2 5 PEAK 4 3 2 0 0 0 0 1 3 4 PEAK usw bis 512....
|
|
|
Napomleb |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 27.08.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.09.2013, 14:12
Titel:
|
|
|
|
adrianaachen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2013, 09:09
Titel:
|
|
|
|
|
Vielen Dank schonmal, also hat soweit geklappt aber ist halt nicht genau wie ich es mir vorstelle. Mein Code sieht nun so aus:
Die Zwischenvektoren stellen die gesuchten flächen dar
Ja die schreibweise ist auch nicht optimal, weiß nicht wie ich das schöner machen kann!
Nun das Problem, ich hab mal das Jpeg File angehangen um zu zeigen was ich will, ich möchte gerne die roten Flächen möglichst exakt darstellen, und wie man sieht sind evenutell zwei Flächen ganz gut dargestellt aber zwei andere wieder nicht. Ich habe mir überlegt ob man das nicht über die steigung machen kann, also sobald die steigung zu einem bestimmten wert abgesunken ist dann abschneiden, nur wie kann ich das in den code einbauen anstelle der provisoreischen "20" Schritte? Oder gibt es dafür eine bessere Lösung ?
Ich brauche die Flächen möglichst genau um damit weitere Berechnungen durchzführen.
Vielen Dank schonmal für die Hilfe, hast mir bisher sehr geholfen
Beschreibung: |
|
Download |
Dateiname: |
test2.jpg |
Dateigröße: |
96.02 KB |
Heruntergeladen: |
941 mal |
|
|
|
Napomleb |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 27.08.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2013, 09:53
Titel:
|
|
Um Ehrlich zu sein versteh ich momentan dein Problem nicht
Deine zwei Plots machen doch genau des was du möchtest, oder was stört dich?
Geht es jetzt doch darum das erst ab 5% vom Peak abgeschnitten werden soll und nicht pauschal +-20 Samples?
Die Indizies der Peaks hast du also korrekt ermittelt und jetzt möchtest du links und rechts davon die Indizes herausfinden wo der Wert auf 5% abgesunken ist?
Kannst du mal bitte einfach die gegebenen Werte zur Verfügung stellen?
Sehr Hilfreich:
http://www.mathworks.de/de/help/sig.....amples/peak-analysis.html
|
|
|
adrianaachen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 29.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2013, 12:02
Titel:
|
|
vorher noch hiermit umschreiben in eine 512x512 matrix
nein mein problem ist dass die werte zum beispiel vom zweiten peak zu früh abgeschnitten werden. Nun überlege ich ob es eventuell mit steigung oder krümmung besser ist zu bestimmen. Sodass quasi erst bei Unterschritten eines Steigunswertes abgeschnitten wird... ich muss halt die flächen möglichst gut abbilden aber wie man sieht sind manche Peaks breitbandiger und manche nicht, mit den 5% klappt nicht weil manchmal der 5% Schwellenwert auch nicht erreicht wird....
|
|
|
Napomleb |
Forum-Anfänger
|
|
Beiträge: 30
|
|
|
|
Anmeldedatum: 27.08.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2013, 12:49
Titel:
|
|
Ich wollt eigentlch nur ein Vektor der Kurve als .mat File, damit ich es direkt selber ploten und ausprobieren kann
Des mit der Steigung wird auch nicht klappen wenn zwei Hügel überlappen.
Noch ein paar Denkanstöße:
Wenn du die einzelnen Zwischenvektoren nimmst und eine Kurve durchlegst, könntest du anschließend den Punkt im Orginalverlauf suchen, an dem die Abweichung größer als ein bestimmter Wert ist, zb 5%.
Oder du bestimmst gleich die Funktion der einzelnen ZVs und suchst den Wert an dem idealerweise deine Schwelle unterschritten wird, und dann hast links und recht von deinem Peak jeweils einen grenzwert.
Schau dir mal das 'cftool' an, vielleicht wird dann deutlich was ich mein.
Denn deine Hügel sehen schon so aus als wären sie, einzeln betrachtet, gleichmäßig verteilt.
Aber dein Problem mit überlappenden Hügel besteht weiterhin, was soll denn dann eigentlich passieren?
|
|
|
|
|
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 - 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.
|
|