Fourier-Transformation / Wavelet-Transformation

Da es viele Unklarheiten in Sachen FT, FFT gibt, will ich hier mal erläutern, wie man die diskrete FT und 
die diskrete IFT herleitet, und wie man Diese anwendet. Außerdem möchte ich klären, in welcher Beziehung
die FT zur Wavelet-Tranformation steht, und auch die Wavelet-Transformation selber soll nicht zu kurz kommen.

Inhalt:

Herleitung der amplitudengerechten diskreten FT
Rücktransformation des amplitudengerechten Spektrums
Frequenz- und Ortsauflösung der Fouriertransformation
Was ist eigentlich eine Transformation
Haar Wavelet Basis
Wavelet Theorie und Synthese
Lösen der Zwei-Skalen-Gleichung


Herleitung der amplitudengerechten diskreten FT

Die Formel für die kontinuierliche FT lautet für eine Spannungs-Funktion U(t):

Mue soll ein beliebiger Faktor sein, den wir erst zuletzt bei der Amplituden-Eichung bestimmen werden. Man
sieht, dass U(w) ein Amplituden-Dichte-Spektrum [V/Hz] darstellt. U(w) ist zur w=0-Achse konjugiert gespiegelt,
das kann man sich folgendermaßen klar machen:

Nun nehmen wir an, dass U(t) eine periodische Funktion mit der Periodendauer T ist. Bei der DFT wird immer
mit periodischen Funktionen gearbeitet. Dann wird nämlich das Spektrum diskret und wir können schreiben:

Man kann natürlich mathematisch beweisen, dass die Umwandlung von Gleichung (1) zu (2) exakt ist.
Man erkennt, dass wegen dw*t = 2pi*t/T das Integral sich alle kT wiederholt. Mit jeder Integration einer Periode 
werden die Spektrallinien um den gleichen Betrag erhöht. Deswegen kann ohne die Form des Spektrums zu
verändern, die Integration auf 0 bis T eingeschränkt werden:

Die Absolutwerte von U(w) sind jetzt endlich, vorher waren sie unendlich groß.
Wir müssen nur darauf achten, die Form des Spektrums bei allen Umwandlungen beizubehalten. Die Absolutwerte
interessieren uns erstmal nicht, dafür haben wir ja den noch unbekannten Faktor Mue.
Um den Übergang zur diskreten FT zu schaffen, tasten wir nun U(t) punktweise (mit Dirac-Nadeln) ab:

Die sogenannte Dirac-Funktion (delta(x) ) übernimmt die Abtastung. Da Sigma nur bei x=0 also bei t=k*dt zusammen
mit dt den Wert 1 ergibt, können wir das Integral als Summenformel schreiben:

Das ist die bekannte Formel für die diskrete FT, die auch von der FFT so gerchnet wird (ohne Mue). Wie man sieht,
wiederholt sich U(i) für alle i = n*N (period. Spektrum).
Bevor es weiter geht, wollen wir noch klären, ob die Umwandlung von (3) zu (4) zu einer Änderung der Form des
Spektrums geführt hat. Das kann man aber überspringen, deswegen habe ich diesen Teil grau hinterlegt.

Die FT der Sigma-Funktion sieht so aus:

Da Sigma*dt nur bei t = k*dt eins wird, können wir das Integral wieder als Summe schreiben:

Die Gleichung (8) sollte man sich merken, die brauchen wir noch öfter.

Die diskrete Faltung sieht dann letztendlich so aus:

Wenden wir die Formel (8) für Sigma an, dann erhält man in der Summe, für k = i, k = i+N, k = i+2N usw., Sigma = N.
Alle anderen k's in der Summe verschwinden, weil dort Sigma = 0 liefert.
Unter der Vorraussetzung, dass alle U(wk) für  Betrag(k) >= N/2 gleich 0 sind, ergibt sich:

Man sieht, dass das Abtast-Spektrum um den Faktor N größer ist als das Original-Spektrum. Die Form bleibt also
erhalten, unter der Vorraussetzung:

Nur wenn das Spektrum des Original-Signals ab der halben Abtast-Frequenz fs = ws/2pi verschwindet, hat das
abgetastete Signal das selbe Form-Spektrum.

An Formel (9) erkennt man auch sehr schön, dass sich das Spektrum des abgetasteten Signals alle i = n*N 
wiederholt, das Original-Spektrum ist natürlich nicht periodisch.

Num müssen wir nur noch den ominösen Faktor Mue bestimmen, um die DFT amplitudengerecht zu machen.
Wenn man Formel (5) eine einzelne Cosinus-Schwingung der Amplitude 1 übergibt, dann muß nach FT die entsprechende
Frequenz-Linie ebenfalls den Wert 1 liefern.
Eine Cosinus-Schwingung der Amplitude 1 und der Frequenz wm wird in Exp-Schreibweise so ausgedrückt:

