Francis...
I looked at the Voigt-profile problem. This seems a rather nasty one, a bit into the ill-posed regime, because deconvolution is itself a bit ill-posed. My thoughts would be to break it up. I.e., suppose that you knew the Lorentzian parameter? Then you could compute the corresponding Gaussian that best convolves with the "known" Lorentzian to yield your spectral data. This would work as a nested pair (not unlike dblquad) of calls to fminbnd, perhaps more robust than a call to fminsearch.
Another idea, since you appear to be solving this problem often, is to precompute a large variety of Voigt profiles, for various combinations of their parameters, at fixed set of wavelengths. Store all into one large array. Now find that profile from this set which when interpolated, best fits the spectral data. At least this will give you a good set of parameters to start a more intensive search with, as well as a set of bounds to use.
Another idea is to solve for a simple relationship between the Gaussian and Lorentzian parameters. It would seem that the width at half-height of your spectra will be easily measured from an interpolation. But the width at half height of a Voigt profile will vary, as the Lorentzian parameter increases, the Gaussian parameter must decrease commensurately, probably in some nonlinear way, but easily formulated as a spline. So generate the curves relating these two parameters at fixed values of the width at half height. Having done this, it becomes a 1-dimensional search along that curve for the combination of Lorentzian and Gaussian parameters that yield the best fit.
There would seem to be a few variations on these themes that might help to reduce the complexity of your search, or at least make it less ill-posed. You can send me e-mail if you wish to take this discussion off-line. Actual data can often help too.
John

Do you have any thoughts on efficiently fitting Voigt profiles (http://en.wikipedia.org/wiki/Voigt_profile)?
They're convolutions of Lorentzian (Cauchyâ€“Lorentz) and Gaussian functions, and are the analytical model most closely related to spectroscopic vibrational bands. Unfortunately, they are difficult to fit, and most of the time weighted sums of Gaussian and Lorentzian peaks are used to fit Voigt profiles (this is called a pseudo-Voigt profile). Unfortunately, this doesn't model the shape of the profile wings accurately. To add to the confusion, the wavelength axis of the fitted data is typically not evenly spaced in spectroscopy.
My attempts have been very computationally inefficient: I have used numerical convolutions on evenly-spaced wavelength axes and then interpolated the computed profiles onto the desired wavelength axis. I wrap the Voigt profile into a fminseach to solve for the Voigt profile parameters- but it takes forever and doesn't return great fits.
I'll come back and rate this when I have had a chance to read the whole thing!

Comment only