Effect of Wavelet Support on Noisy Data
In this example you demonstrate an instance of discontinuities in noisy data being represented more sparsely using a Haar wavelet than when using a wavelet with larger support.
Create a noisy square wave with 512 samples. Plot the square wave.
n = 512; t = 0:0.001:(n*0.001)-0.001; yn = square(2*pi*10*t)+0.02*randn(size(t)); plot(yn) grid on title('Noisy Signal')
Obtain the maximal overlap discrete wavelet transform (MODWT) of the signal using the haar
wavelet. The haar
wavelet has a support of length equal to 1
modhaar = modwt(yn,'haar');
Obtain the multiresolution analysis from the haar
MODWT matrix and plot the first-level details.
mrahaar = modwtmra(modhaar,'haar'); stem(mrahaar(1,:),'Marker','none','ShowBaseLine','off'); grid on title('First-Level MRA Details Using Haar Wavelet')
Obtain the MODWT of the signal using the db6
wavelet. The db6
wavelet has a support of length equal to 11.
moddb6 = modwt(yn,'db6');
Obtain the multiresolution analysis from the db6
MODWT matrix and plot the first-level details. The discontinuities are represented less sparsely using the db6
wavelet than the haar
wavelet.
mradb6 = modwtmra(moddb6,'db6'); stem(mradb6(1,:),'Marker','none','ShowBaseLine','off'); grid on title('First-Level MRA Details Using db6 Wavelet')
Zoom in. Using the Haar wavelet results in fewer coefficients necessary to identify the change in the signal.
ind = 40:110; subplot(311) plot(ind,yn(ind)) title('Close Up') subplot(312) stem(ind,mrahaar(1,ind),'Marker','none','ShowBaseLine','off','LineWidth',2) title('Using Haar') subplot(313) stem(ind,mradb6(1,ind),'Marker','none','ShowBaseLine','off','LineWidth',2) title('Using db6')