Wir setzen Formel (12) in Formel (5) ein und erhalten nach Ausmultiplizieren und Summen-Trennung:

Die Summen sind wieder im Wesentlichen mit Formel (8) identisch. Die erste Summe gibt nur für i = m den Wert
Mue/2*N zurück, die zweite Summe nur für i = m = 0 den Wert Mue/2*N zurück. Mit Hilfe dieser Erkenntnisse
erhalten wir:

Jetzt können wir endlich die amplitudengerechte diskrete FT aufschreiben:

Die (1) ist für i=0 zu nehmen. Dieses Spektrum ist zwar periodisch, uns interessiert aber nur der Bereich zwischen
i=0 und i<N. Für die eigentliche Spektral-Analyse ist nur der Bereich zwischen i=0 und i<N/2 zu verwenden, da hier
alle Informationen des Spektrums stehen (Der Bereich ab N/2+1 ist konjugiert gespiegelt zum Bereich unter N/2).
An Formel df = 1/T erkennt man auch, dass die Frequenzauflösung df umgekehrt proportional zur Zeitauflösung
T ist, und umgekehrt (df*T=1). Diese Art der Unschärferelation ist ein Dillema der DFT. Die Wavelet-Transformation
behebt dieses Problem (wie besprechen wir später).


Rücktransformation des amplitudengerechten Spektrums

Jede Linie in einem diskreten Spektrum können wir uns als Cosinus-Schwingung mit entsprechenden Betrag und
Phase vorstellen. Um nun die Zeitfunktion zu ermitteln, müssen wir nur alle Cosinus-Schwingungen für jeden Zeit-
punkt t zusammen addieren. Da wir von einer periodischen Zeit-Funktion ausgehen, reicht es aus wenn t von 0 bis
T-dt läuft. Wir machen also mit N2 = N/2 folgenden Ansatz:

Wir quanteln jetzt die Zeit in Schritten von dt und schreiben nur noch die Indezes. Einsetzen von Formel (21) in
Formel (20), Sortierung und Summen-Trennung ergibt dann:

Diese Formel könnten wir schon für die IFT verwenden, wenn man nach entsprechenden Umformungen die 
FT (Formel (16)) zweimal aufrufen möchte. Wir wollen aber die IFT so hintricksen, das die Summe der Formel (16)
auch für die IFT verwendet werden kann. Diese Summe repräsentiert nämlich die FFT.
Die erste Summe von (22) bezeichnen wir mit U1, die zweite mit U2. Wir kümmern uns jetzt erstmal nur um U2.
Wir müssen U2 so umformen, dass k von N2 bis N-1 läuft und wir die Summen U1 und U2 zusammen führen können.
Wir erweitern jetzt das Spektrum bis Index N-1:


Nun substituieren wir: N-k --> k und erhalten:

U2 hat nun eine Form, die mit U1 verschmelzbar ist. Also schreiben wir alles wieder komplett zusammen:

U(N/2) muß Null gesetzt werden, da es in beiden Summen nicht vorkommt.
Jetzt müssen wir noch U(0) irgendwie in die Summe hereinbringen. Bei k=0 ergäbe sich in der Summe ein Wert
von 1/2*U(0). Wir bringen also U(0) in Summe rein, müssen aber darauf achten, dass bei k=0 mit 2 multipliziert
wird. U(0) als vor der Übergabe an die IFT mit 2 multiplizieren. Ab k=0 sieht die Formel nun so aus:

Wir sind leider immer noch nicht ganz fertig, vor das j muß noch ein Minus gezaubert werden, um komplett mit
Formel (16) gleich zu ziehen. Aber die Trick-Kiste ist noch nicht leer:

Wir konjugieren hier U(k) und die Exp-Funktion, und erhalten konjugiert-komplexe Summen-Terme. Diese
Umformung ist natürlich nicht exakt. Das ist bei dieser Art der IFT-Anwendung aber kein Problem, da das
Ergebniss reelle Zeitfuntions-Werte sind, und sich dadurch die imaginären Spektral-Anteile soundso wegsummieren.

Wenn das Spektrum U(k) (k=0...N/2-1) vorliegt muß vor einer IFT programmiertechnisch folgendes getan werden:

