Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w...

25
Ψηφιακή Επεξεργασία Σήματος Ενότητα Θ: Σχεδίαση Ψηφιακών Φίλτρων Πεπερασμένης Χρονικής Απόκρισης (Finite Impulse Response (F.I.R.) Filters Design) Όνομα Καθηγητή: Ραγκούση Μαρία Τμήμα: Ηλεκτρονικών Μηχανικών Τ.Ε. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Transcript of Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w...

Page 1: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

Ψηφιακή Επεξεργασία Σήματος

Ενότητα Θ: Σχεδίαση Ψηφιακών Φίλτρων Πεπερασμένης Χρονικής Απόκρισης

(Finite Impulse Response (F.I.R.) Filters Design)

Όνομα Καθηγητή: Ραγκούση Μαρία

Τμήμα: Ηλεκτρονικών Μηχανικών Τ.Ε.

ΕΕΛΛΛΛΗΗΝΝΙΙΚΚΗΗ ΔΔΗΗΜΜΟΟΚΚΡΡΑΑΤΤΙΙΑΑ

ΑΑννώώττααττοο ΕΕκκππααιιδδεευυττιικκόό ΊΊδδρρυυμμαα ΠΠεειιρρααιιάά

ΤΤεεχχννοολλοογγιικκοούύ ΤΤοομμέέαα

Page 2: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

2

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση

• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό

Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη

αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος

«Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την

Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Page 3: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

3

1. Σκοποί ενότητας ................................................................................................ 4

2. Περιεχόμενα ενότητας........................................................................................ 4

3. Εισαγωγή .......................................................................................................... 4

4. Σχέση Εισόδου – Εξόδου (Εξίσωση Διαφορών) και Συνάρτηση Μεταφοράς ......... 5

4.1Παράδειγμα FIR φίλτρου με M = 8 και (συμμετρική) κρουστική απόκριση h = [1

2 3 4 5 4 3 2 1] ...................................................................................................... 7

4.2 Παράδειγμα FIR φίλτρου με M = 3 και συμμετρική κρουστική απόκριση h = [-

1/4 1/4 1/4 -1/4] ................................................................................................ 10

4.3 Παράδειγμα FIR φίλτρου με M = 3 και κρουστική απόκριση σταθερής τιμής h =

[1/4 1/4 1/4 1/4] ................................................................................................ 11

5. ΙΔΑΝΙΚΑ ΚΑΙ ΠΡΑΓΜΑΤΙΚΑ ΦΙΛΤΡΑ – Ο ΡΟΛΟΣ ΤΟΥ ΠΑΡΑΘΥΡΟΥ (window) 15

5.1 Ιδανικά και πραγματικά φίλτρα ....................................................................... 15

5.2 Οι συναρτήσεις-παράθυρα (window functions) .............................................. 16

5.3 Εργαλεία λογισμικού για τη σχεδίαση ψηφιακών φίλτρων .............................. 19

6. ΠΕΙΡΑΜΑΤΙΚΟ ΜΕΡΟΣ – ΥΛΟΠΟΙΗΣΗ FIR Filters ............................................ 21

6.1 Σκοπός του Πειράματος ................................................................................. 21

6.1.1 Οι συντελεστές των φίλτρων ................................................................... 22

6.2 Η συνδεσμολογία του TMS320C5505 ............................................................ 22

6.3 Συνοπτικά βήματα ......................................................................................... 23

6.4 Εκτέλεση του κώδικα ως έχει: ........................................................................ 23

6.5 Εκτέλεση του κώδικα μετά από τροποποίηση ................................................ 24

6.5.1 Αλλαγή συχνότητας δειγματοληψίας ....................................................... 24

6.5.2 Χρήση διαφορετικών συντελεστών φίλτρων ............................................ 25

6.5.3 Διαχωρισμός σε τρεις ζώνες συχνοτήτων αντί για δύο ............................ 25

6.6 Ερωτήσεις ..................................................................................................... 25

Page 4: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

4

1. Σκοποί ενότητας

Σκοπός της ενότητας είναι:

Να γνωρίσουμε τα ψηφιακά FIR filters.

Να κατανοήσουμε την εφαρμογή τους στην στατιστική επεξεργασία κινούμενου

μέσου (moving averages) χρονοσειρών (time series) αλλά και στην επεξεργασία

ηχητικών / ακουστικών σημάτων.

Να κατανοήσουμε τη χρήση και το ρόλο των συναρτήσεων - παραθύρων

(windowing effect).

Να υλοποιήσουμε FIR filters με το Texas Instruments TMS320C5505 USB Stick

και να πειραματιστούμε, χρησιμοποιώντας ως είσοδο το σήμα από το μικρόφωνο

και ακούγοντας το φιλτραρισμένο αποτέλεσμα στο ακουστικά ή στα ηχεία του

υπολογιστή.

2. Περιεχόμενα ενότητας

Στην ενότητα αυτή θα μελετήσουμε:

