- 184 Views
- Uploaded on
- Presentation posted in: General

Chapter 11

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Chapter 11

Signal Processing with Wavelets

- Define and illustrate the difference between a stationary and non-stationary signal.
- Describe the relationship between wavelets and sub-band coding of a signal using quadrature mirror filters with the property of perfect reconstruction.
- Illustrate the multi-level decomposition of a signal into approximation and detail components using wavelet decomposition filters.
- Illustrate the application of wavelet analysis using MATLAB® to noise suppression, signal compression, and the identification of transient features in a signal.

- Signals of practical interest are usually non-stationary, meaning that their time-domain and frequency-domain characteristics vary over short time intervals (i.e., music, seismic data, etc)
- Classical Fourier analysis (Fourier transforms) assumes a signal that is either infinite in extent or stationary within the analysis window.
- Non-stationary analysis requires a different approach: Wavelet Analysis
- Wavelet analysis also produces better solutions to important problems such as the transform compression of images (jpeg versus jpeg2000)

- Wavelet analysis can be understood as a form of sub-band coding with quadrature mirror filters
- The two basic wavelet processes are decomposition and reconstruction

- A single level decomposition puts a signal through 2 complementary low-pass and high-pass filters
- The output of the low-pass filter gives the approximation (A) coefficients, while the high pass filter gives the detail (D) coefficients

Decomposition Filters for Daubechies-8 Wavelets

- The A and D coefficients can be used to reconstruct the signal perfectly when run through the mirror reconstruction filters of the wavelet family

- Wavelet families consist of a particular set of quadrature mirror filters with the property of perfect reconstruction.
- These families are completely determined by the impulse responses of the set of 4 filters.

% Set wavelet name.

>> wname = 'db5';

% Compute the four filters associated with wavelet name given

% by the input string wname.

>> [Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wname);

>> subplot(221); stem(Lo_D);

>> title('Decomposition low-pass filter');

>> subplot(222); stem(Hi_D);

>> title('Decomposition high-pass filter');

>> subplot(223); stem(Lo_R);

>> title('Reconstruction low-pass filter');

>> subplot(224); stem(Hi_R);

>> title('Reconstruction high-pass filter');

>> xlabel('The four filters for db5')

>> fvtool(Lo_D,1,Hi_D,1)

>> fvtool(Lo_R,1,Hi_R,1)

Decomposition Filters

Reconstruction Filters

The decomposition tree can be schematically described as:

>> x=analog(100,4,40,10000); % Construct a 100 Hz sinusoid of amplitude 4

>> xn=x+0.5*randn(size(x)); % Add Gaussian noise

>> [cA,cD]=dwt(xn,'db8'); % Compute the first level decomposition with dwt

% and the Daubechies-8 wavelet

>> subplot(3,1,1),plot(xn),title('Original Signal')

>> subplot(3,1,2),plot(cA),title('One Level Approximation')

>> subplot(3,1,3),plot(cD),title('One Level Detail')

Single level discrete wavelet decomposition with the Daubechies-8 wavelet family

>> fs=2500;

>> len=100;

>> [x1,t1]=analog(50,.5,len,fs); % The time vector t1 is in milliseconds

>> [x2,t2]=analog(100,.25,len,fs);

>> [x3,t3]=analog(200,1,len,fs);

>> y1=cat(2,x1,x2,x3); % Concatenate the signals

>> ty1=[t1,t2+len,t3+2*len]; %Concatenate the time vectors 1 to len, len to 2*len, etc.

>> [A1,D1]=dwt(y1,'db8');

>> subplot(3,1,1),plot(y1),title('Original Signal')

>> subplot(3,1,2),plot(A1),title('One Level Approximation')

>> subplot(3,1,3),plot(D1),title('One Level Detail')

The detail coefficients reveal the transitions in the non-stationary signal

>> x=analog(100,4,40,10000);

>> xn=x+0.5*randn(size(x));

>> [C,L] = wavedec(xn,4,'db8'); % Do a multi-level analysis to four levels with the

% Daubechies-8 wavelet

>> A1 = wrcoef('a',C,L,'db8',1); % Reconstruct the approximations at various levels

>> A2 = wrcoef('a',C,L,'db8',2);

>> A3 = wrcoef('a',C,L,'db8',3);

>> A4 = wrcoef('a',C,L,'db8',4);

>> subplot(5,1,1),plot(xn),title('Original Signal')

>> subplot(5,1,2),plot(A1),title('Reconstructed Approximation - Level 1')