1. den Spektral-Vektor auffüllen: U(N-k) = Konj(U(k)) für k = 1...N/2-1
2. U(N/2) = 0 setzen
3. U(0) mit 2 multiplizieren
4. den gesamten Vektor konjugieren: U(k) = Konj(U(k)) für k = 1...N-1
5. der FFT übergeben und U(i) berechnen lassen,  i = 0...N-1
6. den Zeitfunktions-Vektor mit 0.5 multiplizieren: U(i) = 0.5*U(i) für i = 0...N-1
    die 0.5 kann man natürlich auch schon vorher bei U(k) berücksichtigen

Und abschließend noch die Gleichung für die FFT:

Obwohl FT und IFT von der Natur her vollkommen verschieden sind, kann mit etwas Trickserei für Beide die
Summen-Formel (29) (reallisiert durch die FFT) benutzt werden.


Frequenz- und Ortsauflösung der Fouriertransformation

Oft besteht die Aufgabe, das Spektrum in möglichst kleinen Bereichen des Signals zu ermitteln. Z.Bsp. bei der
Bilddaten-Kompression müssen kleine Bereiche des Bildes untersucht werden, oder ein Analysator kann immer
nur einen Teil des Signals aufnehmen und analysieren. Man spricht dann auch von einem lokalen Spektrum.
Die einfachste Lösung dieses Problems ist die Fensterung des Signals. Das heißt, man fouriertransformiert einfach
nur den interessierenden Teil, den Anderen schmeißt man mehr oder weniger weg. Diese Vorgehensweise wird auch
als Short-Time-FT (STFT) oder auch als WFT bezeichnet.

Bild1 zeigt zwei aufaddierte Schwingungen unterschiedlichster Frequenz. Die Fensterung soll mit der Fensterbreite
ST stattfinden. 

Es gibt verschiedene Arten von Fenstern ( z.Bsp. Rechteck, Gaussian, Sin^2 usw.). ST stellt i.A. die Standart-
abweichung der Fensterfunktion dar, was der mittleren Breite des Fensters entspricht. Folgende Formel zeigt
die FT eines lokalen Bereichs (Tau) des Signals U(t):

W(t) ist die Fensterfunktion, die je nach gewünschter Fensterbreite bei t = Tau herum eins ergibt, und mit 
zunehmender Entfernung zu Tau gegen null tendiert.
Die einfachste Fensterfunktion ist das Rechteck-Fenster. Hier muss man die Integration einfach nur auf den
Bereich des Rechtecks einschränken.
Um herauszufinden, wie sich die Rechteck-Fensterung auf das Ergebniss-Spektrum auswirkt, machen wir folgendes:
Wir nehmen eine Cosinus-Schwingung der Frequenz wl her, um Diese im Bereich -ST/2 bis ST/2 fourierzutransformieren,
und setzen Tau = 0. Also:


Es ist unwesentlich wo wir die Schwingung lokalisieren, das Ergebniss wird immer das Selbe sein. Wir formen um,
und erhalten:

Dieses bestimmte Integral läßt sich nun leicht ausrechnen:

Man sieht, dass das Ergebniss rein reell ist, und im Wesentlichen eine Spaltfunktion darstellt. Wenn wir uns U(w)
graphisch anschauen, wird deutlicher was hier passiert.

Bild 2 zeigt die Spektren von zwei Cosinus-Schwingungen unterschiedlicher Frequenz, die mittels Rechteck der
Breite T = 10ms transformiert wurden:

Bild 3 zeigt das Gleiche, nur mit T = 1ms:

Ideal wäre das Auftauchen nur der Linie mit der Frequenz der Cosinus-Schwingung. Durch die Fensterung aber
wird das Spektrum gespreizt. Ein Maß für diese Spreizung ist die Standartabweichung (Sf) des Spektrums. Sf
ist also die mittlere Breite des Ergebniss-Spektrums. Je größer diese Breite, desto schlechter lassen sich 
benachbarte Schwingungen (nach FT) voneinander trennen. 1/Sf wird auch als Frequenz-Auflösung bezeichnet,
während 1/ST  Zeit (Orts)-Auflösung genannt wird.
Vergleicht man Bild2 mit Bild3 erkennt man, dass ein kleines ST zu einer großen Frequenz-Spreizung Sf führt.
Man kann nämlich schreiben: Q = ST*Sf = const. Dieses Produkt sollte möglichst klein sein, um bei hoher Zeit-
Auflösung auch hohe Frequenz-Auflösung zu erzielen. Beim Rechteck-Fenster ist die Güte Q misserabel, deswegen
versuchen wir es nochmal mit einer anderen Fensterfunktion.

Wir untersuchen nun, wie sich die sogenannte Gaussian-Funktion als Fensterfunktion schlägt. Die Formel für
diese Funktion lautet für Tau = 0:

Die FT mit diesem Fenster wird auch als Gabor-Transformation bezeichnet. Die Standartabweichung errechnet sich
zu ST = Sigma.
Wir nehmen wieder eine Cosinus-Schwingung (Frequenz wl) und transformieren bei Tau = 0:

