A Pragmatic* Introduction to Signal Processing

 with applications in scientific measurement

An illustrated essay with free software and spreadsheet templates to download

Last updated  July 23, 2022.

A retirement project created and maintained by
Tom O'Haver , Professor Emeritus, Department of Chemistry and Biochemistry

Have a question or suggestion? E-mail me: toh@umd.edu. Join our group on Facebook

No cost, no
ads, no sign-in/registration, no eye candy, no cookies, no hype, no Java, no Flash, no kidding. Completely free since 1993.

This essay is also available as a 518-page printable document written in Microsoft Word and saved in
Word     and  PDF formats.
Readability index

The Kindle and paperback versions, ISBN 9798794182446 by Kindle Direct Publishing, are available from Amazon.

This entire web site can be downloaded in archived HTML format complete with all linked software (~400 MBytes). 

  Check out the amazing feedback from users 

Introduction   Fourier deconvolution 
Signal arithmetic  Fourier filter 
Signals and noise  Wavelets and wavelet denoising
Smoothing  Integration and peak
area measurement 
Differentiation  Curve fitting A:
Linear Least Squares
Peak sharpening   Curve fitting B:
Multicomponent Spectroscopy 
Harmonic analysis 
Curve fitting C: Non-linear
Iterative Curve Fitting
Fourier convolution  A Combination of Methods

* Pragmatic: Relating to matters of fact or practical affairs, often to the exclusion of intellectual or artistic matters; practical as opposed to idealistic.

Appendix and Case Studies

The Animated Zoo of Tools and Demos 

 Catalog of downloadable software and templates

Interactive Signal Processing Tools for Matlab

Spreadsheets for Measurement Calibration

Peak Finding and
Measurement 
 Interactive Fourier Filter
Interactive Smoothing, Derivative,
and Signal Analysis  
  Peak Fitter 
(Matlab File Exchange
Pick of the Week)
 Interactive Power Spectrum Demo 
  Interactive Peak Fitter   

Python: a free and fast alternative

Areas of application where these programs are being applied  (PDF file)

Citations in published papers  (PDF file) 

Afterword


Software used in this essay


Matlab, a high-performance commercial numerical computing environment and programming language that is widely used in research and education. For Windows, Macintosh, and Linux.  Lower-cost Home and Student versions available.



  

Octave, a freely downloadable alternative to Matlab, mostly compatible. For Windows, Macintosh, and Linux.


 

Python, a fast and free general purpose language for Windows, Unix, and Macintosh.


Click to enlarge    Click to
          enlarge

Microsoft Excel 2013                    OpenOffice Calc 4.1.1


Acknowledgements
Thanks to M. Farooq Wahab for his many contributions and for many fruitful discussions, to Baldassarre Cesarano for his close reading and typographical correction of this text, to Dr. Raphael Attie of NASA/Goddard Space Flight Center for corrections, to Diederick of The University of Hong Kong for code contributions, to Yuri Kalambet of Ampersand Ltd. for mathematical insights, and to the many email correspondents who have made suggestions, asked questions, caught errors, and have shown me new types of data and new applications that have broadened the scope of this work.


Unsolicited Comments from Users (verbatim excerpts from emails):

"... It's by far the best document I've found about signal processing online."

" It is the best source in the entire internet ... on peak related techniques and analysis. "

"...the most understandable documentation I've ever encountered!"

"It is as good as, if not better than, any similar books available in the market".

"...a clear, organized, accessible, and intuitive resource...."

"I ... have never seen before (I have years of experience in this field) such a complete approach towards tackling almost all the analysis problems from scratch...."

"...the most extensive set of tools I've ever found for curve fitting and signal processing!"

"I'm amazed by the thoroughness of not just the explanations, but also the codes and documentation within."

"It's simply phenomenal! "

"I appreciate the fact that your approach is 'applied' and does not resort to complex mathematics where not needed"

"Your website and scripts are amazing; I am confident there is no [more] useful content in data analysis for physical chemistry better than yours...."

"I will certainly use your resources for the rest of my career."

"...your website resource was able to teach me everything I needed to know in a really practical and easy to understand way within a few days and apply it to my ... work (which is incredible!!). "

"I found your tutorials and explanations among the easiest to understand in this complex field"

"...a goldmine."

"...wonderful and user-friendly...."

"...your work was a godsend."

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

"I am a great admirer of your excellent work. Your unparalleled contribution to signal processing helped me to understand the nuances of signal processing."

"Without your help ...we'd still be slogging through the data...."

"...many thanks for sharing your brilliant book on the web. I have found it of tremendous value...."

"it inspires me to make my own contribution to science and education."

"I wanted to extend my gratitude for the quality of the guidance and education you provide. I am a professional analytical chemist, and your site has kept me well versed and knowledgeable...."

"I ... am very impressed with the clarity of the presentation."

"I like your writing style because it's clear and concise, and your prose flows so smoothly."

"The signal processing topics you cover are so wonderfully practical...truly impressive."

