Haar-Wavelet

Aus Demo Wiki
Zur Navigation springenZur Suche springen
Datei:Haar wavelet.svg
Haar-Wavelet

Das Haar-Wavelet ist das erste in der Literatur bekannt gewordene Wavelet und wurde 1909 von Alfréd Haar eingeführt.<ref>Vorlage:Cite journal</ref> Es ist außerdem das einfachste bekannte Wavelet und kann aus der Kombination zweier Rechteckfunktionen gebildet werden.

Vorteilhaft am Haar-Wavelet ist die einfache Implementierbarkeit der zugehörigen Wavelet-Transformation als schnelle Wavelet-Transformation (FWT). Der Nachteil des Haar-Wavelets ist, dass es unstetig und daher auch nicht differenzierbar ist.

Die Funktionen der Haar-Wavelet-Basis

[Bearbeiten]

Skalierungsfunktion

[Bearbeiten]

Die Skalierungsfunktion bzw. „Vater-Wavelet“-Funktion der Haar-Wavelet-Basis ist die Indikatorfunktion des Intervalls <math>[0,1)</math>.

<math>\phi(x)=\chi_{[0,1)}(x)=\begin{cases}1&0\le x<1\\0&\mbox{sonst}\end{cases}</math>

Sie erfüllt die Funktionalgleichung

<math>\phi(x)=\phi(2x)+\phi(2x-1)=\sqrt2\left(a_0\phi(2x)+a_1\phi(2x-1)\right)</math> mit <math>a_0=a_1=\frac1{\sqrt2}</math>.

Waveletfunktion

[Bearbeiten]

Die Waveletfunktion ist die „zusammengeschobene“ Differenz zweier aufeinanderfolgender Skalierungsfunktionen:

<math>\psi(x)=\phi(2x)-\phi(2x-1)=\sqrt2\left(b_0\phi(2x)+b_1\phi(2x-1)\right)=\begin{cases}1&0\le x<1/2\\-1&1/2\le x<1\\0&\mbox{sonst}\end{cases}</math>,

wobei <math>(b_0,b_1)=(\tfrac1{\sqrt2},-\tfrac1{\sqrt2})</math>.

Die Schreibweise mit Vorfaktor sorgt dafür, dass die Matrix

<math>

H=\begin{pmatrix}a_0&a_1\\b_0&b_1\end{pmatrix} =\frac1{\sqrt2}\,\begin{pmatrix}1&1\\1&-1\end{pmatrix} </math> eine orthogonale Matrix ist. Dies ist Teil der Bedingungen, die orthogonale Wavelets erfordern.

Multiskalenanalyse

[Bearbeiten]

Diese Funktion erzeugt die Multiskalenanalyse der Stufenfunktionen. In dieser wird jeder Funktion <math>f \in L^2(\R)</math> mit „endlicher Energie“ auf jeder Skala <math>J\in\Z</math> die folgende Projektion zugewiesen:

<math>f\mapsto P_J(f)</math> mit <math>

P_J(f)(x)=\sum_{n\in\Z}\left(\int_0^1 f\left(2^{-J}(n+t)\right)\,\mathrm dt\right)\cdot\phi(2^Jx-n) </math>.

Die Differenz zwischen zwei Skalen lässt sich dann durch das „Mutter-Wavelet“ bzw. die eigentliche Waveletfunktion ausdrücken:

<math>

P_{J+1}(f)(x)-P_J(f)(x) =\sum_{n\in\Z}\left(\int_0^1 f\left(2^{-J-1}(2n+t)\right)\, \mathrm dt-\int_0^1 f\left(2^{-J-1}(2n+1+t) \right)\, \mathrm dt\right)\cdot\psi(2^Jx-n) </math>.

Mit <math>\phi_{j,k}(x)={\sqrt2\,}^j\phi({2\,}^jx-k)</math> und <math>\psi_{j,k}(x)={\sqrt2\,}^j\psi({2\,}^jx-k)</math> als Funktionen im Hilbertraum <math>L^2(\R)</math> gilt

  • alle diese Funktionen haben <math>L^2</math>-Norm 1,
  • <math>\phi_{j,k}</math> ist senkrecht zu <math>\phi_{j,l}</math> falls <math>k\not=l</math>,
  • <math>\psi_{i,k}</math> ist senkrecht zu <math>\psi_{j,l}</math> falls <math>i\not=j</math> oder <math>k\not=l</math>,
  • die <math>\psi_{i,k}</math> bilden eine Hilbertbasis von <math>L^2(\R)</math>.

Schnelle Haar-Wavelet-Transformation

[Bearbeiten]

Gegeben sei ein diskretes Signal f, welches durch eine endliche oder quadratsummierbare Folge

<math>f=(\dots,f_{-2},f_{-1},f_0,f_1,f_2,f_3,\dots)</math>