Nach Ausmultiplizieren und Zusammenfassen läßt sich dieses betimmte Integral ausrechnen:

Das Ergebniss ist wieder rein reell und entspricht einer Gaussian-Funktion (wie die Fensterfunktion). 
Wir schauen uns U(w) wieder graphisch an

Bild 4 zeigt die Spektren von zwei Cosinus-Schwingungen unterschiedlicher Frequenz, die mittels Gaussian der
Breite Sigma = ST = 10ms transformiert wurden:

Bild 5 zeigt das Gleiche, nur mit Sigma = 1ms:

Wie man sieht, ist die Güte (Q = ST*Sf) dieses Fensters wesentlich besser als die des Rechteck-Fensters. Andere
Fenster-Typen liegen da irgendwo dazwischen. Ein Nachteil der Gabor-Transformation ist, dass das Signal
über einen größeren Zeitraum transformiert werden muß, da die Exp-Funktion nicht abrupt gen 0 geht. Die
Gabor-Transformation geht schon in Richtung Wavelet-Transformation, wo das gesamte Signal transformiert
werden muß.

Man sieht bei beiden Transformationen, dass die absolute Bandspreizung, unabhängig von wl, immer konstant bleibt.
Die relative Spreizung nimmt aber mit sinkender Frequenz wl immer mehr zu. Das heißt, dass tiefe Frequenzen
(relativ gesehen) schlechter voneinander getrennt werden können als Höhere. Kann man z.Bsp. 1khz und 1.1khz
gerade noch so trennen, so kann 100Hz von 200Hz gerade noch so getrennt werden.

Für periodische Funktionen sind die hier besprochenen Probleme mehr oder weniger uninteressant, da man eine
period. Funktion in der Regel nicht lokal untersuchen will. Man nimmt als Fensterbreite einfach die Periodendauer
T (Rechteck-Fenster) und erhält als Frequenzauflösung df = 1/T. Es gilt hier also: Q = ST*Sf = T*df = 1. Auch ist
zwischen den benachbarten Frequenzen (i+1)*df und i*df Vakuum (diskretes Spektrum).


Was ist eigentlich eine Transformation

Bevor wor weiter machen, soll noch geklärt werden, wie eine sogenannte orthogonale Transformation funktioniert.
Wir gehen von der Filter-Funktion im Frequenzbereich aus:

Im Zeitbereich wird eine Multiplikation im Frequenzbereich als Faltung ausgedrückt:

Nun setzen wir als einfaches Beispiel für g(t) die Cosinus-Funktion mit dem Parameter w ein und betrachten nur noch
den Zeitpunkt t = 0:

Betrachtet wird hier also das Ergebniss der Filterung zu einem festgesetzten Zeitpunkt, bei verschiednen Frequenzen.
Die Frequenz tritt als Parameter auf, für Jede könnte man sich ein eigenes Filter vorstellen, so dass eine Filterbank
mit unendlich vielen (unendlich schmalen) Filtern entsteht. cos(wt) wird in diesem Kontext als Filter-Funktion bezeichnet.
Wir müssen nun herausfinden unter welchen Bedingungen unsere simple Cosinus-Transformation überhaupt
funktioniert. Es muß folgende Bedingung unbedingt erfüllt werden:

Man muß sich die Cosinus-Funktionen als im Unendlichen gegen Null laufend vorstellen, damit die Integration funktioniert
(sonst bei w1 = w2 --> unendlich, bei w1 != w2: undefiniert endlich). Eigentlich müßte man mit einer Abkling-Funktion
exp(-a*t^2) (a --> 0) multiplizieren. Dies ändert aber nichts an der Sachlage.
cos(wt) wird in diesem Kontext als Basis-Funktion bezeichnet. Die Integration der Multiplikation zweier Basis-Funktionen
muß bei unterschiedlichen Parametern immer Null ergeben. Nur wenn beide Parameter gleich sind darf ein Wert ungleich
Null herauskommen. Ist dies erfüllt, spricht man von einer orthogonalen Basis. Folgendes einfaches Beispiel sollte den
Sachverhalt klar machen:

