Dichteschätzung unter Verwendung von Wavelets
In diesem Abschnitt lernen Sie die Funktionen der Dichteschätzung für 1D-Wavelets mit einem der spezialisierten Tools der Wavelet Toolbox™ kennen.
Die Toolbox enthält die Wavelet Analyzer-App, mit der Sie die Dichte einer Abtastung schätzen und bekannte Tools wie das Histogramm (verfügbar über den MATLAB®-Core) oder Kernel-basierte Schätzungen ergänzen können.
Stellen Sie für die Beispiele in diesem Abschnitt den Erweiterungsmodus mit dem folgenden Befehl auf symmetrisches Auffüllen:
dwtmode('sym')
1D-Schätzung mithilfe der Wavelet Analyzer-App
Starten Sie das Tool zur 1D-Dichteschätzung.
Geben Sie in der MATLAB-Eingabeaufforderung
waveletAnalyzer
ein.Wavelet Analyzer wird angezeigt.
Klicken Sie auf den Menüpunkt Density Estimation 1-D. Das Tool für die diskrete Wavelet-Analyse für die 1D-Dichteschätzung wird angezeigt.
Laden Sie die Daten.
Geben Sie an der MATLAB-Befehlszeile Folgendes ein:
Wählen Sie im Tool Density Estimation 1-D (Dichteschätzung 1D) File > Import from Workspace aus.load ex1cusp1
Wenn das Dialogfeld Import from Workspace (Aus dem Arbeitsbereich importieren) angezeigt wird, wählen Sie
ex1cusp1
aus. Klicken Sie auf OK, um die verrauschten Daten für Spitzen zu importieren.Die Abtastung, ein Histogramm mit 64 Intervallen und die nach der Einteilung in Intervalle erhaltenen verarbeiteten Daten werden angezeigt. In diesem Beispiel akzeptieren wir den Standardwert für die Anzahl der Intervalle (250). Die entsprechend normalisierten, in Intervalle eingeteilten Daten werden durch Wavelet-Zerlegung verarbeitet.
Führen Sie eine Wavelet-Zerlegung der in Intervalle eingeteilten Daten durch.
Wählen Sie das Wavelet
sym6
aus dem Menü Wavelet aus, und 4 aus dem Menü Level (Ebene). Klicken Sie dann auf die Schaltfläche Decompose (Zerlegen). Nach einer Pause, in der die Berechnung durchgeführt wird, zeigt das Tool die Detailkoeffizienten der Zerlegung der in Intervalle eingeteilten Daten an.Führen Sie eine Dichteschätzung durch.
Akzeptieren Sie die Standardwerte des globalen Soft-Thresholding. Über die Schieber auf der rechten Seite des Fensters werden die ebenenabhängigen Schwellenwerte gesteuert, die durch gestrichelte blaue Linien gekennzeichnet sind, die horizontal durch die Diagramme auf der linken Seite des Fensters verlaufen.
Fahren Sie fort, indem Sie auf die Schaltfläche Estimate (Schätzen) klicken.
Sie sehen, dass die Schätzung eine sehr unregelmäßige Dichte ergibt. Die Dichteschätzung (in Lila) ist die normalisierte Summe der darunterliegenden Signale: die Approximation
a4
und die rekonstruierten Details nach der Schwellenwertbildung für Koeffizienten.Führen Sie eine Schwellenwertbildung durch.
Sie können mit den verschiedenen vordefinierten Strategien für die Schwellenwertbildung experimentieren, indem Sie die entsprechenden Optionen aus dem Menü auf der rechten Seite des Fensters auswählen oder die gestrichelten blauen Linien direkt mit der linken Maustaste ziehen. Versuchen wir eine andere Schätzungsmethode.
Wählen Sie aus dem Menü Select thresholding method (Methode der Schwellenwertbildung auswählen) die Option By level threshold 2 (Nach Ebenenschwellenwert 2) aus. Klicken Sie anschließend auf die Schaltfläche Estimate (Schätzen).
Die geschätzte Dichte ist zufriedenstellender. Sie identifiziert korrekt den glatten Teil der Dichte und die Spitze bei 0,7.
Importieren und Exportieren von Informationen aus der Wavelet Analyzer App
Mit dem Tool können Sie die geschätzte Dichte auf der Festplatte speichern. Die Toolbox erstellt eine MAT-Datei im aktuellen Ordner mit einem von Ihnen ausgewählten Namen.
Um die geschätzte Dichte zu speichern, verwenden Sie die Menüoption File (Datei) > Save Density (Dichte speichern). Es wird ein Dialogfenster angezeigt, in dem Sie einen Ordner und Dateinamen zur Speicherung der Dichte angeben können. Geben Sie in den Namen dex1cusp
ein. Nachdem Sie die Dichtedaten in der Datei dex1cusp.mat
gespeichert haben, laden Sie die Variablen in Ihren Arbeitsbereich:
load dex1cusp whos
Name | Größe | Byte | Klasse |
---|---|---|---|
ex1cusp1 | 1x1000 | 8000 | double array |
thrParams | 1x4 | 544 | cell array |
wname | 1x4 | 8 | char array |
xdata | 1x250 | 2000 | double array |
ydata | 1x250 | 2000 | double array |
Die ursprünglichen verrauschten Daten für Spitzen ex1cusp1
haben 1000 Abtastungen. Die Variablen thrParams
, wname
, xdata
und ydata
werden in dex1cusp.mat
gespeichert. Die geschätzte Dichte wird durch xdata
und ydata
angegeben. Die Länge dieser Vektoren ist gleich der Anzahl an Intervallen, die Sie in Schritt 4 auswählen. Zudem werden die Parameter des Schätzungsprozesses durch den Wavelet-Namen in wname
angegeben.
wname wname = sym6
und die ebenenabhängigen Schwellenwerte in thrParams
, einem Zellen-Array der Länge 4 (der Zerlegungsgrad). Für i von 1 bis 4 enthält thrParams{i}
die unteren und oberen Grenzen des Schwellenwertbildungsintervalls und den Schwellenwert (da intervallabhängige Schwellenwerte zulässig sind). Beispielsweise für Ebene 1
thrParams{1} ans = 0.0560 0.9870 2.1179
Hinweis
Wenn Sie Daten aus einer Datei mit der Menüoption File (Datei) > Load Data for Density Estimate (Daten für Dichteschätzung laden) laden, wird die erste gefundene 1D-Variable als Signal angesehen. Variablen werden in alphabetischer Reihenfolge untersucht.
Stellen Sie am Ende dieses Abschnitts den Erweiterungsmodus wieder auf kein Auffüllen. Verwenden Sie dazu
dwtmode('zpd')