dargestellt ist. Ihm ist als kontinuierliches Signal die Treppenfunktion

<math>F(x) = \dots+ f_{-1}\phi_{0,-1}(x)+ f_0\phi_{0,0}(x)+ f_1\phi_{0,1}(x)+ f_2\phi_{0,2}(x)+ \dots</math>

zugeordnet.

Vorwärtstransformation

[Bearbeiten]

Aus dem diskreten Signal wird durch paarweises „Senkrechtstellen“ ein vektorwertiges Signal, die sogenannte Polyphasenzerlegung, erzeugt:

<math>f_p=\left(\dots,\left({f_{-2}\atop f_{-1}}\right),\left({f_0\atop f_1}\right),\left({f_2\atop f_3}\right),\dots\right)</math>.

Dieser wird nun gliedweise mit der Haar-Transformationsmatrix <math>H:=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}</math> multipliziert

<math>\left({s\atop d}\right)=:Hf_p=\left(\dots,\left({s_{-1}\atop d_{-1}}\right),\left({s_0\atop d_0}\right),\left({s_1\atop d_1}\right),\dots\right)</math>,

dabei ist <math>s_k=\frac{f_{2k+1}+f_{2k}}{\sqrt2}</math> und <math>d_k=\frac{f_{2k+1}-f_{2k}}{\sqrt2}</math>.

Rücktransformation

[Bearbeiten]

Wir erhalten ein Mittelwertsignal <math>s</math> und ein Differenzsignal <math>d</math>, aus denen durch einfache Umkehr der vorgenommenen Schritte das Ausgangssignal zurückgewonnen werden kann:

<math>f_{2k}=\frac{s_k-d_k}{\sqrt2}</math> und <math>f_{2k+1}=\frac{s_k+d_k}{\sqrt2}</math>

Ist die Schwankung von Glied zu Glied im Ausgangssignal durch ein kleines <math>\epsilon>0</math> beschränkt, so ist die Schwankung in <math>s</math> durch <math>\sqrt{2}\epsilon</math> beschränkt, also immer noch klein, die Größe der Glieder in <math>d</math> jedoch durch <math>\epsilon/\sqrt{2}</math>. Ein glattes Signal wird also in ein immer noch glattes Signal halber Abtastfrequenz und in ein kleines Differenzsignal zerlegt. Dies ist der Ausgangspunkt für die Wavelet-Kompression.

Rekursive Filterbank

[Bearbeiten]

Wir können den Vorgang wiederholen, indem wir s zum Ausgangssignal erklären und mit obigem Vorgehen zerlegen, wir erhalten eine Folge von Zerlegungen <math>s^0:=f,\; (s^1,d^1),\; (s^2, d^2, d^1),\;\dots,(s^T,d^T,\dots,d^2,d^1)</math>, <math>s^k</math> hat ein <math>2^k</math>-tel der ursprünglichen Abtastfrequenz und eine durch <math>2^{k/2}\epsilon</math> beschränkte Schwankung, <math>d^k</math> hat ebenfalls ein <math>2^k</math>-tel der ursprünglichen Abtastfrequenz und durch <math>2^{-k/2}\epsilon</math> beschränkte Glieder.

Interpretation

[Bearbeiten]

Als diskretes Signal <math>f</math> wird meist eine reelle Folge <math>(f_n)</math> über <math>Z</math> mit endlicher Energie betrachtet,

<math>\sum_{n=-\infty}^\infty\,|f_n|^2 < \infty</math>.

Unter diesen gibt es einige sehr einfache Folgen δn, Kronecker- oder Dirac-Delta genannt, eine für jedes <math>n\in Z</math>. Für deren Folgenglieder gilt, dass das jeweils <math>n</math>-te den Wert <math>1</math> hat, <math>\delta^n{}_n=1</math>, und alle anderen den Wert <math>0</math>, <math>\delta^n{}_k=0</math> falls <math>k\not= n</math>.

Jetzt können wir jedes Signal trivial als Reihe im Signalraum schreiben

<math>f=\sum_{n=-\infty}^\infty\,f_n\cdot\delta^n</math>

oder als Summe zweier Reihen

<math>f=\sum_{n=-\infty}^\infty\,f_{2n}\cdot\delta^{2n}
        +\sum_{n=-\infty}^\infty\,f_{2n+1}\cdot\delta^{2n+1}</math>.

In vielen praktisch relevanten Signalklassen, z. B. bei überabgetasteten bandbeschränkten kontinuierlichen Signalen, sind Werte benachbarter Folgenglieder auch benachbart, d. h. im Allgemeinen liegen <math>f_{2n}</math> und <math>f_{2n+1}</math> dicht beisammen, relativ zu ihrem Absolutbetrag. Dies wird in der obigen Reihen aber überhaupt nicht berücksichtigt. In Mittelwert und Differenz von <math>f_{2n}</math> und <math>f_{2n+1}</math> käme deren Ähnlichkeit stärker zum Ausdruck, der Mittelwert ist beiden Werten ähnlich und die Differenz klein. Benutzen wir die Identität