>> subplot(5,1,3),plot(A2),title(' Reconstructed Approximation - Level 2')

>> subplot(5,1,4),plot(A3),title(' Reconstructed Approximation - Level 3')

>> subplot(5,1,5),plot(A4),title(' Reconstructed Approximation - Level 4')

Significant de-noising occurs with the level-4 approximation coefficients (Daubechies-8 wavelets)

>> x=analog(100,4,40,10000);

>> x(302:305)=.25;

>> [A,D]=dwt(x,'db8');

>> subplot(3,1,1),plot(x),title('Original Signal')

>> subplot(3,1,2),plot(A),title('First Level Approximation')

>> subplot(3,1,3),plot(D),title('First Level Detail')

3 sample discontinuity at sample 302

Daubechies-8 wavelets

Discontinuity response in the 1st level detail coefficients (sample 151 because of the 2X down-sampling)

>> load leleccum

>> x=leleccum;

>> w = 'db3';

>> [C,L] = wavedec(x,4,w);

>> A4 = wrcoef('a',C,L,'db3',4);

>> A3 = wrcoef('a',C,L,'db3',3);

>> A2 = wrcoef('a',C,L,'db3',2);

>> A1 = wrcoef('a',C,L,'db3',1);

>> a3 = appcoef(C,L,w,3);

>> subplot(2,1,1),plot(x),axis([0,4000,100,600])

>> title('Original Signal')

>> subplot(2,1,2),plot(A3),axis([0,4000,100,600])

>> title('Approximation Reconstruction at Level 3 Using the Daubechies-3 Wavelet')

>> (length(a3)/length(x))*100

ans =

12.5926

The wavelet approximation at level-3 contains only 13 % of the original signal values because of the wavelet down-sampling, but still retains the important signal characteristics.

>> load leleccum

>> x=leleccum;

>> w = 'db3'; % Specify the Daubechies-4 wavelet

>> [C,L] = wavedec(x,4,w); % Multi-level decomposition to 4 levels.

>> a3 = appcoef(C,L,w,3); % Extract the level 3 approximation coefficients

>> d3 = detcoef(C,L,3); % Extract the level 3 detail coefficients.

>> subplot(2,1,1), plot(a3),title('Approximation Coefficients at Level 3')

>> subplot(2,1,2), plot(d3),title('Detail Coefficients at Level 3')

These are the A3 and D3 coefficients for the signal. Many of the D3 coefficients could be “zeroed” without losing much signal information or power

>> load leleccum

>> x=leleccum; % Uncompressed signal

>> w = 'db3'; % Set wavelet family

>> n=3; % Set decomposition level

>> [C,L] = wavedec(x,n,w); % Find the decomposition structure of x to level n using w.

>> thr = 10; % Set the threshold value

>> keepapp = 1; %Logical parameter = do not threshold approximation coefficients

>> sorh='h'; % Use hard thresholding

>> [xd,cxd,lxd, perf0,perfl2] =wdencmp('gbl',C,L,w,n,thr,sorh,keepapp);

>> subplot(2,1,1), plot(x),title('Original Signal')

>> subplot(2,1,2),plot(xd),title('Compressed Signal (Detail Thresholding)')

>> perf0 % Percent of coefficients set to zero

>> perfl2 % Percent retained energy in the compressed signal

perf0 =

83.4064

perfl2 =

99.9943

In this compression 83% of the coefficients were set to zero, but 99% of the energy in the signal was retained.

>> D1 = wrcoef('d',C,L,w,1);

>> D2 = wrcoef('d',C,L,w,2);

>> D3 = wrcoef('d',C,L,w,3);

>> d1 = wrcoef('d',cxd,lxd,w,1);

>> d2 = wrcoef('d',cxd,lxd,w,2);

>> d3 = wrcoef('d',cxd,lxd,w,3);

>> subplot(3,2,1),plot(D3),title('Original Detail - Levels 3 to 1')

>> subplot(3,2,2),plot(d3),title('Thresholded Detail - Levels 3 to 1')

>> subplot(3,2,3),plot(D2)

>> subplot(3,2,4),plot(d2)

>> subplot(3,2,5),plot(D1)

>> subplot(3,2,6),plot(d1)

Zeroing of coefficients by thresholding results in effective signal compression

- Wavelet processing is based on the idea of sub-band decomposition and coding.
- Wavelet “families” are characterized by the low-pass and high-pass filters used for decomposition and perfect reconstruction of signals.
- Typical applications of wavelet processing include elimination of noise, signal compression, and the identification of transient signal features.