Αλγόριθμος κατασκευής ψηφιακών IIR φίλτρων από αντίστοιχα αναλογικά Περιεχόμενα Αναλογικά συστήματα Ευστάθεια αναλογικών και ψηφιακών συστημάτων Αναλογικά Φίλτρα Butterworth Μετασχηματισμός αποΑναλογικό σε Ψηφιακό Πεδίο Διγραμμικός μετασχηματισμός Αλγόριθμος κατασκευής ψηφιακού φίλτρου
Αναλογικό φίλτρο RC κυκλώματος Συνάρτηση μεταφοράς Η(s) γραμμικού αναλογικού συστήματος Κρουστική απόκριση h(t) γραμμικού αναλογικού συστήματος Κρουστική απόκριση h(t) παίρνοντας τον αντίστροφο μετασχηματισμό της H(s) Απόκριση συχνότητας H(jΩ) ή Η(j2πf) Έξοδο για είσοδο μία συχνότητα f0 R + - x(t) C y(t) Α
Συνάρτηση μεταφοράς RC κυκλώματος Εφαρμόζοντας το νόμο Kirchhoff για το ρεύμα στο σημείο Α του παρακάτω σχήματος έχουμε: Παίρνοντας Μετασχηματισμό Laplace και στα δύο μέρη, έχουμε R + - x(t) C y(t) Α
Συνάρτηση μεταφοράς RC κυκλώματος Θεωρώντας αρχικές συνθήκες ίσες με το μηδέν, έχουμε και επομένως η συνάρτηση μεταφοράς του γραμμικού συστήματος (φίλτρου) είναι
Κρουστική απόκριση RC κυκλώματος Στο πεδίο χρόνου, εξ ορισμού η κρουστική απόκριση του φίλτρου είναι η έξοδος όταν η είσοδος είναι x(t) = δ(t). Επομένως στο t = 0 το ρεύμα που θα περάσει από την αντίσταση είναι: Θεωρώντας ότι η αρχική τάση στα άκρα του πυκνωτή είναι μηδέν (όπως και πριν ), η παραπάνω σχέση για το ρεύμα γίνεται Δηλαδή το ρεύμα υπάρχει μόνο για t = 0. Η σχέση μεταξύ ρεύματος και τάσης στα άκρα του πυκνωτή, δίνει
Κρουστική απόκριση RC κυκλώματος Επειδή το ρεύμα υπάρχει μόνο τη χρονική στιγμή 0, είναι αρκετό να ολοκληρώσουμε το dy μεταξύ 0- και 0+ για να βρούμε την τάση στον πυκνωτή τη χρονική στιγμή 0+ που προέρχεται από το στιγμιαίο ρεύμα: Μετά το t = 0, η είσοδος x(t) = 0. Εφαρμόζοντας το νόμο Kirchhoff για το ρεύμα στο σημείο Α, με αρχικές συνθήκες . Η λύση είναι Η οποία είναι και η κρουστική απόκριση του φίλτρου h(t).
Κρουστική απόκριση RC κυκλώματος x(t)=δ(t) Γραμμικό Σύστημα ΙΝ OUT y(t)=h(t) t
Κρουστική απόκριση RC κυκλώματος Laplace domain. Ας υπολογίσουμε τον αντίστροφο μετασχηματισμό Laplace της H(s) που υπολογίσαμε στο πρώτο ερώτημα που μας δίνει πάλι την κρουστική απόκριση του συστήματος.
Απόκριση συχνότητας RC κυκλώματος Η απόκριση συχνότητας δίνεται από τη συνάτηση του μετασχηματισμού Laplace αντικαθιστώντας s = jΩ δηλαδή υπολογίζουμε την H(s) μόνο για μιγαδικούς πάνω στον άξονα των φανταστικών αριθμών: ή ισοδύναμα s = j2πf όπου f is any frequency.
Απόκριση συχνότητας RC κυκλώματος Η απόκριση συχνότητας μπορεί να σχεδιαστεί σε συνάρτηση με την κυκλική συχνότητα Ω ή συχνότητα f. Επειδή συνήθως το αποτέλεσμα (για κάθε μία Ω ή f) είναι μιγαδικός αριθμός, σχεδιάζουμε χωριστά το μέτρο (magnitude) και τη φάση (phase or angle) Για το συγκεκριμένο παράδειγμα:
Απόκριση συχνότητας RC κυκλώματος
Αναλογικά Συστήματα (Φίλτρα) Τα φίλτρα είναι γραμμικά συστήματα που αλλάζουν το φασματικό περιεχόμενο του σήματος εισόδου, επομένως κατ’επέκταση αλλάζουν και την κυματομορφή του στο χρονικό πεδίο. Στο αναλογικό πεδίο τα φίλτρα εκφράζονται με την αναλογική συνάρτηση μεταφοράς, με γενική μορφή:
Αναλογικά Φίλτρα (συν.) Η απόκριση συχνότητας του Η(s) καθορίζεται από τη θέση στο s-επίπεδο των ριζών (roots) του D(s) και C(s). Για να είναι ένα σύστημα stable (ευσταθές, δηλαδή η έξοδος να μην μεγαλώνει στο άπειρο) πρέπει οι ρίζες του C(s) (πόλοι του Η(s)) να βρίσκονται στα αριστερά του άξονα jΩ s=σ + jΩ σ<0 σύστημα stable σ=0 δίνει ημίτονο με συχνότητα jΩ σ>0 σύστημα unstable
Αναλογικά Φίλτρα (συν.) Έστω ένα σύστημα H(s)=1/(s-σ), με πόλο στο s=σ Η απόκριση σε κρουστική διέγερση δ(t), (δηλαδή είσοδος είναι 1 και όλα τα υπόλοιπα 0) είναι h(t) = eσt από όπου φαίνεται ότι μόνο για σ<0 η κυματομορφή δεν θα μεγαλώσει με το χρόνο στο άπειρο
Κρουστική απόκριση - Συνέλιξη y(t)=h(t) x(t)=δ(t) Γραμμικό Σύστημα ΙΝ OUT t Έξοδος του συστήματος όταν είσοδος είναι δ(t) λέγεται κρουστική απόκριση h(t) (impulse response) Stable σύστημα σημαίνει ότι Πόλοι Η(s) αριστερά του jΩ!!!
Αναλογικό φίλτρο Butterworth 1ου Βαθμού Έστω το απλούστερο Low Pass φίλτρο που υλοποιείται από μία αντίσταση R και πυκνωτή C.
Butterworth 1ου Βαθμού (συν.) Η συνάρτηση μεταφοράς μπορεί εύκολο να βρεθεί εύκολα ως: Η απόκριση συχνότητας προκύπτει θέτοντας s=jΩ=j2πf Η οποία μπορεί να γραφεί ως: Ο σχεδιασμός του μέτρου |Η(f)| φαίνεται στα δεξιά του κυκλώματος, ενώ η φάση απεικονίζεται από κάτω (προηγούμενο σχήμα)
Butterworth 1ου Βαθμού (συν.) Από το σχήμα του |Η(f)| έχουμε ότι η συχνότητα για την οποία |Η(f)| =0.707 που είναι η f0=1/(2πRC) λέγεται συχνότητα αποκοπής ή half power point ή 3-dB cutoff frequency (βλέπε παρακάτω) Είναι η συχνότητα που καθορίζει το filter bandwidth (εύρος φάσματος που το φίλτρο «περνάει») αφού σε αυτή τη συχνότητα η είσοδος έχει μειωθεί στο 0.707 του πλάτους εισόδου Ισοδύναμα, επειδή οι μετρήσεις γίνονται σε ισχύ (και σε dB), έχουμε το λόγο ισχύος εξόδου προς την ισχύ εισόδου ως: υποθέτωντας ότι η ισχύς μετράται σε αντίσταση 1Ω. Επομένως η απόκριση συχνότητας σε dB είναι:
Butterworth 1ου Βαθμού (συν.) Επομένως ισοδύναμα έχουμε στη f0=1/(2πRC): Γενικά τα φίλτρα Butterworth έχουν απόκριση συχνότητας: Ο βαθμός n δίνει το πόσο γρήγορα το φίλτρο «κόβει» συχνότητες μετά την f0
Butterworth Filters Maximally flat Magnitude response for N order low-pass
Butterworth Filters 6N dB/octave Maximally flat
Butterworth Filters N=4; >> W_c=1; >> W=[0:0.05:3]; >> H=1./sqrt(1+(W./W_c).^(2*N)); >> plot(W,H) >> hold on >> N=10; >> plot(W,H,'r') >> xlabel('\Omega/\Omega_c') >> ylabel('|H_N(j\Omega)|') >> legend('N=4', 'N=10‘) >> semilogx(W, 20*log10(H), ‘r') % 2nd plot
Τάξη Ν για Low-Pass Butterworth φίλτρα Αν έχουμε ένα LP με προδιαγραφές Ωpass με εξασθένιση Αpass και Ωstop με εξασθένιση Αstop τότε μπορούμε να βρούμε την τάξη του LP Butterworth φίλτρου που να ικανοποιεί το transition width των προδιαγραφών από τη σχέση
Cut-off frequency για Low-Pass Butterworth Επίσης η 3-dB cut-off συχνότητα Ωc δίνεται από τη σχέση: Αλλά και από τη σχέση
Butterworth Filters Γνωρίζουμε ότι Αλλά ποια είναι η ΗN(s)? Την βρίσκουμε από πίνακες πολυωνύμων Υπολογίζουμε το Ν βρίσκουμε συνάρτηση μεταφοράς για κανονικοποιημένο φίλτρο με Ωc=1 Κάνουμε scale τους συντελεστές του πολυωνύμου στην επιθυμητή Ωc
Butterworth Filters has 2N zeros LHP: Left hand plane poles!!! To form H(s) we select the poles pi in the Left Hand s-Plane
Κανονικοποιημένα πολυώνυμα Butterworth για Low Pass φίλτρα Έχοντας υπολογίσει την τάξη Ν του φίλτρου τα πολυώνυμα Butterworth μας δίνουν τη συνάρτηση μεταφοράς ενός κανονικοποιημένου LP φίλτρου με Ωpass = Ωc =1
Μετατροπή από κανονικοποιημένο Low Pass σε ... Tα κανονικοποιημένα πολυώνυμα Butterworth που δίνονται στον Πίνακα 6.2 αντιστοιχούν σε Ωpass=1. Από αυτά μπορούμε να βρούμε όλα τα είδη φίλτρων με οποαισδήποτε προδιαγραφές, ως εξής: Low Pass Low Pass (σχήμα 6.10) Low Pass High Pass (σχήμα 6.11) Low Pass Band Pass (σχήμα 6.12) Low Pass Band Stop (σχήμα 6.13)
Low-pass low-pass
Low Pass High Pass
Low Pass Band Pass
Low Pass Band Stop
Ω Ω Ω Ω Ω Στο μάθημα όπως και στο βιβλίο χρησιμοποιούμε Ω για αναλογικές συχνότητες. jΩ απεικονίζει τον άξονα συχνοτήτων.
Ψηφιακά Συστήματα (Φίλτρα) Δειγματοληπτώντας περνάμε στο ψηφιακό (διακριτό) z-πεδίο. Κάνοντας το μετασχηματισμό z = esT= e(σ+jΩ)Τ όπου Τ ο χρόνος μεταξύ δειγμάτων σε δευτερόλεπτα έχουμε την αντιστοιχία: Οι συχνότητες γίνονται fdigital= fT = f/Fs (ή ω=ΩΤ) και το φάσμα του διακριτού χρόνου σήματος είναι περιοδικό με περίοδο fdigital=1 (f = Fs or ω = 2π) Χ(s) Y(s) Χ(s) Y(z) G(s) G(z) T
Ω Ω Ω Ω Η ψηφιακή ω = ΩΤ όπου Τ ο χρόνος μεταξύ δειγμάτων: Τ = 1/Fs, όπου Fs είναι η συχνότητα δειγματοληψίας.
Ευστάθεια Ψηφιακών Φίλτρων Ευσταθές (Stable) Πόλοι (Ρίζες παρονομαστή) μέσα στο unit circle Δίνει κρουστική απόκριση που μειώνεται (επόμενο σχήμα) Ασταθές Πόλοι (Ρίζες παρονομαστή) εκτός του unit circle Δίνει κρουστική απόκριση που αυξάνεται (επόμενο σχήμα) Για FIR filter, δηλαδή που δίνει: δεν έχει πόλους άρα πάντα stable!!!
Με τη δειγματοληψία Ω
Διγραμμικός Μετασχηματισμός Για παράδειγμα, ας εξετάσουμε ένα αναλογικό φίλτρο με συνάρτηση μεταφοράς Η συνάρτηση μεταφοράς του ισοδύναμου ψηφιακού φίλτρου είναι με το διγραμμικό μετασχηματισμό είναι:
Διγραμμικός Μετασχηματισμός Βέβαια ο μετασχηματισμός που χρησιμοποιείται περισσότερο από όλους για την απεικόνιση s στο z είναι ο διγραμμικός που συνοψίζεται ως εξής Απεικονίζει το αριστερό μισό του s-plane μέσα στον μοναδιαίο κύκλο (unit circle) Απεικονίζει το δεξιό μισό του s-plane έξω από τον μοναδιαίο κύκλο (unit circle) Οι συχνότητες 0 ∞ του s-plane jΩ άξονα απεικονίζονται στο 0 π του z-plane unit circle Οι συχνότητες 0-∞ του s-plane jΩ άξονα απεικονίζονται στο 0 - π του z-plane unit circle
Διγραμμικός Μετασχηματισμός απεικόνιση από s-plane στο z-plane
Διγραμμικός Μετασχηματισμός Για να ερευνήσουμε τα χαρακτηριστικά του διγραμμικού μετασχηματισμού, έστω ότι Ο μετασχηματισμός δίνει επομένως
Διγραμμικός Μετασχηματισμός Συνεπώς έχουμε ότι αν r < 1 (εντός τριγωνομετρικού κύκλου στο z-επίπεδο) τότε σ < 0 (Left Hand Plane στο s-επίπεδο). Όταν r=1 τότε σ=0 και οι σχέσεις συχνότητας είναι Ή ισοδύναμα Η παραπάνω σχέση σχεδιάζεται στο παρακάτω διάγραμμα, όπου φαίνεται ότι όλη περιοχή του -∞ ≤ Ω ≤ ∞ απεικονίζεται μία φορά εντός της περιοχής –π ≤ ω ≤ π. Αυτό βέβαια συνεπάγεται ότι η απεικόνιση είναι πολύ μη γραμμική, κυρίως όσο η Ω μεγαλώνει.
Διγραμμικός Μετασχηματισμός Η παραπάνω σχέση σχεδιάζεται στο παρακάτω διάγραμμα, όπου φαίνεται ότι όλη περιοχή του -∞ ≤ Ω ≤ ∞ απεικονίζεται μία φορά εντός της περιοχής –π ≤ ω ≤ π. Αυτό βέβαια συνεπάγεται ότι η απεικόνιση είναι πολύ μη γραμμική, κυρίως όσο η Ω μεγαλώνει.
Σχέση αναλογικής Ω με ψηφιακή ω s-plane (jΩ axis) z-plane (unit circle) Ω = 0 ω = 0 0 < Ω < 1 0 < ω < π/2 Ω ≥ 1 π/2 ≤ ω ≤ π Ω = ∞ ω = π jΩ 1 o π/2 o x ω0 Ω0 x π -σ σ -jΩ
Σχέση αναλογικής Ω με ψηφιακή ω Η μη-γραμμική σχέση μεταξύ Ω0 και ω0 που συμπιέζει τις 1≤ Ω ≤ ∞ στο ίδιο τόξο του unit circle όπως και τις 0≤ Ω ≤ 1 Σημειώστε, ότι τα passbands για το Αναλογικό φίλτρο στον κάθετο άξονα είναι σταθερού πλάτους ενώ τα passbands για το ψηφιακό αντίστοιχο φίλτρο είναι συμπιεσμένα. Αυτή η επίδραση αντισταθμίζεται διαστρεβλώνοντας εκ των προτέρων το αναλογικό φίλτρο πριν εφαρμόσουμε το διγραμμικό μετασχηματισμό (prewarping)
Παράδειγμα: αναλογικό παθητικό RC Lowpass Filter VIN : Τάση εισόδου στο κύκλωμα VOUT : Τάση εξόδου από κύκλωμα VIN VOUT C Αναλογική συνάρτηση μεταφοράς: Έχει ένα πόλο στο -1/RC !!! Ψηφιακή συνάρτηση μεταφοράς: Επομένως:
Αλγόριθμος κατασκευής ψηφιακού φίλτρου Έχοντας τις προδιαγραφές οποιουδήποτε φίλτρου (Low Pass, High Pass, Band Pass, Band Stop) μπορούμε εύκολα να βρούμε το αντίστοιχο ψηφιακό, ως εξής: Εκτελούμε αλλοίωση συχνοτήτων (prewarping) λόγω της μη-γραμμικότητας της διγραμμικής μεθόδου Ανεξάρτητα του τύπου φίλτρου που θέλουμε τελικά, υπολογίζουμε το κανονικοποιημένο φίλτρο χαμηλών συχνοτήτων τύπου Butterworth με τη βοήθεια τύπων μετασχηματισμού συχνότητας Πρέπει να βρούμε τις Ωpass =1 και Ωstop = Ωα και βέβαια έχουμε τα Αpass και Αstop του αρχικού φίλτρου !!! Βρίσκουμε το N και από τον Πίνακα 6.2 το H(s) του κανονικοποιημένου low pass φίλτρου Κάνουμε τη μετατροπή στον τύπο φίλτρου που μας ζητείται Τέλος κάνουμε τη μετατροπή σε ψηφιακό με τη Μέθοδο Tustin (διγραμμική μέθοδο).
Αλγόριθμος κατασκευής ψηφιακού φίλτρου Αλλάξτε (Pre-wrap) εκ των προτέρων τη band-edge ή τις κρίσιμες συχνότητες του ψηφιακού φίλτρου Για lowpass και highpass, για bandpass και bandstop,
Αλγόριθμος κατασκευής ψηφιακού φίλτρου 2. Βρείτε ένα κατάλληλο πρότυπο χαμηλής διέλευσης (lowpass) αναλογικό φίλτρο, βασισμένο στις προδιαγραφές των ψηφιακών φίλτρων και ένα από τα κλασσικά αναλογικά φίλτρα. Αυτό περιλαμβάνει τη χρησιμοποίηση μίας από τις εξισώσεις μετασχηματισμού συχνότητας (ανάλογα με τον τύπο ψηφιακού φίλτρου – LP, HP, BP, ή BS) αντίστροφα, ώστε να καθορίσουμε τις προδιαγραφές του πρότυπου φίλτρου LP. Από το ισοδύναμο LP, βρίσκουμε την τάξη Ν του πρωτότυπου LP φίλτρου και στη συνέχεια τη συνάρτηση μεταφοράς του, H(s).
Αλγόριθμος κατασκευής ψηφιακού φίλτρου Με βάση το αναλογικό πρότυπο LP φίλτρο, H(s), κάνουμε μετασχηματισμό συχνότητας ώστε να υπολογίσουμε τη νέα συνάρτηση μεταφοράς, H’(s), του φίλτρου που μας ζητείται στις προδιαγραφές. Εφαρμόζουμε τη μέθοδο BZT για να βρούμε την επιθυμητή συνάρτηση μεταφοράς H(z) του ψηφιακού φίλτρου, αντικαθιστώντας το s στην H’(s) με το διγραμμικό μετασχηματισμό. Σημείωση: επειδή ο όρος εμφανίζεται στην αλλά και στο διγραμμικό μετασχηματισμό, τελικά απλοποιείται, και για αυτό συνήθως σε υπολογισμούς με το χέρι παραλείπεται και στους δύο όρους.
Matlab IIR example 1 Σχεδιάστε ένα φίλτρο Butterworth χαμηλών συχνοτήτων με τις εξής προδιαγραφές: Ο σχεδιασμός του φίλτρου γίνεται με την υλοποίηση των παρακάτω βημάτων Το κανονικοποιημένο φίλτρο Butterworth χαμηλών συχνοτήτων με Ωc=1 και N=2 είναι
Matlab IIR example 1 2. Λόγω της μη γραμμικότητας του διγραμμικού μετασχηματισμού θα πρέπει να κάνουμε pre-wraping την συχνότητα αποκοπής από Ωc=2π150 σε 3. Κάνουμε μετασχηματισμό συχνότητας στο αναλογικό πεδίο 4. Κάνουμε διγραμμικό μετασχηματισμό (bilinear transformation) για να βρούμε τη συνάρτηση μεταφοράς στο ψηφιακό πεδίο:
Matlab IIR example 1 N=2; fc=150; Fs=1280; wc=2*pi*fc wc = 942.4778 % STEP 2: Pre-warping wc_prewarp=(2*Fs)*tan(wc/(2*Fs)) wc_prewarp = 987.5010
Matlab IIR example 1 % STEP 3: Design of Analog filter [b,a]=butter(N, wc_prewarp, 's') % 's' for analog filter design b = 1.0e+005 * 0 0 9.7516 a = 0.00001 0.0140 9.7516 % STEP 4: apply bilinear transformation on the analog filter [bz, az] = bilinear(b,a,Fs) bz = 0.0878 0.1756 0.0878 az = 1.0000 -1.0048 0.3561
Matlab IIR example 1 [H, w] = freqz(bz,az,256); plot(w/pi,abs(H),'o') xlabel('frequency in pi units') ylabel('|H(w)|')
Matlab IIR example 1 [H, f] = freqz(bz, az, 256, Fs); plot(f,abs(H),'x') xlabel('frequency in Hz units') ylabel('|H(f)|')
Matlab IIR example 1 Το ίδιο αποτέλεσμα μπορεί να βρεθεί απευθείας στο Matlab τη συνάρτηση butter (χωρίς το ‘s’ που σημαίνει αναλογικό), η οποία υλοποιεί όλα τα προηγούμενα βήματα: N=2; fc=150; Fs=1280; [bz, az]=butter(N, fc/(Fs/2)) bz = 0.0878 0.1756 0.0878 az = 1.0000 -1.0048 0.3561 Παρατηρήστε ότι στην περίπτωση αυτή η συχνότητα αποκοπής ορίζεται κανονικοποιημένη ως προς τη συχνότητα Nyquist (Fs/2).
Matlab IIR example 2 Σχεδιάστε ένα φίλτρο Butterworth υψηλών συχνοτήτων (high pass) με τις εξής προδιαγραφές: Το κανονικοποιημένο LP φίλτρο Butterworth χαμηλών συχνοτήτων με Ωc=1 και N=1 είναι κάνουμε pre-wraping την συχνότητα αποκοπής Ωc= 2 π 30 σε 3. Κάνουμε μετασχηματισμό συχνότητας στο αναλογικό πεδίο 4. Κάνουμε διγραμμικό μετασχηματισμό για να βρούμε τη συνάρτηση μεταφοράς στο ψηφιακό πεδίο:
Matlab IIR example 2 N=1; fc=30; Fs=150; wc=2*pi*fc % cutoff frequency in rad/sec wc =188.4956 % STEP 2: Pre-wraping wc_prewarp=(2*Fs)*tan(wc/(2*Fs)) wc_prewarp = 217.9628 % STEP 3: Design of Analog Highpass filter [b,a]=butter(N, wc_prewarp,'high','s') b = 1 0 a = 1.0 217.9628 % STEP 4: [bz,az]=bilinear(b,a,Fs) bz = 0.5792 -0.5792 az = 1.0000 -0.1584
Matlab IIR example 2 (χωρίς 2/Τ) N=1; fc=30; Fs=150; wc=2*pi*fc % cutoff frequency in rad/sec wc =188.4956 % STEP 2: Pre-wraping wc_prewarp = tan(wc/(2*Fs)) % without 2/T wc_prewarp = 0.7265 % STEP 3: Design of Analog Highpass filter [b,a]=butter(N, wc_prewarp,'high','s') b = 1 0 a = 1.0 0.7265 % STEP 4: [bz,az]=bilinear(b,a, 1/2) % 2/Τ = 1 Τ=2 Fs = 1/2 !!! bz = 0.5792 -0.5792 az = 1.0000 -0.1584
Matlab IIR example 2 Function butter gives directly the digital filter [bz,az]=butter(N, fc/(Fs/2),'high') bz = 0.5792 -0.5792 az = 1.0000 -0.1584 [H, f] = freqz(bz,az,256, Fs); plot(f,abs(H),'x') xlabel('frequency in Hz') ylabel('|H(f)|')
Matlab IIR example 2 H απόκριση συχνότητας σε dB plot(f, 20*log10(abs(H)),'+') ylabel('20log10|H(f)|'); xlabel('frequency in Hz')
Matlab IIR example 3 Σχεδιάστε ένα φίλτρο Butterworth διέλευσης συχνοτήτων (bandpass) με τις εξής προδιαγραφές κάνουμε pre-wraping :
Matlab IIR example 3 Βρίσκουμε το κανονικοποιημένο (πρωτότυπο) ισοδύναμο φίλτρο χαμηλών συχνοτήτων τύπου Butterworth, με εφαρμογή των εξισώσεων των Α και Β, σελίδα 213: Οπότε το κανονικοποιημένο (προτότυπο) ισοδύναμο φίλτρο χαμηλών συχνοτήτων τύπου Butterworth, έχει προδιαγραφές (βλ. Σχήμα 6.12)
Matlab IIR example 3 Και επομένως η τάξη Ν του πολυωνύμου Butterworth που απαιτείται είναι: Ν = 2 Δηλαδή έχουμε Low-Pass συνάρτηση μεταφοράς Ο μετασχηματισμός από lowpass σε bandpass είναι:
Matlab IIR example 3 Κάνουμε διγραμμικό μετασχηματισμό (bilinear transformation) για να βρούμε τη συνάρτηση μεταφοράς στο ψηφιακό πεδίο:
Matlab IIR example 3 >> f1=1000; >> f2=2000; >> f_w=600; >> f_h=2250; >> fs=5000; >> Ap=3; >> As=14; % STEP 1 Pre-warping without the term 2/T in front !!! >> w1=tan(2*pi*f1/(2*fs) w1 = 0.7265 >> w2=tan(2*pi*f2/(2*fs)) w2 = 3.0777 >> w_w=tan(2*pi*f_w/(2*fs)) w_w = 0.3959 >> w_h=tan(2*pi*f_h/(2*fs)) w_h = 6.3138
Matlab IIR example 3 %STEP 2 Design of Analog Prototype LowPass filter (οι συχνότητες δίνονται σε σχέση με την fs/2 μέσα στη συνάρτηση buttord) f1_matlab=f1/(fs/2) f1_matlab = 0.4000 >> f2_matlab=f2/(fs/2) f2_matlab = 0.8000 >> f_w_matlab=f_w/(fs/2) f_w_matlab = 0.2400 >> f_h_matlab=f_h/(fs/2) f_h_matlab = 0.9000 [N,Wc]=buttord([f1_matlab,f2_matlab],[f_w_matlab,f_h_matlab],Ap,As) N = 2
Matlab IIR example 3 % STEP 3: Design of Analog Bandpass filter >> [b,a]=butter(N, [w1, w2], 's') b = 0 0 5.5279 0 0 a = 1.0000 3.3250 10.0000 7.4350 5.0000 % STEP 4: apply bilinear transformation on the analog filter >> [bz, az] = bilinear(b, a, 1/2) %!!! fs = 1/2 εδώ μόνο, επειδή όταν κάναμε pre-wraping δεν βάλαμε μπροστά τον όρο (2/Τ), άρα θεωρήσαμε Τ=2 => fs = 1/2 bz = 0.2066 0.0000 -0.4131 -0.0000 0.2066 az = 1.0000 0.9051 0.5979 0.2907 0.1958
Matlab IIR example 3 [H, f] = freqz(bz,az,256, fs); >> plot(f,20*log10(abs(H)),'-') >> grid >> axis([0 fs/2 -30 0]) >> xlabel('frequency in Hz') >> ylabel('20log10|H(f)|')
Matlab IIR example 4 Σχεδιάστε ένα Butterworth IIR bandstop filter με τις εξής προδιαγραφές Lower passband 0 – 50 Hz Upper passband 450 – 500 Hz Stopband 200 – 300 Hz Passband ripple 3 dB Stopband attenuation 20 dB Sampling frequency 1 KHz
Matlab IIR example 4 από LP BS transform χρησιμοποιώντας τις εξισώσεις της θεωρίας έχουμε Από τα παραπάνω παίρνουμε ότι οι bandedge συχνότητες του πρότυπου lowpass είναι: oπότε χρειάζεται filter order
Matlab IIR example 4 N=2
Matlab IIR example 4 Με χρήση του διγραμμικού μετασχηματισμού
Matlab IIR example 4 Ap=3; As=20; Fs=1000; Wp=[50/500, 450/500] Ws=[200/500, 300/500] [N,Wc]=buttord(Wp, Ws, Ap, As); [zz,pz,kz]=butter(N,Ws,’stop’) % δίνει τις τιμές των μηδενικών και πόλων της Η(z) [b,a]=butter(N,Ws,’stop’) % δίνει τη συνάρτηση μεταφοράς H(z) sos=zp2sos(z,p,k); >> Wp = 0.1000 0.9000 >> Ws = 0.4000 0.6000 To order N του prototype lowpass filter είναι: N = 2
Matlab IIR example 4 συνάρτηση μεταφοράς του τελικού bandstop με τη βοήθεια πάντα του matlab είναι: επειδή οι συντελεστές είναι: b = 0.6389 -0.0000 1.2779 -0.0000 0.6389 a = 1.0000 -0.0000 1.1430 0.0000 0.4128
Matlab IIR example 4 subplot(2,1,1); [H,f]=freqz(b, a, 512, Fs); plot(f,(abs(H))); xlabel(‘Frequency (Hz)’) ylabel(‘Magnitude Response(dB)’) subplot(2,1,2); zplane(b,a);