<math>ac+bd=\frac12 (a+b)(c+d)+\frac12 (a-b)(c-d)</math>

um benachbarte Glieder der ersten Reihe bzw. korrespondierende Glieder in der zweiten Zerlegung zusammenzufassen in (skalierten) Mittelwerten und Differenzen:

<math>f=\sum_{n=-\infty}^\infty\,
           \frac{f_{2n}+f_{2n+1}}{\sqrt2}\cdot\frac{\delta^{2n}+\delta^{2n+1}}{\sqrt2}
       +\sum_{n=-\infty}^\infty\,
           \frac{f_{2n}-f_{2n+1}}{\sqrt2}\cdot\frac{\delta^{2n}-\delta^{2n+1}}{\sqrt2}</math>

Jetzt führen wir neue Bezeichnungen ein:

  • die neuen Basisfolgen
<math>a^n:=\frac{\delta^{2n}+\delta^{2n+1}}{\sqrt2}</math> und <math>b^n:=\frac{\delta^{2n}-\delta^{2n+1}}{\sqrt2}</math>
  • mit den neuen transformierten Koeffizienten
<math>s_n:=\frac{f_{2n}+f_{2n+1}}{\sqrt2}</math> und <math>d_n:=\frac{f_{2n}-f_{2n+1}}{\sqrt2}</math>.

Wir erhalten somit die Zerlegung der Haar-Wavelet-Transformation

<math>f=\sum_{n=-\infty}^\infty\,s_n\cdot a^n+\sum_{n=-\infty}^\infty\,d_n\cdot b^n</math>.

und mittels des unendlichen euklidischen Skalarproduktes können wir schreiben

<math>s_n= \langle f,\,a^n \rangle</math> und <math>d_n= \langle f,\,b^n \rangle</math>.

Die letzten drei Identitäten beschreiben eine „Conjugate Quadrature Filterbank (CQF)“, welche so auch für allgemeinere Basisfolgen <math>a^n</math> und <math>b^n</math> definiert werden kann. Die Basisfolgen <math>a^n</math> entstehen alle durch Verschiebung um das jeweilige <math>2n</math> aus <math>a^0</math>, die <math>b^n</math> durch Verschiebung aus <math>b^0</math>. Weiteres dazu im Artikel Daubechies-Wavelets.

Nun enthält die Folge <math>s=(s^n)</math> eine geglättete Version des Ausgangssignals bei halber Abtastrate, man kann also auch <math>s</math> nach dieser Vorschrift zerlegen und dieses Vorgehen über eine bestimmte Tiefe rekursiv fortsetzen. Aus einem Ausgangssignal <math>s^0=f</math> werden also nacheinander die Tupel

<math>(s^1,d^1)</math>, <math>(s^2,d^2,d^1)</math>, <math>(s^3,d^3,d^2,d^1)</math>, …

Ist <math>f</math> endlich, also fast überall Null, mit Länge <math>N</math>, dann haben die Folgen in der Zerlegung im Wesentlichen, d. h. bis auf additive Konstanten, die Längen

<math>\left( \tfrac N2, \tfrac N 2 \right)</math>, <math>\left( \tfrac N4, \tfrac N4, \tfrac N2 \right)</math>, <math>\left( \tfrac N8, \tfrac N8, \tfrac N4, \tfrac N2 \right)</math>, …

so dass die Gesamtzahl wesentlicher Koeffizienten erhalten bleibt. Die Folgen in der Zerlegung eignen sich meist besser zur Weiterverarbeitung wie Kompression oder Suche nach bestimmtem Merkmalen als das rohe Ausgangssignal.

Modifikationen

[Bearbeiten]

Die Polyphasenzerlegung des Ausgangssignals kann auch zu einer anderen Blockgröße s als 2 erfolgen, von der entsprechenden Haar-Matrix ist zu fordern, dass sie eine orthogonale Matrix ist und ihre erste Zeile nur aus Einträgen <math>1/\sqrt{s}</math> besteht. Diese Anforderung erfüllen die Matrizen der diskreten Kosinustransformation und die der Walsh-Hadamard-Transformation.

Die Haar-Wavelet-Transformation entspricht einer diskreten Kosinustransformation zur Blockgröße <math>s=2</math>, welche im Bild=Pixelrechteck nacheinander in horizontaler und vertikaler Richtung angewandt wird.

Siehe auch

[Bearbeiten]

Literatur

[Bearbeiten]
[Bearbeiten]

Vorlage:Commonscat

Einzelnachweise

[Bearbeiten]

<references />