Τη σχέση μεταξύ εισόδου – εξόδου (εξίσωση διαφορών) και τη συνάρτηση

μεταφοράς.

Ιδανικά και πραγματικά φίλτρα και τον ρόλο του παραθύρου (window).

Στο πειραματικό μέρος την υλοποίηση FIR φίλτρων

3. Εισαγωγή

Τα ψηφιακά φίλτρα Πεπερασμένης Κρουστικής Απόκρισης (Finite Impulse Response

(FIR) filters) ονομάζονται έτσι διότι η κρουστική τους απόκριση έχει μη μηδενικές

τιμές που περιορίζονται χρονικά σε ένα «παράθυρο» έστω Μ δειγμάτων, ενώ πριν

και μετά οι τιμές της είναι μηδενικές, άρα είναι πεπερασμένη χρονικά (time-limited).

Υπενθυμίζεται ότι η κρουστική απόκριση ενός ψηφιακού συστήματος (φίλτρου) είναι

η έξοδός του όταν στην είσοδο δεχθεί την μοναδιαία κρουστική συνάρτηση ή δέλτα

του Kronecker, δ(n), η οποία ορίζεται ως

1, 0( )

0, 0

nn

n

Page 5: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

5

και συνεπώς είναι φραγμένη κατά πλάτος – σε αντίθεση με την αντίστοιχή της

μοναδιαία κρουστική συνάρτηση συνεχούς χρόνου ή δέλτα του Dirac, δ(t), η οποία

απειρίζεται στο t = 0.

Τα ψηφιακά φίλτρα τύπου FIR βρίσκουν ευρύτατη εφαρμογή στην Ψηφιακή

Επεξεργασία Σήματος, διότι ως FIR φίλτρα μπορούν να υλοποιηθούν όλες οι

γνωστές κατηγορίες φίλτρων, δηλαδή βαθυπερατά (lowpass), υψιπερατά (highpass),

ζωνοπερατά (διέλευσης ζώνης - bandpass) και ζωνοφρακτικά (αποκοπής ζώνης -

bandstop).

Οι δύο κύριες ιδιότητές τους που τα κάνουν ιδιαίτερα δημοφιλή είναι οι εξής:

(α) Eίναι πάντα ευσταθή, διότι η συνάρτηση μεταφοράς τους δεν έχει πόλους

(παρά μόνον στη μηδενική συχνότητα), καθώς πρόκειται για ΜΗ αναδρομικά

συστήματα. Πράγματι, όπως θα δούμε στη συνέχεια, τα φίλτρα FIR ΔΕΝ

περιέχουν βρόχο ανάδρασης – feedback loop, ή αλλιώς η έξοδος τη στιγμή n,

έστω y(n), δεν εξαρτάται από προηγούμενες τιμές της εξόδου, αλλά μόνο από

την τρέχουσα και τις M προηγούμενες τιμές της εισόδου {x(n), x(n-1), …, x(n-M)}.

(β) Μπορούν να σχεδιαστούν ώστε να έχουν γραμμική καμπύλη φάσης ως προς

τη συχνότητα (linear phase), πράγμα που επιτυγχάνεται αν η κρουστική

απόκριση είναι συμμετρική.

Πρακτικό πλεονέκτημά τους αποτελεί το γεγονός ότι μπορούν να σχεδιαστούν ώστε

να ικανοποιούν πολύ αυστηρές προδιαγραφές, τόσο για την ανοχή στη ζώνη

διέλευσης όσο και για την ανοχή στη ζώνη αποκοπής.

4. Σχέση Εισόδου – Εξόδου (Εξίσωση Διαφορών) και

Συνάρτηση Μεταφοράς

Η γενική μορφή της σχέσης εισόδου – εξόδου ή Εξίσωσης Διαφορών (Difference

Equation) ενός FIR φίλτρου είναι η εξής:

0

( ) ( ) ( )

( ) ( )

(0) ( ) (1) ( 1) ( ) ( )

k

M

k

y n h k x n k

h k x n k

h x n h x n h M x n M

(1)

όπου M είναι η τάξη του φίλτρου και οι συντελεστές (coefficients) {h(0), h(1), …,

h(M)} είναι οι (Μ+1) το πλήθος μη μηδενικές τιμές της (πεπερασμένης χρονικά)

κρουστικής απόκρισης {h(k)}. Παρατηρούμε ότι η έξοδος y(n) τη στιγμή n είναι ο

γραμμικός συνδυασμός του τρέχοντος και των M προηγούμενων δειγμάτων της

εισόδου, {x(n), x(n-1), …, x(n-M)}, με συντελεστές ή «βάρη» τις τιμές της κρουστικής

απόκρισης.

Για να υπολογίσουμε τη συνάρτηση μεταφοράς του φίλτρου, έστω H(z),

μετασχηματίζουμε τη σχέση (1) στο πεδίο της ψηφιακής συχνότητας z, εφαρμόζοντας

