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 DWT64 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… denoising…denoising
MATLAB demo: noisy doppler & noisy quadchirp
Interval dependent thresholds
1D-DWT2D-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