FFT εκέµβριος 5 ΨΕΣ
Ορισµοί O διακριτός µετασχηµατισµός Fourier DFT, αναφέρεται σε µία πεπερασµένου µήκους ακολουθία σηµείων και ορίζεται ως εξής: και ο αντίστροφος µετασχηµατισµός (inverse DFT) : όπου: e X() DFT [x(n)] n x(n) IDFT [X()] π j x(n) n X() n n ο «παράγοντας αναστροφής- twiddle factor» εκέµβριος 5 ΨΕΣ
Ταχύς µετασχ. Fourier Fast Fourier Transform - FFT n X() DFT[x(n)] x(n) n Ο υπολογισµός του DFT βάσει του ορισµού του απαιτεί για κάθε, Ν µιγαδικούς πολλαπλασιασµούς και Ν- προσθέσεις. Εποµένως συνολικά για όλα τα απαιτούνται Ν µιγαδικοί πολλαπλασιασµοί και Ν(Ν-) προσθέσεις ηλ. οι πράξεις για υπολογισµό τουdft είναι C o( ) Στους αλγόριθµους βελτίωσης (FFT) η υλοποίησητουdft γίνεται µε διάσπαση των ακολουθιών σε µικρότερες οµάδες και υπολογισµό της συνολικής εξόδου από συνδυασµό των επιµέρους (divide and combine ) εκέµβριος 5 ΨΕΣ 3
FFT Oι δύο βασικοί αλγόριθµοι FFT είναι: decimation in time (DIT-FFT) και decimation in frequency (DIF-FFT). Bασίζονται σε δύο χαρακτηριστικές ιδιότητες του παράγοντα αναστροφής της περιοδικότητας της συµµετρίας n+ n+ / n n 8 j εκέµβριος 5 ΨΕΣ
εκέµβριος 5 ΨΕΣ 5 FFT FFT Σαν εισαγωγή στη διαδικασία του αλγόριθµου FFT θα υπολογιστεί ο DFT 3 n n j 3 x(n) X() x(3) x() x() x() X(3) X() X() X() 9 6 3 6 3 x(3) x() x() x() j j j j X(3) X() X() X() Εάν αναδιατάξουµε καιοµαδοποιήσουµε τις παραπάνω πράξεις έχουµε: X() x()+x()+x()+x(3) [x()+x()] + [x()+x(3)] X() x()-jx()-x()+jx(3) [x()-x()] j[x()-x(3)] X() x()-x()+x()-x(3) [x()+x()] [x()+x(3)] X(3) x()+jx()-x()-jx(3) [x()-x()] + j[x()-x(3)]
FFT FFT(συνέχεια) Άρα ένας ταχύς αλγόριθµος υλοποιεί τον παραπάνω DFT στα εξής δύο βήµατα: x()+x() g x()+x(3) g o Βήµα x() -x() h x() -x(3) h g+g X() h-jh X() ο Βήµα g-g X() h+jh X(3) ηλαδή: Ο DFT σηµείων έχει υλοποιηθεί µε δύο DFT σηµείων. Οι πράξεις (πολλαπλασιασµοί) έχουν µειωθεί σε + 8 αντί 6 εκέµβριος 5 ΨΕΣ 6
FFT FFT(συνέχεια) Σχηµατικά x() g X() x() - h -j X() x() g - X() x(3) - h j X(3) εκέµβριος 5 ΨΕΣ 7
Decimation in time Radix- FFT ιάσπαση του DFT. Μία ακολουθία x(n) σηµείων έχει DFT: / n X() / n n / n (n) n + x(n) + / n / n n /,,... και µπορεί να διασπασθεί για άρτιους και περιττούς όρους ως εξής: X() x(n) x(n) (n+ ) x(n + ) x(n + ) εκέµβριος 5 ΨΕΣ 8
Radix- FFT Ορίζοντας τις υπο-ακολουθίες ως: g(n) h(n) () () x(n) x(n + ) Και τους αντίστοιχους DFT: / n / n n / n / g(n) h(n) n,,... Έχουµε: X() () + () εκέµβριος 5 ΨΕΣ 9
Radix- FFT Αυτός είναι ο βασικός τύπος συγκερασµού (merging formula) όπου µε συνδυασµό DFTs Ν/ σηµείων υπολογίζεται ο DFT Ν σηµείων. Aπλοποιώντας την διαδικασία έχουµε X() () + X( + / ) () ( + / ) + + / ( + / ) Επειδή (+/)(), (+/)() και X() X( () + / ) + () () () /,,...,,... Αυτός είναι ο τύπος συγκερασµού πεταλούδας (butterfly) εκέµβριος 5 ΨΕΣ
εκέµβριος 5 ΨΕΣ παραδείγµατα + + / / / / / / / / /......... X... X X......... X... X X + + 3 j X X j X X Για Ν
Σχήµα - Τύπος συγκερασµού πεταλούδας /-DFT -DFT / Χ() + X / _ Χ(+/) - εκέµβριος 5 ΨΕΣ
Radix- FFT - ΑΝΑ ΙΑΤΑΞΗ x o x o x o A o o X o x x x A X x x x B o X x 3 x 6 x 6 B 3 X 3 x x x C o o 8 X x 5 x 3 x 5 C 8 X 5 x 6 x 5 x 3 D o 8 X 6 x 7 x 7 x 7 D 3 8 3 X 7 εκέµβριος 5 ΨΕΣ 3
Υπολογιστικό κόστος FFT Από το προηγούµενο σχήµα φαίνεται ότι για κάθε επίπεδο υπολογισµού απαιτούνται Ν/ πολλαπλασιασµοί. Για Ν Β σηµεία τα επίπεδα Β είναι: Βlog Συνολικά για τον υπολογισµό του FFT απαιτείται αριθµός πολλαπλασιασµών ίσος µε : / Νlog Απαραίτητη προϋπόθεση βέβαια είναι ο αριθµός των σηµείων Ν να είναι δύναµη του : Β Για Ν / log πολλαπλασιασµούς Ν8 / 8 log8 πολλαπλασιασµούς εκέµβριος 5 ΨΕΣ
εκέµβριος 5 ΨΕΣ 5 παράδειγµα -3 - - 3-3 -3 - - 3-3 - 3 5 5 - -5 - - -j -j 8 5+j - 5-j - -+j -6 --j (-j) -j -(-j) 5+j+j -+6j 5-j+j 5+j-j --6j 5-j-j
ιαδικασία: Bit reversal x o x o x o x x x x x x x 3 x 6 x 6 x x x x 5 x 3 x 5 x 6 x 5 x 3 x 7 x 7 x 7 εκέµβριος 5 ΨΕΣ 6
ιαδικασία: Bit reversal Για Ν8έχουµε την ακολουθία x(n) όπου n [ 3 5 6 7 ] Για τον υπολογισµό του FFT χωρίζουµε σε υπόακολουθίες: n [ 6] [ 3 5 7 ] Οµοίως n [ ] [ 6] [ 5] [3 7 ] όπου υπολογίζουµε τον DFT κάθε ζευγαριού εκέµβριος 5 ΨΕΣ 7
Ταχεία συνέλιξη (Fast Convolution) Η συνολική διαδικασία φιλτραρίσµατος µε FFT περιλαµβάνει την εύρεση των δύο FFTs δηλ. της κρουστικής απόκρισης h(n) και του σήµατος εισόδου x(n) την εύρεση του γινοµένου των δύο FFTs. την αντιστροφή (υπολογισµός του IFFT) Η συνολική αυτή διαδικασία έχει την ονοµασία ταχεία συνέλιξη (fast convolution) x(n) FFT h(n) FFT Πολλαπλα σιασµός ΙFFT y(n) εκέµβριος 5 ΨΕΣ 8
Ταχεία συνέλιξη (γραφικά) h(n) x(n) y(n)x(n) h(n) 6 8 IFFT X() () () X() εκέµβριος 5 ΨΕΣ 9
Συνέλιξη κατά τµήµατα (bloc convolutions) Μέθοδος επικάλυψης πρόσθεσης (overlap and add) Μέθοδος επικάλυψης αποθήκευσης (overlap and save - select and save) x(n) h(n) h(-n) y(n) εκέµβριος 5 ΨΕΣ
x(n) h(n) Συνέλιξη µε την µέθοδο επικάλυψηςπρόσθεσης y y y y(n) εκέµβριος 5 ΨΕΣ
x(n) Συνέλιξη µε την µέθοδο επικάλυψηςαποθήκευσης. Η επικάλυψη είναι 3 σηµεία. Τα 3 πρώτα δείγµατα σε κάθε επι µέρους συνέλιξη απορρίπτονται. h(n) y y y y(n) εκέµβριος 5 ΨΕΣ
Αλγόριθµος oertzel Ο αλγόριθµος oertzel είναι µία µέθοδος υπολογισµού του FFT µε διαδικασία φιλτραρίσµατος. Βασίζεται στην περιοδικότητα του παράγοντα αναστροφής Μία βασική εφαρµογή της µεθόδου αυτή είναι στην ανίχνευση DTMF σηµάτων. εκέµβριος 5 ΨΕΣ 3
Αλγόριθµος oertzel (συνέχεια) Για τον DFT Ν έχουµε: m ( ) x( m) x( m) X m m e π j m επειδή m X( ) x( m) x( m) e Θεωρούµε: y (n) m ( m) εκέµβριος 5 ΨΕΣ m x ( m) e π j ( nm) Η παραπάνω σχέση µπορεί να θεωρηθεί συνέλιξη: y (n) m Ηέξοδοςτουφίλτρουγιαn δίνει την τιµή τουdft στη συχνότητα X() ω π x(n) h n ( n) x(n) π j
Αλγόριθµος oertzel (συνέχεια) Ησυνάρτησηµεταφοράς του φίλτρου αυτού είναι: ( z) z y π j ( n) e y ( n ) x( n) + Για αποφυγή των µιγαδικών πράξεων πολλαπλασιάζουµε µε τον όρο z και έχουµε : ( z) z π cos z + z εκέµβριος 5 ΨΕΣ 5
Αλγόριθµος oertzel (συνέχεια) Από όπου προκύπτει ότι : v y π cos v () ( ) ( ) + ( ) n () () ( ) n v n v n n v n x n Η η επαναληπτική σχέση υπολογίζεται για n,, και έχει πραγµατικούς αριθµούς µόνο. Η η σχέση από την οποία βρίσκεται ο X() υπολογίζεται µόνο για κάθε n. ν (n) - εκέµβριος 5 ΨΕΣ 6
Αλγόριθµος oertzel (συνέχεια) Για την υλοποίηση του DTMF, (8 τόνοι),χρειάζονται 8 από τα παραπάνω φίλτρα. Επειδή µόνο το µέτρο X() χρειάζεται, οι προηγούµενες σχέσεις υπολογισµού γίνονται: X( ) ν κ y (Ν) + ν ( ) κ ν ( ) π (Ν ) cos ν ν κ (Ν ) ( )ν όπου οι µιγαδικές πράξεις έχουν εξαλειφθεί ( ) εκέµβριος 5 ΨΕΣ 7