



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Notes; Professor: O'Leary; Class: SCIENTIFIC COMPUTING II; Subject: Applied Mathematics & Scientific Computation; University: University of Maryland; Term: Spring 2005;
Typology: Study notes
1 / 7
This page cannot be seen from the preview
Don't miss anything!




Notes from AMSC 661 05/05/05 (neat date!) Notes from Dr. O’Leary’s lecture on Transforms and Wavelets:
http://www.cs.umd.edu/~oleary/c661/661fourierhand.pdf and a few slides from http://www.cs.umd.edu/~oleary/c460/old/460matrixhand.pdf
Joanna R. Pressley
Last lecture we were introduced to the Continuous Fourier Transform in two forms, the Discrete Fourier Transform, the Discrete Sine Transform, the Haar Transform, and the Discrete Haar Transform. Here are a few additional points about the Transforms.
Fourier Transform - f(x) must go to zero fast enough so that F(s) does not go to infinity. Also, x can be complex.
Discrete Fourier Transform – we are using a discrete set of x, but we are assuming that the true function continues outside of our set and is just copies of the set. In this way, we are assuming that the function is periodic.
Discrete Sine Transform - When we use the DST we are also assuming the data is periodic. It is good to use the DST when the data starts at zero and ends at zero (zero boundary conditions), like the picture above. Also, remember
from the imaginary part of the Fourier Transform. The DST allows you to work with real numbers and real arithmetic, where as the Fast Fourier Transform (which we’ll get to later) uses complex.
Discrete Haar Transform – We contract h(x) to get the hi functions. You get more oscillations on [0,1] as you contract more.
The matrix is symmetric, so to compute the IDFT you just multiply by the transpose of the matrix.
When n gets large, the matrix is too big to store. So we use the fast methods to lessen storage and computation time. To see how this works, let’s look at a large problem. Let n = 8.
Let’s define z:
we know the following 2 facts
Let’s look at the entire matrix for F 8
We can rearrange the columns as long as we also rearrange f(x) and F(s) too. Move the odd columns (purple) to the front in order and the even columns to the back. Then we get
The top blue block is F 4 and is repeated underneath. Then the second top block is F 4 multiplied by the matrix D. The bottom right block is just the block above it multiplied by minus 1. So storage is much reduced.
So if we were multiplying F 8 by a vector x, we would need to rearrange x also to use this algorithm. Then we would get:
Due to the regrouping above, we have lessened the computation cost greatly! We now only do 2*the cost for n = 4 plus 12 multiplications (we count for complex arithmetic).
If we start with n = 128, we can reduce that to 2the cost of n = 64, which we can reduce to 2the cost of n = 32, which we can reduce to 2the cost of n = 16, which we can reduce to 2the cost of n = 8, which we just saw we could reduce to 2*the cost of n = 4 (all of this plus some additions).
For n = 128, the slow FT costs 214665 flops (O(n^2 )). For the FFT the cost is 5053 flops (O(n log 2 (n))). This is the radix 2 FFT. It works for powers of 2. If n is not a power of 2 there are other fast algorithms. The work is approximately O(np) where p is small if n has small prime factors.
Fast Haar
Now let’s look at fast methods for the Haar Transform. Let’s define H 1 :
The Haar transform for a 2-dim x is H 1 *x. Now for powers of radix 2,
So for instance, H 2 is
For H 1 , the first row is like h 1 , the second row is like h 2. For H 2 the first row is like h 1 the second row is like h4, the third row is like h2, and the fourth row is also like h 2 but shifted.
The father wavelet is
And it looks like:
We can also look at Dilations and translations of the mother wavelet.
Next time we will be talking about wavelet expansions.