Wir nehmen an, dass x(t) nur aus zwei verschiedenen Cosinus-Schwingungen besteht. Die Amplituden Ya, Yb sind infinitesimal
klein, das tut aber nichts zur Sache. Da bei der Frequenz w = wa ein Wert der Form µ*Ya herauskommen soll, muß das
Integral für cos(wb*t) Null ergeben. Bei w = wb ist es natürlich analog. Alle anderen Frequenzen ergeben Null. Wenn man sich
x(t) als Summe von unendlich vielen solcher Cosinus-Schwingungen vostellt, wird klar, dass es sich hier um eine Art von
Schlüssel-Schloss-Prinzip handelt. Nur die Teil-Schwingung im Gesamt-Signal x(t) deren Parameter mit dem der Basis-
Funktion übereinstimmt (hier w) wird erfasst und an Y(w) zurückgegeben. Es wird auch ersichtlich, dass x(t) nur aus der
Linearkombination von reinen Cosinus-Schwingungen bestehen darf. Bei Sinus-Schwingungen ergibt das Integral immer 0.
Die Sache funktioniert also nur bei symmetrischen Funktionen (zu t=0). Dieses Problem kann man lösen, wenn man noch
die Basis-Funktion sin(wt) einführt und die beiden Ergebnisse irgendwie getrennt speichert. Eine Cosinus-Schwingung
mit beliebiger Phasen-Verschiebung kann man nämlich folgendermaßen darstellen:

Cosinus- und Sinusfunktion sind zueinander orthogonal (passen also schlüssel-schloss-mäßig nicht zusammen).
Deswegen führen wir jetzt noch eine Sinus-Transformation ein und addieren beide Transformationen so, dass man die
Ergebnisse später auch auseinanderhalten kann. Dafür benützen wir für die Sinus-Transformation den imaginären Operator j.

Wir schreiben die Formel etwas eleganter und erhalten tatsächlich die Fouriertransformation:

Wir quanteln nun x(t) in Zeitschritte dt und nehmen an, dass x(t) nur im Bereich 0 bis T-dt ungleich Null ist, oder eine
periodische Funktion mit der Periodendauer T ist. Mit N*dt = T ist die Gleichung zur Bestimmung der Orthogonalität nun
eine Summenformel:

Prinzipiell machen wir das Selbe wie bei der kontinuierlichen Transformation, nur dass die Zeit gequantelt und die Anzahl
der Frequenzen endlich ist (Abtastung mit Dirac-Nadeln).
Mit einem Additionstheorem formen wir um:

Die beiden Summen müssen jede für sich Null werden. Anders geht es einfach nicht. Nur wenn in den Summen immer das
ganzzahlige Vielfache einer vollen Cosinus-Periode bis k = N-1 durchlaufen wird, ergeben die Summen Null. Wir können
also folgenden Ansatz wählen:

Wie man sieht, muss auch die Frequenz gequantelt werden um Gleichung (59) zu erfüllen. Wir sind noch nicht fertig, es
muß noch folgender Fall analysiert werden: Bei k = 1 darf nicht schon die nächste Periode im Cosinus erreicht werden, da
sich sonst die Summen-Terme zum Wert N aufaddieren. Wir wählen daher folgenden Ansatz:

Beide Frequenzen, im untersuchten Signal x(t) und in der Basis-Funktion, müssen kleiner als die halbe Abtastfrequenz
sein, damit die Orthogonalität erhalten bleibt und die Ergebnisse exakt sind. Formel (63) ist auch als Nyquist-Kriterium
bekannt.

Damit bei Multiplikation gleicher Frequenzen der richtige (amplituden-gerechte) Wert heraus kommt, müssen wir einen
Faktor µ folgendermaßen berechnen:

Man sagt dazu auch, dass die Transformation durch Multiplikation mit diesem Faktor orthonormal wird.
Unsere simple diskrete Cosinus-Transformation ergibt sich dann letztendlich zu:

Die Rück-Transformation ist ganz einfach das Aufaddieren (linear kombinieren) der Basis-Funktionen gewichtet mit dem
entsprechenden Y(wi). x(t) ist ja nichts anderes als die Linearkombination dieser verschiedenen Basis-Funktionen.

Analog zu Formel (56) könnten wir das Gleiche mit der Sinus-Basis wiederholen und die DFT aufschreiben. Aber ich mach
hier mal Schluss, wir wollen dann mit einer interssanteren Basis-Funktion weiter machen.


Haar Wavelet Basis

Die Mutter-Funktion des Haar-Wavelets ist wie folgt definiert:

Die Basis-Funktionen werden aus der Mutter-Funktion abgeleitet:

Bild 6: Mutter-Haar-Wavelet und Beispiele für Basis-Funktionen:

Man sieht, dass der Parameter j für die Breite des Wavelets (Frequenz) und der Parameter k für die Verschiebung (Ort)
verantwortlich ist. a steht direkt für die Breite und b direkt für die Verschiebung. Je größer j wird, desto kleiner wird die
Breite, die gleichzeitig die kleinste Verschiebungslänge darstellt.
Es läßt sich zeigen, dass das Integral zur Bestimmung der Orthogonalität für ungleiche  Haar-Funktionen immer 0 ergibt:

