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!