Haar-Wavelet
# Haar-Wavelet

Das Haar-Wavelet ist das erste in der Literatur bekannt gewordene Wavelet und wurde 1909 von Alfréd Haar eingeführt. 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

### Skalierungsfunktion

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

    $\phi (x)=\chi _{[0,1)}(x)={\begin{cases}1&0\leq x<1\\0&{\mbox{sonst}}\end{cases}}$

Sie erfüllt die Funktionalgleichung

    $\phi (x)=\phi (2x)+\phi (2x-1)={\sqrt {2}}\left(a_{0}\phi (2x)+a_{1}\phi (2x-1)\right)$ mit $a_{0}=a_{1}={\frac {1}{\sqrt {2}}}$.

### Waveletfunktion

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

    $\psi (x)=\phi (2x)-\phi (2x-1)={\sqrt {2}}\left(b_{0}\phi (2x)+b_{1}\phi (2x-1)\right)={\begin{cases}1&0\leq x<1/2\\-1&1/2\leq x<1\\0&{\mbox{sonst}}\end{cases}}$,

wobei $(b_{0},b_{1})=({\tfrac {1}{\sqrt {2}}},-{\tfrac {1}{\sqrt {2}}})$.

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

       $H={\begin{pmatrix}a_{0}&a_{1}\\b_{0}&b_{1}\end{pmatrix}}={\frac {1}{\sqrt {2}}}\,{\begin{pmatrix}1&1\\1&-1\end{pmatrix}}$

eine orthogonale Matrix ist. Dies ist Teil der Bedingungen, die orthogonale Wavelets erfordern.

### Multiskalenanalyse

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

    $f\mapsto P_{J}(f)$ mit $P_{J}(f)(x)=\sum _{n\in \mathbb {Z} }\left(\int _{0}^{1}f\left(2^{-J}(n+t)\right)\,\mathrm {d} t\right)\cdot \phi (2^{J}x-n)$.

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

    $P_{J+1}(f)(x)-P_{J}(f)(x)=\sum _{n\in \mathbb {Z} }\left(\int _{0}^{1}f\left(2^{-J-1}(2n+t)\right)\,\mathrm {d} t-\int _{0}^{1}f\left(2^{-J-1}(2n+1+t)\right)\,\mathrm {d} t\right)\cdot \psi (2^{J}x-n)$.

Mit $\phi _{j,k}(x)={{\sqrt {2}}\,}^{j}\phi ({2\,}^{j}x-k)$ und $\psi _{j,k}(x)={{\sqrt {2}}\,}^{j}\psi ({2\,}^{j}x-k)$ als Funktionen im Hilbertraum $L^{2}(\mathbb {R} )$ gilt

* alle diese Funktionen haben $L^{2}$-Norm 1,
* $\phi _{j,k}$ ist senkrecht zu $\phi _{j,l}$ falls $k\not =l$,
* $\psi _{i,k}$ ist senkrecht zu $\psi _{j,l}$ falls $i\not =j$ oder $k\not =l$,
* die $\psi _{i,k}$ bilden eine Hilbertbasis von $L^{2}(\mathbb {R} )$.

## Schnelle Haar-Wavelet-Transformation

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

    $f=(\dots ,f_{-2},f_{-1},f_{0},f_{1},f_{2},f_{3},\dots )$

dargestellt ist. Ihm ist als kontinuierliches Signal die Treppenfunktion

    $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$

zugeordnet.

### Vorwärtstransformation

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

    $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)$.

Dieser wird nun gliedweise mit der Haar-Transformationsmatrix $H:={\frac {1}{\sqrt {2}}}{\begin{pmatrix}1&1\\1&-1\end{pmatrix}}$ multipliziert

    $\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)$,

dabei ist $s_{k}={\frac {f_{2k+1}+f_{2k}}{\sqrt {2}}}$ und $d_{k}={\frac {f_{2k+1}-f_{2k}}{\sqrt {2}}}$.

### Rücktransformation

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

    $f_{2k}={\frac {s_{k}-d_{k}}{\sqrt {2}}}$ und $f_{2k+1}={\frac {s_{k}+d_{k}}{\sqrt {2}}}$

Ist die Schwankung von Glied zu Glied im Ausgangssignal durch ein kleines $\epsilon >0$ beschränkt, so ist die Schwankung in $s$ durch ${\sqrt {2}}\epsilon$ beschränkt, also immer noch klein, die Größe der Glieder in $d$ jedoch durch $\epsilon /{\sqrt {2}}$. 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

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

### Interpretation

Als diskretes Signal $f$ wird meist eine reelle Folge $(f_{n})$ über $Z$ mit endlicher Energie betrachtet,

    $\sum _{n=-\infty }^{\infty }\,|f_{n}|^{2}<\infty$.

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

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

    $f=\sum _{n=-\infty }^{\infty }\,f_{n}\cdot \delta ^{n}$

oder als Summe zweier Reihen

    $f=\sum _{n=-\infty }^{\infty }\,f_{2n}\cdot \delta ^{2n}+\sum _{n=-\infty }^{\infty }\,f_{2n+1}\cdot \delta ^{2n+1}$.

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

    $ac+bd={\frac {1}{2}}(a+b)(c+d)+{\frac {1}{2}}(a-b)(c-d)$

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

    $f=\sum _{n=-\infty }^{\infty }\,{\frac {f_{2n}+f_{2n+1}}{\sqrt {2}}}\cdot {\frac {\delta ^{2n}+\delta ^{2n+1}}{\sqrt {2}}}+\sum _{n=-\infty }^{\infty }\,{\frac {f_{2n}-f_{2n+1}}{\sqrt {2}}}\cdot {\frac {\delta ^{2n}-\delta ^{2n+1}}{\sqrt {2}}}$

Jetzt führen wir neue Bezeichnungen ein:

* die neuen Basisfolgen

       $a^{n}:={\frac {\delta ^{2n}+\delta ^{2n+1}}{\sqrt {2}}}$ und $b^{n}:={\frac {\delta ^{2n}-\delta ^{2n+1}}{\sqrt {2}}}$
* mit den neuen transformierten Koeffizienten

       $s_{n}:={\frac {f_{2n}+f_{2n+1}}{\sqrt {2}}}$ und $d_{n}:={\frac {f_{2n}-f_{2n+1}}{\sqrt {2}}}$.

Wir erhalten somit die Zerlegung der Haar-Wavelet-Transformation

    $f=\sum _{n=-\infty }^{\infty }\,s_{n}\cdot a^{n}+\sum _{n=-\infty }^{\infty }\,d_{n}\cdot b^{n}$.

und mittels des unendlichen euklidischen Skalarproduktes können wir schreiben

    $s_{n}=\langle f,\,a^{n}\rangle$ und $d_{n}=\langle f,\,b^{n}\rangle$.

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

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

    $(s^{1},d^{1})$, $(s^{2},d^{2},d^{1})$, $(s^{3},d^{3},d^{2},d^{1})$, …

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

    $\left({\tfrac {N}{2}},{\tfrac {N}{2}}\right)$, $\left({\tfrac {N}{4}},{\tfrac {N}{4}},{\tfrac {N}{2}}\right)$, $\left({\tfrac {N}{8}},{\tfrac {N}{8}},{\tfrac {N}{4}},{\tfrac {N}{2}}\right)$, …

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

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 $1/{\sqrt {s}}$ 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 $s=2$, welche im Bild=Pixelrechteck nacheinander in horizontaler und vertikaler Richtung angewandt wird.