τον (ορθό) Μετασχηματισμό Z και στα δύο σκέλη της:

Page 6: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

6

0 0

0

( ) ( ) { ( )} ( ) ( )

( ) ( ) ( ) ( )

M Mk

k k

Mk

k

Y z h k Z x n k h k z X z

X z h k z X z H z

(2)

Στη σχέση (2) με κεφαλαίο γράμμα συμβολίζεται ο Μετασχηματισμός Z του

αντίστοιχου σήματος με μικρό γράμμα στο πεδίο του χρόνου:

0

( ) { ( )},

( ) { ( )},

( ) { ( )} ( )M

n

n

Y z Z y n

X z Z x n

H z Z h n h n z

(3)

Επίσης στη σχέση (2) έχουν χρησιμοποιηθεί οι ιδιότητες (α) της Γραμμικότητας και

(β) της Χρονικής Μετάθεσης του Μετασχηματισμού Z:

(a) Γραμμικότητα: 1 1 2 2 1 1 2 2{ ( ) ( )} { ( )} { ( )},Z a x n a x n a Z x n a Z x n (4a)

(b) Χρονική Μετάθεση: { ( )} { ( )} ( )k kZ x n k z Z x n z X z (4b)

Γράφουμε τη συνάρτηση μεταφοράς H(z) ως ρητή συνάρτηση με θετικές δυνάμεις

του z:

1 1 0

0

0

( )(0) (1) ( 1) ( )

( ) ( )

Mk

M MMk k

M Mk

h k zh z h z h M z h M z

H z h k zz z

(5)

Παρατηρούμε ότι η H(z) έχει:

(a) M μηδενικά που είναι οι ρίζες του πολυωνύμου Μ τάξης του αριθμητή: αυτά που

αποτελούν τις συχνότητες μηδενισμού (notch frequencies) και είναι είτε

πραγματικοί αριθμοί, είτε μιγαδικοί σε ζεύγη συζυγών,