Die Haar-Funktionen bilden also eine orthogonale Basis mit der man eine Transformation durchführen kann.
Vorraussetzung ist natürlich, dass sich die zu transformierende Funktion auch als Linear-Kombination von verschiedenen
Haar-Funktionen H(j,k,x) darstellen läßt. Es wird schnell klar, dass dies für Treppen-Funktionen gilt. Je kleiner die
Treppen-Längen werden, desto größer muß auch j gewählt werden, um die Funktion richtig darzustellen. Auch die 
Anzahl der Wavelets wächst entsprechend an. Eine kontinuierliche Funktion würde demnach aus unendlich vielen
Haar-Funktionen bestehen, deren Breite gegen 0 tendiert. Das macht natürlich keinen Sinn, daher werden Haar-Wavelets
bei Messreihen mit endlich vielen Werten oder eben auch bei der Bild-Kompression (Pixel-Reihen) eingesetzt.
Ein großer Vorteil der Wavelet-Basis ist das Vorhandensein eines zweiten orthogonalen Parameters (k, b), der den Ort der
Wavelet-Funktion im Signal angibt. Dadurch wird eine Lokalisierung möglich, ohne das Signal in Teilbereiche zerlegen
zu müssen (Fensterung).

Wir berechnen nun den Faktor zur Herstellung der Orthonormalität wenn zwei Gleiche aufeinander treffen wie folgt:

Die Wavelet-Transformation sieht dann so aus:

Wir können uns hier auf den Bereich von 0 bis 1 beschränken. Da für den Offset (Mittelwert) kein Wavelet-Gegenstück
vorhanden ist, muß für dessen Ermittlung mit der sogenannten Skalierungs-Funktion anstelle von H integriert werden. Die
Scaling-Funktion des Haar-Wavelets ist ein Rechteck und ist definiert zu:

Wenn man nur Hs(x) bzw. H(0,0,x) verwendet, entspricht das einer Mittelwert-Bildung über den gesamten Bereich. Ansonsten
kann man mittels Hs die Offsets in verschiedenen Wavelet-Bereichen (j,k bzw. a,b) ermitteln.

Wir wollen nun aus Gleichung (70) die dieskrete WLT ableiten. Das ist absolut kein Problem, da die Haar-Funktionen von
Hause aus, diskret aufgebaut sind. Wir legen ein jmax fest und tasten in x-Richtung so ab, dass das schmalste Wavelet zwei-
mal (also der 1 und -1 Bereich) abgetastet wird:

Da wir nur den Bereich bis x=1 betrachten müssen, können wir k einschränken:

Die diskrete WFT sieht dann folgendermaßen aus:

Es ist offensichtlich, dass durch Abtastung die Funktion T(x) zu einer Haar-Wavelet-konformen Treppen-Form gemacht wird.
Je größer man jmax festlegt, desto feiner wird die Treppen-Funktion (und damit die Genauigkeit). So etwas wie ein Nyquist-
Kriterium gibbet hier nicht. 
Für Messreihen der Anzahl N legt man jmax und dx so fest:

Kommen wir nun zur Rücktransformation. Diese ist wieder nichts anderes als das Aufaddieren der einzelnen Basis-Funktionen
H(j, k, x) gewichtet mit dem Faktor Wx(j, k). Diese Linearkombination ergibt dann also wieder die Zielfunktion T(x).

Für die kontinuierliche Rücktransformation erhält man dann:

C00 ist der Offset, der getrennt berechnet werden muß. Die diskrete IWLT erhält man einfach durch Substitution x --> i*dx.

Und zum Abschluss noch ein paar Beispiel-Rechnungen.

Bild 7: Linearkombination eines Rechtecks mit 2 Haar-Funktionen, H(1,0) = -0.5, H(1,1) = 0.5

Habe die Kurven in Y- und X-Richtung etwas verschoben, damit man die einzelnen Funktionen besser auseinanderhalten
kann. Also bitte die Absolutwerte nicht so genau nehmen.

Bild 8: Transformation einer Mess-Serie aus 8 Werten, H(1,0)=-1, H(1,1)=1, H(2,0)=H(2,1)=-0.5, H(2,2)=H(2,3)=0.5

Bild 9: Zwei Sinus-Funktionen transformiert und zurücktransformiert mit jmax=3, und jmax=4

Die rote Kurve habe ich etwas phasen-verschoben.

Zusammenfassung:

