Discrete Fourier Analysis and Wavelets
Applications to Signal and Image Processing

S. Allen Broughton and Kurt M. Bryan

Contents

  1. Overview and Wiley site for the book
  2. Contact the authors
  3. Matlab routines discussed in the book
  4. Other matlab routines
  5. Errata, Questions and Comments

Cover Images: The image below was used in preparing images for the the book cover. It shows approximations of a picture of lilly pads at Kurt Bryan's home.

lilly pads

1. Overview and Wiley site for the book

This book grew out of course notes for a course we alternately teach called Mathematical Methods of Image Processing. A brief description of the text from the Wiley site linked below follows:

For more detail on the book:

2. Contact the authors

S. Allen Broughton brought@rose-hulman.edu http://www.rose-hulman.edu/~brought/
Kurt M. Bryan bryan@rose-hulman.edu http://www.rose-hulman.edu/~bryan/

3. Matlab Routines in the book

Here are the Matlab routines from the text and a fee additional ones, as a zip file.

Here is a table with a link and description to each routine as a text file.

Routine Description Matlab Toolbox Requirements
audiocompress.m compress an audio signal  
blkdct2.m Discrete Cosine Transform of an mxn image Image processing toolbox
blkidct2.m inverse Discrete Cosine Transform of an mxn image Image processing toolbox
circconv.m circular convolution by a causal filter  
crevconv.m circular convolution by time-reversal of a causal filter  
circconv2.m 2-D circular convolution by a causal filter  
crevconv2.m 2-D circular convolution by time-reversal of a causal filter  
dyadicbiortho.m compute analysis and synthesis scaling and wavelet functions on dyadic points for a biorthognal filter bank  
dyadicortho.m compute analysis and synthesis scaling and wavelet functions on dyadic points for an orthogonal filter bank  
fullwave.m recursive application of wave1.m, for full wavelet transform  
gausswindow.m generate Gaussian window  
graymap.m set up a greyscale colormap  
hammingwindow.m generate Hamming window  
imwave1.m do a single stage transform (circular convolution) on an image  
imwavefull.m recursive application of imwave1.m, for full wavelet transform  
invfullwave.m recursive application of invwave1.m, inverts fullwave.m  
invimwave1.m invert imwave1 routine  
invimwavefull.m inverts imwavefull() routine  
invwave1.m inverts single-stage DWT command wave1()  
jpegdemo.m simple JPEG compression demo  
jpegprogressive.m simple JPEG compression/progressive transmission demo  
kdct.m substitute for Matlab's dct() command  
kdct2d.m substitute for Matlab's dct2() command  
kdownsample.m downsample a row vector or matrix  
kidct.m substitute for Matlab's idct() command  
kidct2d.m substitute for Matlab's idct2() command  
kupsample.m upsample a row or column vector  
rectwindow.m generate rectangular window  
rgb2gray.m convert rgb image to reasonable grayscale approximation  
spectro.m computes a spectrogram for a vector  
triwindow.m generate triangular window  
wave1.m one pass forward wavelet transform on input array  

4. Other Matlab routines

These MAtlab routines below have been used by the authors in teaching our course Mathematical Methods of Image Processing. They are not directly referenced in the book but were developed at the same time as the other routines.

Routine Description Matlab Toolbox Requirements
dwt2demo.m shows 1-stage decomposition of image into approximation and details wavelet
     
     

5. Errata, Questions and Comments

If you see an error or have question or comment on the book, please send email to either author.

S. Allen Broughton brought@rose-hulman.edu
Kurt M. Bryan bryan@rose-hulman.edu

Here are the errors we know about (thanks to students who used a prepublication final copy).

location error
p. 8, line 5 "upper left corner" -> "lower right corner"
p. 19, equation 1.15 remove second t in the left hand side of the equation
p. 30, Remark 1.9, line 3 "some natural of measure of energy" -> "some natural measure of energy"
p. 61, Exercise 1.6.a, line 3 "product vector" -> "produce vector"
p. 63, Exercise 1.4b remove "a fraction"
p. 79, Remark 2.1, line 4 "refereed" -> "referred"
p. 84 , line 12 change "(|X-k2|+|Xk2)/N" to "(|X-k2|+|Xk2|)/N", (missing "|")
p. 96, 2.8.1, part 3 "three (obviously) obviously largest frequencies" ->
"three frequencies of (obviously) largest amplitude"
p. 96, 2.8.1, part 4 "these largest frequencies" -> "frequencies of largest amplitude"
p. 100, second Matlab command omit period at the end, not a part of the command
p.101, Exercise 2.4, line 1 insert "the" after "denote"
p.116, DCT matrix at bottom of page each "k" in the last row should be an "N"
p. 240, 6.7.2 Second term on right side of equation (6.31) is missing a factor of 1/2
p. 252, 6.8.1 part 3 "Repeat steps 2 through 3" ->  "Repeat steps 1 and 2"
p. 252, 6.8.1 part 4 "Repeat steps 2 through 4" ->  "Repeat steps 1 through 3"
p. 253, 6.8.2 part 3 In last sentence of first paragraph, "image" should be "signal".
Also, the parameter "perfl2" is (on a percentage basis) 100 MINUS the distortion.
p. 292, definition 7.32 Property (1) should say that the union of the Vk is DENSE in L2 (not equals L2).
p. 297, displayed equation after 7.42 Formula for entries of A should be an,k=sqrt(2)cm with m=2n-k,
if matrix rows and columns indexed from 1.
p. 333, solution to 6.22 second (ls)0 should be (ls)2
second (hs)0 should be (hs)2