(b) M πόλους στο μηδέν (μηδενική συχνότητα, dc, δηλαδή δεν έχει συχνότητες

συντονισμού (resonant frequencies): αυτοί είναι πάντα στο μηδέν, δηλαδή

εντός του μοναδιαίου κύκλου, οπότε το FIR φίλτρο είναι πάντα ευσταθές.

Τέλος, με βάση τη σχέση (1) και αξιοποιώντας τη βαθμίδα μοναδιαίας ψηφιακής

καθυστέρησης [z-1], ένα FIR φίλτρο μπορεί να συντεθεί σε μορφή διαγράμματος

βαθμίδων χρησιμοποιώντας τις τρεις στοιχειώδεις βαθμίδες του πολλαπλασιαστή,

του χρονο-καθυστερητή και του αθροιστή, ως εξής:

Page 7: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

7

4.1Παράδειγμα FIR φίλτρου με M = 8 και (συμμετρική)

κρουστική απόκριση h = [1 2 3 4 5 4 3 2 1]

Η κρουστική απόκριση του φίλτρου, όπως φαίνεται στο επόμενο σχήμα, έχει μη

μηδενικές τιμές στην περιοχή [0, 8]:

Z-

1

h(0)

Z-

1

h(1)

Z-

1

h(M-1)

h(M)

x(n

)

y(n)

x(n-2)

x(n-

M+1)

x(n-M)

x(n-1)

Page 8: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

8

H συνάρτηση μεταφοράς H(z) από τη σχέση (5) είναι ρητή και ο αριθμητής είναι

πολυώνυμο M=8 τάξης:

8

8 7 6 5 4 3 2 1 080

8 80

( )1 2 3 4 5 4 3 2 1

( ) ( )

k

k k

k

h k zz z z z z z z z z

H z h k zz z

(6)

Στα επόμενα σχήματα φαίνονται

(α) Οι M = 8 πόλοι στο μηδέν και τα M = 8 μηδενικά (σε συζυγή μιγαδικά ζεύγη πάνω

στο μοναδιαίο κύκλο):

Page 9: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

9

(β) Η απόκριση συχνότητας (καμπύλες μέτρου και φάσης), όπου φαίνεται η γραμμική

φάση λόγω συμμετρίας:

Παρατηρούμε τη γραμμικότητα της καμπύλης φάσης ως προς τη συχνότητα Ω, που

οφείλεται στη συμμετρική μορφή της κρουστικής απόκρισης.

Page 10: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

10

4.2 Παράδειγμα FIR φίλτρου με M = 3 και συμμετρική

κρουστική απόκριση h = [-1/4 1/4 1/4 -1/4]

Στην περίπτωση αυτή έχουμε ένα ζωνοπερατό φίλτρο ή φίλτρο διέλευσης ζώνης

(bandpass), όπως φαίνεται στο επόμενο σχήμα, όπου το φίλτρο αυτό έχει

εφαρμοστεί στο ηχητικό ψηφιακό σήμα (μπλε γραμμή) και η έξοδος του φίλτρου

(φιλτραρισμένο ηχητικό σήμα) φαίνεται με κόκκινη γραμμή:

Το ηχητικό ψηφιακό σήμα x(n) με μπλε και η έξοδος y(n) του FIR φίλτρου με M=3,

h = [ - ¼ ¼ ¼ - ¼ ] και με είσοδο το x(n), με κόκκινο:

( ) ( 1) ( 2) ( 3)( )

4

x n x n x n x ny n

Η συνάρτηση μεταφοράς του φίλτρου είναι

0 1 2 3( ) ( 1/ 4) (1/ 4) (1/ 4) ( 1/ 4)H z z z z z

και η απόκριση συχνότητας επιβεβαιώνει τον ζωνοπερατό χαρακτήρα του φίλτρου

(καμπύλη μέτρου) και την καθυστέρηση φάσης (καμπύλη φάσης, γραμμική ως προς

τη συχνότητα Ω λόγω συμμετρίας της h(n) ):

Page 11: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

11

4.3 Παράδειγμα FIR φίλτρου με M = 3 και κρουστική απόκριση

σταθερής τιμής h = [1/4 1/4 1/4 1/4]

Στην ειδική περίπτωση που όλοι οι συντελεστές του FIR φίλτρου είναι ίσοι μεταξύ

τους, και ίσοι με 1/(Μ+1) όπου Μ η τάξη του φίλτρου, στην έξοδο παίρνουμε τον μέσο

όρο των (Μ+1) πλέον πρόσφατων δειγμάτων της εισόδου. Πράγματι, στην

περίπτωση αυτή η σχέση (1) γίνεται:

0

( ) ( ) ( )

(0) ( ) (1) ( 1) ( ) ( )

1 1 1( ) ( 1) ( )

1 1 1

( ) ( 1) ( )

( 1)

M

k

y n h k x n k

h x n h x n h M x n M

x n x n x n MM M M

x n x n x n M

M

(7)

Καθώς η σχέση (7) ισχύει για κάθε χρονική στιγμή n = 0, 1, 2, …, πρόκειται για έναν

«κινούμενο» μέσο όρο δειγμάτων της εισόδου (Moving Average filter). Στην

πραγματικότητα το ίδιο όνομα (Moving Average filter) μπορεί να δοθεί και στο γενικό

Page 12: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

12

FIR φίλτρο, διότι η σχέση (1) μπορούμε να θεωρήσουμε ότι περιγράφει ένα

γενικευμένο μέσο όρο, με βάρη τους συντελεστές {h(0), h(1), …, h(M)}.

Τα φίλτρα κινούμενου μέσου όρου βρίσκουν ευρεία εφαρμογή στην στατιστική

επεξεργασία χρονοσειρών. Οι χρονοσειρές (time series) είναι σήματα εγγενώς

ψηφιακά και όχι ψηφιοποιημένα αναλογικά σήματα, και προκύπτουν όταν μετράμε σε

τακτά διαστήματα διάφορα μεγέθη που μεταβάλλονται με το χρόνο, κυρίως

οικονομικής φύσεως.

Ένα συνηθισμένο ζητούμενο σε μία χρονοσειρά είναι να υπολογιστεί αν τα δεδομένα

της κρύβουν μία «τάση» (trend), όπως είναι π.χ. μια αυξητική τάση, μια τάση

μείωσης, κ.α. Η ύπαρξη τάσης διαπιστώνεται με την εφαρμογή φίλτρου κινούμενου

μέσου όρου, όπως φαίνεται στο παράδειγμα (Μ=3):

Το ψηφιακό σήμα (χρονοσειρά) για το οποίο θα υπολογιστεί η τάση (trend).

Page 13: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

13

Το ψηφιακό σήμα εισόδου (χρονοσειρά x(n) με μπλε) και η υπολογισμένη τάση

(trend), δηλαδή η έξοδος y(n) ενός φίλτρου κινούμενου μέσου όρου (FIR - -

Moving Average) με M=3 και h = [ ¼ ¼ ¼ ¼ ], με κόκκινο:

( ) ( 1) ( 3)( )

4

x n x n x ny n

(8)

Παρατηρούμε ότι η έξοδος του φίλτρου (κόκκινο) είναι πιο ομαλό σήμα σε σχέση

με την αρχική χρονοσειρά (μπλε), πράγμα που επιβεβαιώνει ότι το φίλτρο

κινούμενου μέσου όρου είναι βαθυπερατού τύπου («λειαίνει» το σήμα εισόδου,

εξαλείφει τις λεπτομέρειες, δηλαδή φιλτράρει και αποκόπτει τις υψηλές

συχνότητες). Αυτό φαίνεται από την καμπύλη μέτρου της απόκρισης συχνότητας

του φίλτρου:

Page 14: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

14

Επίσης παρατηρούμε ότι η έξοδος του φίλτρου ανταποκρίνεται στις μεταβολές

της αρχικής χρονοσειράς με ορισμένη καθυστέρηση στον άξονα του χρόνου,

πράγμα που επιβεβαιώνει ότι το φίλτρο κινούμενου μέσου όρου εισάγει

καθυστέρηση φάσης. Αυτό φαίνεται από την καμπύλη φάσης, όπου η φάση που

προσθέτει το φίλτρο στο σήμα εισόδου είναι αρνητική.

Το φίλτρο κινούμενου μέσου όρου μπορεί να εφαρμοστεί σε οποιοδήποτε είδος

δεδομένων εκτός από τις χρονοσειρές. Στο επόμενο σχήμα φαίνεται η εφαρμογή του

σε ηχητικό σήμα:

Page 15: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

15

Το ψηφιακό ηχητικό σήμα εισόδου, x(n), με μπλε και η έξοδος y(n) ενός φίλτρου

κινούμενου μέσου όρου

με M=3 και h = [ ¼ ¼ ¼ ¼ ], με κόκκινο:

( ) ( 1) ( 3)( )

4

x n x n x ny n

Παρατηρούμε και πάλι (α) τη λείανση του αρχικού σήματος από το φίλτρο, λόγω του

βαθυπερατού χαρακτήρα του, και (β) την εισαγωγή καθυστέρησης φάσης μεταξύ

εισόδου και εξόδου του φίλτρου.

5. ΙΔΑΝΙΚΑ ΚΑΙ ΠΡΑΓΜΑΤΙΚΑ ΦΙΛΤΡΑ – Ο ΡΟΛΟΣ ΤΟΥ

ΠΑΡΑΘΥΡΟΥ (window)

5.1 Ιδανικά και πραγματικά φίλτρα

Η απόκριση συχνότητας (καμπύλη μέτρου) ενός ιδανικού φίλτρου επιτρέπει

ομοιόμορφη διέλευση στη ζώνη διέλευσης, κατακόρυφα μέτωπα μετάβασης και

ομοιόμορφη απόρριψη στη ζώνη απόρριψης. Στο επόμενο σχήμα φαίνεται η

καμπύλη μέτρου της απόκρισης συχνότητας ενός ιδανικού (κόκκινη γραμμή) και ενός

πραγματικού (μπλε γραμμή) βαθυπερατού FIR φίλτρου, που προσπαθεί να

προσεγγίσει την επιθυμητή καμπύλη:

Page 16: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

16

Η θεωρία προβλέπει ότι η υλοποίηση παρόμοιων ιδανικών συναρτήσεων

μεταφοράς απαιτεί φίλτρα με κρουστική απόκριση άπειρης διάρκειας (Infinite

Impulse Response, I.I.R.).

Από την άλλη πλευρά, όμως, αποδεικνύεται μαθηματικά ότι οποιοδήποτε I.I.R.

φίλτρο μπορεί να προσεγγιστεί ικανοποιητικά από ένα F.I.R. φίλτρο αρκετά

μεγάλης, πάντως πεπερασμένης, τάξης Μ.

Αυτό σημαίνει ότι τα F.I.R. φίλτρα μπορούν να προσεγγίσουν ικανοποιητικά την

επιθυμητή καμπύλη απόκρισης ενός ιδανικού φίλτρου, με κόστος ότι η τάξη M (άρα

οι συντελεστές του φίλτρου) θα χρειαστεί να γίνει αρκετά μεγάλη. Πρακτικά το μεγάλο

M αυξάνει

a. το χρόνο επεξεργασίας του σήματος εισόδου από το φίλτρο για να υπολογιστεί η

έξοδος,

b. την καθυστέρηση, και

c. το κόστος και την πολυπλοκότητα της κατασκευής, σε περίπτωση υλοποίησης

του φίλτρου σε hardware.

Για τους λόγους αυτούς συνήθεις επιλογές της τάξης M ενός FIR φίλτρου κινούνται

μεταξύ 20 και 50 συντελεστών.

5.2 Οι συναρτήσεις-παράθυρα (window functions)

Η προσέγγιση της ιδανικής κρουστικής απόκρισης άπειρης διάρκειας, έστω h_ideal,

από μία άλλη πεπερασμένης διάρκειας Μ δειγμάτων, έστω h_practical, μπορεί να

γίνει:

1. είτε απότομα, με αποκοπή (truncation) των δειγμάτων της h_ideal πέραν του Μ-

οστού,

2. είτε ομαλά, αποσβένοντας προοδευτικά τις τιμές των δειγμάτων της h_ideal όσο

πλησιάζουμε προς τα δύο άκρα της, h_ideal(0) και h_ideal(M).

Η πρώτη μέθοδος ουσιαστικά κάνει πολλαπλασιασμό της h_ideal επί μία

«συνάρτηση-παράθυρο» (window-function), η οποία έχει τιμή 1 μεταξύ δειγμάτων

0 και Μ και τιμή 0 αλλού:

Page 17: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

17

1, 0( )

0, 0 rect

n Mw n

n n M

(9)

Λόγω της ορθογώνιας μορφής του, το «παράθυρο» αυτό ονομάζεται ορθογώνιο

(rectangular ή boxcar). Επειδή πολλαπλασιασμός στο πεδίο του χρόνου σημαίνει

συνέλιξη στο πεδίο της συχνότητας, η επίδραση που έχει η προσέγγιση δι’ αποκοπής

των όρων της h_ideal με χρήση του τετραγωνικού παράθυρου, είναι να συνελιχθεί η

απόκριση συχνότητας του ιδανικού φίλτρου, έστω H_ideal, με την απόκριση

συχνότητας του τετραγωνικού παράθυρου, που είναι της μορφής sinc και φαίνεται

στο επόμενο σχήμα (κάτω):

Το αποτέλεσμα της συνέλιξης, γνωστό ως spectral leakage, είναι ανεπιθύμητο, διότι

η απόκριση συχνότητας του πραγματικού φίλτρου προκύπτει παραμορφωμένη ως

προς εκείνη του ιδανικού φίλτρου. Αυτό οφείλεται στη μορφή της απόκρισης

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

είναι μόλις 12 dB χαμηλότερα από τον κύριο.

Η δεύτερη μέθοδος προσπαθεί να περιορίσει το ανεπιθύμητο spectral leakage,

πολλαπλασιάζοντας την h_ideal με συναρτήσεις-παράθυρα που έχουν πιο ομαλές

καμπύλες από το ορθογώνιο παράθυρο. Τέτοια είναι π.χ. τα παράθυρα Hamming,

Hanning ή von Hann, Kaiser, Blackman, κ.α. – από τα ονόματα των επιστημόνων

που τα όρισαν και τα μελέτησαν. Στο επόμενο σχήμα φαίνεται το παράθυρο

Hamming, στο πεδίο του χρόνου και της συχνότητας:

Page 18: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

18

Παρατηρούμε ότι

(α) στο πεδίο του χρόνου πρόκειται για μια πολύ ομαλότερη καμπύλη, που όταν

πολλαπλασιαστεί επί την h_ideal αποσβένει ομαλά τις τιμές των δειγμάτων της,

συμμετρικά προς τα δύο άκρα 0 και Μ,

(β) στο πεδίο της συχνότητας, οι λοβοί μετά τον κύριο είναι αισθητά χαμηλότεροι σε

σχέση με εκείνους του ορθογώνιου παράθυρου, (εδώ είναι 45 dB χαμηλότερα

από τον κύριο) με αποτέλεσμα την αισθητή μείωση του spectral leakage.

Στο επόμενο σχήμα φαίνεται συγκριτικά η σχεδίαση ψηφιακού βαθυπερατού FIR

φίλτρου τάξης Μ=50, με συχνότητα αποκοπής 5KHz, με χρήση ορθογώνιου

παράθυρου (πάνω) και παράθυρου Hamming (κάτω).

Page 19: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

19

Παρατηρούμε ότι στο φίλτρο που σχεδιάστηκε με το παράθυρο Hamming (κάτω) όλοι

οι λοβοί μετά τον κύριο είναι περισσότερο από 50 dB χαμηλότερα από τον κύριο

λοβό (ζώνη διέλευσης, 0 dB), σε αντίθεση με το ορθογώνιο παράθυρο (άνω) όπου

π.χ. ο δεύτερος λοβός είναι 20 dB χαμηλότερα και ο τρίτος 25 dB χαμηλότερα από

τον κύριο. Επιπλέον το παράθυρο Hamming έχει βελτιώσει την απόσβεση στη ζώνη

αποκοπής, που όπως φαίνεται είναι -38 dB για το ορθογώνιο παράθυρο και -55 dB

για το παράθυρο Hamming.

5.3 Εργαλεία λογισμικού για τη σχεδίαση ψηφιακών φίλτρων

Η σχεδίαση ψηφιακών φίλτρων γίνεται σήμερα με τη βοήθεια πακέτων λογισμικού,

όπως το Matlab®, το οποίο παρέχει το Filter Design and Analysis (FDA) Tool για τη

σχεδίαση φίλτρων. Στο επόμενο σχήμα φαίνεται μία τυπική οθόνη του εργαλείου

αυτού, με τις παραμέτρους για τη σχεδίαση ψηφιακού βαθυπερατού φίλτρου FIR

τάξης M = 10, συχνότητας δειγματοληψίας 48 KHz, συχνότητας αποκοπής 4 KHz, με

χρήση ορθογώνιου παράθυρου:

Page 20: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

20

Στο επόμενο σχήμα φαίνεται σε μορφή διαγράμματος βαθμίδων η εφαρμογή

συνάρτησης-παράθυρου (window function) στους συντελεστές ενός φίλτρου που έχει

σχεδιαστεί με χρήση του FDA Tool:

Page 21: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

21

Τέλος, πρακτικά μας ενδιαφέρει να αξιοποιήσουμε και εκτός Matlab το φίλτρο που

σχεδιάστηκε εντός του περιβάλλοντος αυτού. Αυτό επιτυγχάνεται εξάγοντας τους

συντελεστές του φίλτρου, όταν ολοκληρωθεί επιτυχώς η σχεδίαση, σε ένα αρχείο

τύπου .h (header file), το οποίο στη συνέχεια μπορεί να περιληφθεί (#include) σε ένα

πρόγραμμα σε γλώσσα C/C++:

6. ΠΕΙΡΑΜΑΤΙΚΟ ΜΕΡΟΣ – ΥΛΟΠΟΙΗΣΗ FIR Filters

6.1 Σκοπός του Πειράματος

Το πείραμα αυτό αφορά την υλοποίηση σε γλώσσα C μίας σειράς από ψηφιακά

φίλτρα τύπου FIR, την εφαρμογή τους πάνω στο σήμα που εισάγεται από την

εξωτερική πηγή μουσικού σήματος και την ακρόαση του αποτελέσματος, δηλαδή του

φιλτραρισμένου σήματος, στα ακουστικά ή τα ηχεία του υπολογιστή.

Συγκεκριμένα σχεδιάζονται και υλοποιούνται φίλτρα που διαχωρίζουν το ακουστικό

σήμα σε ζώνες συχνοτήτων (μπάσσα, μεσαία και πρίμα – bass, midrange, tremble)

και χειρίζονται διαφορετικά την κάθε ζώνη. Οι συχνότητες διαχωρισμού ονομάζονται

και crossover frequencies.

Page 22: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

22

6.1.1 Οι συντελεστές των φίλτρων

Οι συντελεστές του φίλτρου περιέχονται στα τέσσερα αρχεία που περιλαμβάνονται με

τις τέσσερεις διαδοχικές εντολές # include, από το hamming.h και κάτω, στην αρχή

του main.c :

6.2 Η συνδεσμολογία του TMS320C5505

Page 23: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

23

6.3 Συνοπτικά βήματα

Χρησιμοποιήστε τα αρχεία προγράμματος (τον κώδικα) που δίνεται στο Πείραμα

«Φίλτρα Πεπερασμένης Κρουστικής Απόκρισης (FIR filters)». Αν δεν

υπάρχουν ήδη στο φάκελο Desktop -> My Documents -> Workspace ->

example_06, δημιουργείστε το φάκελο αυτό και αντιγράψτε τα αρχεία της

άσκησης μέσα σ’ αυτόν.

Ακολουθήστε ΟΛΑ τα βήματα και τις ρυθμίσεις παραμέτρων που δίνονται στο

φυλλάδιο «Εισαγωγή και Εκτέλεση Προγραμμάτων στο CCS». Συνοπτικά:

1) Πραγματοποιούμε την ζητούμενη συνδεσμολογία, που φαίνεται στο Σχήμα.

2) Ανοίγουμε το Code Composer Studio (CCS).

