Die schnelle Fouriertransformation

Ähnliche Dokumente
Diskrete und Schnelle Fourier Transformation. Patrick Arenz

Kapitel III Ringe und Körper

Die inverse Diskrete Fourier Transformation

Algebraische und arithmetische Algorithmen

Unterlagen zu Polynomringen. Erhard Aichinger

2.1 Polynome, Polynomfunktionen und Nullstellen. k=0

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

WS 2009/10. Diskrete Strukturen

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr

Algebraische und arithmetische Algorithmen

. Dann hat die Gleichung [X 2 ] p k = [a] p k in ( Z/p k Z )

ALGEBRA I Serie 7. z 2 z 1 mit z1, z 2 C. Zeigen Sie, daß

Körper- und Galoistheorie

3.3 Das Abtasttheorem

= 1. Falls ( a n. ) r i. i=1 ( b p i

Klausur vom Algebra I. Rolf Farnsteiner

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

Isomorphismus. Definition Gruppen-Isomorphismus. Seien (G, +) und (G, ) Gruppen. Die Abbildung f : G G heißt Gruppen-Isomorphismus, falls gilt

6.2. Ringe und Körper

Einführung in die Algebra

2 Restklassenringe und Polynomringe

Körper- und Galoistheorie

Zahlen 25 = = 0.08

Bemerkungen. Gilt m [l] n, so schreibt man auch m l mod n oder m = l mod n und spricht. m kongruent l modulo n.

Analytische Zahlentheorie

1 Potenzen und Polynome

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

a i x i, (1) Ein Teil der folgenden Betrachtungen gilt auch, wenn man den Körper durch einen Ring ersetzt.

11. Übung zur Vorlesung. Zahlentheorie. im Wintersemester 2015/16

2 Polynome und rationale Funktionen

Diskrete Fourier-Transformation Stefanie Dourvos Institut für Informatik FU Berlin

Vorlesung Diskrete Strukturen Gruppe und Ring

Definition 153 Sei n eine fest gewählte ganze Zahl 0. Für jedes l Z heißt die Menge

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element

Vektoren und Matrizen

31 Polynomringe Motivation Definition: Polynomringe

Zentralübung zur Vorlesung Diskrete Strukturen

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Symmetrische Polynome,Diskriminante und Resultante, Fermatscher Satz für Polynome

Numerische Methoden und Algorithmen in der Physik

8. Musterlösung zu Mathematik für Informatiker II, SS 2004

Chr.Nelius: Grundzüge der Algebra (WS2005/06) 1. (14.1) DEF: Ein kommutativer Ring (K, +, ) heißt ein Körper, wenn gilt: 1) 1 K 0 K 2) K = K \ {0 K }

Lineare Algebra I 5. Tutorium Die Restklassenringe /n

Mathematische Erfrischungen III - Vektoren und Matrizen

Addition, Subtraktion und Multiplikation von komplexen Zahlen z 1 = (a 1, b 1 ) und z 2 = (a 2, b 2 ):

Die Konstruktion des regelmäÿigen n-ecks mit Zirkel und Lineal

Elemente der Algebra

Kanonische Primfaktorzerlegung

Übungen zu Algebra, WS 2015/16

Einführung in die Algebra

Einführung in die Algebra

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

(Fast) Fourier Transformation und ihre Anwendungen

Konvergenz im quadratischen Mittel und die Parsevelsche Gleichung

Einführung in die Algebra

Einführung in die Zahlentheorie

Algebra I. Prof. Dr. M. Rost. Übungen Blatt 11 (WS 2015/16) 1. Abgabetermin: Donnerstag, 22. Januar.

Lineare Algebra I Zusammenfassung

Seminar Kommutative Algebra und Varietäten 8 Dimensionstheorie I

13. Funktionen in einer Variablen

11 Fourier-Analysis Grundlegende Begriffe

1 Körper. Wir definieren nun, was wir unter einem Körper verstehen, und sehen dann, dass es noch andere, ganz kleine Körper gibt:

Formale Grundlagen 2008W. Vorlesung im 2008S Institut für Algebra Johannes Kepler Universität Linz

1 Der Ring der ganzen Zahlen

Spline-Räume - B-Spline-Basen

Körper- und Galoistheorie

Erweiterter Euklidischer Algorithmus

1.1.1 Konstruktion der ganzen Zahlen, Vertretersystem (nicht-negative und negative ganze Zahlen)

01. Gruppen, Ringe, Körper

8 Interpolation. 8.1 Problemstellung. Gegeben: Diskrete Werte einer Funktion f : R R an n + 1 Stützstellen. x 0 < x 1 <... < x n.

(1 + o(1)) n ln(n) π(n) =

10 Logarithmus- und Potenzfunktion

