a ( ) f x = + + a kx b kx k k 2 ∑ ∑ ∑ ( ) - in.tum.de · k n kj k f x n n kj k f x n n f x k...
TRANSCRIPT
61
5.3. Anwendungen
5.3.1. Fourierentwicklung: Stückweise stetige, 2π-periodische (in [-π,π]) Funktion f(x) lässt sich als Fourier-Reihe darstellen (vgl. Taylor/Potenz-Reihe):
( )
( )
==≡
++=
∑ ∑ ∑
∑∞=
−∞=
∞=
−∞=
∞
=
k
k
k
k
kk
kixk
ikxk
kkk
zcecec
kxbkxaaxf1
0 )sin()cos(2
)(
ak und bk heißen Fourier-Koeffizienten von f(x) und berechnen sich (wegen der Orhogonalität der Funktionen cos(kx) und sin(kx)) aus
∫∫−−
==π
π
π
π ππdxkxxfbdxkxxfa kk )sin()(1,)cos()(1
62
Sie geben die Größe der Anteile von Vielfachen der Grundfrequenz (1/ 2π) an, aus denen sich f zusammensetzt Wellenzahl: k Periode: 2π/k Frequenz: k/(2π) Grundfrequenz für k=1, cos(x): Periode 2π, Frequenz 1/(2π)
(ak,bk) messen Anteil von f zur Frequenz k / (2π), (bzw. Periode 2π/k, oder Wellenzahl k).
63
π 2π
Schwingung mit Wellenzahl k=1 und k=2 Wellenzahl k=2 entspricht Periode π, bzw. Frequenz 1/π
cos(kx), sin(kx) bilden Orthonormalsystem (Basis)! Fourierreihe entspricht Taylorreihe Für periodische/auf Intervall definierte Funktion
64
( )∑=
++=n
kkkn kxbkxaaxf
1
0 )sin()cos(2
)(
( ) dxxfxfxfxf nn ∫−
−=−π
π
22
2)()()()(
Satz: Das trigonometrische Polynom
stellt die optimale Approximation an die Funktion f dar aus dem Vektorraum der trigonometrischen Polynome vom Grad n:
ist minimal.
65
.,2,0 ππππ =+−=−= nj xn
jxx
(
)
∑∑
∑
∫
−
=
−
=
−
=
−−
−
+
=
=
+−=
=++
++−−⋅⋅≈
≈=
1
0
1
0
1
0
11
11
2sin)()sin(22cos)()cos(2
)2(cos)(2
)cos()(21)cos()(
)cos()()cos()(2121
)cos()(1
n
jj
n
jj
n
jj
nn
k
nkjxfk
nnkjxfk
n
njkxf
n
kfkxxf
kxxfkfn
dxkxxfa
ππππ
ππ
ππ
ππππ
π
π
π
Näherungsweise Berechnung der Fourierkoeffizienten aus dem Integral mittels Trapezregel und äquidistanten Stützstellen
66
∑∑∑−
=
−
=
−
=
⋅+
=
1
0
1
0
1
0
2sin)(2cos)(2exp)(n
jj
n
jj
n
jj n
kjxfinkjxf
nkjixf πππ
Daher ergeben sich die ak näherungsweise aus den Real- und Imginärteilen von
Diese Werte erhält man aus der IDFT angewendet auf die Funktionswerte an den Stützstellen. Genauso lassen sich die bk annähern. Also können mittels DFT auf den Vektor der Funktionswerte die Frequenzanteile von f näherungsweise bestimmen werden.
DFT transformiert Funktionswerte in Koeffizienten
67
Wolferzahl für die Jahre 1700 bis 2000
5.3.2. MATLAB-Analyse der Sonnenaktivität: Sonnenflecken treten alle 11 Jahre verstärkt auf. Seit 1700 wird die jährliche Sonnenfleckenaktivität beschrieben durch die sog. Wolfer-Zahl (Größe und Anzahl der Flecken) (Rudolf Wolf ca. 1850).
68
Wolferzahlen in Vektor v als Funktionswerte einer unbekannten periodischen Funktion g mit den Jahreszahlen als Stützstellen. Gesamtbeobachtungszeitraum T besteht aus 300 Jahren. Ersetze daher Intervall [0,2π] durch das Intervall [0,T] durch den Übergang von exp(ikx) exp(ikx*2π/300)
Zeitintervall ∆ = 1 Jahr, in dem eine Wolferzahl bestimmt wurde; N = T / ∆ ist Anzahl der Beobachtungsintervalle = = Länge des Vektors v = Anzahl der Stützstellen; Wellenzahl wieder k , Periode T/k = 300J./k, Frequenz k/T; Grundfrequenz also 1/T.
69
∆
Es können nur periodische Vorgänge erfasst werden mit einer Periode > 2∆ = 2 Jahre, da bei kleineren Perioden die ‚Schwingung’ feiner als die feinste Unterteilung ( 1 Jahr) wäre, und daher als solche nicht erkennbar ist.
Daher ist die größte beobachtbare Wellenzahl k gleich N/2=150, entspricht der Frequenz (N/2)(1/T)=1/(2∆), der sog. Nyquist-Frequenz
Berechne y = FFT(v) y(0) ist die Gesamtsumme aller Wolferzahlen und wird gleich 0 gesetzt (enthält keine Angabe über Periodizität).
Gibt es Schwingungen, die nicht erkannt werden können?
70
Die anderen Koeffizienten von y enthalten die Größe der ver- schiedenen Frequenzanteile von g (aber als komplexe Zahlen). Berechne 2/,...,1)()( 2 Nkfürkykp ==
p(k) misst die Größe der k-ten Vielfachen der Grundfrequenz, also der Frequenz f(k) = k / T = k / (∆N) für k=1,2,...,N/2 Anders ausgedrückt bestimmt p(k) das Gewicht der Periode 1 / f(k) = T / k in der Funktion f.
also untersuche nur die Beträge der Frequenzanteile bis zur Nyquist-Wellenzahl k = (N/2).
71
Wir tragen nun den Vektor p auf gegen die dazugehörigen Perioden T/k, k=1,...,N/2
Betragsquadrate der Fourierkoeffizienten, aufgetragen über die dazugehörigen Perioden. Wir können den Zyklus von 11 Jahren direkt ablesen.
72
Allgemeines Problem: In welcher Form stellt man numerische Daten dar? Normalerweise aus Messwerten: Samples f(xj) Dies entspricht einer Darstellung im Ortsraum. Nachteil: Viele Daten, schlecht komprimierbar, keine Analyse!
Besser: Übergang zu einer Darstellung bzgl. geeigneter Basisfunktionen (z.B. xj, exp(jx), cos(jx),...) Dann reichen ev. wenige Koeffizienten aus, um das Signal (fast) vollständig zu beschreiben. Außerdem kann man aus den Koeffizienten Schlüsse über das Verhalten der Funktion ziehen (Frequenzanalyse).
73
Beispiel: f(x) = 0.5*sin(x) + 0.1 * sin(10x)
Zwei Koeffizienten reichen aus zur Beschreibung Die Koeffizienten bezeichnet man auch als Beschreibung der Funktion im Phasenraum (Frequenzraum)
74
5.3.3. JPEG: Bilder werden üblicherweise als Matrix gespeichert, deren Einträge pixelweise den Grauwert des entsprechend nummerierten Pixels enthalten, bzw. bei Farbbildern den Anteil einer der drei Farbkomponenten Rot, Grün oder Blau (= RGB).
Warum DCT, warum nicht DFT?
RGB wird meist in der YUV-Form umgewandelt, bei der die Matrix Y die Helligkeit beschreibt, und U und V den Farbton (U,V lassen sich stärker komprimieren!).
JPEG zerlegt das Bild in 8 x 8 – Pixel große Blöcke, die zunächst getrennt bearbeitet werden. Auf jede dieser Teilmatrizen wird eine zweidimensionale Cosinus-Transformation angewandt: DCT
Bilddaten sind reell, und das Bild ist nicht periodisch!
75
Aus Anwendung der DCT erhält man für die Teilmatrizen wieder die Frequenzanteil-koeffizienten ak und bk in Teilmatrizen. Die Teilmatrix mit den Frequenzanteilen wird nun quantisiert,d.h. die darin stehenden reellen Zahlen werden bestimmten Zahlenintervallen zugeordnet und Intervallweise jeweils durch eine Zahl angenähert, die für ein ganzes Intervall gilt.
Dadurch werden auch automatisch alle kleinen Komponenten, die in dem ersten Intervall mit den kleinsten Werten liegen, durch Null ersetzt. Dies erzeugt einen Qualitätsverlust!
Die entstandene Gesamtmatrix aus den diskreten Zahlenwerten wird codiert – Huffman-Codierung
76
Nachteile: Fourier-Methoden haben Schwierigkeiten mit Kanten in Bildern Kanten Unstetigkeiten Durch stetige Funktionen cos(kx), sin(kx) sind Kanten schlecht darstellbar! Differenzierbarkeit! Kosten der DCT: O(n log(n)) bei n Pixel. Zu teuer. Daher DCT auf 8x8-Blöcke.
JPEG2000: Anstatt Cosinus-Transformation auf 8 x 8 wendet man eine Wavelet-Transformation auf größere Teilmatrizen an. Wavelet-Ansatzfunktionen haben keine Problem mit Kanten, vgl. B-Splines. Genauere Untersuchung folgt später. Kosten für Wavelet-Transformation O(n)
77
Beispiel: MATLAB Gibbs-Phänomen (recht.m) Fourierkoeffizienten für Rechtecksignal; Überschwingen an Kante unvermeidbar bei Darstellung durch endliches trigonometrisches Polynom!
78
5.3.4. Lineare Filter: Betrachte Vektor v, dessen Komponenten wieder diskrete Werte einer Funktion oder eines Bildes darstellen (Sampling). Zunächst 1-dimensional. Wir filtern diesen Vektor, indem wir jede Komponente ersetzen durch eine gewichtete Kombination der Nachbarkomponenten.
bzw. der Matrixmultiplikation
[ ]12141 ,
42 11 +− ++
= jjjj
vvvvder Operation
So entspricht die Maske:
79
vv ⋅
→
21121
12112
41
010141010
81 ,
84 ,11,,,11,
,jijijijiji
ji
vvvvvv ++−− ++++
=
Im zwei-dim. entspricht dies z.B. der Maske
Vorsicht am Rand! Fehlende Werte haben Einfluß auf Messwerte! Man benötigt Annahmen für v0 und vn+1. Was ist sinnvoll?
80
Genauso Gaussfilter:
121242121
161
Dies entspricht glättenden Filtern, die zu einem weicheren Bild führen: Mittelwertfilter, Glätter, Weichzeichner, oder Tiefpassfilter zur Abschwächung von Rauschen, bzw. hochfrequenten Anteilen. Hochfrequente Störungen, die einzelne Komponente verändern, werden durch die Mittelwertbildung verringert!
Entsprechend kann man Hochpassfilter definieren, die die Unterschiede hervorheben, das Bild härter machen und niederfrequente (glatte) Anteile abschwächen (Differenzfilter, Scharfzeichner).
81
z.B. Laplacefilter: (Sobelfilter) ,
010141
010
−−−
−
Bisher entsprechen die Methoden einer Filterung im Ortsraum. Im Gegensatz dazu kann man auch Filter im Phasenraum (Frequenz~) zum Entfernen von Rauschen (Noise) verwenden: v DFT(v) Filter IDFT(v) Also Transformation in (Fourier-)Koeffizientenraum, dann Filtern der Koeffizienten = Gewichten/Löschen, dann Rücktransformation (vgl. MP3) Hochpassfilter, Tiefpass, Filterband,…
−
−
010101010
82 Differenzfilter Reduktion
Filtern von Lena: Original Mittelwertfilter Reduktion
83
[ ] 2/11 [ ] 2/11 −
5.3.5. Wavelets: Betrachte Kombination von Tiefpassfilter und Hochpassfilter im 1-Dimensionalen zu Masken
und
vvv
h
t ⋅
−−
=
1111
1111
21
Ersetze den ursprünglichen Vektor verlustfrei durch tief-, bzw. hochpass-gefilterte Vektoren halber Länge (down sampling):
oder
84
v⋅
−
−
−
1111
1111
1111
21
Der Differenzanteil vh ist in der Regel klein und wird nicht weiterbearbeitet! Der Mittelwertanteil (tiefpassgefiltert) vt wird nach demselben Schema weiteraufgespalten wiederum in Tief/Hochpassanteil durch dieselben Masken.
(nur anders sortiert)
85
Ersetze nun den Ausgangsvektor v∈Rn durch den letzten Mittelwertanteil auf Level p und sämtliche Differenzanteile vh , das sind auch genau n Zahlen. ( vh und vt entsprechen quasi den Fourierkoeffizienten)
Insgesamt:
vt vh Level p , 1
v Level 0 , Länge n
vt vh Level 1 , n/2
vt vh Level 2 , n/4
. . .
86
Vorteile: Gesamtkosten der Transformation O(n) Differenz-Anteile meist klein gut komprimierbar Differenzanteil auf Level k enthält Information über das Verhalten von v auf diesem Level, bzw. in dieser Auflösung
Filter müssen sparse sein damit billig, leicht umkehrbar (invertierbar) damit Original rekonstruierbar! (vgl. DFT und IDFT ) Aufspalten in Frequenzanteil (hoch – tief).
Multiskalenanalyse, Zerlegung des Vektors in verschiedene Frequenzbereiche = Skalen Entspricht in etwa der Fourier-Analyse
87
[ ]1121 [ ]11
21
−
Algorithmische Ähnlichkeit zur Fourier-Transformation am Beispiel des Haar-Filters mit den Masken
und :
u (u+v)/2
Butterfly v (u-v)/2
v1 (v0-v1)/2
v4 (v4+v5)/2 (v4+v6)/2 (v0-v4)/2
v3 (v2-v3)/2
v7 (v6-v7)/2
v6 (v6+v7)/2 (v4-v6)/2
v2 (v2+v3)/2 (v0-v2)/2
v0 (v0+v1)/2 (v0+v2)/2 (v0+v4)/2
88
v5 (v4-v5)/2
x0
x1
x2
x3
x4
x5
x6
x7
(x0 +x1)/2
(x0 - x1)/2
(x2 +x3)/2
(x2 – x3)/2
(x4 +x5)/2
(x4 – x5)/2
(x6 +x7)/2
(x6 – x7)/2
(x0 +x2)/2
(x0 – x2)/2
(x4 – x6)/2
(x4 +x6)/2
(x0 +x4)/2
(x0 – x4)/2
90
v wird dabei transformiert in alle Differenzanteile und den letzten Mittelwert. Unterschied zur DFT: keine Sortierphase, einfacher Butterfly, nur die Mittelwertanteile werden weiter bearbeitet O(n)
91
Ergänzung: Funktionsansatz: Erinnerung: lineare B-Splines (Hut-Funktion)
Φ(x): alle Φ(x-k)
y Φ(x) Φ(x-2)
0 1 2 x
Zur Vereinfachung betrachten wir den konstanten B-Spline (k=0):
y Φ(x) Φ(x-2) Φ(x): alle Φ(x-k)
0 1 2 x
Äquidistante Stützstellen …,-1,0,1,2,…
92
Φ(x) heißt Skalierungsfunktion und liefert Basis Φ(x-k), k Weiterhin erfüllt Φ(x) die Skalierungsgleichung
Φ(x) = ( 1 ⋅Φ(2x) + 1⋅ Φ(2x-1) ) Stellt die Beziehung her zwischen fein/grob diskretisiert.
Genauso liefern Φ(2x-k) (feinere) Ansatzfunktionen z.B. 1= Φ(0.25) = = ( Φ(2*0.25) + Φ(2*0.25-1) ) = Φ(0.5) = 1 Filter-Maske [ 1 1 ] , denn 1*Φ(2x) + 1*Φ(2x-1) zu Tiefpass-Filter (Mittelwertfilter)
y
Φ(2x): als Umskalierung von Φ(x)
0 0.5 1 2 x
93
Notwendig ist zweiter Hochpass-Filter (Differenz-Filter). Definiere dazu zur Skalierungsfunktion Φ(x) die eigentliche Waveletfunktion W(x) = 1*Φ(2x) - 1*Φ(2x-1) , Maske [ 1 -1 ]
y
W(x):
0 0.5 1 2 x
∫ =−⋅−Φ 0)()( dxjxWkx
Wichtig: Orthogonalität der Ansatzfunktionen! Warum sind diese Funktionen orthogonal?
Φ(2x-k) sind Basis zu feinerer Diskretisierung und höherer Auflösung (Genauigkeit).
94
)12()2()()12()2()(
−Φ−Φ=−Φ+Φ=Φ
xxxWxxx
( )( ) 2/)()()12(
2/)()()2(xWxxxWxx
−Φ=−Φ
+Φ=Φ
Mit den obigen Beziehungen kann Φ(2x) eindeutig durch Φ(x) und W(x) dargestellt werden:
oder umgekehrt
Gegeben: f(x) = ∑ ak ⋅ Φ(2x-k) Nun können wir den Übergang von Koeffizienten zur Basis Φ(2x-k) zu Koeffizienten bezgl. Φ(x-k), W(x-k) beschreiben
a2k⋅Φ(2x-2k) a2k⋅( Φ(x-k)+W(x-k) ) / 2 a2k+1⋅Φ(2x-2k-1) a2k+1⋅( Φ(x-k)-W(x-k) ) / 2
95
( )
( )
)()()()(
)(2
)(2
)()(2
)()(2
)122()22()2()(
)0()0(
)1(12
)1(2
)1(12
)1(2
)1(12
)1(2
)1(12
)1(2
)1(
xfxfkxWbkxa
kxWaakxaa
kxWkxa
kxWkxakxakxa
kxaxf
hochpasstiefpass
kk
kkkk
k
k
kk
k
+=
=∑ −⋅∑ +−Φ⋅=
=∑ −⋅−
∑ +−Φ⋅+
=
=∑ −−−Φ+
∑ +−+−Φ=
=∑ −−Φ∑ +−Φ=
=∑ −Φ=
++
+
+
gerade/ungerade
96
Anwendung der beiden Filtermasken [ 1 1 ] /2 und [ 1 -1 ] /2 auf die Koeffizienten ak liefert neue Koeffizienten zu hoch/tiefpass-gefilterten Teil-Funktionen.
)()2()122()22(
)122()()22()(
))122()22(())122()22((
)()()()(
)1(
)1(12
)1(2
)0()0(
)0()0(
)0(
)0(
)0()0(
xfkxakxakxa
kxbakxba
kxkxbkxkxa
kxWbkxaxfxf
k
kk
kk
kk
k
k
kk
hochpasstiefpass
∑ =−Φ=
=∑ −−Φ+∑ −Φ=
=∑ −−Φ−+
+∑ −Φ⋅+=
=−−Φ−∑ −Φ+
+∑ −−Φ+−Φ=
=∑ −+−Φ
=+
+
Umgekehrt kann aus den beiden gefilterten Teilfunktionen die Gesamtfunktion f(x) wieder rekonstruiert werden mittels
97
Also Anwendung der Filter [ 1 1 ] und [ 1 -1 ] auf die Koeffizienten der hoch/tiefpassgefilterten Koeffizienten liefert die Koeffizienten zur feineren Diskretisierung.
Funktionenfamilien auf verschiedenen Skalen: Φ(x-k) , k = ..., -1,0,1,... Φ(2x-k) , k = ..., -1,0,1,... .... Φ(2jx-k) , k = ..., -1,0,1,... , j = ...,-1,0,1,...
98
Basisumrechnung von f(x):
)()1(
)1(
1111
1111
21 j
jk
jk a
ba
⋅
−
−
=
−
−
Φ(2jx-k)
Φ(2j-1x-k) W(2j-1x-k)
beschrieben durch die Transformation der Koeffizienten:
entsprechend Tief- und Hochpassfilter mit Haar-Filter.
99
Umkehrung mit
⋅
−
−
= −
−
)1(
)1()(
1111
1111
jk
jkj
ba
a
Rekursive Wiederholung: a(j)
a(j-1) b(j-1)
a(j-2) b(j-2)
. . a(0) b(0)
100
Wavelet als Verschmelzung der klassischen Filter und Fourieranalyse mit der Idee lokaler Basisfunktionen wie bei den B-Splines. Haar-Filter Haar-Wavelet
101
102
Fourier-Analyse Multiskalen-Analyse FFT Wavelet cos(kx), sin(kx) W(2jx-m), Φ(2jx-m) Skalierung k Shift m, Skalierung 2j Alle gleichberechtigt Mittelwert/Differenz globaler Träger lokaler Träger
keine Variations- Wahl von Approximations- möglichkeit güte und Diff’barkeit Kantenproblem Lokal, adaptiv Volle Rekursion Rekursion nur im Mittelwert Kosten O(n log(n)) Kosten O(n) Frequenz aus Frequenz aus Fourierkoeffizienten Waveletkoeffizienten