3) Εντοπίζουμε το example_06, και το θέτουμε SET AS ACTIVE PROJECT

4) Ανοίγουμε τα αρχεία της άσκησης επιλέγοντας το [+]

5) Κάνουμε διπλό κλικ στο main.c της άσκησης

6) Από το Project->Properties ρυθμίζουμε τα Properties (όπως στο φυλλάδιο

«Εισαγωγή»)

7) Επιλέγουμε Project->Build Active project

8) Επιλέγουμε Target->Launch Τ.Ι. Debugger (Target configuration και save,

όπως στο φυλλάδιο «Εισαγωγή»)

9) Επιλέγουμε Target->Debug active project

10) Επιλέγουμε Target->Run

11) Για να τερματίσουμε την εκτέλεση του προγράμματος, επιλέγουμε Target-

>Halt.

6.4 Εκτέλεση του κώδικα ως έχει:

Στο Tab “Console” (Κονσόλα) η εικόνα επεξηγεί τη λειτουργία του προγράμματος,

όταν εκτελείται ως έχει (χωρίς τροποποίηση του κώδικα). Χρησιμοποιούμε τον

κώδικα που βρίσκεται στο main.c. Κατά την εκτέλεση, το πρόγραμμα μεταβαίνει

κυκλικά ανά 20 sec μεταξύ πέντε (5) διαφορετικών σεναρίων, ενώ κάθε μετάβαση

