The Wavelet Digest Homepage
Return to the homepage
Search the complete Wavelet Digest database
Help about the Wavelet Digest mailing list
About the Wavelet Digest
The Digest The Community
 Latest Issue  Back Issues  Events  Gallery
The Wavelet Digest
   -> Volume 5, Issue 10

Answer: Help Using Non-Haar Wavelets (
images/spacer.gifimages/spacer.gif Reply into Digest
Previous :: Next  
Author Message
Bernard Cena (

PostPosted: Fri Nov 22, 1996 3:48 pm    
Subject: Answer: Help Using Non-Haar Wavelets (
Reply with quote

#19 Answer: Help Using Non-Haar Wavelets ( href="finddigest.php?vol=5&iss=9&mark=25">WD 5.9 #25)

In response to Question #25 of the Wavelet Digest Vol. 5, Nr. 9 titled
"Help Using Non-Haar Wavelets in Code" I had decided to expand on the
answer a little to provide a small guide for those wishing to start to
experiment with wavelets...

The (abridged) question: (Bill Hoy) wrote:
> For my research project at WPI, I am studying denoising methods
> using wavelets. My advisor wanted me to write my own algorithms, so
> starting with no previous knowledge of wavelets, I set out to learn
> how to code the Discrete Wavelet Transform. [...] I now would like
> to see if I could modify my existing Matlab code so that I could use
> something better than a Haar wavelet. [...] I realize my question is
> very-very basic and it shows my lack of experience using wavelets!
> I've been having a hard time learning wavelets by myself! Could
> anyone provide me with some ideas as to the above question, or
> perhaps pointers where I could find some more articles for
> beginners? Is it considered possible for a beginner to write their
> own DWT algorithms? It would also be nice to hear from other people
> using wavelets to do denoising!

I just saw your question in the Wavelet Digest regarding help with
wavelets more complicated than the Haar wavelet. Well, since you
already have Matlab you are half way to success :) - this is an
excellent prototyping tool (although not public domain :( ) and is by
far the best way to learn the ropes - forget about coding C at the
start: get your algorithms working in Matlab first! I myself am a
computer scientist thus I do not have a rock solid maths background so
like yourself I found myself struggling for a while with wavelets. I
looked at countless books, most of which weren't too friendly and
really gave me only snapshots of the whole picture and failed to make
me understand everything from the beginning.

Anyway, I'm now in position to share my experiences with you. So,
seeing that you have access to Matlab, by far the easiest way to go is
to get yourself the Wavelet Toolbox for Matlab from Mathworks. See You get an excellent set of
routines that let you play with all the "standard" wavelets including
GUI applications to play with denoising and explore both the Discrete
( 1D and 2D ) and Continuous ( 1D ) Wavelet Transforms - all very,
very easy. Not only that - you get an excellent tutorial manual which
is by FAR the easiest and to-the-point introduction I've EVER seen!
(do I get a coffee mug for all the wonderful advertising, Mathworks ?
:) You also get a copy of G. Strang and T. Nguyen's book "Wavelets and
Filter Banks" which gives you all the background (from both a
mathematics and engineering points of views) if you're interested in
the nuts and bolts. I also recommend this book as it's written as a
textbook - very good to get learn the theory. All code in the toolbox
is available thus you can look for yourself how it's done. Then, if
you have the Matlab compiler you can have Matlab automatically convert
everything for you to C if you really need the extra speed - but I
suppose you are aware that you can mix Matlab and C code together and
most of the time you don't need to code everything in C unless you
need a stand-alone application.

Ok, if you cann't buy the Wavelet Toolbox you can get the wavelet
toolbox from Stanford University by David Donoho and his group - this
is also a Matlab toolbox and includes all code to do orthogonal
wavelet transforms and denoising, which is what you need: There is also another commercial
toolbox for Matlab from ToolSmiths at: it looks
good and seems to have similar functionality to the Matlab Wavelet
Toolbox, but that's all I know about it.

For those without access to Matlab, you can run the Stanford WaveLab
toolbox from Octave which is a public domain Matlab clone: You'll need to make slight changes as
some of the plotting commands in the demo scripts of the WaveLab
toolbox will not work - simply delete them. Otherwise Octave runs
exactly like Matlab, just doesn't have such pretty graphics and GUI

Another alternative is Mathematica (commercial), an excellent symbolic
maths application. There are public domain packages available, and
it's a great tool to play with 1D signals and wavelets (2D tends to be
too slow). See:

As far as literature goes, get yourself the SIGGRAPH wavelets for
computer graphics tutorial - it includes material from beginning to
advanced concepts - look for it at: This includes chapters by
Wim Sweldens et al. who introduced the lifting scheme for construction
of wavelets. The main feature of the lifting scheme is that one can
contruct wavelets in the time domain alone without the need to mess
around with Fourier transforms, which is the main reason of woes of
beginner waveleters :) It also introduces in-place (same memory
location) transform computation and faster algorithms based on simple
add/subtract/multiply/divide as opposed to the standard filter
convolutions, etc., etc. This tutorial is well written, easy to
follow and most imporantly starts from the very basics and gives you
an introduction to some powerful concepts and applications.

Look also at Amara's Wavelet Page for lots of other software packages,
papers, books, etc.:

If you need help in anything specific don't hesitate to ask!

Cheers and good luck,

Bernard Cena
PhD Candidate
Dept. Computer Science
The University of Western Australia
All times are GMT + 1 Hour
Page 1 of 1

Jump to: 

disclaimer -
Powered by phpBB

This page was created in 0.027552 seconds : 18 queries executed : GZIP compression disabled