@Tom O'Haver, Nice detailed function, I have yet to study it but look forward to it, thanks for sharing. One thing though, in your function 'ExpBroaden' you list:
function yb = ExpBroaden(y,t)
% ExpBroaden(y,t) convolutes y by an exponential decay of time constant t
% by multiplying Fourier transforms and inverse transforming the result.
As it currently is coded, this will return the circular convolution, and not the 'usual' convolution. For a normal convolution, the result must be of length(a) + length(y) - 1, in which case the FFT's need to be zero padded for correct result. Otherwise, result is circular convolution. Was this your intent?
Here's what I have in my library:
Fitting Experimental Data, Chris Brown, Randal Nelson
Non-Linear Regression, Samuel L.Baker
Probabilistic peak detection for first-order chromatographic data,
by Lopatka, Vivó-Truyols, and Sjerps
Modeling and Simulation: a Comprehensive and Integrative View, Tuncer I. Ören
Curve Fitting, the Reliability of
Inductive Inference, and the Error - Statistical Approach, Aris Spanos
Comparison of public peak detection algorithms for MALDI mass spectrometry data analysis, Chao Yang, Zengyou He and Weichuan Yu
Analysis of First-Derivative Based QRS Detection Algorithms, Natalia M. Arzeno, Zhi-De Deng, and Chi-Sang Poon,
You can find these and others online using Google search or Google Scholar.
21 Jun 2014
Command-line peak fitter for time-series signals. Version 5.4, June, 2014