Wie dem geneigten Leser aufgefallen sein dürfte, ist der große Vorteil der WLT gegenüber der WFT der
zusätzliche Orts-Parameter. Es wird eine Komplett-Transformation aller Daten durchgeführt, Frequenz- und
Ortsinformationen liegen vollständig mit einem Schlag vor. Frequenz- und Ortsinformation sind praktisch
unabhängig voneinander. Die WFT analysiert nur einen kleinen Teil der Daten (Fensterung), wodurch die
Informationen außerhalb des transformierten Bereiches unberücksichtigt bleiben. Je kleiner das Zeit/Orts-
Fenster, desto weniger Informationen aus den anderen Bereichen können mit eingerechnet werden. Daraus
resultiert ja eben die fallende Frequenz-Auflösung (Unschärfe-Relation). Man ist eben bei der Datenkompression
darauf angewiesen, spektrale Informationen von verschiedenen Orten zu bekommen.
Es gibt neben dem Haar-Wavelet noch unglaublich viele andere Wavelet-Funktionen. Erstaunlicherweise
sieht man einer Wavelet-Funktion schon an (vom Verlauf her) für welche Anwendungsfälle es geeignet erscheint.
Das Haar-WL eignet sich für Werte-Serien (z.Bsp. Statistik, Messwert-Erfassung, Bitmaps), aber auch Kanten
können sehr gut erfasst werden.
Allen Wavelets gemein ist das Vorhandensein zweier orthogonaler Parameter (Breite, Ort), dass Ihr Mittelwert
immer Null ist (Bandpass-Filter), und dass Sie ortsbegrenzt sind (endliche einstellbare Breite). Eine Cosinus-
Funktion könnte man als Wavelet mit unendlicher Breite ansehen, wodurch der Orts-Parameter sinnlos wird.
Die Phase der Cosinus-Funktion taugt nicht als orthogonaler Parameter.

Wavelet Theorie und Synthese

Die theoretische Beschreibung von Wavelets erfolgt mit der sogenannten Multiskalen-Analyse. Dabei wird ein
verschachtelter Raum von Funktionen aufgespannt:

Jede Funktion ist Teil der Funktionen-Familie L2(R). L2(R) ist die Menge aller Funktionen, deren quadratisches Integral
endlich ist (also endliche Breite haben). Der Funktionen-Raum wird in Ebenen Vj unterteilt. Die Funktion in der Ebene Vj
muß sich als Linear-Kombination aus den Funktionen in der Ebene Vj+1 darstellen lassen.

Zuerst muß eine Funktion gefunden werden, die bestimmte Eigenschaften haben muß. Diese Funktion wird auch
Skalierungsfunktion oder auch Vater-Wavelet genannt. Um V0 als Summierung von V1 darstellen zu können, wobei die
Funktionen in V1 skallierte (2x)  und verschobene (um n*0.5) Versionen der Funktion in V0 sein müssen (selbstähnlich),
muß die sogenannte Zwei-Skalen-Gleichung erfüllt werden:

Alle Bedingungen, die für V0 --> V1 erfüllt werden, sind auch für beliebige Vj --> Vj+1 automatisch erfüllt. Bild 10
veranschaulicht diesen Sachverhalt am Beispiel der Rechteckfunktion. 

Wir müssen unbedingt die Koeffizienten der Skalierungsfolge (a0, a1, ..., aN-1) herausfinden, um dann aus Diesen die
Skalierungsfunktion entwickeln zu können. Wie wir später noch sehen werden, ist einer bestimmten Skalierungs-
folge immer nur eine Skalierungsfunktion zugeordnet (ist die einzige Lösung der Gleichung (78)).
Man erkennt, dass der Vektor (...a0, a1...) ein FIR-Filter mit der Verzögerung 0.5 darstellt. geht rein, geht
raus. In den Frequenzbereich transformiert kann man also schreiben:

Mit der Substitution u = 2x kann man mittels der FT ableiten:

also wird:

Für das FIR-Filter gilt im Frequrnzbereich:

An Gleichung (81) erkennt man, dass einen Tiefpass ergeben muß, da bist zur ersten Nullstelle viel stärker
abfällt als . Dieser Tiefpass kann nur realisiert werden wenn bei eine Nullstelle auftritt.

Für die hier beschriebene "aus 2 mach 1"-Variante ergibt sich demnach immer: a0 = 1, a1 = 1. Die einzige Lösung von
Gleichung (78) ist dann in diesem Falle eben die Vater-Funktion des Haar-Wavelets.

Eine weitere Bedingung für die Skalierungs-Funktion ist deren Orthogonalität zu ganzzahligen Selbst-Verschiebungen k,
nämlich:
                     

Damit sich eine Funktion mit dieser Eigenschaft aus den Skalierungs-Koefizienten entwickelt, müssen Diese noch folgende
Bedingungen erfüllen:
                      