σηματοδοτείται από αριθμό flashes του LED.

Το πρώτο σενάριο δεν χρησιμοποιεί φίλτρο, οπότε στα ακουστικά φτάνει ο ήχος που

εισέρχεται από την εξωτερική πηγή ήχου (μουσικής). Σε καθένα από τα επόμενα 4

σενάρια χρησιμοποιείται ένα ζεύγος βαθυπερατού και υψιπερατού FIR φίλτρου, με

ίσες συχνότητες αποκοπής, δηλαδή 500, 1000, 2000 και 3000 Hz, αντίστοιχα στο

κάθε σενάριο. Το μουσικό σήμα εισόδου διαχωρίζεται σε δύο ζώνες (μπάσσα –

πρίμα), με συχνότητα διαχωρισμού (crossover frequency) τη (ίδια) συχνότητα

αποκοπής του βαθυπερατού και του υψιπερατού φίλτρου. Η χαμηλόσυχνη

συνιστώσα απομονώνεται από το βαθυπερατό φίλτρο και οδηγείται στο αριστερό

ακουστικό ενώ η υψίσυχνη συνιστώσα απομονώνεται από το υψιπερατό φίλτρο και

οδηγείται στο δεξί ακουστικό.

Page 24: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

24

6.5 Εκτέλεση του κώδικα μετά από τροποποίηση