"... truly one of best practical description I have ever seen."

"...thank you for this valuable treasure."

"Thank you very much for making such an extensive collection of most valuable material available to the public !!! Your service to the public (that part that recognizes its value) is highly appreciated."

"...brilliant work...."

" ...thank you for your amazing online book...."

"I liked the way everything is setup and explained."

"...I think it's the best explanation I've ever seen."

"...thank you for the immense role your book has played in my perusal of research...."

"...really incredible work!"

"... a really excellent website...."

"It is a great overview"

"...a very valuable service to our profession!"

"...an extraordinary labor of love and a gift to many, many people!"

"...I'm astonished by your work."

"I have learned a LOT"

"This is...a teaching paradise...really priceless."

"What you do makes the world better!"

"...way, way more than I could have hoped for..."

"...fabulous work ... clear explanations....I will definitely recommend your website!"

"Your website has been immensely helpful in allowing us to analyze [our] results."

"I found your explanation....very simple and clear. "

"...high quality information, explanations and codes!"

"...excellent documentation and coding...."

"I was really surprised by the efficiency of your explanations ..."highly realistic and pragmatic."

"The sequence of the topics and the explanations are very clear."

"I found your curve fitting website and it is awesome...."

"...such an enormous amount of knowledge and applied code! It is an enormous help for analysing my data."

"...an excellent source of information for a subject that I have only encountered scattered books."

"Love your web pages.... MANY thanks for all the effort, hard work and time -- not to mention the clarity."

"This site is tremendous...."

"...[an] indispensable tool...."

"...your fantastic article...has helped me a lot"

"...it is an absolutely fantastic teaching resource."

"...your website...represents a wonderful job...."

"...thank you profusely .... your website has been extremely helpful."

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

"I have no words to describe how helpful this is to me ... explaining what they do and how they can be used; on top the examples make it even better."

"...great website!"

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

"I am grateful and overwhelmed by your kindness in sharing your hard work with us"

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

"This is a great website..."

"...really an excellent source of information..."

"...you saved my time a lot."

"Your effort to produce and maintain this site is GREATLY appreciated."

"Your online resource for "signal processing" is fantastic!"

"I stumbled upon the wonderful world you've created in the area of Signal Processing..."

" I found your essay to be extremely helpful."

"...such useful tools and educational materials!"

"...your webpage about signal processing ... was very helpful to me."

"...great material on the subject."

"...very much helping and informative."

"Wonderful site. I have already added it to my favorites."

"Your web pages are a fantastic resource."

"...your signal processing website, book, and Matlab codes ... embodied the solution I was searching for."

" I cannot wait to start class and utilize the marvelous tool that you have provided for us."

"Without your website, I wouldn't know what to do."

" ... a splendid program."

"I find your work on Signal Processing extremely helpful...."

"...easy to use and understand..."

"...thank you for this amazing work."

"...saved me many hours of work...."

"...your ... book and software ... [are] ... helpful and thorough."

"I am so thankful for your website...It has helped me significantly...."

"Thank you so much for this wonderful teaching tool! "

"it really helped me."

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

"I find your Introduction an excellent starting point."

"Thanks for your amazing contribution."

"Thank you for sharing your excellent work...."

"...wonderful tutorial on peak fitting."

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

"Thank you for your time and the wonderful material (software and text) you have put up on your website."

"Your lessons on signal processing are really useful and intriguing...."

"I have no words to describe how excited I am and how thankful I am about your work."

"I found your ... website extremely helpful."

"I found your signal processing pages ... very helpful!"

"I loved your article on smoothing."

"...really clear and concise."

" ... very useful for teaching in an Instrumentation course for M.Sc postgraduates in analytical chemistry.

"[Y]our web site has such excellent content...."

"I tried the demo version of SPECTRUM and I think is a very useful tool for the introduction of signal processing to analytical chemistry students."

"Your work is very helpful to my research."

"Your contributions about sig. proc. are very impressive."

"...your site...has some very valuable information relevant to the projects I'm currently working on."

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

"Very generous of you to make so much useful material freely available."

"I found your website very informative."

"Thank you, Tom, for being a great citizen of MATLAB Central and the File Exchange! You are what makes this community thrive." (http://blogs.mathworks.com/pick/2016/09/09/most-activeinteractive-file-exchange-entry/)

"Thanks again for your generous contributions to the scientific and engineering community....your work is greatly appreciated and will continue to benefit us for years to come."  MathWorks, Inc. 


Copyright (c) 2022, Thomas C. O'Haver (toh@umd.edu)
 
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, sublicense, 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 1995. Last updated July, 2022. Created with SeaMonkey. This site is a retirement project and international community service, created and maintained by Prof. Tom O'Haver, Professor Emeritus, Department of Chemistry and Biochemistry, The University of Maryland at College Park, currently residing in Naples, FL. Comments, suggestions and questions should be directed to Prof. O'Haver at toh@umd.edu, currently residing in Naples, FL, and in Silver Spring, MD.