Curve fitting a multidata set with each data to be fitted with 6 Lorentzian differents peaks
AmilGaoul
Dear everybody,
I have a problem to do curve fitting of a multidata set (700 spectra from Raman spectroscopy mapping). Each data of the multidata set have 6 differents peaks to be fitted with 6 differents Lorentzian functions. Is someone can help me, i am desperated !!!! Thanks...
Is IgorPro can do such things ? I have been trying and trying...but I failed :
1- I have used the 'Golbal Fit' Packages after i defined a Lorentzian function with 7 parameters : y=y0 + A1/(4*(x-x1)^2 + w1^2)+ A2/(4*(x-x2)^2 + w2^2)+ A3/(4*(x-x3)^2 + w3^2)+ A4/(4*(x-x4)^2 + w4^2)+ A5/(4*(x-x5)^2 + w5^2)+ A6/(4*(x-x6)^2 + w6^2). To have a better convergence, i defined some constraints. However, after trying the Fit doesn't work at all (:-(( I precised that i correctly do the basic fitting such as presented 'Global Fit Demo' and the manual. However for the multidata set i can't...
2- I have been trying and trying the 'Multi-peak fit package'. For a single data i can do the fitting easily (with 6 Lorentzians). However, for a multidata set (729 spectra) that's was not possible. For a multidata set, i defined two matrix for the X abscisse (exemple : wave0[][0] to wave0[][728]) and for the Y abscisse ((exemple : wave2[][0] to wave2[][728])). Everytime I got the message error :
"Number of dimensions must match data wave
Error in Execute
FuncFit/M=2/H=wave2_HoldStr fLorentzianFit coef :::wave2[0,702] /X= :::wave0 /D=:::fit_wave2" , D being in bold....
I believed that this is due to the matrix wave[][]....
Is someone can help me to solve this problem ?? Thanks very very much
With Best Regards,
Amil
This is restricted to using the same functions in every fit.
September 9, 2013 at 01:13 pm - Permalink
DisplayHelpTopic "Multi-peak Fitting for Igor Programmers"
The first subsection describes the function MPF2_DoMPFit() which is the fitting engine for the Multipeak Fit Package. It does one multipeak fit. The next subsection describes MPF2_AutoMPFit(). That's my attempt at a driver that accepts a list of data sets and performs a fit on each one. It has a number of options for the initial guesses including the one Proland describes.
Another possibility- if you always have 6 peaks, write a user-defined fit function that fits a sum of six Lorentzian peaks. Make sure it works on a single data set, then use Analysis->Packages->Batch Curve Fitting.
Again, as Proland says, Global Fit does something quite different: it fits a collection of data set *simultaneously*. That is, one fit using many data sets.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
September 9, 2013 at 03:20 pm - Permalink
Thanks so so much for your reply Proland and johnweeks. That's will be helpful...I will try this way and will back to you if i got any problems.
Thanks again.
Take Care
September 10, 2013 at 12:27 pm - Permalink
How to get the 6 sub-peaks out of the overall peak?
April 28, 2014 at 08:39 am - Permalink
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
April 28, 2014 at 09:25 am - Permalink