Συνοπτικά βήματα τροποποίησης του κώδικα και εκτέλεσης του προγράμματος:

1) Μεταβαίνουμε στην οθόνη C/C++ Projects (και όχι στην οθόνη Debug),

επιλέγοντάς την από τον επιλογέα οθόνης άνω δεξιά. Επιλέγουμε το αρχείο που

θα τροποποιήσουμε (π.χ. main.c) και με διπλό κλικ πάνω στο όνομά του, το

ανοίγουμε στην κεντρική οθόνη. Με χρήση του editor, τροποποιούμε τον κώδικα

C, κατά το επιθυμητό κάθε φορά. Στο τέλος αποθηκεύουμε τις αλλαγές (save).

2) Επιλέγουμε Project->Rebuild Active project. (Στην ερώτηση για overwrite

απαντάμε yes).

3) Επιλέγουμε Target->Debug Active project.

4) Επιλέγουμε Target->Run.

5) Για να τερματίσουμε την εκτέλεση του προγράμματος, επιλέγουμε Target->Halt.

6.5.1 Αλλαγή συχνότητας δειγματοληψίας Εκτελέστε το ίδιο πρόγραμμα με τα ίδια φίλτρα, αλλά με χαμηλότερο ρυθμό

δειγματοληψίας, για παράδειγμα f_sampling = 12000 Hz αντί f_sampling = 48000 Hz.

