Wavelet Tutorial


Welcome to The Wavelet Tutorial!

It was end of October 1994. I had recently studied fundamentals of wavelet transform as my graduation project at my undergraduate institution, and I was planning to use this technique in analyzing signals of biological origin for my Master's degree thesis. My major professor suggested that I should work on EEG signals, since they are less studied compared to many other biological signals. This, of course, would require a database of EEG signals.

I was in desperate need of finding a database of EEG signals when I decided to use this project for my Master's degree thesis, Multiresolution Wavelet Analysis of Event Related Potentials for the Detection of Alzheimer's Disease. The hospitals were refusing to cooperate in sharing their files, stating that all patient files were confidential. I have then decided to search the Internet hoping to find people who may have a database that might be of any use to me. I told them that I would use the wavelet transform to analyze EEG signals, and asked them if they had such data to share with me. The majority of the mails I have received from them were of the type:

Sorry! We do not have any EEG data , but what is this wavelet business anyway? If you can provide some information, we may be able to direct you...

So I replied and tried to explain what I was after. It didn't take me too long to realize that I was writing a 4-6 pages of information on wavelet transform all over again every time someone asked for more information. Furthermore, since most of those people were from the medical community and had little or no background in signal processing, I had to start from the definition of a transform. Trying to explain a relatively new signal processing technique backed with a highly complex mathematical theory, starting from the definition of the transform was no easy task.

One thing I suffered while I was learning the basics of the wavelet transform is the fact that the majority of the articles and books (if not all of them) are written by math people, for the math people, in a language which even most of the math people themselves cannot understand what is going on. I remember that I got frustrated with all those equations, trying to figure out how and where to use them. I was so frustrated at that time that I decided to write my own book in some day.

When I received so many mails about the wavelet transform, I thought that writing a tutorial could be a starting point for my future dream of writing my own book of wavelet transforms. I knew that I had to put it in simple words to make it understandable to those people. This is how this tutorial was first created.

In the first version of the tutorial, there were absolutely no equations, and it simply consisted of basic concepts what wavelet transform is all about. I received an unexpected number of replies from many people around all the world who were pleasantly surprised in how simple words wavelet transform can be explained . They asked me to give more information, going into a little more detail. I have then decided to write a complete tutorial covering everything from Fourier transforms to short time Fourier transform and wavelet transforms.

Part I of this tutorial presents an overview of the basic concepts that are of importance in understanding the wavelet theory. This part is strictly for those who have no background in signal processing, somehow heard that some wavelet thing or other is the way to go. This part summarizes the concept of transforming, and talks about when and why Fourier transform, by far the most often used transform in signal processing, might not be a suitable technique to use.

Part II introduces the Short Term Fourier Transform (STFT), which has been used to obtain time-frequency representations of non-stationary signals. I think it is important to fully understand STFT, since wavelet transform was developed as an alternative to the STFT, to overcome some problems that are inherent to it. By the end of this part, the reader should be comfortable why and when wavelet transform needs to be used.

Part III introduces the continuous wavelet transform (CWT), explaining how the problems inherent to the STFT are solved. This part gives an introduction to the mathematical backbone of the wavelet transform. Also given in this part are a couple examples that actually show how WT of a signal look like, something I could not find in any of the articles or books I have read on WT.

Part IV talks about the discrete wavelet transform, a very effective and fast technique to compute the WT of a signal. Finally, a bibliography is included for those who need more than what is given in this tutorial.

I would like to note that I am not an expert on wavelet transform, but just a user of this method. It is therefore, possible that I might have missed some important points, or even might have given false information. Should you find any incomplete, inconsistent, or incorrect information please feel free to inform me.

I will appreciate any comments on this tutorial. This is absolutely necessary to make this tutorial complete and accurate. I will be most grateful to those sending their opinions and comments.

I will be throughly happy, if I can be of any service to anyone who would like to learn wavelet transform with this tutorial.

Robi Polikar

329 Durham Computation Center,
Iowa State University
Ames, IOWA, 50011