[Introduction]  [Signal arithmetic]  [Signals and noise]   [Smoothing]   [Differentiation]  [Peak Sharpening]  [Harmonic analysis]   [Fourier convolution]  [Fourier deconvolution]  [Fourier filter]   [Peak area measurement]  [Linear Least Squares]  [Multicomponent Spectroscopy]  [Iterative Curve Fitting]  [Hyperlinear quantitative absorption spectrophotometry] [Appendix and Case Studies]  [Peak Finding and Measurement]  [iPeak]   [iSignal]  [Peak Fitters]   [iFilter]  [iPower]  [List of downloadable software]  [Interactive tools]

The Animated Zoo

 of Matlab/Octave Signal Processing Tools and Demos


Signal averaging (aka ensemble averaging) to reduce random noise

The first derivative is the slope of the tangent at each point (script).

Detecting and measuring peaks on a curved, unstable baseline with the findpeaksb.m function.
Slideshow of applications of the interactive peak detector, iPeak

Jumping from peak to peak in iPeak (space and tab keys)

Demonstration of differentiation on the frequency spectrum of a Gaussian

Manually setting custom first-guess peak position in the interactive peak fitter, ipf.m

Interactive smoothing and differentiation with iSignal.

Interactive smoothing using iSignal in frequency spectrum mode.

Iterative curve fitting a very noisy signal using peakfit.m

Demonstration of various functions of iSignal.

Following the evolution of an exponential pulse using peakfit.m

The waveform and the power spectrum of a rectangular pulsed sine wave of variable duration.

Finding and fitting variable numbers of peaks. Peak detection followed by iterative curve fitting using findpeaksfit.m

Selecting and fitting an exponentially-broadened Gaussian using the interactive peak fitter, ipf.m

The waveform and the power spectrum of a Gaussian-modulated sine wave of variable duration.

Detecting and measuring peaks with the autofindpeaks.m function.

Applying multiple curve fits to a signal that is changing with time.

Using iFilter to isolate different harmonics of a complex waveform.

Using the interactive peak fitter to zoom in to a group of overlapping peaks, set the baseline correction mode, and perform a fit.

Effect of changing width on the frequency spectrum of a Gaussian

Hyperlinear Quantitative Absorption Spectrophotometry

Manual baseline subtraction in the interactive peak fitter, ipf.m.

Fourier deconvolution of a Gaussian-broadened rectangular pulse, demonstrating the effect of changing the deconvolution width.

The iPower demonstrator shows the frequency spectra
of various types of signals

Fourier deconvolution of a Gaussian-broadened narrow peak, with the aim of recovering the original peak width.

Effect of smoothing on peak height, noise, and signal/noise ratio

Looking for the peaks in a complex experimental signal using iPeak.m

Testing the effect of random noise on the precision
of measured peak parameters
measured by iterative curve fitting using peakfit.m

Real-time measurement of temperature as a function of time using a Raspberry Pi 3.

Real time signal smoothing

Real time rescaling plot demo

Testing the effect of random noise on the precision of measured peak parameters measured by ipf.m (pressing the N key).

  Digitization noise - can adding noise really help?

 Measuring peak height and area by different methods in a variety of signal types, using measurepeaks.m.  The individual peaks are displayed separately in the right-hand panel, with the peaks, valleys, and tangent lines shown in different colors.

Background information on these and other signal processing methods is available in:

A Pragmatic Introduction to Signal Processing

An illustrated essay available in Web, OpenOffice, Word , and PDF  format

Verbatim Unsolicited Comments from Users

" Your program iPeak is like falling out of a tree and landing in a soft couch complete with a book and a good reading light!

"Your peakfit script is simply phenomenal!"

"Fantastic Matlab code"

"...awesome functions!"

"...after days of trying and failing...I stumbled upon your site and was able to solve my problem in half an hour."

"... surely the way into heaven is to post excellent software online for others to use to do science."

"This makes me so incredibly happy!"

"...[ipf.m] is a really useful bit of code"

"...your wonderful [peak fitter] program. I use it on a regular basis...."

"peakfit is amazing!'

"I have been using iPeak ... (awesome program!!)."

"Interactive Peak Fitter [ipf.m]...worked very well. In a word, it's perfect!" 

"...iSignal 3...is a great tool!!"

"Your code is quite amazing."

"...love your iPeak program!"

"Iíve just download your very nice PeakFitter. Itís WONDERFUL!"

"You have great detailed instructions!"

"your excel sheet for spectral deconvolution ... worked beautifully."

"...how awesome your peakfitter is!"

"...you can't imagine how MUCH we'll use this."

