Αν. Καθηγητής Γεώργιος Ευθύμογλου Σήματα και Συστήματα Αν. Καθηγητής Γεώργιος Ευθύμογλου September 11, 2018 Module Title
Εισαγωγή Ποιο σήμα αντιστοιχεί στο Γινόμενο δύο DFTs? Κυκλική Συνέλιξη Πότε η κυκλική συνέλιξη ισούται με τη γραμμική? Module Title
Discrete Time Fourier Transform (DTFT) Θεώρημα Δυϊκότητας: Το ερώτημα που προκύπτει είναι αν επίσης ισχύει ή ισοδύναμα Επίσης, για ποια τιμή του Ν ισχύει η ισότητα?? Δηλαδή, σε πόσες συχνότητες πρέπει να γνωρίζουμε το φάσμα των x(n) και h(n) ώστε ο πολλαπλασιασμός των δύο φασμάτων να μας δίνει το φάσμα του y(n) = h(n) * x(n)
DFT of length N Καταρχήν στο δεύτερο μέρος της παραπάνω εξίσωσης πρέπει να ορίσουμε το DFT length Ν που πρέπει να είναι το ίδιο για το x(n) και h(n), ώστε να πολλαπλασιαστούν κάθε φορά οι ίδιες συχνότητες Σύμφωνα με τα προηγούμενα το Ν πρέπει να είναι το μεγαλύτερο από τα δύο μήκη, δηλαδή max[ length(x), length(h)]. Είναι όμως αυτό αρκετό για να μας δώσει μέσω του IDFT το ίδιο αποτέλεσμα με τη γραμμική συνέλιξη y(n) = x(n) * h(n) ? Η απάντηση προκύπτει εύκολα αν σκεφτούμε ως εξής: το αποτέλεσμα της συνέλιξης y(n) έχει μήκος: length(y) = length(x) + length(h) – 1.
DFT of length N Επομένως, σύμφωνα με τα προηγούμενα, μόνο αν γνωρίζουμε το DFT σε τουλάχιστον length(y) συχνότητες μπορούμε μέσω του IDFT να επανακτήσουμε το σήμα y(n). Δηλαδή οι τιμές της σε Ν = max [ length(x), length(h)] συχνότητες δεν είναι αρκετές. (Θα υπάρχει επικάλυψη στα πρώτα length(h) – 1 δείγματα). Το παραπάνω όμως πρόβλημα, μας οδηγεί απευθείας και στη λύση του προβλήματος. Δηλαδή αν επιλέξουμε μήκος DFT / IDFT τουλάχιστον ίσο με length(x) + length(h) – 1 τότε και μόνο τότε
DFT of length N >>x = [6,5,4,3,2,1]; >>h=[1,2,3]; >> y=conv(x,h) y = 6 17 32 26 20 14 8 3 >> x_fft = fft(x, 8); >> h_fft = fft(h, 8); >> y_fft = x_fft .* h_fft; % dot operator >> y_ifft = ifft(y_fft, 8) y_ifft = 6.0 17.0 32.0 26.0 20.0 14.0 8.0 3.00
Κυκλική συνέλιξη Ορίζουμε ως την μετατόπιση κατά m δείγματα του θεωρώντας όμως ότι το είναι η περιοδική επέκταση του με περίοδο Ν ! Για παράδειγμα αν (μήκος Ν = 4), τότε Επίσης ορίζουμε το circular convolution ως
Κυκλική συνέλιξη Το DFT για το circular convolution δίνεται ως Δηλαδή, όταν πολλαπλασιάζουμε δύο Ν-point DFT στο πεδίο συχνοτήτων, παίρνουμε το circular convolution (αντί του linear convolution) στο χρονικό πεδίο.
Κυκλική συνέλιξη Υπολογίστε το 4-point circular convolution για τα σήματα και για n=0 για n=1
Κυκλική συνέλιξη για n=2 για n=3 Επομένως
Κυκλική συνέλιξη DFT μήκους 4 του = Και = Και τελικά: IDFT =
Κυκλική συνέλιξη Πότε η κυκλική συνέλιξη θα ισούται με την γραμμική? Απάντηση το circular convolution να δίνει τα ίδια αποτελέματα με το linear convolution θα πρέπει να πάρουμε Ν = length( ) + length( ) -1 point circular convolution. Για το προηγούμενο παράδειγμα αν πάρουμε Ν =3+4-1=6 point circular convolution (length(x1)=3) θα έχουμε το οποίο είναι ακριβώς το αποτέλεσμα της γραμμικής συνέλιξης conv(x1, x2) = 1 4 9 14 14 8
Κυκλική συνέλιξη Επίσης μπορούμε να παρατηρήσουμε ότι όταν πήραμε 4-point circular convolution (μικρότερο από ότι έπρεπε για τον γραμμικό) έχουμε αναδίπλωση των τιμών των δειγμάτων n=4 και n=5 που επειδή δεν «χωράνε» εμφανίζονται ως άθροισμα στα δείγματα n=0 και n=1, αντίστοιχα. Για αυτό το λόγο βρήκαμε . Γενικά τα 6-4 = 2 μόνα πρώτα δείγματα θα είναι λάθος όταν το μήκος της κυκλικής συνέλιξης (=4) είναι μικρότερο από το μήκος της γραμμικής (=6)!
IDFT Γενικά, για να επανακτήσουμε ένα διακριτού χρόνου σήμα με μήκος Ν δείγματα από το φασματικό του περιεχόμενο, πρέπει να γνωρίζουμε το Διακριτό Μετασχηματισμό Fourier σε Ν συχνότητες στο διάστημα 0 – 2π: X(k), k=0,1,…,N-1