Project Releases

Line Broadening IGOR.6.20.x-1.1

Release File: LineBroadening_0.ipf (32.46 KB)
Version: IGOR.6.20.x-1.1
Version Date:
Version Major: 1
Version Patch Level: 1
OS Compatibility: Mac-Intel Windows
Release Notes: Updates for Version 1.1

BUG FIX:
Corrected formula for Gaussian to produce correct half-widths (this had been off by sqrt(2), and also affected the width of the Voigt function because of the method used to generate the Voigt)

FASTER FILL ALGORITHM FOR LINE BROADENING
Added option to use the built in Igor Histogram operation (with the weighted histogram option) in the "FillDestWave" function.
This significantly speeds up the fill process which is usually the rate limiting step if there are many lines present in the X,Y data.
It is slightly less accurate on a peak by peak basis:
The built in weighted histogram only allows each line to accumulate into a single bin, while the original algorithm splits the intensity between two
adjacent bins by interpolation. The old algorithm handles X value digitization error a little bit better (modeling a peak centered halfway between output points), but at the expense of having to explicitly loop through each X,Y data pair in function code which is much slower than using the built in operation.

For data with discrete, recognizeable peaks and perhaps some desire to fit linewidths and/or positional offsets, it is probably better to stick to the
original, more accurate algorithm. For faster simulations, though, the built in weighted histrogram crushes the more accurate algorithm, and since this line broadening method was originally programmed specifically to speed up a the line broadening process, I'm tempted to make the histogram method the new default.
For now, I'm leaving the default as the old algorithm for backwards compatibility, but an optional argument can be called to run the faster algorithm.

Both algorithms suffer digitization error that gets worse when you increase the point spacing relative to the linewidth, with the relative errors of the methods diverging.
For data with large sets of (X,Y) pairs you may find that at constant calculation speed, the increased point density allowed with the faster fill algorithm ends up just as accurate as the the slower but more accurate algorithm with larger point spacing. Some experimentation is required.

NEW FUNCTIONS: GenFuncConvolve(...), GenFuncBroaden(...), GenFuncGuessExtent(...)

Similar in usage to the pre-defined *Convolve and *Broaden functions, but with the ability to pass a function reference describing the peak shape to use
(use the same form as Igor peak fitting functions: function mypeakfunc(coefs, X). For more details, see comments on the GenFuncConvolve functions.

Line Broadening IGOR.6.20.x-1.0

Release File: LineBroadening.ipf (18.24 KB)
Version: IGOR.6.20.x-1.0
Version Date:
Version Major: 1
Version Patch Level: 0
OS Compatibility: Mac-Intel Windows
Release Notes: Initial Project release. Contains procedure file "LineBroadening.ipf". Fully functional, but currently limited to Lorentzian, Gaussian and Voigt peak shapes. Future goal is to incorporate more general versions of Broaden and Convolve that accept a FuncRef parameter in a standard peakfunction(coefs,x) form.

Forum

Support

Gallery

Igor Pro 9

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More