Main Content

Kritisch abgetastete diskrete Wavelet-Transformation

Die Berechnung von Wavelet-Koeffizienten für jede mögliche Skalierung bedeutet viel Arbeit und generiert eine Unmenge an Daten. Was, wenn wir nur eine Teilmenge an Skalierungen und Positionen auswählen, für die wir Berechnungen durchführen?

Es stellt sich bemerkenswerterweise heraus, dass unsere Analyse deutlich effizienter und genauso präzise ist, wenn wir Skalierungen und Positionen basierend auf Zweierpotenzen auswählen – so genannte dyadische Skalierungen und Positionen. Eine solche Analyse erhalten wir mit der diskreten Wavelet-Transformation (Discrete Wavelet Transform, DWT). Weitere Informationen zur DWT finden Sie unter Algorithms im Benutzerhandbuch der Wavelet Toolbox.

1988 wurde von Mallat eine effiziente Art der Implementierung dieses Schemas mit Filtern entwickelt (siehe [Mal89] unter Referenzen). Der Mallat-Algorithmus ist ein klassisches Schema, das in der Signalverarbeitung als Zweikanal-Subband-Codierer bekannt ist (siehe Seite 1 des Buchs Wavelets and Filter Banks von Strang und Nguyen [StrN96]).

Dieser äußerst praktische Filteralgorithmus ermöglicht eine schnelle Wavelet-Transformation – Signale werden hineingeleitet und Wavelet-Koeffizienten strömen in rascher Abfolge hinaus. Sehen wir uns das genauer an.

Einstufige Filterung: Approximationen und Details

Bei vielen Signalen ist der Niederfrequenzinhalt der wichtigste Teil. Er gibt dem Signal seine Identität. Der Hochfrequenzinhalt hingegen gibt ihm eine Nuance. Denken Sie an die menschliche Stimme. Wenn Sie die Hochfrequenzkomponenten eliminieren, klingt die Stimme anders, aber das Gesagte bleibt verständlich. Wenn Sie allerdings ausreichend Niederfrequenzkomponenten entfernen, hören Sie nur noch Kauderwelsch.

Bei der Wavelet-Analyse sprechen wir oft von Approximationen und Details. Die Approximationen sind die allgemeinen Niederfrequenzkomponenten des Signals. Die Details sind die Hochfrequenzkomponenten.

Der Filterprozess sieht einfach dargestellt folgendermaßen aus.

Das ursprüngliche Signal S durchläuft zwei komplementäre Filter, aus denen es als zwei Signale herauskommt.

Wenn wir diesen Vorgang an einem echten digitalen Signal durchführen, verdoppeln sich unsere anfänglichen Daten leider. Nehmen wir beispielsweise an, dass das ursprüngliche Signal S aus 1000 Abtastungen besteht. Dann weisen die entstehenden Signale jeweils 1000 Abtastungen auf, also insgesamt 2000.

Diese Signale A und D sind interessant, jedoch haben wir 2000 Werte anstatt der ursprünglichen 1000. Es gibt eine raffiniertere Art der Zerlegung mithilfe von Wavelets. Wenn wir uns die Berechnung sorgfältig ansehen, benötigen wir in den beiden 2000 Werte umfassenden Abtastungen nur einen von zwei Punkten und behalten trotzdem alle Informationen. Das wird als Downsampling bezeichnet. Wir erzeugen zwei Sequenzen: cA und cD.

Der Prozess auf der rechten Seite, der Downsampling umfasst, erzeugt DWT-Koeffizienten.

Um diesen Prozess besser verstehen zu können, führen wir eine einstufige diskrete Wavelet-Transformation eines Signals durch. Das Signal ist eine reine Sinuskurve, der Hochfrequenzrauschen hinzugefügt wird.

Hier sehen Sie die schematische Darstellung mit echten Signalen.

Der MATLAB®-Code, der zur Generierung von s, cD und cA erforderlich ist, lautet

s
= sin(20.*linspace(0,pi,1000)) + 0.5.*rand(1,1000);
[cA,cD] = dwt(s,'db2');

wobei db2 der Name des Wavelets ist, das wir für die Analyse verwenden möchten.

Beachten Sie, dass die Detail-Koeffizienten cD klein sind und hauptsächlich aus einem Hochfrequenzrauschen bestehen, während die Approximations-Koeffizienten cA deutlich weniger Rauschen enthalten als das ursprüngliche Signal.

[length(cA) length(cD)]

ans =
   501  501

Sie stellen vielleicht fest, dass die tatsächlichen Längen der Vektoren der Detail- und Approximations-Koeffizienten etwas mehr als die Hälfte der Länge des ursprünglichen Signals betragen. Das hängt mit dem Filterprozess zusammen, der implementiert wird, indem das Signal mit einem Filter gefaltet wird. Durch die Faltung wird das Signal „beschmutzt“, indem mehrere zusätzliche Abtastungen in das Ergebnis eingefügt werden.

Zerlegung auf mehreren Ebenen

Die Zerlegung kann wiederholt werden, wobei aufeinanderfolgende Approximationen nacheinander zerlegt werden, sodass ein Signal in viele Komponenten mit geringerer Auflösung aufgeschlüsselt wird. Dies wird als Wavelet-Zerlegungsbaum bezeichnet.

Der Wavelet-Zerlegungsbaum eines Signals kann Ihnen wertvolle Informationen liefern.

Anzahl der Ebenen

Da sich der Analyseprozess wiederholt, kann er theoretisch unendlich fortgesetzt werden. In Wirklichkeit kann die Zerlegung nur fortgesetzt werden, bis die einzelnen Details aus einer einzelnen Abtastung oder einem einzelnen Pixel bestehen. In der Praxis wählen Sie eine geeignete Menge an Ebenen basierend auf der Art des Signals oder einem geeigneten Kriterium wie Entropie aus (siehe Choosing Optimal Decomposition im Wavelet Toolbox User's Guide).