I have a series of single exponential decays (each as an individual wave) and I need to find a single model that best fits all of them.
Does anyone have any ideas how I could do this in Igor?
When we want to do this, we make an average of all the waves and then fit to that. You can generate an average with the Average Waves package. You can generate an error wave which you can use for weighting in your fit to the average.
Thanks.
I guess that will give me an estimate but it would be more accurate to fit all of the curves.
If you expect all the exponentials to be the same, it doesn't actually make any difference whether you average, or just fit all the data points together. If you have weighting, and the weights are different, then you need to fit all the data. If you really want to fit all the data (and I think it is better to do so) you have two choices:
1) Concatenate your waves to make one big wave (see the Concatenate operation). If you have waveforms (that is, the X values are encoded in the Y wave's X scaling) you will need to create a standalone X wave like this:
Duplicate ywave1, xwave1
xwave1 = x
2) You could use the Global Fit package. To learn more, see the example experiment: File->Example Experiments->Curve Fitting->Global Fit Demo. It may be a bit cumbersome if you don't need the special features of Global Fit, but it does provide a GUI way to select your multiple data waves. The big deal with Global Fit is that you can link some coefficients and not others, so if your exponentials all have the same decay constant, but different amplitudes, you would link the decay constants and leave separate amplitudes for each data set.
January 6, 2016 at 05:39 am - Permalink
I guess that will give me an estimate but it would be more accurate to fit all of the curves.
January 6, 2016 at 05:46 am - Permalink
If you expect all the exponentials to be the same, it doesn't actually make any difference whether you average, or just fit all the data points together. If you have weighting, and the weights are different, then you need to fit all the data. If you really want to fit all the data (and I think it is better to do so) you have two choices:
1) Concatenate your waves to make one big wave (see the Concatenate operation). If you have waveforms (that is, the X values are encoded in the Y wave's X scaling) you will need to create a standalone X wave like this:
xwave1 = x
2) You could use the Global Fit package. To learn more, see the example experiment: File->Example Experiments->Curve Fitting->Global Fit Demo. It may be a bit cumbersome if you don't need the special features of Global Fit, but it does provide a GUI way to select your multiple data waves. The big deal with Global Fit is that you can link some coefficients and not others, so if your exponentials all have the same decay constant, but different amplitudes, you would link the decay constants and leave separate amplitudes for each data set.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
January 6, 2016 at 10:47 am - Permalink