"...thank you for taking the time to create these incredible tools."

"...your scripts findpeaks.m and ipeaks.m ... [are] super useful"

" ...the scripts that you developed which are a very useful help for a lot of people in science research."

"I got some really good results using Ipeak.

"This program [Peak Fitter] is perfect."

"I find these routines and the information on your website immensely valuable."

"I recently found your website and Iím really impressed, great work! "

"I have been using your "findpeaks" routine (matlab version) and it is working superbly."

"Your peak picking algorithm is very helpful to me."

"As far as I am concerned your code is perfect..."

"Your peakfit function is very powerful. I had test many data with success."

"I'm impressed at the convenience of your Peak Fitter and Interactive Peak Fitter programs."

"I found your Peak Fitter program to be incredibly useful for some work I am doing...."

"I found your Matlab functions for peak detection very useful for my research. Thanks for making this resource available, it's been of great help to me". 

"Best fitter available for Matlab, thanks for this wonderful work."

"...hank you for the great work you done with the peak finding methods for Matlab. It is really great."

"I've been using ipeak over the past few weeks and this is a wonderful tool."

"These are very good script(s)....The scripts are very useful to help to solve my problem...."

"[It's] exactly what I needed....The result looks really great!"

"...your interactive peak fitter Matlab tool...itís a wonderfully powerful and easy to use program.  I have been recommending it to everyone who asks for peak fitting programs".  

"Great code....Wonderfully documented!

"I am using your peakfitter in Matlab and love it....worked like a charm

"I've been having great success with ipf and peakfit..."

"...it really is a fine manual - your pdf document on curve fitting." 

"Your Interactive Peak Fitter ... is very helpful."

"Your peak finding and fitting scripts ... turned out handy in analyzing my research data."

"I found your peakfit.m program and it is great - thank you very much for sharing it!"

"...the codes for finding peaks and mathematical fits to noisy data...were very helpful for my experimental work."

"I appreciate all the work that must have gone into the PeakFit matlab coding. I've been using it ... and it is becoming extremely useful."

",,,your Matlab function findpeaks()...is quite literally EXACTLY what I was looking for and far better than I could have hoped."

"...MATLAB code for scientists! It's such a great resource to have.... I really appreciate your efforts."

"Thank you for making available your absolutely superb Peakfinder software. It is a snap to use...."

"Wonderful program."

"This program is fantastic."

"... incredibly useful
Interactive Fourier Filter...."

"... thanks for all the spectroscopy MatLab scripts that you have written and meticulously documented.  Finding them has saved me more than a few hours."

"... excellent piece of software...really useful and instructive".

"... such a wonderful tool for derivative spectroscopy, it has been much help for me!

"...Interactive Fourier Filter is a great tool ... and best of all, you can view the effect of filtering parameters on your time-series as you change them! " (reference)

" I have been using iSignal for the past day to analyze my data, and it works GREAT!.... I am able to extract lots of information from my spectra now."

" ...your peak finding utilities ... are very well done and easy to use."

"...such a great analysis program....Thank you...for designing such a wonderful program."

"...the tutorials on your website have been of tremendous help to me."

"My data is quite noisy and yet your program is able to fit it with a very low error."

"Your web site has helped me a lot to solve one problem, I will send to you the paper after publishing, so you will see how much important it was for me."

"Your [iSignal] function is very good to explore the smoothing and differentiation filters, I'll recommend it to my new colleagues".

"Thank you for your valuable website & code."

"...it is going to help my research tremendously."

"...your homepage about peak finding and measurement is amazing!"

"This is great. Thank you!"

"...thanks for the great tool! Saved me a lot of work."

"...iPeak ... is very useful."

"...your scripts are wonderful."

"...really nice tutorial and Matlab functions that are extremely useful in many fields of research."

"I used your peakfit MATLAB file in a paper. I found it VERY useful ."

"I have been impressed by your MATLAB codes."

"Wow! ... this is exactly what I needed."

"You programs work very well and are very helpful to me. "

"...very convenient and well-written..."

"...your interactive peak fitter code for Matlab...has been very useful!"

index previous next

Copyright (c) 2014, 2017 Thomas C. O'Haver
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sub-license, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.


First edition created in 2006. Last updated March, 2017. Created with SeaMonkey. This page is part of "A Pragmatic Introduction to Signal Processing", a retirement project and international community service, created and maintained by Prof. Tom O'Haver , Department of Chemistry and Biochemistry, The University of Maryland at College Park. Comments, suggestions and questions should be directed to Prof. O'Haver at toh@umd.edu. Number of unique visits to this website since May 17, 2008: