html5-img
1 / 21

Chapter 11

Chapter 11. Signal Processing with Wavelets. Objectives. 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.

ambrose
Download Presentation

Chapter 11

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 11 Signal Processing with Wavelets

  2. Objectives • 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.

  3. Motivation for Wavelet Analysis • 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)

  4. Basic Theory of Wavelets • 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

  5. Wavelet Decomposition • 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

  6. Wavelet Reconstruction • The A and D coefficients can be used to reconstruct the signal perfectly when run through the mirror reconstruction filters of the wavelet family

  7. Wavelet Families • 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.

  8. Example:Filter Set for the Daubechies-5 Wavelet Family % 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')

  9. Example:Filter Set for the Daubechies-5 Wavelet Family

  10. Example:Filter Set for the Daubechies-5 Wavelet Family >> fvtool(Lo_D,1,Hi_D,1) >> fvtool(Lo_R,1,Hi_R,1) Decomposition Filters Reconstruction Filters

  11. Multi-level Decomposition of a Signal with Wavelets The decomposition tree can be schematically described as:

  12. Multi-level Decomposition of a Signal with WaveletsFrequency Domain (Sub-band Coding)

  13. Example: One-level Decomposition of a Noisy Signal >> 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

  14. >> 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') One-Level Decomposition of a Non-Stationary Signal The detail coefficients reveal the transitions in the non-stationary signal

  15. >> 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') De-Noising a Signal with Multilevel Wavelet Decomposition Significant de-noising occurs with the level-4 approximation coefficients (Daubechies-8 wavelets)

  16. Finding Signal Discontinuities >> 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)

  17. >> 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 Simple Signal Compression Using a Wavelet Approximation 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.

  18. Compression by Thresholding >> 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

  19. >> 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 Compression by Thresholding In this compression 83% of the coefficients were set to zero, but 99% of the energy in the signal was retained.

  20. >> 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) Compression by Thresholding Zeroing of coefficients by thresholding results in effective signal compression

  21. Summary • 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.

More Related