You are on page 1of 15

The Story of Wavelets

Theory and Engineering Applications



Stationary discrete wavelet transform
Two-dimensional wavelet transform
2D-DWT using MATLAB
Implementation issues
Image compressing using 2D-DWT
Stationary Wavelet Transfporm
(SWT)
DWT is not time invariant Not Good !
What makes DWT time varying? Decimation (down sampling)
DWT can be made time invariant, however, the transform must be
redundant!!!
Stationary wavelet transform
c-decimated DWT
c-decimated DWT???
At any given level you can have two different DWT, due to
choice in discarding even or odd indexed elements during
subsampling
At J levels, you can have N=2
J
different DWTs. The particular
DWT chosen can be denoted by c=[c
1
c
2
c
N
], c
j
=1, if odd
indexed elements are chosen, c
j
=0, if even indexed elements are
chosen

SWT
SWT is defined as the average of all c-decimated DWTs
For 6 level DWT64 DWTs
For 10 level DWT 1024 DWTs
.
An efficient algorithm:

H
j

G
j

cA
j
=a(j,n)
cA
j+1
=a(j+1,n)
cD
j+1
=d(j+1,n)
where
2
H
j
H
j-1
2
G
j
G
j-1
Note: No subsampling is involved!!!.
SWT
Does it work? MATLAB DEMO

Applications of SWT
Denoising denoisingdenoising
MATLAB demo: noisy doppler & noisy quadchirp
Interval dependent thresholds
1D-DWT2D-DWT
Recall fundamental concepts of 1D-DWT
Provides time-scale (frequency) representation of non-stationary signals
Based on multiresolution approximation (MRA)
Approximate a function at various resolutions using a scaling function, |(t)
Keep track of details lost using wavelet functions, (t)
Reconstruct the original signal by adding approximation and detail coeff.
Implemented by using a series of lowpass and highpass filters
Lowpass filters are associated with the scaling function and provide
approximation
Highpass filters are associated with the wavelet function and provide detail
lost in approximating the signal

2-D DWT
How do we generalize these concepts to 2D?
2D functions images f(x,y) I[m,n] intensity function
What does it mean to take 2D-DWT of an image? How do we
interpret?
How can we represent an image as a function?
How do we define low frequency / high frequency in an image?
How to we compute it?
Why would we want to take 2D-DWT of an image anyway?
Compression
Denoising
Feature extraction
2D Scaling/Wavelet Functions
We start by defining a two-dimensional scaling and
wavelet functions:

If |(t) is orthogonal to its own translates,

is also orthogonal to its own translates. Then, if f
o
(x,y) is
the projection of f(x,y) on the space V
o
generated by
s
||
(x,y):
) ( ) ( ) , ( y x y x s | |
||
=
{ } Z l k l y k x s e , : ) , (
||
> =<
=

=
) , ( ), , ( ) , (
) , ( ) , ( ) , (
j y i x s y x f j i a
j y i x s j i a y x f
o
i j
o o
||
||
) ( ) ( ) , ( y x y x s

=
2D-DWT
Just like in 1D we generated an approximation of the 2D function
f(x,y). Now, how do we compute the detail lost in approximating
this function?
Unlike 1D case there will be three functions representing the
details lost:
Details lost along the horizontal direction
Details lost along the vertical direction
Details lost along the diagonal direction
1D Two sets of coeff.; a(k,n) & d (k,n)
2D Four sets of coefficients: a(k,n), b(k, n), c(k, n) & d(k,n)
Four Faces of 2D-DWT
One level of 2D DWT reconstruction:
(
) ) ( ) ( ) , (
) ( ) ( ) , (
) ( ) ( ) , (
) ( ) ( ) , ( ) , (
1
n x n x p n d
n x n x p n c
n x n x p n b
n x n x p n a y x f
o
o
o
n p
o
+
+
+
=


|
|
| |
Approximation coefficients
Detail coefficients along
the horizontal direction
Detail coefficients along
the vertical direction
Detail coefficients along
the diagonal direction
Implementation of 2D-DWT
INPUT
IMAGE
R
O
W
S

COLUMNS
H
~
2 1
G
~
2 1
H
~
1 2
G
~
1 2
H
~
1 2
G
~
1 2
ROWS
ROWS
COLUMNS
COLUMNS
COLUMNS
LL
LH
HL
HH
) (
1
h
k
D
+
) (
1
v
k
D
+
) (
1
d
k
D
+
1 + k
A
INPUT
IMAGE
LL
LH
HL
HH
LL
LH
HL
HH
LHH
LLH
LHL
LLL
LH
HL
HH
LHH
LLH
LHL
Up and Down Up and Down
2 1
Downsample columns along the rows: For each row, keep the
even indexed columns, discard the odd indexed columns
1 2
Downsample columns along the rows: For each column, keep the
even indexed rows, discard the odd indexed rows
2 1
1 2
Upsample columns along the rows: For each row, insert zeros at
between every other sample (column)
Upsample rows along the columns: For each column, insert zeros
at between every other sample (row)
Implementing 2D-DWT
Decomposition
ROW i
C
O
L
U
M
N

j

Reconstruction
) (
1
h
k
D
+
) (
1
v
k
D
+
) (
1
d
k
D
+
1 + k
A
1 2
1 2
1 2
1 2
H
G
H
G
2 1
2 1
H
G
ORIGINAL
IMAGE
LL
LH
HL
HH
2-D DWT ON MATLAB
Load
Image
(must be
.mat file)
Choose
wavelet type
Hit
Analyze
Choose
display
options

You might also like