LabVIEWForum.de
Exponentialanpassung nur in definierten Bereich - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Exponentialanpassung nur in definierten Bereich (/Thread-Exponentialanpassung-nur-in-definierten-Bereich)



Exponentialanpassung nur in definierten Bereich - Serial - 21.05.2014 07:29

Hallo liebe LV Community,

ich habe ein Messdatenarray, welches ich in einem Plot im halblogarithmischen Maßstab anzeige. Ich möchte eine exponentielle Anpassung in einem von mir gewählten Bereich der X-Achse durchführen, sodass eine Gerade an die Messdaten angenähert wird.
Mich interessiert in diesem Beispiel nur der Bereich: 0,5>x>0

Wenn ich jetzt eine Exp. Anpassung mit dem VI mache (was in diesem Bild NICHT geschehen ist), dann wird der ganze Bereich des Datenarrays benutzt. Das Ergebnis ist dann für mich nicht verwendbar.


Ich hoffe, dass das Bild meine Erklärung deutlicher erscheinen lässt.
Die konkrete Frage: Wie stelle ich dies ein ? Habe keine Lust immer das Messdatenarray zu "zerpflücken" und dem Anpassungs VI nur einem Bereich zur Verfügung zu stellen. Soll schon konfortabler sein.

MfG
Serial


RE: Exponentialanpassung nur in definierten Bereich - jg - 21.05.2014 07:50

Autoskalierung der x-Achse ausschalten und Minimum=0 und Maximum=0,5 setzen.
Geht auch programmatisch per PropertyNodes.

Gruß, Jens


RE: Exponentialanpassung nur in definierten Bereich - Serial - 21.05.2014 08:29

Vielen Dank.
Leider funktioniert deine Idee nicht. Ich möchte, dass die angepasste Kurve, welche aus dem VI kommt halt nur von 0 bis 0,5 angepasst ist.
Wenn ich die Skalierung im Plot verändere, dann ist die Anpassung ja schon geschehen.

MfG
Serial

PS: Also muss ich wohl den Weg gehen: Im X-Array nach einem möglichst nahen Wert von 0,5 suchen. Dann bekomme ich den Index i. Dann das X und Y Array von Index_0 bis Index_i speichern und den hinteren Teil des Arrays nicht berücksichtigen. Diese Arrays in das Anpassung VI geben.


PS2: Lösung:

Habe im X Array nach dem Schwellenwert von 0,5 gesucht. Danach mit dem index vom Schwellenwert per "Teilarray" die X und Y Arrays von Index 0 bis i extrahiert. Fügt man nun diese dem Exp.Fit zu, so funktioniert es. Siehe Bild.


RE: Exponentialanpassung nur in definierten Bereich - jg - 21.05.2014 08:44

(21.05.2014 08:29 )Serial schrieb:  PS: Also muss ich wohl den Weg gehen: Im X-Array nach einem möglichst nahen Wert von 0,5 suchen. Dann bekomme ich den Index i. Dann das X und Y Array von Index_0 bis Index_i speichern und den hinteren Teil des Arrays nicht berücksichtigen. Diese Arrays in das Anpassung VI geben.
So sehe ich das auch...


RE: Exponentialanpassung nur in definierten Bereich - Serial - 21.05.2014 08:52

Im Post über Dir habe ich die Lösung erklärt, falls dies Jemand irgendwann mal benötigt^^

Danke Dir


RE: Exponentialanpassung nur in definierten Bereich - Lucki - 21.05.2014 13:14

(21.05.2014 08:29 )Serial schrieb:  Lösung:
Habe im X Array nach dem Schwellenwert von 0,5 gesucht. Danach mit dem index vom Schwellenwert per "Teilarray" die X und Y Arrays von Index 0 bis i extrahiert. Fügt man nun diese dem Exp.Fit zu, so funktioniert es. Siehe Bild.

Das ist vielleicht noch etwas einfacher: Es gibt bei der Funktion "Exonential Fit" den Eingangsarray "Gewichtung". Diesen Array erstellen (Größe wie X-Array, Elementwerte alle 0). Dann den interessierenden Elementen den Wert 1 geben.


RE: Exponentialanpassung nur in definierten Bereich - Serial - 21.05.2014 13:31

Werde ich bei Gelegenheit ausprobieren. Hört sich gut an. Vielen Dank !