LabVIEWForum.de
Nonlinear Curve Fit - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Nonlinear Curve Fit (/Thread-Nonlinear-Curve-Fit)



Nonlinear Curve Fit - devilsdoormat - 03.11.2010 11:43

Hallo,

ich schreibe an einem VI, was mir in einem Spektrum einen Multipeakfit durchführen soll. Die Kurven sollen an Gaußprofile angepasst werden. Dafür habe ich das Nonlinear-Curve-Fit.vi benutzt und arbeite in dem Modus, in dem F(x,a) aus einem VI (gauß.vi bei mir) erstellt wird.

Als Anfangsparameter übergebe ich den Untergrund und für jeden Peak Amplitude, Lage und FWHM. So lange ich Spektren anpasse, die von meinem gauß.vi erstellt werden (auch unter Einbeziehung von Rauschen), funktioniert alles wunderbar. Sobald ich aber experimentelle Daten verwende, passt das Nonlinear-Curve-Fit.vi nur noch die Amplitude an. Lage und FWHM der Peaks bleiben bei der Optimierung unverändert. Wo der Grund dafür liegt ist mir schleierhaft.

Eine Möglichkeit wäre, dass das Spektrum nicht wirklich Gaußprofile sind, sondern eher Voigtprofile. Aber zum einen ist der Gaußanteil dieser Profile bei weitem überwiegend und zum anderen habe ich auch probiert an die zufällig erzeugten Gaußprofile mit einem identischen lorentz.vi Lorentzprofile anzupassen, was ebenso gut funktioniert hat und wo auch alle Parameter optimiert wurden.

Ich habe eine abgespeckte Variante von meinem VI angehangen. Teilweise ist das etwas umständlich programmiert, aber ich wollte nur die wichtigsten Elemente drin haben. Man kann sich zufällige Gaußkurven mit entsprechenden Startwerten generieren lassen und danach fitten. Ebenso kann man eines meiner Spektren einlesen für das Startwerte ähnlicher Güte angegeben werden.

Wie oben erklärt funktionert der Fit an die zufälligen Profile einwandfrei, der an mein Spektrum nur halb, weil unvollständig.

Kennt jemand das Phänomen und woran liegt das?

Vielen Dank für eure Hilfe!

Lv09_img2


Nonlinear Curve Fit - devilsdoormat - 04.11.2010 08:39

Hallo noch mal,

ich wollte nur mal fragen, worin die Schwierigkeit bei meiner Frage liegt. Habt ihr keine Erfahrungen mit dem nonlinear curve fit VI, habe ich mein Problem dusselig erklärt oder ist mein VI unverständlich? Ich besser das gerne noch aus. Es wäre mir halt wichtig, dass es eine Lösung für mein Problem gibt.

Liebe Grüße


Nonlinear Curve Fit - jg - 04.11.2010 10:35

Laut LVF-Regeln ist hochpushen des Threads erst nach 24 h erlaubt.

---

Was mir auffällt:
- Nur ein reales Messbeispiel ist suboptimal. Zwar gut, dass du wenigstens eines reingepackt hast, 2 oder 3 wären besser.
- Die konstruierten Zufallsbeispiele enthalten erstens mehr Messpunkte und sind zweistens in einem ganz anderem Werte-Bereich (sowohl x als auch y-Werte). Vielleicht hängt es damit zusammen. Bei deinem realen Bsp sind die y-Werte im Verhältnis zu den x-Werten extrem klein (3E-11 zu 400). Kleine und große Werte bei numerischer Mathematik ist immer so eine Sache.
Ansonsten aktuellKA

Gruß, Jens


Nonlinear Curve Fit - devilsdoormat - 04.11.2010 12:10

Zitat:Laut LVF-Regeln ist hochpushen des Threads erst nach 24 h erlaubt.
... Entschuldigung. Das sollte weniger ein hochpushen als viel mehr die Nachfrage sein, ob ich noch zur Aufhellung meiner Fragestellung beitragen kann Wink

Zitat:Die konstruierten Zufallsbeispiele enthalten erstens mehr Messpunkte

Ich habe es auch schon mit weniger probiert. Das funktioniert genauso.

Zitat:und sind zweistens in einem ganz anderem Werte-Bereich (sowohl x als auch y-Werte). Vielleicht hängt es damit zusammen. Bei deinem realen Bsp sind die y-Werte im Verhältnis zu den x-Werten extrem klein (3E-11 zu 400)

Ok. Kann sein. Ich werde mir mal Gedanken machen, wie ich das austesten kann und über Erfolg bzw. Misserfolg berichten.

Vielen Dank schon mal so weit


Nonlinear Curve Fit - devilsdoormat - 25.11.2010 20:52

Hi.

Es ist zwar jetzt schon ein wenig her, aber ich hatte nicht viel Zeit, um mich näher mit dem Problem zu beschäftigen. Es hat sich gezeigt, dass es genau an den grob unterschiedlichen Wertebereichen liegt. Ich skalieren jetzt einfach auf gleiche Wertebereiche, fitte und skaliere dann zurück. Das geht wunderbar.


Vielen Dank dafür