LabVIEWForum.de
Spitzen im Array richtig erkennen? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Spitzen im Array richtig erkennen? (/Thread-Spitzen-im-Array-richtig-erkennen)



Spitzen im Array richtig erkennen? - Chasing - 08.05.2008 13:21

Hi Leute,

ich hab 2 Spitzen in einem Array wo ich nicht so recht weiß wie ich die erkannt und anschließend gefiltert bekommen kann.
Fällt euch dazu etwas ein?
Bin für jeden Hinweis dankbar wie man soetwas angehen könnte.

Bild, Spitzen rot beschriftet.
[attachment=12436]

Vi zum testen (LV 8.2.1)
[attachment=12438]

Datei mit dem Array passend zum VI
[attachment=12437]

Gruß Andi


Spitzen im Array richtig erkennen? - Chasing - 09.05.2008 08:50

Hat echt keiner nen Ansatz für mich?


Spitzen im Array richtig erkennen? - IchSelbst - 09.05.2008 09:09

Einen Versuch wäre es wert: Lass mal die Ableitung bilden. An den Spitzen hat die Ableitung entweder ein echtes Maximum (so mit steigender und fallender Flanke) oder eine Sprungstelle von +Maximum auf -Maximum.

Ist die Spitze eine "lineare Spitze", dann ist es ein "richtiges Maximum". Ist die Spitze ein Spike, dann müsste eine Sprungstelle herauskommen.

Hinweis:
Diese Ausführungen beruhen auf 30 Jahre nicht refreshten Wissens. Außer das mit der Ableitung als solcher.


Spitzen im Array richtig erkennen? - jg - 09.05.2008 09:46

Filtern? Vielleicht Median Filter?


Spitzen im Array richtig erkennen? - Lucki - 09.05.2008 12:43

Hab Dir mal einen Ansatz gemacht. Erst mal Kompliment, daß Du hier zu jenen 10% gehörst, die das Problem klar beschreiben, die nötigen Informationen mitliefern und vorher auch auch selbt schon etwas versucht haben.
Ich würde den Verlauf differenzieren, den Peak beseitigen und dann die Kurve durch Integrieren wiederherstellen.
Differenzieren und Integrieren: Leider gibt es in LV keine Funktionen, die das ordentlich machen. Wenn man mit den Mathematik-Funktionen differenziert und anschließend wieder Integriert, entsteht ein verwaschener Verlauf. Die Kurve wird geglättet. Will das hier nicht näher ausführen. Es werden hier deshalb einfache Eigenbau-Funktionen verwendet, die ihre Aufgabe schlichtweg mit Subtrahieren und Addieren unmittelbar benachbarter Werte machen.
Peaks enfernen: ich gehe davon aus, das es sich bei den Ausreißeren um einzelne positive Einzelwerte handelt. Wenn nicht, muß die Behandlung verfeinert werden. Der Punkt wird in der differnzierten Kurve einfach durch Null ersetzt. Damit die Integralsumme erhalten bleibt, wird der fehlende Betrag dem nächsten Punkt hinzugefügt. Wie gesagt, das ist nur ein Anregeung, Du muß selbst wissen, was die Praxis so alles mit sich bringt.
Wenn der Peak mehr als einen Punkt breit ist, sollte man die Prozedur so lange wiederholen, bis kein Peak mehr zu korrigieren ist.
Lv82_img [attachment=12467]


Spitzen im Array richtig erkennen? - Xaran - 09.05.2008 13:33

Peak detection ist richtig hässlich, da kann man leider machen was man will. Vorallem wenn ein Peak niedriger ist als der gewünschte Signalverlauf noch wird (im Bild der Peak 1). Wichtig ist jetzt wirklich die Breite des Peaks. Wenn die immer gering ist im Vergleich zu den "gewünschten Peaks" im Signalverlauf, dürfte es durch Differenzierung - wie schon gesagt - eigentlich funktionieren. Allerdings darf dann der gewünschte Signalverlauf diese Steigung nicht übertreffen! Evtl. hilft auch die Peak Detection aus dem Wavelet-Paket, die findet recht viel und ich glaub, dass man das VI auch recht gut anpassen kann (ich hab damit aber nur einmal kurz herumgespielt). Dafür müsste aber auch das entsprechende Paket installiert sein.


Spitzen im Array richtig erkennen? - Chasing - 09.05.2008 22:14

Erstmal vielen Dank für die Ansätze, dass klingt schon sehr interessant wobei ich gestehen muß das vieles spanische Dörfer für mich sind.
Ich hab bislang mit Mathematik und den ganzen Signalverlaufszeug nix groß zutuen gehabt.

>Wichtig ist jetzt wirklich die Breite des Peaks.

Ich hab hier noch andere Beispiele (.txt) und Gott sei dank ist es immer nur ein Wert der abhaut.
Leider macht es die Sache für mich nicht einfacher da mir die Grundkenntnisse über soetwas schlicht fehlen.
Ich denke wenn ich das VI von @Lucki mal ansehe, finde ich dann rein.
ABER, das VI öffnet nicht und LV gibt die Fehlermeldung aus das es in 8.5 gespeichert ist, bin ich zu blöd oder hat Lucki hat einen fatalen:PFehler begangen.

Gruß Andi


Spitzen im Array richtig erkennen? - Lucki - 10.05.2008 08:18

' schrieb:ABER, das VI öffnet nicht und LV gibt die Fehlermeldung aus das es in 8.5 gespeichert ist, bin ich zu blöd oder hat Lucki hat einen fatalen:PFehler begangen.
Sei nicht so streng, den "fatalen Fehler" Fehler kenn ich vom Macintosh, da war neben der Meldung immer eine gefährlich aussehende Bombe abgebildet, so daß man richtig Angst bekam. Ganz so schlimm ist es doch wohl nicht. Habe im Beitrag oben das VI jetzt ganz still und heimlich gegen die richtige Version 8.2 ausgetauscht. Viel Spaß damit.


Spitzen im Array richtig erkennen? - jg - 10.05.2008 12:52

Ich werf noch mal die Median-Filter Idee in den Ring.

Ob das für dich anwendbar ist, musst du entscheiden.

Lv82_img[attachment=12481]

MfG, Jens


Spitzen im Array richtig erkennen? - Chasing - 10.05.2008 19:27

Ihr seid spitze, genau das ist es was ich brauche, vielen Dank!

@Lucki
>Sei nicht so streng

*g* nein war nur ein SpäßleSmile
funktioniert übrigens super und wird gleich eingebaut, wird wieder ne lange Nacht, nicht das der Einbau so lang dauert aber nun kann ich noch viele andere schicke Sachen machen.

@Jens G
dein Vorschlag ist auch saugut und bringt mich auf Idee an die ich nicht im entferntesten gedacht hätte.

Also danke an alleGuru1

Gruß Andi