Faktorisierung von Polynomen. zusammen mit Karim Belabas, Mark van Hoeij und Allan Steel.

1 Der Ring der ganzen Zahlen

3.3 Eigenwerte und Eigenräume, Diagonalisierung

(R4) Addition und Multiplikation erfüllen das Distributivgesetz a (b + c) = ab + ac und. Endomorphismenring d) K Körper, n N, R = K n n Matrizenring

Einführung in Algebra und Zahlentheorie Lösungsvorschlag zur Klausur am 16. Februar 2016

4 Diskrete Logarithmen und Anwendungen

Einführung in die Algebra

Einführung in die Algebra

Algebra I. Prof. Dr. M. Rost. Übungen Blatt 12 (WS 2015/16) 1. Abgabetermin: Donnerstag, 28. Januar.

13. Der diskrete Logarithmus

,Faltung. Heavisidefunktion σ (t), Diracimpuls δ (t) Anwendungen. 1) Rechteckimpuls. 2) Sprungfunktionen. 3) Schaltvorgänge

Konvergenz im quadratischen Mittel und Parsevalsche Gleichung

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

Division mit Rest - der heimliche Hauptsatz der Algebra

Einführung in Algebra und Zahlentheorie Lösungsvorschläge zur Klausur vom Aufgabe 1 (6 Punkte)

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Teilbarkeitslehre und Restklassenarithmetik

1 Algebraische Strukturen

5 Grundlagen der Zahlentheorie

Algebra II. Prof. Dr. M. Rost. Übungen Blatt 3 (SS 2016) 1. Abgabetermin: Freitag, 6. Mai.

Die Gamma-Funktion, das Produkt von Wallis und die Stirling sche Formel. dt = lim. = lim = Weiters erhalten wir durch partielle Integration, dass

1.1 Denition und Eigenschaften von Polynomen. k=0 b kx k Polynome. Dann ist. n+m. c k x k, c k = k=0. f(x) + g(x) := (a k + b k )x k. k=0.

Wurzel aus 2 und Wurzel aus 1: was ist das und wie rechnet man damit?

Universität Zürich HS , Vorlesung #3

3.5 Glattheit von Funktionen und asymptotisches Verhalten der Fourierkoeffizienten

Über Polynome mit Arithmetik modulo m

Lineare Algebra und analytische Geometrie I

Transkript:

Die schnelle Fouriertransformation Die stetige Fouriertransformation ˆf : Z C eines Signals f : [0, π] C ist gegeben durch ˆf(k) = π 0 f(t)e kt dt Die folgende Umkehrformel drückt dann f als Fourierreihe aus: f(t) = 1 ˆf(k)e ikt π k Z Die Zahlen β k = 1 ˆf(k) heißen Fourierkoeffizienten. Die Funktionen π t ˆf(k)e ikt = F(t) sind periodisch mit kleinster Periode T = π : F(t) = k F(t + T). T heißt auch Wellenlänge. k = T heißt Frequenz. Die Frequenzen sind verantwortlich für die Farbe eines optischen Signals und die π Tonhöhe eines akustischen Signals. ˆf(k) heißt Amplitude von F(t), und ist verantwortlich für Lautstärke eines akustischen Signals, sowie Leuchtkraft eines optischen. Die Bedeutung der Fouriertransformation in der Technik liegt vor allem darin, daß sie vom Zeitbereich t in den Frequenzbereich k(als Definitionsbereich des Signals) wechselt. ˆf(k) ist der Beitrag der frequenz k zum Wert f(t) des Signals zur Zeit t. Da das menschliche Ohr, oder Auge ikt hohe Frequenzen kaum wahrnimmt, kann man die entsprechenden ˆf(k)e weglassen, ohne die Empfangsqualität zu beeinträchtigen, und erreicht damit Datenkompression.Wenn man die ˆf(k) übertragen will, man denke an Fernsehbilder, dann ist es offenbar wichtig, ˆf schnell berechnen zu können, möglichst in realtime. Wenn ein stetiges Sinal an diskreten Stellen ausgewertet wird, erhält man ein diskretes Signal. Wenn man z.b. ein stetiges π - periodisches Signal an den Stellen πn, 0 n < N abgreift, erhält man ein diskretes Signal N f : Z C mit Periode N. Dessen diskrete Fouriertransformation ist definiert durch ˆf(k) = f(n)e πnk N = f(n)ω kn 0 n<n 1 0 n<n

