Wirkung des Wavelet-Trägers auf verrauschte Daten
In diesem Beispiel zeigen Sie, dass ein Auftreten von Unterbrechungen in verrauschten Daten mit einem Haar-Wavelet dünner dargestellt wird als mit einem Wavelet mit größerem Träger.
Erstellen Sie eine verrauschte Rechteckwelle mit 512 Abtastungen. Plotten Sie die Rechteckwelle.
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')
Rufen Sie die diskrete Wavelet-Transformation mit maximaler Überlappung (Maximal Overlap Discrete Wavelet Transform, MODWT) des Signals mit dem haar
-Wavelet ab. Das haar
-Wavelet weist einen Träger der Länge 1 auf.
modhaar = modwt(yn,'haar');
Rufen Sie die Multiskalenanalyse aus der haar
-MODWT-Matrix ab und plotten Sie die Details der ersten Ebene.
mrahaar = modwtmra(modhaar,'haar'); stem(mrahaar(1,:),'Marker','none','ShowBaseLine','off'); grid on title('First-Level MRA Details Using Haar Wavelet')
Rufen Sie die MODWT des Signals mit dem db6
-Wavelet ab. Das db6
-Wavelet weist einen Träger der Länge 11 auf.
moddb6 = modwt(yn,'db6');
Rufen Sie die Multiskalenanalyse aus der db6
-MODWT-Matrix ab und plotten Sie die Details der ersten Ebene. Die Unterbrechungen werden mit dem db6
-Wavelet weniger dünn dargestellt als mit dem haar
-Wavelet.
mradb6 = modwtmra(moddb6,'db6'); stem(mradb6(1,:),'Marker','none','ShowBaseLine','off'); grid on title('First-Level MRA Details Using db6 Wavelet')
Vergrößern Sie die Ansicht. Mit dem Haar-Wavelet sind weniger Koeffizienten erforderlich, um die Signaländerung zu identifizieren.
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')