Filtern, JPEG, MP3 Fourier-Analyse JPEG MP3 Filtern - Waelet
Filtern Ausgangspunkt: Gegebenes Signal soll -erändert werden (Hifi, Weichzeichner, ) -analysiert werden (EKG Herztöne, ) -komprimiert werden (Speicherplatz) -restauriert werden (Rauschentfernen) Beispiel: Musik (audacity, goldwae)
Klassisch: Fourier Signal ist eine gegebene Funktion f(x) auf einem Interall, bzw. periodisch fortgesetzt. Ähnlich zur Taylorreihe einer Funktion = f ( x ) k = a x k k kann man dann eine 2π-periodische Funktion durch eine Fourier-Reihe darstellen: f ( x) = k = k = k = k = ikx ix k ( ak cos( kx) + bk sin( kx) ) = cke = ck ( e ) = k = k = k = c k z k
cos(kx), sin(kx) Betrachte zu Funktionen ein Inneres Produkt: < π f, g > : = f ( x) g( x) dx π Ähnlich zu Innerem Produkt on Vektoren u,: < u, >= u T = n j= Resultat: cos(kx), sin(kx), k=,,2, bilden Orthonormalbasis bezgl. Innerem Produkt: u j j < cos( kx),sin( jx) >=, < cos( kx),cos( jx) >=, < sin( kx),sin( jx) >= für j k.
Folgerung: Zu Funktion f ( x) = k = a k cos( kx) + b k sin( kx) n ist fn( x) = ak cos( kx) + bk sin( kx) die Bestapproximation. k = Die Fourier-Koeffizienten a k und b k geben die Schwingungsanteile zu erschiedenen Frequenzen in f(x) an! k: Wellenzahl 2π/k: Periode k/2π: Frequenz
π 2π Schwingung mit Wellenzahl k= und k=2 Wellenzahl k=2 entspricht Periode π, bzw. Frequenz /π Zusammenhang Funktionswerte Fourier-Koeffizienten: f ( x ), j =,,..., m ( a, b ), k = j k k,,..., n Nyquist-Frequenz: Feinste beobachtbare Schwingung hängt ab on der Diskretisierung!
Vor- und Nachteile Berechnet werden sie durch die Diskrete Fourier Transformation DFT. Fourier-Koeffizienten sind mittels FFT schnell berechenbar O(n log(n)). Problem mit Kanten, Unstetigkeitsstellen: Gibbs Phänomen MATLAB: recht.m Anwendungsbeispiel: MATLAB Sonnenfleckenanalyse.
MATLAB-Analyse der Sonnenaktiität: Sonnenflecken treten alle Jahre erstärkt auf. Seit 7 wird die jährliche Sonnenfleckenaktiität beschrieben durch die sog. Wolfer-Zahl (Größe und Anzahl der Flecken), (Rudolf Wolf ca. 85). Wolferzahlen für die Jahre 7 bis 2
Sammle die Wolferzahlen in Vektor als Funktionswerte einer unbekannten periodischen Funktion g mit den Jahreszahlen als Stützstellen. Der Gesamtbeobachtungszeitraum T besteht aus 3 Jahren. Ersetze daher Interall [,2π] durch das Interall [,T] durch den Übergang on cos(kx) cos(kx*2π/3) Zeitinterall Δ = Jahr, in dem eine Wolferzahl bestimmt wurde; N = T / Δ ist Anzahl der Beobachtungsinteralle = = Länge des Vektors = Anzahl der Stützstellen; Wellenzahl wieder k, Periode T/k = 3J./k, Frequenz k/t; Grundfrequenz also /T.
Nyquist-Frequenz: Δ Es können nur periodische Vorgänge erfasst werden mit einer Periode > 2Δ = 2 Jahre, da bei kleineren Perioden die Schwingung feiner wäre als die feinste Unterteilung ( Jahr), und daher als solche nicht erkennbar ist. Daher ist die größte beobachtbare Wellenzahl k gleich N/2=5, entspricht der Frequenz (N/2)(/T)=/(2Δ), der sog. Nyquist-Frequenz Berechne y = FFT() y() ist die Gesamtsumme aller Wolferzahlen und wird gleich gesetzt (enthält keine Angabe über Periodizität).
Die anderen Koeffizienten on y enthalten die Größe der erschiedenen Frequenzanteile on g (aber als komplexe Zahlen). Berechne 2 p ( k) = y( k) für k =,..., N / 2 Untersuche nur Frequenzanteile bis zur Nyquist-Wellenzahl k = (N/2). p(k) misst die Größe der k-ten Vielfachen der Grundfrequenz, also der Frequenz f(k) = k / T = k / (ΔN) für k=,2,...,n/2 Anders ausgedrückt bestimmt p(k) das Gewicht der Periode / f(k) = T / k in der Funktion f.
Wir tragen nun den Vektor p auf gegen die dazugehörigen Perioden T/k, k=,...,n/2 Betragsquadrate der Fourierkoeffizienten, aufgetragen über die dazugehörigen Perioden. Wir können den Zyklus on Jahren direkt ablesen.
Allgemeines Problem: In welcher Form stellt man numerische Daten dar? Normalerweise aus Messwerten: Samples f(x j ) Dies entspricht einer Darstellung im Ortsraum. Nachteil: Viele Daten, schlecht komprimierbar, keine Analyse! Besser: Übergang zu einer Darstellung bzgl. geeigneter Basisfunktionen (z.b. x j, exp(jx), cos(jx),...) Dann reichen e. wenige Koeffizienten aus, um das Signal (fast) ollständig zu beschreiben. Außerdem kann man aus den Koeffizienten Schlüsse über das Verhalten der Funktion ziehen (Frequenzanteile)!
Beispiel: f(x) =.5*sin(x) +. * sin(x) Zwei Koeffizienten reichen aus zur Beschreibung Die Koeffizienten bezeichnet man auch als Beschreibung der Funktion im Phasenraum (Frequenzraum)
JPEG Bilder werden üblicherweise als Matrix gespeichert, deren Einträge pixel-weise den Grauwert des entsprechend nummerierten Pixels enthalten, bzw. bei Farbbildern den Anteil einer der drei Farbkomponenten Rot, Grün oder Blau (= RGB). RGB wird meist in 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 2D Cosinus-Transformation angewandt: FCT Warum nicht DFT? Bilddaten sind reell, und das Bild ist nicht periodisch!
Aus Anwendung der FCT erhält man für die Teilmatrizen wieder die Frequenzanteil-koeffizienten a k und b k in Teilmatrizen (2D). Die Teilmatrix mit den Frequenzanteilen wird nun quantisiert, d.h. die darin stehenden reellen Zahlen werden bestimmten Zahleninterallen zugeordnet und Interallweise jeweils durch eine Zahl angenähert, die für ein ganzes Interall gilt. Dadurch werden auch automatisch alle kleinen Komponenten, die in dem ersten Interall mit den kleinsten Werten liegen, durch Null ersetzt. Dies erzeugt einen Qualitätserlust! Die entstandene Gesamtmatrix aus den diskreten Zahlenwerten wird codiert Huffman-Codierung.
Quantisierung: Bildinformationen nach DCT: Quantisierungsmatrix Diidiere Einträge in Bildmatrix durch Einträge in Quantisierungsmatrix und runde ganzzahlig.
Nachteile: Fourier-Methoden haben Schwierigkeiten mit Kanten in Bildern Kanten Unstetigkeiten Durch stetige Funktionen cos(kx), sin(kx) sind Kanten schlecht darstellbar! Kosten der DCT: O(n log(n)) bei n Pixel. Zu teuer. Daher DCT auf 8x8-Blöcke. Verbesserung: JPEG2: Anstatt Cosinus-Transformation auf 8 x 8 wendet man eine Waelet-Transformation auf größere Teilmatrizen an. Waelet-Ansatzfunktionen haben keine Problem mit Kanten und sind O(n). Genauere Untersuchung folgt später.
MP3 Transformiere Audio-daten mittels Fourier-Transformation so, dass höhere Kompression möglich wird. Vernachlässige z.b. unhörbare Komponenten. Hörbereich des Menschen:
Maskierung
MP3 erwendet gefensterte Fourier-Transformation zur Bestimmung on Maskierungseffekten und zur Kompression.
Filtern Betrachte Vektor, dessen Komponenten wieder diskrete Werte einer Funktion oder eines Bildes darstellen (Sampling). Wir filtern diesen Vektor, indem wir jede Komponente ersetzen durch eine gewichtete Kombination der Nachbarkomponenten, z.b. entspricht die Maske 4 [ 2 ] j + 2 j + j + der Operation j =, 4 L j j j+ j+ 2 L n 2 / 4 bzw. der Matrixmultiplikation
2 2 2 2 4 O O O Vorsicht am Rand! 4 8, 8 4,,,,,, j i j i j i j i j i j i + + + + + + = Im zwei-dimensionalen entspricht dies z.b. der Maske
Genauso Gaussfilter: 6 2 2 4 2 2 Dies entspricht glättenden Filtern, die zu einem weicheren Bild führen: Mittelwertfilter, Glätter, Weichzeichner, oder Tiefpassfilter zur Abschwächung on Rauschen, bzw. hochfrequenten Anteilen. Hochfrequente Störungen, die einzelne Komponente erändern, werden durch die Mittelwertbildung erringert! Entsprechend kann man Hochpassfilter definieren, die die Unterschiede herorheben, das Bild härter machen und nieder-frequente (glatte) Anteile abschwächen (Differenzfilter, Scharfzeichner).
z.b. Laplacefilter: 4 Sobelfilter:,,,
Diese Methoden entsprechen einer Filterung im Ortsraum. Im Gegensatz dazu benutzt Filtern im Phasenraum die FFT, z.b. (Frequenz~) zum Entfernen on Rauschen (Noise) erwenden: DFT() Filter IDFT() Also Transformation in (Fourier-)Koeffizientenraum, dann Filtern der Koeffizienten, dann Rücktransformation (gl. MP3).
Filtern on Lena (Playboy 972) Original Mittelwertfilter Differenzfilter Reduktion
Haarfilter [ ] 2 / Betrachte Kombination on Tiefpassfilter und Hochpassfilter im -Dimensionalen zu Masken und [ ] 2 / Ersetze den ursprünglichen Vektor erlustfrei durch tief-, bzw. hochpass-gefilterte Vektoren halber Länge (down sampling): h t = O O O O 2
2 O O O O (nur anders sortiert) Der Differenzanteil h ist in der Regel klein und wird nicht Weiterbearbeitet, sondern gespeichert! Der Mittelwertanteil (tiefpassgefiltert) t wird nach demselben Schema weiter aufgespalten wiederum in Tief/Hochpassanteil durch dieselben Masken.
Insgesamt: Leel, Länge n t h Leel, n/2 t h Leel 2, n/4... t h Leel p, Ersetze den Ausgangsektor R n durch den letzten Mittelwertanteil auf Leel p und sämtliche Differenzanteile h, das sind auch genau n Zahlen. ( h und t entsprechen Fourierkoeffizienten)
Vorteile: Gesamtkosten der Transformation O(n). Differenz-Anteile meist klein gut komprimierbar Differenzanteil auf Leel k enthält Information über das Verhalten on auf diesem Leel, bzw. in dieser Auflösung Multiskalenanalyse, Zerlegung des Vektors in erschiedene Frequenzbereiche = Skalen Entspricht in etwa der Fourier-Analyse Filter muss leicht umkehrbar (inertierbar) sein! Rekonstruktionsbedingung! (gl. DFT und IDFT )
Umkehrfilter Problem: finde geeignete dünnbesetzte Hoch/Tief-Filter, die sich genau so leicht umkehren lassen: In Matrix-Sprache: = V U T H dünnbesetzt. Lösung: Daubechie-Filter, z.b.:, 2 4 3, 2 4 3, 2 4 3 3, 2 4 3 3 2 = = + = + = h h h h, 3, 2 2, 3, h g h g h g h g = = = =
h: Tiefpassfilter g: Hochpassfilter A=[h h h2 h3 ; g g g2 g3 ; h h h2 h3 ; g g g2 g3 ; h h h2 h3 ; g g g2 g3 ; h2 h3 h h ; g2 g3 g g] B=[h g h2 g2 ; h g h3 g3 ; h2 g2 h g ; h3 g3 h g ; h2 g2 h g ; h3 g3 h g ; h2 g2 h g; h3 g3 h g] dau_4.m
JPEG2 JPEG2 erwendet Daubechie-Filter, Rekursies Hoch/Tief-Filtern, größere Blocks,
Randwertproblematik j j j+ j+ 2 n n+ L 2 L / 4 Periodische = n, n+ = Null- =, n + = Randbedingungen Reflexie Antireflexie = 2, n + = n = 2 2, n+ = 2n n
Brahms-Zylinder Original: Digital restauriert: Restauriert MIDI: Eine Anwendung digitaler Audio-Software mit Waelets: Rekonstruktion gestörter Aufnahmen