mit der primitiven N ten Einheitswurzel ω = e πi N. Man kann ˆf(k) auffassen als f(ω k ) für das Polynom f = f 0 +f 1 X +...+f N 1 X N 1. Im folgenden verallgemeinern wir C zu einem konmmutativen Ring R mit 1, und zeigen, daß man die diskrete Fouriertransformation (DFT) rekursiv, d.h. schnell berechnen kann. Das Verfahren heißt schnelle Fouriertransformation(FFT).Es gilt nach dem schnellen Sortieren als der zweitwichtigste Algorithmus. Als Anwendung ergibt sich eine schnelle Berechnung der Polynommultiplikation: f g = (f 0 +...f n 1 X n 1 )(g 0 +... g n 1 X n 1 ) = ( f i g j )X k k i+j=k d.h. der Koeffizienten von f g. Mit einem Trick kann man dies Verfahren auf Ringen simulieren, in denen gar keine primitiven N ten Einheitswurzeln existieren, wie z.b. in Z. Dies führt zu dem berühmten Algorithmus von Schönhage und Strassen, welcher Zahlen der Wortlänge n mit O(nlognloglogn) arithmetischen Operationen multipliziert, statt mit O(n ). Näheres in v.z.gathen, Gerhard: Modern Computer Algebra. Wir werden der DFT in der Kodierungstheorie wieder begegnen. Definition 0.1 Sei R ein kommutativer Ring mit 1, 1 n N, ω R. Wir bezeichnen die 1 in R, n mal zu sich selbst addiert ebenfalls mit n. ω heist n te Einheitswurzel, wenn ω n = 1.ω heißt primitive, n te Einheitswurzel, wenn ω n = 1, n R, und für jeden Primteiler t von n ω n/t 1 kein Nullteiler in R. Beispiele 0.1 ω = e πi n C ist primitive n te Einheitswurzel. Die Potenzen von ω sind n gleich auf dem Einheitskreis verteilte Punkte. ist 4 te Einheitwurzel in Z 15, jedoch nicht primitiv, da 4/ 1 = 3 Nullteiler. 3 ist primitive 16 te Einheitswurzel in Z 17. Definition 0. Sei f = (f 0, f 1,..., f n 1 ) R n. Man setzt f(x) = f i x i ; DFT ω f = (f(1), f(ω),...f(ω n 1 )). i=0 DFT ω : R n R n heißt diskrete Fouriertransformation. Es ist nützlich, f = (f 0, f 1,...f n 1 ) wahlweise als Element von R n oder als Element von R[x]/(X n 1) (zwei isomorphe R Moduln,) aufzufassen. Wir führen nun auf R n zwei verschiedene Multiplikationen ein, d.h. wir machen

