Fast Fourier Transform

Σχετικά έγγραφα
(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Μ. Μαυρονικόλας. μπορούμε να πολλαπλασιασουμε (1,0,1,-1) με τον FFT πίνακα ή να εφαρμόζουμε τον

(Γραμμικές) Αναδρομικές Σχέσεις

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Ψηφιακή Επεξεργασία Σημάτων

(Γραμμικές) Αναδρομικές Σχέσεις

Discrete Fourier Transforms

Όταν οι αριθμοί είναι ομόσημοι Βάζουμε το κοινό πρόσημο και προσθέτουμε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΤΑΧΥΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

Μαθηµατικά για Πληροφορική

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Εισαγωγή. Υπολογιστική Αλγεβρα. Μάθηµα 7

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

Ψηφιακή Επεξεργασία Σημάτων

Αναδρομικοί Αλγόριθμοι

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Ο μετασχηματισμός Fourier

Δηλαδή η ρητή συνάρτηση είναι πηλίκο δύο ακέραιων πολυωνύμων. Επομένως, το ζητούμενο ολοκλήρωμα είναι της μορφής

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΩΝ Κυκλική Συνέλιξη. Εµµανουήλ Ζ. Ψαράκης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 1 η Ημερομηνία Αποστολής στον Φοιτητή: 20 Οκτωβρίου 2008

Αλγόριθμοι και πολυπλοκότητα Ο Μετασχηματισμός Fast Fourier

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Ψηφιακή Επεξεργασία Σημάτων

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 20: Διακριτός Μετασχηματισμός Fourier (Discrete Fourier Transform DFT)

Να γράψετε 5 φυσικούς αριθμούς ξεκινώντας από τον μικρότερο. Ποιοι αριθμοί λέγονται ρητοί και ποιοι άρρητοι;

Αλγόριθμοι και Πολυπλοκότητα

(a 1, b 1 ) (a 2, b 2 ) = (a 1 a 2, b 1 b 2 ).

Συστήματα συντεταγμένων

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Ψηφιακή Επεξεργασία Σημάτων

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Εισαγωγή στην επιστήμη των υπολογιστών

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

1η Σειρά Γραπτών Ασκήσεων

(Γραμμικές) Αναδρομικές Σχέσεις

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Χρονικές σειρές 4 o μάθημα: ΠΙΝΑΚΕΣ ΚΑΙ ΔΙΑΝΥΣΜΑΤΑ

ΜΕΜ251 Αριθμητική Ανάλυση

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Παναγιώτης Ψαρράκος Αν. Καθηγητής

Μετασχηματισμοί στον R 2 Μπορούν να παρασταθούν (και να υλοποιηθούν) με πολλαπλασιασμό πινάκων Ο πολλαπλασιασμός Ax μπορεί να ειδωθεί σαν μετασχηματισ

Εθνικό Μετσόβιο Πολυτεχνείο

Εφαρμοσμένα Μαθηματικά ΙΙ

Αριθμοθεωρητικοί Αλγόριθμοι

Αλγοριθμικές Τεχνικές

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

20-Φεβ-2009 ΗΜΥ Διακριτός Μετασχηματισμός Fourier

Αναδρομικός αλγόριθμος

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

ΠΛΗΡΟΦΟΡΙΚΗ I. 4 η ΔΙΑΛΕΞΗ Αριθμητικά Συστήματα

Παράδειγμα 1. Δίνεται ο κάτωθι κλειστός βρόχος αρνητικής ανάδρασης με. Σχήμα 1. στο οποίο εφαρμόζουμε αρνητική ανάδραση κέρδους

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 22: Γρήγορος Μετασχηματισμός Fourier Ανάλυση σημάτων/συστημάτων με το ΔΜΦ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Εφαρμοσμένα Μαθηματικά ΙΙ

Δυαδικό Σύστημα Αρίθμησης

4.2 ΔΙΑΙΡΕΣΗ ΠΟΛΥΩΝΥΜΩΝ

7. Αν υψώσουμε και τα δύο μέλη μιας εξίσωσης στον κύβο (και γενικά σε οποιαδήποτε περιττή δύναμη), τότε προκύπτει

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή

Συστήματα Αρίθμησης. Συστήματα Αρίθμησης 1. PDF created with FinePrint pdffactory Pro trial version

FFT. εκέµβριος 2005 ΨΕΣ 1

Μαθηματικά Γ Γυμνασίου

Γραμμική Αλγεβρα ΙΙ Διάλεξη 1 Εισαγωγή Χρήστος Κουρουνιώτης Πανεπισ τήμιο Κρήτης 19/2/2014 Χ.Κουρουνιώτης (Παν.Κρήτης) Διάλεξη 1 19/2/ / 13

ΜΕΜ251 Αριθμητική Ανάλυση

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM 1/ 80. ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT Σ.

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών

Ασκήσεις3 Διαγωνισιμότητα Βασικά σημεία Διαγωνίσιμοι πίνακες: o Ορισμός και παραδείγματα.

Αριθμητικά Συστήματα = 3 x x x x 10 0

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Αριθμητικά Συστήματα. Επιμέλεια Διαφανειών: Δ.

ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΤΗΣ ΜΕΘΟΔΟΥ SIMPLEX

Παραδείγματα Ιδιοτιμές Ιδιοδιανύσματα

Κεφάλαιο 2.4 Matrix Algorithms

Επίλυση ενός τριδιαγώνιου γραµµικού συστήµατος Ax = d µε τη µέθοδο απαλοιφής του Gauss (µέθοδος του Thomas)

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

= 7. Στο σημείο αυτό θα υπενθυμίσουμε κάποιες βασικές ιδιότητες του μετασχηματισμού Laplace, δηλαδή τις

Πολλαπλασιασμός: αλγόριθμος

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΜΑΘΗΜΑΤΙΚΑ Ι (ΘΕ ΠΛΗ 12) ΕΡΓΑΣΙΑ 2 η Ημερομηνία Αποστολής στον Φοιτητή: 28 Νοεμβρίου 2011

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

n ίδια n διαφορετικά n n 0 n n n 1 n n n n 0 4

P(n, r) = n! P(n, r) = n r. (n r)! n r. n+r 1 r n!

Εισαγωγή στους Αλγόριθμους

Α. Οι πραγματικοί αριθμοί και οι πράξεις τους

2018 Φάση 2 ιαγωνίσµατα Επανάληψης ΑΛΓΕΒΡΑ. Α' Γενικού Λυκείου. Σάββατο 21 Απριλίου 2018 ιάρκεια Εξέτασης:3 ώρες ΘΕΜΑΤΑ

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Transcript:

Fast Fourier Transform Παναγιώτης Πατσιλινάκος ΕΜΕ 19 Οκτωβρίου 2017 Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 1 / 20

1 Εισαγωγή Στόχος Προαπαιτούμενα 2 Η ιδέα Αντιστροφή - Interpolation Ο Αλγόριθμος Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 2 / 20

Εισαγωγή Στόχος Πολλαπλασιασμός Πολυωνύμων Στόχος μας είναι ο πολλαπλασιασμός πολυωνύμων. Για παράδειγμα, για δυο πολυώνυμα βαθμού d, A(x) = a 0 + a 1 x +... + a d x d και B(x) = b 0 + b 1 x +... + b d x d, ψάχνουμε το C(x) = A(x) B(x) = c 0 + c 1 x +... + c 2d x 2d Ουσιαστικά ψάχνουμε τους συντελεστές, όπου c k = a 0 b k + a 1 b k 1 +... + a k b 0 = k a i b k i i=0 Οπου για i > d θεωρούμε τα a i και b i μηδέν και 0 k 2d. Από τον παραπάνω τύπο, θα είχαμε O(k) βήματα για τον υπολογισμό ενός συντελεστή και άρα O(d 2 ) για τον υπολογισμό των 2d + 1 συντελεστών. Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 3 / 20

Γιατί; Εισαγωγή Στόχος Για πολλούς λόγους. Πολλαπλασιασμός ακεραίων. Ουσιαστικά, αν θέσουμε όπου x τη βάση 2 και θεωρήσουμε δυαδικούς συντελεστές, έχουμε το γινόμενο δυαδικών αριθμών. (Στην ανάλυση, θα θεωρούμε ότι το γινόμενο δυο συντελεστών γίνεται σε ένα βήμα. Αυτό δεν επηρεάζει την μελέτη του γινομένου δυαδικών.) Πρακτικά μιλάμε για τη συνέλιξη δυο διανυσμάτων a b για a, b IR n, όπου: a b = (i,j):i+j=k i<m,j<n a i b j Δηλαδή :a b = (a 0 b 0, a 0 b 1 + a 1 b 0, a 0 b 2 + a 1 b 1 + a 2 b 0,..., a n 2 b n 1 + a n 1 b n 2, a n 1 b n 1 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 4 / 20

Συμβολισμός Εισαγωγή Προαπαιτούμενα Κάθε πολυώνυμο βαθμού d χαρακτηρίζεται μοναδικά από τις τιμές του σε οποιαδήποτε d + 1 διακριτά σημεία. Άρα, για οποιαδήποτε διακριτά σημεία x 0,..., x d, μπορούμε να ορίσουμε ισοδύναμα ένα πολυώνυμο βαθμού d, A(x) = a 0 +... + a d x d : Από τους συντελεστές του a 0,..., a d Τις τιμές του A(x 0 ),..., A(x d ) (αναπαράσταση τιμών) Αλλά, ένα πολυώνυμο C(x) που είναι γινόμενο δυο πολυωνύμων βαθμού d, έχει βαθμό 2d και χαρακτηρίζεται πλήρως από την τιμή του σε 2d + 1 σημεία. Ομως η τιμή του σε ένα σημείο z μπορεί να υπολογιστεί σε ένα βήμα, A[z] B[z], αν έχουμε τις τιμές A[z] και B[z]. Άρα ο πολλαπλασιασμός πολυωνύμων γίνεται σε γραμμικό χρόνο όταν γίνεται με αναπαράσταση τιμών. Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 5 / 20

Εισαγωγή Evaluation - Interpolation Προαπαιτούμενα Το πρόβλημα είναι ότι θέλουμε σαν είσοδο και έξοδο να έχουμε πολυώνυμα σε αναπαράσταση με συντελεστές. Άρα, θα πρέπει να κάνουμε δυο μετατροπές: Ομως πόσο γρήγορα μπορούμε να κάνουμε αυτές τις μετατροπές; Αν αποτίμηση ενός πολυωνύμου βαθμού d n γενικώς απαιτεί O(n) βήματα, τότε, για n σημεία, θα είχαμε πάλι χρόνο O(n 2 ). Ο ταχύς μετασχηματισμός Fourier (FFT) κάνει τον παραπάνω υπολογισμό σε χρόνο O(nlogn) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 6 / 20

Διαίρει και Βασίλευε I Η ιδέα Θα διαλέξουμε έξυπνα τα σημεία που θα αποτιμήσουμε. Για πολυώνυμο βαθμού n 1, διαλέγουμε ζευγάρια αριθμών με τους αντίθετους τους: ±x 0, ±x 1,..., ±x n/2 1 Ετσι, για κάθε ζεύγος A(x i ), A( x i ) θα κερδίσουμε από τους υπολογισμούς, χρησιμοποιώντας το γεγονός ότι οι ζυγές δυνάμεις του x i είναι ίδιες με αυτές του x i. Για να το πετύχουμε αυτό, θα χωρίσουμε το πολυώνυμο A(x) σε ζυγές και μονές δυνάμεις. Πχ: 3 + 4x + 6x 2 + 2x 3 + x 4 + 10x 5 = (3 + 6x 2 + x 4 ) + x(4 + 2x 4 + 10x 4 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 7 / 20

Διαίρει και Βασίλευε II Η ιδέα Ετσι χωρίσαμε το αρχικό πολυώνυμο σε πολυώνυμα του x 2.: A(x) = A e (x 2 ) + xa o (x 2 ) Οπου το A e έχει τους συντελεστές των ζυγών δυνάμεων και το A o των μονών του A αντίστοιχα. Τα A e και A o θα έχουν βαθμό n/2 1 Ετσι, οι υπολογισμοί που χρειάζονται για να υπολογιστεί το A(x i ), μπορούν να επαναχρησιμοποιηθούν για τον υπολογισμό του A( x i ) καθώς: A(x i ) = A e (x 2 i ) + x i A(x 2 i ) A( x i ) = A e (x 2 i ) x i A(x 2 i ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 8 / 20

Διαίρει και Βασίλευε III Η ιδέα Ετσι, ο υπολογισμός του A(x) σε n ζεύγη σημείων ±x 0,... ± x n/2 1, ανάγεται στον υπολογισμό των A e (x), A o (x) στα n/2 σημεία x 2 0,..., x 2 n/2 1 Με αυτόν τον τρόπο, το αρχικό πρόβλημα μεγέθους n χωρίζεται σε δυο υποπροβλήματα ίδιου τύπου, μεγέθους n/2 που συνδυάζονται με αριθμητικές πράξεις γραμμικού χρόνου. Συνεπώς προκύπτει η αναδρομική σχέση: T (n) = 2T (n/2) + O(n) Που είναι ίσο με O(nlogn). Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 9 / 20

Επιλογή σημείων I Η ιδέα Τα σημεία που έχουμε επιλέξει μέχρι στιγμής, λειτουργούν μόνο στο πρώτο επίπεδο της αναδρομής. Για να συνεχίσουμε στο επόμενο επίπεδο, θα θέλαμε τα x0 2,..., x n/2 1 2 να είναι επίσης ζεύγη αριθμών με τους αντίθετους τους. Λύση: Μιγαδικοί αριθμοί. Στο τελευταίο επίπεδο της αναδρομής, μας μένει ένα μοναδικό σημείο. Αν επιλέξουμε αυτό να είναι ο αριθμός 1: Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 10 / 20

Επιλογή σημείων II Η ιδέα Τελικά ψάχνουμε τις n μιγαδικές ρίζες του z n = 1. Οι ρίζες είναι οι 1, ω, ω 2,..., ω n 1 όπου ω = e 2ni/n, με τις ιδιότητες: 1 Οι n-οστές ρίζες είναι ζεύγη θετικών-αρνητικών αριθμών, (ω n/2+j = ω j ) 2 Τετραγωνίζοντάς αυτές, έχουμε τις n/2 ρίζες του z n/2 = 1 Ετσι, για n δύναμη του 2, σε κάθε επόμενο βήμα της αναδρομής έχουμε τις (n/2 k ) ρίζες του z n/2k = 1, για k = 0, 1, 2,..., κάθε σετ εκ των οποίων είναι ζεύγη θετικών-αρνητικών αριθμών. Ετσι, ο αλγόριθμος λειτουργεί. Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 11 / 20

Αντιστροφή I Αντιστροφή - Interpolation Οπως είπαμε στην αρχή, θέλουμε έναν αλγόριθμο που να δέχεται πολυώνυμα με περιγραφή συντελεστών και να επιστρέφει το γινόμενό τους επίσης σε μορφή συντελεστών. Μέχρι στιγμής είδαμε πως να μετατρέψουμε την είσοδο σε αναπαράσταση τιμών και γνωρίζουμε ότι σε αυτήν την αναπαράσταση βρίσκουμε το γινόμενο σε γραμμικό χρόνο. Τώρα πρέπει να μετατρέψουμε το γινόμενο από αναπαράσταση τιμών σε περιγραφή τελεστών. Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 12 / 20

Αντιστροφή II Αντιστροφή - Interpolation, μετακινεί (περιστρέφει) τους συντελεστές σε τιμές, με είσοδο τις n ρίζες του z n = 1, (1, ω, ω 2,..., ω n 1 ): τιμές = FFT ( συντελεστές, ω) Ουσιαστικά, έχουμε το γραμμικό μετασχηματισμό: A(x 0 ) 1 x 0 x0 2... x n 1 0 a 0 A(x 1 ).. = 1 x 1 x1 2... x n 1 1 a 2.... A(x n 1 ) 1 x n 1 xn 1 2... xn 1 n 1 a n 1 Αλλά ο μεσαίος πίνακας (M n (x)) είναι πίνακας Vandermonde, συνεπώς αντιστρέψιμος (τα πολυώνυμα χαρακτηρίζονται μοναδικά με την αναπαράσταση τιμών). Στην ειδική περίπτωση του M n (ω) ισχύει M n (ω) 1 = 1 n M n(ω 1 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 13 / 20

Αντιστροφή III Αντιστροφή - Interpolation Ετσι, για το interpolation έχουμε: συντελεστές = 1 n FFT ( τιμές, ω 1 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 14 / 20

Περιγραφή του Αλγορίθμου I Ο Αλγόριθμος Οπως είδαμε, ο αλγόριθμος υπολογίζει ουσιαστικά το γινόμενο του πίνακα M n (ω) με το διάνυσμα των συντελεστών a = (a 0,..., a n 1 ), ως είσοδο, (όπου ω ο αριθμός του οπίου οι δυνάμεις, μέχρι n 1 είναι οι ρίζες του z n = 1. Αν αναδιατάξουμε τις στήλες του M για να ομαδοποιήσουμε τις ζυγές και τις μονές, και απλοποιήσουμε το κάτω μισό του πίνακα, χρησιμοποιώντας ω n/2 = 1 και ω n = 1: Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 15 / 20

Περιγραφή του Αλγορίθμου II Ο Αλγόριθμος Βλέπουμε το επόμενο στάδιο της αναδρομής: Οπου κάθε υποπίνακας M n/2 είναι ο M n/2 (ω 2 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 16 / 20

Περιγραφή του Αλγορίθμου III Ο Αλγόριθμος Algorithm 1 FFT(a, ω) 0: Είσοδος: Διάνυσμα a = (a 0,..., a n 1 ) για n δύναμη του 2, Η βάση ω των ριζών του z n = 1 0: Εξοδος: Το γινόμενο M n (ω)(a) 1: if ω = 1 return a 2: (s 0, s 1,..., s n/2 1 ) = FFT ((a 0, a 2,..., a n 2 ), ω 2 ) 3: (s 0, s 1,..., s n/2 1 ) = FFT ((a 1, a 3,..., a n 1 ), ω 2 ) 4: for j = 0 to n/2 1 do 5: r j = s j + ω j s j 6: r j+n/2 = s j ω j s j 7: end for 8: return (r 0, r 1,..., r n 1 ) Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 17 / 20

Παράδειγμα I Ο Αλγόριθμος Σαν κύκλωμα: Το εξωτερικό κουτί, λύνει το πρόβλημα για μέγεθος n, και τα εσωτερικά, για υποπροβλήματα μεγέθους n/2. Στην παραπάνω πεταλούδα, το βάρος j στην ακμή σημαίνει ότι πολλαπλασιάζουμε την πληροφορία που μεταφέρει με ω j, ενώ η τομή δυο ακμών από τα αριστερά σημαίνει πρόσθεση των περιεχομένων τους. Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 18 / 20

Παράδειγμα II Ο Αλγόριθμος Για n = 8: Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 19 / 20

Βιβλιογραφία Ο Αλγόριθμος S.Dasgupta,C.H.Papadimitriou, and U.V.Vazirani Algorithms McGraw-Hill, 2008 J. Kleinberg and E. Tardos Algorithm Design Addison-Wesley, 2006 Παναγιώτης Πατσιλινάκος (ΕΜΕ) Fast Fourier Transform 19 Οκτωβρίου 2017 20 / 20