Tom O'Haver
Professor Emeritus
Department of Chemistry and Biochemistry
University of Maryland at College Park
E-mail: toh@umd.edu
Peak Finding and Measurement
Matlab routines for locating and measuring the peaks
(or valleys) in noisy time-series data sets. It detects peaks by looking for
downward zero-crossings (or upward zero-crossings for valleys) in the smoothed first derivative then determines the position, height, and width of each peak by least-squares curve-fitting of the raw data near the detected peaks.
(This is useful primarily for signals that have several data points in
each peak, not for spikes that have only one or two points). It
can find and measure 1000 peaks in a 1,000,000 point signal in 8
seconds. |
![]() |
|
|
![]() |
Interactive Peak Fitter
A Matlab peak fitting program for time-series signals, which uses a non-linear optimization algorithm to
decompose a complex overlapping-peak signal into its component parts.
The objective is to determine whether your signal can be represented as
the sum of fundamental underlying peaks shapes. Accepts signals of any
length, including those with non-integer and non-uniform x-values. Fits
groups of peaks of Gaussian, Lorentzian, Logistic, Pearson, and
exponentially-broadened Gaussian peaks, and exponential pulse and sigmoid shapes (expandable to other shapes).
There are three different versions: |
![]() |
iFilter: Interactive Fourier Filter
A Matlab implementation of a fourier filter function
for time-series signals, including interactive versions that allow you
to adjust the filter parameters continuously while observing the effect
on your signal dynamically. By adjusting the parameters, you can create lowpass, highpass,bandpass, and band-stop (notch)
filters with variable cut-off rate. The x-axis is labeled for
time-based signals, where the independent variable is time in seconds,
but the program can be used with any frequency axis (e.g. spacial
frequency, etc). Click here to view or download iFilter.m You can also download it from the Matlab File Exchange. Version 3, October 2011. |
![]() |
The TFit Method for quantitative absorption spectroscopyMatlab implementation of a computational method for quantitative analysis by multiwavelength absorption spectroscopy, called the transmission-fitting or “TFit” method, based on fitting a model of the instrumentally-broadened transmission spectrum to the observed transmission data, rather than direct calculation of absorbance as log10(Izero/I).Advantages of the TFit method compared to conventional methods are: (a) wider dynamic range; (b) greatly improved calibration linearity; (c) ability to operate under conditions that are optimized for signal-to-noise ratio ratio rather than for optical ideality. Just like the multilinear regression (classical least squares) methods
conventionally used in absorption spectroscopy, the Tfit method (a)
requires an accurate reference spectrum of each analyte, (b) utilizes
multi-wavelength data such as would be acquired on diode-array, Fourier
transform, or automated scanning spectrometers, and (c) applies both to
single-component and multi-component mixture analysis. Click here to download a self-contained demo m-file that works in recent versions of Matlab. Version 2.1, November 2011. |
![]() |
|
|
![]() |
Diffraction Grating Demos
|
![]() |
"Your Interactive Peak Fitter ... is very helpful."
"Your peak finding and fitting scripts ... turned out handy in analyzing my research data."
"I appreciate all the work that must have gone into the PeakFit matlab coding. I've been using it for a couple of weeks, now, and it is becoming extremely useful."
"Thank you for your Matlab function findpeaks(). It is quite literally EXACTLY what I was looking for and far better than I could have hoped."
"Thank you so much for designing and creating MATLAB code for scientists! It's such a great resource to have code on MATLAB Central. I really appreciate your efforts."
"Thank you for making available your absolutely superb Peakfinder software. It is a snap to use....""Wonderful program."