R n auf zwei verschiedene Weisen zu einer Algebra, derart, daß DFT ein Algebrenhomomorphismus ist: Für f = (f 0, f 1,..., f n 1 ), g = (g 0, g 1,..., g n 1 ) R n setzt man f g = (f 0 g 0,...f n 1 g n 1 ); f n g = (h 0,...h n 1 ) wobei h k = f i g j + f i g j = f i g j i+j=k i+j=n+k i+j k(modn) Bei Auffassung von f, g als Elemente von R[X]/(X n 1) ist f n g einfach das Produkt im Ring R[X]/(X n 1), denn fg = ( k=0 i+j=k x k ( f i g j + k=0 n f i g j )X k + x n ( f i g j )X k i+j=k k=n i+j=n+k Division mit Rest von fg durch X n 1 ergibt i+j=k f i g j )(mod(x n 1) fg = q(x n 1) + f n g; q R[X] Für eine n te Einheitswurzel ω ist daher und daher Satz 0.1 f n g(ω i ) = f(ω i )g(ω i ) DFT w (f n g) = (DFT ω f) (DFT ω g) Die Operation n wird auch zyklische Faltung genannt. Da jedes der f i mit jedem der g j multipliziert wird, erfordert diese Operation, so, wie sie dasteht O(n ) Multiplikationen in R. Die Operation jedoch nur n. Vorausgesetzt, die DFT kann schnell berechnet werden, liefert die im Satz formulierte Eigenschaft also eine Methode das Polynomprodukt schneller zu berechnen: zuerst DFT, dann Produkt, dann inverse DFT. Bei der Durchführung dieses Programms verwendet man den folgenden Satz Satz 0. Seien l, n natürliche Zahlen, 1 < l < n, ω R primitive nte Einheitswurzel. Dann gilt 3

1. ω l 1 ist kein Nullteiler in R ;. 0 j<n ωlj = 0; 3. ω 1 ist primitive n te Einheitswurzel und 1 n DFT ω 1 = (DFT ω) 1 ; 4. Ist n gerade, so ist ω n/ -te primitive Einheitswurzel. Beweis: Wir benützen (c 1) 0 j<m c j = c m 1 Sei g = ggt(l, n) = sl + rn. Da g < n, gibt es einen Primteiler t von n so daß g n t. Mit m = n tg folgt (ω g 1)a = (ω g ) n tg 1 = ω n t 1 Aus b(ω g 1) = 0 folgt b(ω n t 1) = 0, also b = 0. Also ist ω g 1 kein Nullteiler. Es ist aber ω g = ω sl. Aus (ω l 1)a = (ω l ) s 1 = ω g 1 folgt daher, daß ω l 1 kein Nullteiler ist. Aus (ω l ) n 1 j=0 ωlj = ω ln 1 = 0 folgt daher, daß 0 j<n ωjl = 0. Ferner ist (ω 1 ) n = ω n = ω n ω n ω 0 = 1, und ω 1 = ω j für ein gewisses j it 0 < j < n. Sei nun t ein Primteiler von n. Division mit Rest ergibt: jn 1 = qn + r mit 0 r < n. Also ist (ω 1 ) n 1 1 = ω jn 1 1 = ω r 1 und dies ist kein Nullteiler, wie eben gezeigt. Die Matrix von DFT ω ist die van der Monde Matrix 1 1..., 1 1 ω... ω n 1 V ω = V DM(1, ω, ω,...ω n 1 ) = 1 ω... ω (n 1)...... 1 ω n 1... ω (n 1) Es gilt (V ω V ω 1 ) ij = j ω ij ω jk = 0 j<n (ω i k ) j = { n falls i = k 0 sonst Beispiele 0. i ist primitive 4 - te Einheitswurzel in C, ebenso wie i = ( i) 1. Die von i erzeugte Einheitengruppe ist {1, i, 1, i}. Man hat 1 1 1 1 1 1 1 1 V i = 1 i 1 i 1 1 1 1 ; V i = 1 i 1 i 1 1 1 1 1 i 1 i 1 i 1 i Prüfe V i V i = 4id nach. 4

Man kann, wenn n = k eine Zweierpotenz ist, DFT ω f rekursiv berechnen: dazu dividieren wir f mit Rest durch x n 1 res. x n + 1 : Es gilt dann f = q 0 (x n 1) + r0 = q 1 (x n + 1) + r1 ; degr i < n f(ω j ) = q 0 (ω nj 1) + r 0 (ω j ) = r 0 ((ω ) j ); f(ω j+1 ) = q 1 (ω (j+1) n + 1) + r1 (ω j+1 ) = r 1 (ωω j ) = r 1 ((ω ) j ) weil nämlich nach obigem Satz: 0 = ω n 1 = (ω n + 1)(ω n 1), und ω n 1 kein Nullteiler, ist ω n +1 = 0. Ferner ist ω n primitive n te Einheitswurzel. Damit ist die Berechnung von DFT ω f für ein Polynom vom Grad < n auf die Berechnung von DFT ω r 0, DFT ω r 1 mit Grad r 0, r 1 < n zurückgefuhrt. Wir analysieren jetzt die zur Reduktion erforderliche Anzahl von Rechenoperationen: es ist (r 0 ) j = r 0 (f) j = f j + f n +j ; (r 1 ) j = r 1 (f) j = f j f n +j ; (0 j < n ) Schließlich ist (r 1 ) j = (r 1 ) j ω j ; (0 j < n Die Reduktion erfordert also n Additionen bez. Subtraktionen, und n Multiplikationen in R. Ist S(n) die zur Berechnung von DFT ω f mit Gradf < n benötigte Anzahl Additionen, bez. Subtraktionen, und T(n) die Anzahl der Multiplikationen, so erhält man die folgenden Rekursionsformeln: S(n) = S( n ) + n; T(n) = T(n ) + n Mit S(1) = T(1) = 0, n = k, ergibt sich (Übung): damit haben wir den folgenden S(n) = nlog n; T(n) = n log n. Satz 0.3 Für n = k und eine primitive n te Einheitswurzel ω kann DFT ω f = (f(1), f(ω), f(ω )..., f(ω n 1 ) - bei gegebenen 1, ω, ω,..., ω n 1 mit nlogn Additionen, und n logn Multiplikationtn, also 3n Ringoperationen berechnet werden. 5

Bei gegebener n ter Einheitswurzel ω R kann man die zyklische Konvolution h = f n g R[x]/(X n 1) zweier Polynome f, g vom Grad < n = k wie folgt berechnen: zuerst berechnet man die Potenzen ω,..., ω n 1, dann α = DFT ω f β = DFT ω g, sowie (koordinatenweise) α β = γ, und schließlich: h = DFT ω 1γ. Korollar 0.1 Bei gegebener n = k ter Einheitswurzel in R kann die Konvolution in R[x]/(X n 1) sowie das Produkt in R[x] zweier Polynome f, g R[x] mit deg(fg) < n mit 3nlogn Aadditionen in R, 3 nlogn+n Mutiplikationen mit ω - Potenzen in R und n Divisionen in R, also insgesamt nlogn arithmetischen Operationen in R berechnet werden. 9 6