ΠΡΟΣΟΧΗ: Η τιμή της παραμέτρου SAMPLES_PER_SECOND θα πρέπει να

αλλάξει στο main.c αλλά και στο LEDflasher.c

Page 25: Ε ? ?Η AΙ >ΗΔΔΗ @Ο >ΡΑΤΙΙΑ Ανώ α οΕΕκκ αι w x ικόΊΊ w ...eclass.teipir.gr/openeclass/modules/document/file.php... · 2015-11-17 · Ψηφιακή Επεξεργασία

25

Πραγματοποιείστε την τροποποίηση και ακούστε το αποτέλεσμα. Πώς επηρεάζει η τροποποίηση τις συχνότητες των φίλτρων;

6.5.2 Χρήση διαφορετικών συντελεστών φίλτρων

Μπορείτε να σχεδιάσετε τους δικούς σας συντελεστές φίλτρων χρησιμοποιώντας

το Matlab FDA Tool ή άλλο αντίστοιχο εργαλείο λογισμικού που διατίθεται.

Οι νέοι συντελεστές μπορούν να αποθηκευθούν σε ένα νέο αρχείο τύπου .h.

Θα πρέπει να συμπεριλάβετε (χρησιμοποιώντας το #include) αυτό το αρχείο .h

στο κυρίως πρόγραμμά σας.

6.5.3 Διαχωρισμός σε τρεις ζώνες συχνοτήτων αντί για δύο

Σχεδιάστε και χρησιμοποιείστε στο main.c μια σειρά από φίλτρα, ακούγοντας τα

αποτελέσματα των οποίων θα εξασκηθείτε να αναγνωρίζετε τη συχνότητα

διαχωρισμού, δηλαδή τη συχνότητα που λαμβάνει χώρα η μετάβαση (αλλαγή) από

ζώνη σε ζώνη, ήτοι:

Η μετάβαση από τα χαμηλά (bass) στα μεσαία (mid range) και

Η μετάβαση από τα μεσαία (mid range) στα πρίμα (tremble).

ΠΡΟΣΟΧΗ: Οι συχνότητες διαχωρισμού είναι χαμηλότερες από ό, τι ίσως αρχικά

νομίζετε.

6.6 Ερωτήσεις

Ποια η έννοια του όρου «Πεπερασμένη» στο όνομα των FIR φίλτρων «Φίλτρα

Πεπερασμένης Κρουστικής Απόκρισης»;

Τι είναι μία συνάρτηση-παράθυρο και πώς εφαρμόζεται σε ένα ψηφιακό φίλτρο;

Πως μπορεί μία συνάρτηση-παράθυρο να χρησιμοποιηθεί για τη βελτίωση της

απόδοσης του φίλτρου;

Πώς υπολογίζονται οι συντελεστές του φίλτρου;