The Animated Zoo

 of signal processing tools, demos, and figures available in A Pragmatic Introduction to Signal Processing

 


Signal averaging ("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 of a Gaussian peak (upper panel) on its on the frequency spectrum(lower panel).


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

Interactive smoothing and differentiation with the keypress operated iSignal function.



Interactive smoothing using the keypress operated iSignal function in frequency spectrum mode.



Iterative curve fitting a very noisy signal using peakfit.m

Demonstration of some of the various functions of iSignal.



Following the evolution of an exponential pulse using peakfit.m


Following the internal operation of iterative curve fitting of two blended Gaussian peaks, drastically slowed down to show the internal search for the best fit.



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 keypress operated 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 repetitive curve fits to a signal that is changing with time.


Using the keypress operated iFilter function to isolate different harmonics of a complex waveform.



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

Effect of changing the width of a Gaussian peak (upper panel) on its frequency spectrum (lower panel)


Extending the classical limits of Beer's Law in Hyperlinear Quantitative Absorption Spectrophotometry

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


Interactive de-tailing (symmetrizing) of peaks using the keypress operated  iPeak version 8.

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


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


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


Looking for the peaks in a complex experimental signal using the keypress operated Matlab function 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, a tiny $35 computer the size of a deck of playing cards.

Real time signal smoothing

Real time peak detection demo


Symmetrization of an exponentially-broadened Gaussian by weighted addition of the first derivative.

  Digitization noise - can adding random noise really help? Yes!


 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.


  Spreadsheet for quadratic least squares fit to a calibration curve, as data are typed in point by point


Resolving highly overlapping spectro-chromatography peaks by the time-resolved K-matrix method


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"

"Very beautiful script!"

"...awesome functions!"

"... perfect documentation."

"...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!"

"your matlab scripts are really beautiful...."

"...a fantastic tool...extremely efficient."

"...exactly the tool I was searching for after struggling with my data for days."

"I used the peakfit.m program to analyze some Raman data and found it to be incredibly useful."

"... great software package."

"...[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!"

"... your functions are all incredibly helpful...." 

"...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."

"I am really impressed with the extensive package you have put together – I am finding it very helpful.

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

"...great documentation...outstanding functions."

" ...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! "

" Your spreadsheets got me rolling quickly!"

"...your tools...are very well made."

"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) 2021 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.


THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


First edition created in 2006. Last updated October, 2021. 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.