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

Post on 19-Oct-2019

26 views 0 download

Transcript of 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...

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