Wenn alle Koefizienten der Skalierungsfolge berechnet sind (und das ist eine Wissenschaft), kann die Skalierungsfunktion
durch Lösen der Zwei-Skalen-Gleichung (78) berechnet werden (wie: später). Aus kann dann mittels folgender
Formel die Wavelet-Funktion ermittelt werden:

Die Skalierungsfolge geht hier von a0 bis aN-1.
Durch gewichtetes Umklappen der einzelnen verschobenen und Addition Dieser, entsteht also eine Funktion, die als
orthogonale Basis für die WT verwendet werden kann (zusammen mit ). Nur Skalar-Multiplikationen mit sich selber
(j1=j2, k1=k2) erzeugen einen Wert ungleich 0. In Bild 11 wird das am Beispiel Haar-Wavelet anschaulich dargestellt. Alle
Funktionen in den verschiedenen Ebenen und Verschiebungen bilden zusammen ein orthogonales System, mit dem jede
Funktion linear-kombiniert werden kann (Dichte wird durch jmax begrenzt). Auch die Summenformel zur Rücktransformation
bildet diese Tatsachen ab:


Lösen der Zwei-Skalen-Gleichung

Wie schon erwähnt, muß die Gleichung (78) gelöst werden, um aus der Skalierungsfolge (a0...aN-1) zu erhalten.
Wir schreiben erstmal mit Hilfe der Fouriertransformation. Die Zwei-Skalen-Gleichung hat im Frequenzbereich,
wie sich aus (80) und (82) ergibt, folgende Form:

Aus dieser einfachen Gleichung (89) läßt sich nun ein diskretes Spektrum für schrittweise errechnen. Dazu wählt
man ein sehr kleines w0, setzt Phi(w0) = 1, und berechnet Phi(2w0) = A*Phi(w0) durch rekursives Einstzen solange, bis die
gewünschte Frequenz n*dw erreicht ist. Ich verrate mal die genaue Programm-Abfolge mit C-Code:

Man legt fest:  mue = 0.01;  T=8;  N=4096;  dw = 2Pi/T;  dx = T/N;

Für jede Frequenz n*dw (n=0 .... N/2-1)  errechnet man Phi(n*dw) rekursiv:

j = int( -ln2(mue/n);  w0 = dw*n*2^-j
Phi = 1;
for(i=1 ; i<=j ; i++)
{
     Phi = A(2*w0)*Phi;    w0 = 2*w0;
}
Phi[n] = Phi;

Nachdem man alle Frequenzen berechnet hat, wird eine inverse FFT (Phi[], N) durchgeführt. Die Punkte über Formel (29) 
erläutern die Vorgehensweise. Die Multiplikation mit 2 bzw. 0.5 läßt man hier aber weg (stattdessen das Ergebniss mit 1/T
multiplizieren), da es sich nicht um ein amplitudengerechtes Spektrum sondern um ein mathematisches Dichte-Spektrum
handelt. Das Ergebniss gibt man dann in der X-Achse mit x = i*dx (i=0...N/2) aus.

Ich habe hier mal zwei verschiedene Skalierungs-Funktionen (+Wavelet-Funktion) ausgerechnet:

Im linken Bild sieht man Skalierungs- und Waveletfunktion der Ordnung 2 mit 4 Koeffizienten, im rechten Bild der Ordnung 6
mit 12 Koeffizienten. Es handelt sich um die sogenannten Daubechies-Wavelets D4 und D12. Ich habe mir erlaubt die
Koeffizienten aus der dortigen Liste zu verwenden. Die Ordnung sagt etwas über Stetigkeit und Differenzierbarkeit aus
(Ordung O kann nur O-mal differenziert werden). Nimmt man a0 = a1 = 1 (der Rest 0) wird tatsächlich ein Rechteck (Höhe=1,
Breite=1) errechnet, was dem Haar-Vater-Wavelet entspricht (Ordnung 1, D2). Wenn man einfach mal für a0 den Wert 0.5
nimmt, dann wird erstaunlicherweise eine fraktale Skalierungs-Funktion errechnet, die bis auf einen Offset die Zwei-Skalen-
Gleichung erfüllt:

Dieses Experiment zeigt auch, dass die Zwei-Skalen-Gleichung nur mit bestimmten Koeffizienten (Skalierungsfolgen) exakt
lösbar ist.
Meiner Meinung nach hat die Wavelet-Therorie eine fraktale Struktur, da sich eine Funktion aus immer kleiner werdenden
Teilen zusammensetzen läßt, wobei alle diese Teile die selbe Form haben (sich ähnlich sind).

Wird fortgeführt

Zur ToneCirc-Hauptseite       Zum Inhaltsverzeichniss