Haar-Wavelet
Das Haar-Wavelet ist das erste in der Literatur bekannt gewordene Wavelet und wurde 1909 von Alfréd Haar eingeführt.<ref>{{#invoke:Vorlage:Literatur|f}}{{#if:
| {{#if: Vorlage:Cite book/ParamBool
| Vorlage:Toter Link/archivebot
| Vorlage:Webarchiv/archiv-bot
}}
}}{{#invoke:TemplatePar|check
|all = title=
|opt = vauthors= author= author1= authorlink= author-link= author-link1= author1-link= author2= author3= author4= author5= author6= author7= author8= author9= editor= last= first= last1= first1= last2= first2= last3= first3= last4= first4= last5= first5= last6= first6= last7= first7= last8= first8= last9= first9= last10= first10= last11= first11= last12= first12= last13= first13= last14= first14= last15= first15= others= script-title= trans-title= date= year= volume= issue= number= series= page= pages= at= issn= arxiv= bibcode= doi= pmid= pmc= jstor= oclc= id= url= url-status= format= access-date= archive-date= archive-url= archivebot= offline= location= publisher= language= quote= work= journal= newspaper= magazine= periodical= name-list-style= url-access= doi-access= display-authors= via= s2cid= mr= type= citeseerx= accessdate= archivedate= archiveurl= coauthors= month= day= last16= first16= last17= first17= last18= first18= last19= first19= last20= first20= last21= first21= last22= first22= last23= first23= last24= first24= last25= first25= last26= first26= last27= first27= last28= first28= last29= first29= last30= first30= last31= first31=
|cat = Wikipedia:Vorlagenfehler/Vorlage:Cite journal
|errNS = 0
|template = Vorlage:Cite journal
|format =
|preview = 1
}}Vorlage:Cite book/URL{{#if: | Vorlage:Cite book/Meldung }}{{#if: | Vorlage:Cite book/Meldung }}{{#if: Mathematische Annalen
|| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}{{#if: Vorlage:Cite book/ParamBool
| Vorlage:Cite book/Meldung
}}Vorlage:Cite book/Meldung2{{#ifexpr: 0{{#ifeq:Haar|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}}{{#ifeq:^^|^^||+1}} > 1
| Vorlage:Cite book/Meldung
}}</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
Skalierungsfunktion
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
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
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
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
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
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
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
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
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
Literatur
- Alfréd Haar: Zur Theorie der orthogonalen Funktionensysteme, Mathematische Annalen 69, 331–371, 1910, doi:10.1007/BF01456927, insbesondere Kapitel 3 (ab S. 361).
Weblinks
|X|x= |0|-= |S|s= – Sammlung von Bildern |1|= – Sammlung von Bildern{{#if:
| {{#switch: {{#invoke:TemplUtl|faculty|1}}/{{#invoke:TemplUtl|faculty|1}}
|1/= und Videos
|1/1=, Videos und Audiodateien
|/1= und Audiodateien}}
| , Videos und Audiodateien
}}
|#default= – }}{{#if: Haar wavelet
| {{#ifeq: {{#invoke:Str|left|haar wavelet|9}}
| category:
| FEHLER: Ohne Category: angeben!}}}}Vorlage:Wikidata-Registrierung
Einzelnachweise
<references />