# The Story of Wavelets Theory and Engineering Applications 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 -decimated DWTdecimated DWT -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=2J different DWTs. The particular DWT chosen can be denoted by =[1 2 N], j=1, if odd indexed elements are chosen, j=0, if even indexed elements are chosen SWT SWT is defined as the average of all -decimated DWTs For 6 level DWT64 DWTs For 10 level DWT 1024 DWTs . An efficient algorithm: cAj=a(j,n) where Hj cAj+1=a(j+1,n) Gj cDj+1=d(j+1,n)

Hj-1 2 Hj Gj-1 2 Gj 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-DWTD-DWT Recall fundamental concepts of 1D-DWT Provides time-decimated DWTscale (frequency) representation of non-decimated DWTstationary 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 2D-DWT-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-DWTD Scaling/Wavelet Functions We start by defining a two-dimensional scaling and wavelet functions: s ( x, y ) ( x) ( y ) s ( x, y ) ( x) ( y ) If (t) is orthogonal to its own translates, s ( x k , y l ) : k , l Z is also orthogonal to its own translates. Then, if fo(x,y) is the projection of f(x,y) on the space Vo generated by s(x,y): f o ( x, y )

ao (i, j ) s ( x i, y i j ao (i, j ) f ( x, y ), s ( x i, y j ) j) 2D-DWTD-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-DWTD-DWT One level of 2D DWT reconstruction: f 1 ( x, y ) Approximation coefficients ao (n, p) ( x n) ( x n) n p Detail coefficients along the horizontal direction bo (n, p ) ( x n) ( x n) Detail coefficients along the vertical direction Detail coefficients along the diagonal direction

co (n, p ) ( x n) ( x n) d o (n, p ) ( x n) ( x n) Implementation of 2D-DWTD-DWT COLUMNS ROWS ROWS COLUMNS ~ H 2 1 INPUT IMAGE

COLUMNS ROWS ~ G 2 1 COLUMNS INPUT IMAGE ~ H 1 2 LL Ak 1 ~ G

1 2 ( h) D LH k 1 ~ H 1 2 HL Dk(v)1 1 2 (d ) D HH k 1 ~ G LLL LLH

LL LH LHL LHH HL HH HL LH HH LLH LHL LHH LL HL LH

HH 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 Upsample columns along the rows: For each row, insert zeros at between every other sample (column) 1 2 Upsample rows along the columns: For each column, insert zeros at between every other sample (row)

Implementing 2D-DWTD-DWT Decomposition COLUMN j ROW i Reconstruction LL Ak 1 1 2 H 2 1 Dk( h)1 1 2 G

HL D (v ) k 1 1 2 H LH HH Dk( d)1 ORIGINAL IMAGE 2 1 1 2 G H G

2D-DWT-D DWT ON MATLAB Load Image (must be .mat file) Choose wavelet type Hit Analyze Choose display options