ιορθώσεις Συµπληρώσεις Αναµορφώσεις κειµένων: Γεώργιος Παυλίδης Κωνσταντίνος Σταυρόγλου



Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

ΕΙΣΑΓΩΓΗ ΣΤΟ SIMULINK

x[n] = e u[n 1] 4 x[n] = u[n 1] 4 X(z) = z 1 H(z) = (1 0.5z 1 )(1 + 4z 2 ) z 2 (βʹ) H(z) = H min (z)h lin (z) 4 z 1 1 z 1 (z 1 4 )(z 1) (1)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών. HY-370: Ψηφιακή Επεξεργασία Σήµατος Χειµερινό Εξάµηνο 2016 ιδάσκοντες : Γ. Στυλιανού - Γ.

Ολοκληρωµένο Περιβάλλον Σχεδιασµού Και Επίδειξης Φίλτρων

To SIMULINK του Matlab

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

Υλοποιήσεις Ψηφιακών Φίλτρων

2014 Παρίσης Κ., Καθηγητής

Συστήματα Αυτομάτου Ελέγχου

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

ΛΥΣΕΙΣ ΑΣΚΗΣΕΩΝ ΕΞΕΤΑΣΤΙΚΗΣ ΠΕΡΙΟ ΟΥ ΙΟΥΝΙΟΥ 2004., η οποία όµως µπορεί να γραφεί µε την παρακάτω µορφή: 1 e

ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στα Σήµατα Εισαγωγή στα Συστήµατα Ανάπτυγµα - Μετασχηµατισµός Fourier Μετασχηµατισµός Z

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

Σήματα και Συστήματα. Διάλεξη 1: Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Εισαγωγή στην Αριθμητική Ανάλυση

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

Ο Μετασχηματισμός Ζ. Ανάλυση συστημάτων με το μετασχηματισμό Ζ

Simulation Users Manual

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

MATLAB. Εισαγωγή στο SIMULINK. Μονάδα Αυτόματης Ρύθμισης και Πληροφορικής

x[n]z n = ) nu[n]z n z 1) n z 1 (5) ( 1 z(2z 1 1]z n +

ΤΕΙ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΘΡΑΚΗΣ Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Εργαστήριο

2 η Εργαστηριακή Άσκηση Simulink

DFT ιακριτός µετ/σµός Fourier Discrete Fourier Transform

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

Μετασχηµατισµός FOURIER ιακριτού χρόνου DTFT

Σ. Φωτόπουλος -1- ΨΕΣ- AΣΚΗΣΕΙΣ-ΛΥΣΕΙΣ- Κεφάλαιο 2 ο

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

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

( t) όπου το * αντιστοιχεί σε συνέλιξη και. (t 2) * x 2

Επαναληπτικές Ασκήσεις για το µάθηµα Ψηφιακή Επεξεργασία Σηµάτων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Συστήµατα τα οποία χαρακτηρίζονται από γραµµικές εξισώσεις διαφορών µε σταθερούς συντελεστές

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΗΛΕΚΤΡΟΑΚΟΥΣΤΙΚΗΣ

Ακαδηµαϊκό Έτος , Εαρινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης

ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ Ενότητα 3: ΣΥΝΕΛΙΞΗ

ΑΝΑΛΥΣΗ ΣΗΜΑΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΤΟ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟ FOURIER

Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης

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

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

17-Φεβ-2009 ΗΜΥ Ιδιότητες Συνέλιξης Συσχέτιση

Αντίστροφος Μετασχηματισμός Ζ. Υλοποίηση συστημάτων Διακριτού Χρόνου. Σχεδίαση φίλτρων

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών

Περιεχόµενα ΕΠΛ 422: στα Συστήµατα Πολυµέσων. Βιβλιογραφία. ειγµατοληψία. ηµιουργία ψηφιακής µορφής πληροφορίας στα Συστήµατα Πολυµέσων

Συστήµατα τα οποία χαρακτηρίζονται από γραµµικές εξισώσεις διαφορών µε σταθερούς συντελεστές

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών

3 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

y[n] ay[n 1] = x[n] + βx[n 1] (6)

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

δ[n kp ], k Z (1) 1 cos πn, N 1 n N 1 + N 2 2N

Σήματα και Συστήματα. Διάλεξη 2: Στοιχειώδη Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Συστήµατα τα οποία χαρακτηρίζονται από γραµµικές εξισώσεις διαφορών µε σταθερούς συντελεστές

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ ΑΣΚΗΣΗ 5

Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης

Α. Αιτιολογήστε αν είναι γραμμικά ή όχι και χρονικά αμετάβλητα ή όχι.

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Συστήματα Διακριτού Χρόνου (Discrete-Time Systems) Κυριακίδης Ιωάννης 2011

Ευστάθεια Συστηµάτων Αυτοµάτου Ελέγχου: Αλγεβρικά κριτήρια

27/4/2009. Για την υλοποίηση τέτοιων αλγορίθμων επεξεργασίας απαιτείται η χρήση μνήμης. T η περίοδος δειγματοληψίας. Επίκ. Καθηγητής.

ΑΕΝ / ΑΣΠΡΟΠΥΡΓΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΙΣΜΟΥ. Σημειώσεις για τη χρήση του MATLAB στα Συστήματα Αυτομάτου Ελέγχου

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

Συστήματα Αυτομάτου Ελέγχου

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 2 η : Δισδιάστατα Σήματα & Συστήματα Μέρος 1

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

Σχήµα 1: Χρήση ψηφιακών φίλτρων για επεξεργασία σηµάτων συνεχούς χρόνου

ΥΠΟΛΟΓΙΣΜΟΣ ΑΝΑΠΤΥΓΜΑΤΟΣ FOURIER ΜΕ ΑΡΙΘΜΗΤΙΚΟ ΤΡΟΠΟ

Τυπικές χρήσεις της Matlab

ΣΤΟΧΑΣΤΙΚΑ ΣΗΜΑΤΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ

Σχήµα 2.1: Εισαγωγή array στο Front Panel.

Κεφάλαιο 5ο: Εντολές Επανάληψης

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας. Ακαδημαϊκό Έτος Παρουσίαση Νο. 2. Δισδιάστατα Σήματα και Συστήματα #1

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

Αναλογικά φίλτρα. Για να επιτύχουµε µια επιθυµητή απόκριση χρειαζόµαστε σηµαντικά λιγότερους συντελεστές γιαένα IIR φίλτροσεσχέσηµετοαντίστοιχο FIR.

Δυναμική Μηχανών I. Αριθμητική Επίλυση Δυναμικών Συστημάτων στο Περιβάλλον MATLAB και Simulink

Σήματα και Συστήματα ΙΙ

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

Δυναμική Μηχανών I. Διάλεξη 10. Χειμερινό Εξάμηνο 2013 Τμήμα Μηχανολόγων Μηχ., ΕΜΠ

Εισαγωγή στη Χρήση της Εφαρµογής Compaq Visual Fortran & του Microsoft Developer Studio

1) Να σχεδιαστούν στο matlab οι γραφικές παραστάσεις των παρακάτω ακολουθιών στο διάστημα, χρησιμοποιώντας τις συναρτήσεις delta και step.

Παράδειγµα ενός ηλεκτρικού συστήµατος

15/3/2009. Ένα ψηφιακό σήμα είναι η κβαντισμένη εκδοχή ενός σήματος διάκριτου. χρόνου. Φλώρος Ανδρέας Επίκ. Καθηγητής

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Βασικό Επίπεδο στο Modellus

x(t) = 4 cos(2π600t π/3) + 2 sin(2π900t + π/4) + sin(2π1200t) (1) w(t) = y(t)z(t) = 2δ(t + 1) (2) (2 sin(2π900t + π/4) t= 1 + sin(2π1200t) )

Εξεταστική Ιανουαρίου 2007 Μάθηµα: «Σήµατα και Συστήµατα»

10-Μαρτ-2009 ΗΜΥ Παραθύρωση Ψηφιακά φίλτρα

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B:

Παρουσίαση του μαθήματος

c xy [n] = x[k]y[n k] (1)

ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ARIS

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

ΚΕΦΑΛΑΙΟ 14 ΚΑΤΩ ΙΑΒΑΤΑ ΦΙΛΤΡΑ BESSEL-THOMSON

Εισαγωγή στην Ανάλυση Συστηµάτων Αυτοµάτου Ελέγχου: Χρονική Απόκριση και Απόκριση Συχνότητας

Ισοδυναµία τοπολογιών βρόχων.

ΑΝΑΠΤΥΓΜA - ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ. Περιγράψουµε τον τρόπο ανάπτυξης σε σειρά Fourier ενός περιοδικού αναλογικού σήµατος.

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

Transcript:

Έκδοση 2 Μάρτιος 2004 Οι ασκήσεις αυτές βασίζονται στα αντίστοιχα εργαστήρια Ψηφιακής Επεξεργασίας Σήµατος το Πανεπιστηµίου του Berkeley, California Στα τελική διαµόρφωση του κειµένου έχουν βοηθήσει Βασικό κείµενο: Βασιλείου Ξυθάλη; Μέρος ιπλωµατικής Εργασίας Επιβλέπων καθηγητής: Χριστόδουλος Χαµζάς ιορθώσεις Συµπληρώσεις Αναµορφώσεις κειµένων: Γεώργιος Παυλίδης Κωνσταντίνος Σταυρόγλου

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΑ ΕΡΓΑΣΤΗΡΙΑ Τα χαρακτηριστικά του Matlab Το χαρακτηριστικό γνώρισµα του Matlab, και αυτό που κυρίως το κάνει να διαφέρει από τις άλλες γλώσσες προγραµµατισµού, είναι ότι το βασικό αντικείµενο επεξεργασίας είναι ένα και µοναδικό: ένας αριθµητικός πίνακας διαστάσεων m*n. Ενδεχοµένως, µια από τις δυο διαστάσεις m ή n έχει τιµή 1, οπότε µιλάµε για πίνακες-διανύσµατα (vectors), ή και οι δυο διαστάσεις είναι 1, οπότε µιλάµε για βαθµωτούς πίνακες (scalars). Το Matlab δεν απαιτεί τον εξ αρχής καθορισµό των διαστάσεων m και n. Αντίθετα, οι διαστάσεις των πινάκων µπορούν να ορίζονται και να αλλάζουν δυναµικά, µε µοναδικό όριο το µέγεθος του αποθηκευτικού χώρου που είναι διαθέσιµος στο συγκεκριµένο υπολογιστή. Τα στοιχεία των πινάκων µπορούν να είναι οποιασδήποτε µορφής: ακέραια (integer), πραγµατικά (real), µιγαδικά (complex), ακόµα και αριθµητικές εκφράσεις (expressions). υο ή περισσότεροι τύποι δεδοµένων µπορούν να συνυπάρχουν στον ίδιο πίνακα. Σε αυτή την περίπτωση, το Matlab µετατρέπει αυτόµατα όλα τα δεδοµένα στην πιο πολύπλοκή δοµή. Για παράδειγµα, ας γράψουµε τον πίνακα: a=[1,sqrt(2),1+2*i] ο οποίος, όπως βλέπουµε, περιλαµβάνει ένα ακέραιο, ένα πραγµατικό και ένα µιγαδικό στοιχείο. (Σηµείωση: η έκφραση sqrt(n) δίνει την τετραγωνική ρίζα του n). Σε αυτή την περίπτωση, το πρόγραµµα µας δίνει: a = 1.0000 1.4142 1.0000 + 2.0000i Βλέπουµε δηλαδή ότι το Matlab µετέτρεψε αυτόµατα το ακέραιο στοιχείο σε πραγµατικό. Αυτή η ικανότητα συνεπάγεται την έλλειψη ανάγκης για αρχικό ορισµό του τύπου των µεταβλητών, κάτι που απαιτούν άλλες γλώσσες προγραµµατισµού. Οι δυο παραπάνω ιδιότητες (ελευθερία στο µέγεθος των πινάκων και στον τύπο των στοιχείων τους), σε συνδυασµό µε τη µεγάλη ποικιλία των συναρτήσεων ή ρουτινών (functions) που περιέχει, καθιστούν το Matlab ένα πολύ ισχυρό µαθηµατικό εργαλείο. Οι κυριότερες από τις συναρτήσεις αυτές είναι ενσωµατωµένες στον πυρήνα του Matlab και ο χρήστης δεν έχει τη δυνατότητα να δει τα περιεχόµενά τους (για λόγους ταχύτητας εκτέλεσης των βασικών λειτουργιών). Άλλες συναρτήσεις είναι ενσωµατωµένες σε βιβλιοθήκες (toolboxes) µε την µορφή ειδικών αρχείων τύπου M (M-files), οι οποίες χρησιµεύουν σε πιο εξειδικευµένες εφαρµογές. Στις συναρτήσεις των βιβλιοθηκών ο χρήστης έχει πρόσβαση και µπορεί είτε να τις διαβάσει είτε ακόµη και να τις αλλάξει. Ένα ακόµη σηµαντικό χαρακτηριστικό του Matlab, είναι ότι επιτρέπει στον κάθε χρήστη να κατασκευάσει νέες συναρτήσεις, να τις αποθηκεύει ως M - files, και στη συνέχεια να τις χρησιµοποιεί όπως τις βασικές συναρτήσεις. Αυτή η δυνατότητα του Matlab θα εξηγηθεί πιο αναλυτικά στα επόµενα. Ένα άλλο σηµαντικό χαρακτηριστικό του Matlab είναι η δυνατότητα απεικόνισης πολύπλοκων αποτελεσµάτων, σε δυο ή σε τρεις διαστάσεις. Ένα απλό παράδειγµα των δυνατοτήτων αυτών, βλέπουµε αν γράψουµε τα εξής: T=0:pi/50:10*pi; plot3(sin(t),cos(t),t); Η πρώτη σειρά είναι µια ανακύκλωση για t = 0 µέχρι t = 10*π, µε βήµα π/50. Το αποτέλεσµα είναι µια έλικα σε τρεις διαστάσεις (σχήµα 1). Άλλες συναρτήσεις επιτρέπουν τη δηµιουργία τρισδιάστατων επιφανειών από τις µαθηµατικές εκφράσεις τους και τον χρωµατισµό τους. Τέλος, είναι δυνατή η κατασκευή σύντοµων ταινιών (movies) µε τη διαδοχική προβολή διαδοχικών σκηνών.

Εισαγωγή στο Matlab Σχήµα 1. Παράδειγµα τρισδιάστατης απεικόνισης στο Matlab Προγραµµατισµός µε το Matlab Ένα παράδειγµα χειρισµού πινάκων που υποστηρίζει το Matlab µπορεί να δοθεί µέσω του πίνακα που εικονίζεται στο έργο «Μελαγχολία ΙΙ» του Γερµανού αναγεννησιακού καλλιτέχνη και αυτοδίδακτου µαθηµατικού Άλµπρεχτ Ντίρερ (σχήµα 2). Σχήµα 2. Ο Πίνακας στο έργο «Μελαγχολία ΙΙ» του Άλµπρεχτ Ντίρερ Το έργο του Ντίρερ είναι γεµάτο µε µαθηµατικό συµβολισµό. Αν παρατηρήσουµε, στην πάνω δεξιά γωνία, βλέπουµε τον πίνακα τιµών που εικονίζεται επίσης στο σχήµα 2. Ο πίνακας αυτός είναι γνωστός ως το µαγικό τετράγωνο και, στην εποχή του Ντίρερ, είχε τη φήµη ότι είχε µαγικές ιδιότητες. Μπορούµε να εξερευνήσουµε αυτές τις ιδιότητες χρησιµοποιώντας τις δυνατότητες του Matlab. Αρχικά, για να εισάγουµε στο Matlab τον πίνακα θα έπρεπε να εκτελέσουµε την εντολή: A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] 2

Εισαγωγή στο Matlab A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Ο πίνακας αυτός ανταποκρίνεται πλήρως στον πίνακα που εικονίζεται στο σχήµα 2. Ο πίνακας αυτός περιέχει τους αριθµούς από 1 έως 16 (µια φορά τον καθένα) κατάλληλα διατεταγµένους. Γιατί, όµως αυτός ο πίνακας έχει µαγικές ιδιότητες; Ας εξερευνήσουµε τις ιδιότητές του. Για να λάβουµε το άθροισµα των στηλών του πίνακα, αρκεί να εκτελέσουµε την εντολή: sum(a) ans = 34 34 34 34 Να λοιπόν µια πρώτη «µαγική» ιδιότητα του πίνακα. Παρατηρούµε, όµως, ότι η εντολή sum του Matlab µας δίνει το άθροισµα των στηλών ενός πίνακα. Πώς θα µπορούσαµε να λάβουµε το άθροισµα των γραµµών; Η απάντηση είναι να χρησιµοποιήσουµε την ίδια εντολή (sum) στον ανάστροφο του πίνακα. Ο ανάστροφος του πίνακα δίνεται στο Matlab µέσω της εντολής: A ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1 Συνεπώς, µπορούµε να πάρουµε το άθροισµα των γραµµών του πίνακα µε την εντολή: sum(a ) ans = 34 34 34 34 Συνεχίζοντας, µπορούµε να πάρουµε το άθροισµα των στοιχείων πάνω στην κύρια διαγώνιο του πίνακα, η οποία στο Matlab δίνεται µέσω της εντολής: diag(a) ans = 16 10 7 1 sum(diag(a)) ans = 34 Για τον υπολογισµό της δεύτερης διαγωνίου ή αντιδιαγωνίου, δεν υπάρχει έτοιµη συνάρτηση, συνεπώς πρέπει να γίνει κάποιο τρικ. Μέσω της συνάρτησης fliplr (flip left-right) µπορούµε να αντιµεταθέσουµε τις 3

Εισαγωγή στο Matlab στήλες του πίνακα από αριστερά στα δεξιά (ή αντίστροφα). Έτσι, το άθροισµα των στοιχείων της αντιδιαγωνίου θα δίνεται: sum(diag(fliplr(a))) ans = 34 ηλαδή, και πάλι 34! Επεκτείνοντας τους τρόπους πρόσβασης στον πίνακα, ας εξετάσουµε πως µπορούµε να αναφερθούµε στα ίδια τα στοιχεία του. Το στοιχείο στη γραµµή i και στήλη j του πίνακα A συµβολίζεται A(i,j). Για παράδειγµα το A(4,2) συµβολίζει το στοιχείο του πίνακα A που βρίσκεται στην τέταρτη γραµµή και δεύτερη στήλη. Εάν θέλαµε να πάρουµε το άθροισµα της τέταρτης στήλης του πίνακα, θα εκτελούσαµε την εντολή: A(1,4) + A(2,4) + A(3,4) + A(4,4) Ένας άλλος, πιο εκλεπτυσµένος και γρήγορος τρόπος για να πάρουµε το παραπάνω άθροισµα θα ήταν: sum(a(:,4)) όπου το σύµβολο άνω-κάτω τελεία (:), όταν χρησιµοποιείται µόνο του, συµβολίζει όλα τα στοιχεία (των γραµµών στην περίπτωση αυτή). Στην περίπτωση που θέλουµε το άθροισµα των στοιχείων της τέταρτης, πάλι, στήλης αλλά µεταξύ των γραµµών 1 και 3, θα γράφαµε: sum(a(1:3,4)) όπου το σύµβολο άνω-κάτω τελεία (:) σηµαίνει από-έως. Το Matlab αναγνωρίζοντας την αξία των πινάκων - µαγικών τετραγώνων, έχει ενσωµατωµένη συνάρτηση παραγωγής του. Έτσι, για την παραγωγή του παραπάνω πίνακα, αρκεί να δοθεί η εντολή: B=magic(4) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 Παρατηρούµε ότι υπάρχει µια αντιµετάθεση των δύο µεσαίων στηλών στον πίνακα Α σε σχέση µε τον πίνακα Β. Οι «µαγικές» ιδιότητες βέβαια παραµένουν αναλλοίωτες και για τους δύο πίνακες. Για να δηµιουργήσουµε τον πίνακα Α από τον πίνακα Β αρκεί να ορίσουµε αυτή την αντιµετάθεση: A = B(:,[1 3 2 4]) Στον παραπάνω συµβολισµό εννοείται ότι από τον πίνακα Β παίρνουµε όλες τις γραµµές και τις στήλες µε τη σειρά που παρουσιάζονται στον εσωτερικό πίνακα [1 3 2 4]. Γιατί όµως ο Ντίρερ µπήκε στον κόπο να αλλάξει τη σειρά των στηλών; Ο λόγος είναι ότι ήθελε να περιλάβει στον πίνακα και το έτος δηµιουργίας του έργου του (1514), το οποίο φαίνεται στην τελευταία γραµµή και στις δύο µεσαίες στήλες του πίνακά του: A(4,2:3) Το Matlab περιλαµβάνει λειτουργίες ελέγχου κοινές στις περισσότερες από τις γλώσσες υπολογιστών, επιτρέποντας τη συγγραφή προγραµµάτων σε υψηλό επίπεδο (high level language). Οι κυριότερες από τις λειτουργίες αυτές είναι: 4

Εισαγωγή στο Matlab α) Ανακύκλωση µε σταθερό, προκαθορισµένο µέγεθος (FOR loop). Για παράδειγµα, η έκφραση: for a=1:10 b(a)=1; end δηµιουργεί το διάνυσµα b µήκους 10 µε µοναδιαία στοιχεία. β) Ανακύκλωση υπό συνθήκη (WHILE loop). Για παράδειγµα, η έκφραση: while a<10 b(a)=1; a=a+1; end επαναλαµβάνει την εντολή µέσα στην ανακύκλωση µέχρι να επαληθευθεί η έκφραση που ακολουθεί το while. γ) ιακλάδωση υπό συνθήκη (IF statements). Για παράδειγµα, το παρακάτω πρόγραµµα βγάζει διαφορετικό αποτέλεσµα, ανάλογα µε το εάν ο αριθµός n είναι αρνητικός, άρτιος θετικός, ή περιττός θετικός: if n<0 result=1 elseif rem(n,2) == 0 result=2 else result=3 end δ) Συναρτήσεις. Κάθε αρχείο τύπου M - file που περιέχει τη λέξη function στην αρχή της πρώτης γραµµής είναι αρχείο συνάρτησης. Μια συνάρτηση µπορεί να εισάγει µεταβλητές από το κυρίως πρόγραµµα, να τις επεξεργαστεί, και να τις εξάγει πάλι στο πρόγραµµα. Ταυτόχρονα, µπορεί να έχει τοπικές (local) µεταβλητές, οι οποίες δεν εµφανίζονται στο κυρίως περιβάλλον. Τα αρχεία συναρτήσεων είναι χρήσιµα για το γράψιµο νέων συναρτήσεων χρησιµοποιώντας τη γλώσσα του Matlab. Για παράδειγµα, ας θεωρήσουµε τη συνάρτηση myconv.m, η οποία υπολογίζει τη συνέλιξη δυο διανυσµάτων, χρησιµοποιώντας το απευθείας συνελικτικό άθροισµα. Θυµίζουµε ότι στον διακριτό χρόνο, η συνέλιξη C[n] δυο αιτιατών σηµάτων u[n] και y[n] είναι: n Cn [ ] = uk [ ]* yn [ k] k = 0 Ακολουθεί το πρόγραµµα που υλοποιεί το παραπάνω άθροισµα: % Function that calculates the convolution of two vectors function c = myconv(a, b) % read length of input vectors x1 = length(a); x2 = length(b); xa = max(x1, x2); % "zero pad" vectors so that they are the same length a(x1+1:x1+x2)=0; b(x2+1:x1+x2)=0; % creation of output vector with length of x1 + x2-1 c = zeros(1,x1+x2-1); 5

Εισαγωγή στο Matlab % main loop for n=1:x1+x2-1 sum= 0; for k=1:xa if n-k+1>=1 sum =sum + a(k)*b(n-k+1); end c(n)=sum; end end Στο παράδειγµα αυτό, µεταβλητές εισόδου είναι οι a και b, η έξοδος είναι η µεταβλητή c, ενώ οι µεταβλητές x1, x2, aa και ab είναι οι τοπικές µεταβλητές της συνάρτησης. Ένα σηµαντικό στοιχείο που πρέπει να θυµόµαστε είναι το ότι το Matlab κάνει διαχωρισµό ανάµεσα σε κεφαλαία και µικρά γράµµατα (όπως κάνει, για παράδειγµα, και η γλώσσα C). ηλαδή, οι µεταβλητές a1 και Α1 θεωρούνται δυο ανεξάρτητες µεταβλητές. Άρα, όταν γράφουµε ένα πρόγραµµα, πρέπει να προσέχουµε να γράφουµε σωστά τις εντολές και τις µεταβλητές. Επίσης, οι εκφράσεις που ακολουθούν το σύµβολο % είναι σχόλια (remarks) και δε λαµβάνονται υπόψη κατά την εκτέλεση της συνάρτησης. Το Matlab περιλαµβάνει ένα πρόγραµµα, το Matlab Editor - Debugger, το οποίο επιτρέπει τη συγγραφή και τον συντακτικό έλεγχο µιας συνάρτησης. Όταν γράψουµε τη συνάρτηση και την ελέγξουµε, την εκτελούµε µέσα από το παράθυρο εντολών του Matlab καλώντας τη µε το όνοµά της. Εναλλακτικά, µπορούµε να εκτελέσουµε την εντολή pcode <<path\filename.m>> (π.χ. pcode c:\utils\matlab\work\myconv.m) στο κεντρικό παράθυρο του Matlab. Αυτή η εντολή κατασκευάζει τον εκτελέσιµο κώδικα για τη νέα συνάρτηση. Κατόπιν αυτού, η συνάρτηση θα χρησιµοποιείται κανονικά. Μοντελοποίηση συστηµάτων: το Simulink Ένα σηµαντικό εργαλείο που περιλαµβάνεται στο Matlab είναι το Simulink. Το Simulink είναι ένα πακέτο για την µοντελοποίηση και την προσοµοίωση δυναµικών συστηµάτων. Τα συστήµατα αυτά µπορεί να είναι γραµµικά ή µη γραµµικά, ενώ επίσης µπορεί να είναι µοντελοποιηµένα σε συνεχή χρόνο, διακριτό χρόνο, ή ένα συνδυασµό των παραπάνω. Το Simulink προσφέρει ένα γραφικό περιβάλλον, όπου τα µοντέλα κατασκευάζονται µε τη µορφή µπλοκ διαγραµµάτων, χρησιµοποιώντας το mouse (click - and - drag). Περιέχει µπλοκ που εξοµοιώνουν µια µεγάλη ποικιλία από στοιχεία, όπως πηγές, γραµµικά και µη στοιχεία, και εξόδους. Επίσης, στο πακέτο περιέχεται µια σειρά από βιβλιοθήκες µπλοκ (blocksets), οι οποίες περιέχουν µπλοκ για πιο εξειδικευµένες εφαρµογές (παράδειγµα είναι το DSP Blockset, το οποίο περιλαµβάνει µπλοκ για Ψηφιακή Επεξεργασία Σηµάτων). Τέλος, το Simulink επιτρέπει στον χρήστη να κατασκευάσει δικά του µπλοκ χρησιµοποιώντας το µπλοκ S-Function. Παράδειγµα ενός µοντέλου στο Simulink φαίνεται στο σχήµα 3. Σε αυτό το παράδειγµα, εξετάζουµε την απόκριση συχνότητας ενός απλού χαµηλοπερατού φίλτρου µε τη χρήση του Γρήγορου Μετασχηµατισµού Fourier (FFT). Σχήµα 3. Παράδειγµα µπλοκ διαγράµµατος στο Simulink 6

Εισαγωγή στο Matlab Στο µπλοκ διάγραµµα του παραδείγµατος, το πρώτο µπλοκ, µε όνοµα Discrete Impulse, χρησιµοποιείται για να εισάγει ένα κρουστικό σήµα. Στη συνέχεια, το σήµα περνάει από ένα µπλοκ Discrete Filter, το οποίο έχει ως έξοδο τη συνέλιξη του σήµατος εισόδου και της συνάρτησης µεταφοράς του (η συνάρτηση µεταφοράς εισάγεται ως παράµετρος του µπλοκ). Το µπλοκ Buffer που ακολουθεί, χρησιµεύει στο να µετατρέπει µια σειρά δεδοµένων εισόδου σε διανύσµατα µήκους Ν. Για παράδειγµα, αν Ν = 3, τα δεδοµένα εισόδου µετατρέπονται ως εξής: Το µπλοκ FFT υπολογίζει τον Γρήγορο Μετασχηµατισµό Fourier του σήµατος. Το µήκος του FFT εξαρτάται από το µήκος του buffer που προηγείται. Η έξοδος του µπλοκ FFT περνάει από το µπλοκ Complex to Magnitude Angle, το οποίο χωρίζει ένα µιγαδικό σήµα στο πραγµατικό και το φανταστικό µέρος του, µε τη µορφή Πλάτους-Φάσης. Τέλος, για την έξοδο των αποτελεσµάτων έχουµε τα δυο µπλοκ Frequency Frame Scope (για την έξοδο της απόκρισης συχνότητας) µε ονόµατα Magnitude και Angle, καθώς και το µπλοκ Time Scope (για την έξοδο του σήµατος στο πεδίο του χρόνου. Μετά την κατασκευή του µοντέλου, σειρά έχει η προσοµοίωσή του. Αυτή µπορεί να γίνει µε µια ποικιλία µεθόδων ολοκλήρωσης, είτε άµεσα µέσα από το Simulink, είτε έµµεσα µε τη χρήση εντολών από το περιβάλλον του Matlab. Ο πρώτος τρόπος προσφέρεται ως ο πιο εύκολος, ενώ ο δεύτερος είναι ιδιαίτερα χρήσιµος. Για την γραφική παρουσίαση των αποτελεσµάτων, το Simulink προσφέρει µια σειρά από µπλοκ για προβολή των δεδοµένων στην οθόνη, ακόµη και κατά τη διάρκεια της προσοµοίωσης. Τα αποτελέσµατα µπορούν επίσης να εξαχθούν στο περιβάλλον του Matlab για περαιτέρω επεξεργασία ή διαφορετική παρουσίαση. Για παράδειγµα, αν τρέξουµε το παραπάνω µπλοκ διάγραµµα, θα εµφανιστούν δυο νέα παράθυρα, τα οποία θα δείχνουν το µέτρο και τη φάση της απόκρισης συχνότητας του φίλτρου. Η έξοδος φαίνεται στο σχήµα 4. Σχήµα 4. Έξοδος του µπλοκ διαγράµµατος στα µπλοκ Frequency Frame Scope Γενικά για τη χρήση του Simulink Το Simulink είναι γενικά ένα πρόγραµµα εύκολο στη χρήση του. Στην παράγραφο αυτή δίνονται κάποιες γενικές οδηγίες που αφορούν τη δηµιουργία και την επεξεργασία ενός διαγράµµατος µε το Simulink. Ξεκινήστε το πρόγραµµα επιλέγοντας από το µενού Start / Programs / Matlab τη συντόµευση Matlab. Μετά την οθόνη του τίτλου, θα εµφανιστεί ένα λευκό παράθυρο µε τίτλο "Matlab Command Window". Το παράθυρο αυτό είναι το κεντρικό παράθυρο εισαγωγής εντολών του Matlab. Στη συνέχεια, βρισκόµενοι πάντα στο κεντρικό παράθυρο του προγράµµατος, πληκτρολογούµε simulink και πατάµε 7

Εισαγωγή στο Matlab Enter. Θα ανοίξει ένα νέο παράθυρο µε τίτλο "Simulink Library Browser". Σε αυτό το παράθυρο φαίνονται όλες οι βιβλιοθήκες από µπλοκ που είναι εγκατεστηµένες. Κάνοντας κλικ µε τον δείκτη του ποντικιού σε αυτές, τις ανοίγουµε και επιλέγουµε τα στοιχεία που θέλουµε. Επίσης, στο πάνω ή κάτω άκρο του παραθύρου αυτού µπορούµε να δούµε πληροφορίες για το µπλοκ που έχουµε επιλεγµένο. Το παράθυρο αυτό φαίνεται στο σχήµα 5. 8 Σχήµα 5. Το παράθυρο Simulink Library Browser Α. ηµιουργία ενός νέου µπλοκ διαγράµµατος 1) Στο παράθυρο "Simulink Library Browser" κάνουµε κλικ στο εικονίδιο µε σχήµα ένα λευκό φύλλο από χαρτί (πρώτο εικονίδιο από αριστερά στο πάνω µέρος του παραθύρου), µε όνοµα "Create a new model". Θα ανοίξει ένα άδειο λευκό παράθυρο µε τίτλο "Untitled". Β. Εισαγωγή µπλοκ στο διάγραµµα 1) Από το παράθυρο "Simulink Library Browser", επιλέγουµε το στοιχείο που θέλουµε και, κρατώντας πατηµένο το αριστερό κουµπί του mouse, το µεταφέρουµε στο σηµείο που θέλουµε να τοποθετηθεί στο µπλοκ διάγραµµα. 2) Αν το µπλοκ που θέλουµε δεν υπάρχει σε τυπική βιβλιοθήκη του Simulink, γράφουµε στο κεντρικό παράθυρο του Matlab το όνοµα της βιβλιοθήκης που περιέχει το µπλοκ. Έπειτα, από το παράθυρο µε µπλοκ που δηµιουργείται, το εισάγουµε στο µπλοκ όπως παραπάνω. Γ. Σύνδεση, αντιγραφή και ρύθµιση των παραµέτρων των µπλοκ 1) Για να συνδέσουµε δυο µπλοκ που έχουµε εισάγει στο διάγραµµα ροής, κάνουµε αριστερό κλικ στον κόµβο ενός από τα δυο µπλοκ που θέλουµε να συνδέσουµε και µε πατηµένο το κουµπί του mouse, µεταφέρουµε τον δείκτη στον κατάλληλο κόµβο στο δεύτερο µπλοκ. Εκεί, αφήνουµε το κουµπί. 2) Για να δηµιουργήσουµε µια διακλάδωση σε µια σύνδεση, κάνουµε κλικ µε το δεξιό κουµπί του mouse στο σηµείο που θέλουµε να γίνει η διακλάδωση. Κατόπιν, κρατώντας πατηµένο το κουµπί, µετακινούµε τον δείκτη και δηµιουργείται η διακλάδωση. 3) Για να αντιγράψουµε ένα υπάρχον µπλοκ, χρησιµοποιούµε τις γνωστές εντολές των Windows Copy και Paste. 4) Κάνοντας διπλό κλικ σε κάποιο µπλοκ, ανοίγει το παράθυρο Block Parameters. Σε αυτό το παράθυρο µπορούµε να αλλάξουµε τις παραµέτρους του µπλοκ, καθώς επίσης και να πάρουµε πληροφορίες για αυτό, κάνοντας κλικ στο Help.. Παράµετροι προσοµοίωσης και έξοδος των αποτελεσµάτων 1) Στο παράθυρο του µπλοκ διαγράµµατος, επιλέγουµε από το µενού Simulation / Parameters. Θα ανοίξει ένα παράθυρο, στο οποίο µπορούµε να ρυθµίσουµε, µεταξύ άλλων, τον αρχικό και τον τελικό χρόνο της προσοµοίωσης και τον τύπο του διαγράµµατος (διακριτό ή συνεχές). Στις εφαρµογές που ακολουθούν, επιλέγουµε διακριτό χρόνο µε σταθερό βήµα, και µάλιστα για λόγους κανονικοποίησης το σταθερό βήµα θα είναι 1 sec. 2) Για να µπορέσουµε να δούµε τα αποτελέσµατα της προσοµοίωσης, θα πρέπει να έχουµε συνδέσει στην

Εισαγωγή στο Matlab έξοδο του µπλοκ που µας ενδιαφέρει ένα κατάλληλο µπλοκ από την κατηγορία Sinks. Ο τύπος του µπλοκ που θα πρέπει να βάλουµε εξαρτάται από τον τύπο των δεδοµένων εξόδου (αν είναι πραγµατικά ή µιγαδικά, αν είναι στο πεδίο του χρόνου ή στο πεδίο της συχνότητας). Ε. Άνοιγµα και αποθήκευση ενός µπλοκ διαγράµµατος 1) Για να ανοίξουµε ένα υπάρχον διάγραµµα ροής, επιλέγουµε από το µενού File / Open, και στη συνέχεια το όνοµα του διαγράµµατος ροής που θέλουµε να ανοίξουµε. 2) Για να αποθηκεύσουµε ένα διάγραµµα ροής, επιλέγουµε από το µενού File / Save. Simulink και ψηφιακή επεξεργασία σηµάτων: Το DSP Blockset Στο Simulink υπάρχει µια µεγάλη ποικιλία από συναρτήσεις χρήσιµες στην ψηφιακή επεξεργασία σηµάτων µε τη µορφή µπλοκ. Τα µπλοκ αυτά είναι τοποθετηµένα στo DSP Blockset. Στην έκδοση 5.3.1 του Matlab περιλαµβάνονται οι εξής βιβλιοθήκες από µπλοκ: 1) DSP Sinks: περιλαµβάνει µπλοκ για έξοδο και απεικόνιση δεδοµένων. Παραδείγµατα το µπλοκ Time Scope, το οποίο προβάλει µια σειρά µονοδιάστατων δεδοµένων στο πεδίο του χρόνου, και το µπλοκ Frequency Frame Scope, το οποίο προβάλλει µια σειρά διανυσµατικών δεδοµένων στο πεδίο της συχνότητας. 2) DSP Sources: περιλαµβάνει µπλοκ που εξοµοιώνουν κοινές πηγές σηµάτων και γεννήτριες θορύβου. 3) Estimation: περιλαµβάνει µπλοκ για την εκτίµηση των παραµέτρων ενός AR µοντέλου µε διαφορετικές µεθόδους. 4) Filtering: περιλαµβάνει µπλοκ για σχεδιασµό και υλοποίηση ψηφιακών φίλτρων. Περιλαµβάνει επίσης µπλοκ για αυτοπροσαρµοζόµενα φίλτρα και για πολλαπλά φίλτρα συνδεµένα εν σειρά. 5) General DSP: αυτή η βιβλιοθήκη περιέχει πολλές κατηγορίες µπλοκ: 5.1) Buffers: περιλαµβάνει καταχωρητές και µπλοκ που µετατρέπουν σειριακά σε διανυσµατικά δεδοµένα και αντίστροφα 5.2) Quantizers: περιλαµβάνει κβαντιστές σηµάτων 5.3) Signal Operations: περιλαµβάνει µπλοκ που εκτελούν διάφορες επεξεργασίες στο σήµα εισόδου. Παραδείγµατα είναι το µπλοκ Analytic Signal, το οποίο έχει ως έξοδο την αναλυτική µορφή του σήµατος εισόδου, και το µπλοκ Upsample, το οποίο αυξάνει τη συχνότητα δειγµατοληψίας του σήµατος εισόδου Ν φορές, παρεµβάλλοντας Ν-1 µηδενικά ανάµεσα σε δυο διαδοχικά δείγµατα του αρχικού σήµατος 5.4) Switches and Counters: περιλαµβάνει µπλοκ που εξοµοιώνουν απαριθµητές και διακόπτες 5.5) Transforms: περιλαµβάνει µπλοκ που εκτελούν διάφορους µετασχηµατισµούς στο σήµα εισόδου, όπως FFT, Inverse FFT και άλλους 6) Math Functions: περιλαµβάνει µπλοκ που εκτελούν διάφορες πράξεις στο σήµα εισόδου. Περιλαµβάνει πράξεις γραµµικής άλγεβρας, επεξεργασίας δεδοµένων, και διανυσµατικές πράξεις όπως συνέλιξη και αυτοσυσχέτιση. 9

Εισαγωγή στο Matlab 10

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 ΓΕΝΝΗΤΡΙΑ ΣΗΜΑΤΟΣ ΚΑΙ ΣΥΝΕΛΙΞΗ Σκοπός: Η άσκηση που ακολουθεί είναι εισαγωγική στο Simulink και επεξηγεί βήµα προς βήµα τη διαδικασία που απαιτείται για την δηµιουργία και την συνέλιξη σηµάτων. Το πρώτο πρόβληµα αφορά την συνέλιξη δυο τετραγωνικών παλµών. Το δεύτερο πρόβληµα αφορά τη δηµιουργία ενός σήµατος που παρουσιάζει εκθετική απόσβεση. Βιβλιογραφία: Για την παρακολούθηση της άσκησης απαιτείται γνώση της βασικής θεωρίας της συνέλιξης. Συνέλιξη και διακεκριµένα συστήµατα καλύπτονται στα παρακάτω εγχειρίδια: Oppenheim and Schefer [1988]: Παράγραφοι 2.1-2.4 Oppenheim and Schefer [1975]: Κεφάλαιο 1 Jackson: Kεφάλαιο 2 Proakis and Manolakis: Παράγραφοι 2.1. -2.3 Strum and Kirk: Παράγραφοι 2.0-2.2, 2.4 και 3.4 Roberts and Mullis: Παράγραφοι 2.1-2.4 Kuc: Παράγραφοι 2.1-2.5 Rabiner and Gold: Παράγραφοι 2.1-2.5 Oppenheim and Willsky with Young: Κεφάλαιο 3 Προεργασία: Υπολογίστε τις συνελίξεις: Α) z(t) = (u(t) - u(t-5)) * (u(t) - u(t-5)) z[n] = (u[n] - u[n-5]) * (u[n] - u[n-5]) Β) z[n] = (u[n] - u[n-10]) * (u[n] - u[n-5]) Γ) z[n] = ((0.9) n u[n]) * (u[n] - u[n-10]) Ασκήσεις: Άσκηση 1.1. Συνέλιξη Τετραγωνικών Παλµών 1) ηµιουργούµε ένα νέο µπλοκ διάγραµµα. 2) Από τη βιβλιοθήκη DSP Blockset / DSP Sources επιλέγουµε το µπλοκ Signal from Workspace και το µεταφέρουµε στο διάγραµµα ροής. 3) Κάνουµε διπλό κλικ στο µπλοκ µε όνοµα Signal From Workspace. Στο παράθυρο που ανοίγει ρυθµίζουµε τις παραµέτρους ως εξής: Signal:... [1 1 1] Sample Time:... 1 Samples Per Frame:... 1 Με αυτές τις παραµέτρους, ορίζουµε ότι το µπλοκ θα έχει ως έξοδο τη συνάρτηση u[n] u[n-3] µε ρυθµό δειγµατοληψίας 1 Hz. 4) Επαναλάβετε τη διαδικασία για τη δηµιουργία της συνάρτησης u[n] - u[n-6] ***. 5) Εισάγουµε ένα µπλοκ Buffer από τη βιβλιοθήκη DSP Blockset µετά από κάθε ακολουθία και ορίζουµε τις παραµέτρους ως εξής: Buffer Size... 16 Buffer Overlap... 0 Initial conditions... 0 *** Ας σηµειωθεί ότι η συνάρτηση u[n] (βηµατική) έχει την αντίστοιχή της συνάρτηση στο Simulink / Sources / Step. Για να υλοποιηθεί για παράδειγµα η u[n] u[n-3] απαιτούνται δύο µπλοκ βηµατικής και ένα µπλοκ άθροισης (Simulink / Math / Sum).

Εργαστηριακή Άσκηση 1 Με αυτές τις παραµέτρους, ορίζουµε ότι το µπλοκ οµαδοποιεί τα δεδοµένα σε οµάδες µεγέθους 30 τιµών, και ότι η κάθε οµάδα είναι ανεξάρτητη από τις προηγούµενες (δεν υπάρχουν κοινές τιµές). 6) Εισάγουµε στο µπλοκ διάγραµµα ένα µπλοκ συνέλιξης (Convolution) το οποίο επίσης βρίσκεται στη βιβλιοθήκη DSP Blockset. 7) Εισάγουµε ένα µπλοκ Unbuffer από τη βιβλιοθήκη DSP Blockset στην έξοδο του µπλοκ της συνέλιξης. 8) Στην έξοδο του µπλοκ Unbuffer, συνδέουµε ένα µπλοκ Time Scope, το οποίο µπορεί να βρεθεί στη βιβλιοθήκη DSP Blockset / DSP Sinks. Το µπλοκ αυτό εµφανίζει τη γραφική παράσταση των δεδοµένων εισόδου στο πεδίο του χρόνου. 9) Κάνουµε διπλό κλικ στο µπλοκ Time Scope. Θα εµφανιστεί η οθόνη προβολής των δεδοµένων. Κάνοντας κλικ στο εικονίδιο Properties (είναι το δεύτερο από δεξιά στη σειρά των εικονιδίων, ανοίγει το παράθυρο Time Scope Properties, όπου µπορούµε να ρυθµίσουµε τον αριθµό των εισόδων του µπλοκ, στο πεδίο Number of Axes, καθώς και την χρονική περίοδο που θα είναι ορατή, στο πεδίο Time Range. Κάνοντας δεξί κλικ µέσα στη γραφική παράσταση, ανοίγει ένα µενού µε λειτουργίες zoom και unzoom. Επιλέγοντας το Axes Properties, στο παράθυρο που ανοίγει µπορούµε να ρυθµίσουµε την ελάχιστη και τη µέγιστη τιµή του άξονα y, καθώς και να αλλάξουµε τον τίτλο της γραφικής παράστασης. 10) Επιλέγουµε από το µενού του µπλοκ διαγράµµατος επιλέγουµε Simulation / Parameters. Στο παράθυρο µε τίτλο Solver ρυθµίζουµε τις παραµέτρους ως εξής: Simulation Time Start Time... 0 (Χρόνος εκκίνησης προσοµοίωσης) Stop Time... 50 (Χρόνος τερµατισµού προσοµοίωσης) Solver Options Type...Fixed Step / discrete (no continuous states) Fixed Step Size.Auto Mode...SingleTasking Με αυτές τις παραµέτρους, ορίζουµε ότι η προσοµοίωση θα αρχίζει για χρόνο t 1 =0 και θα τελειώνει για t 2 =30 seconds. Επίσης, θα είναι σε διακριτό χρόνο µε σταθερό βήµα. Οι παράµετροι Solver Options θα πρέπει να τίθενται στην παραπάνω µορφή πριν από την εκτέλεση οποιουδήποτε µπλοκ διαγράµµατος στα εργαστήρια των ΨΕΣ. 11) Αφού έχουµε ρυθµίσει όλες τις παραµέτρους, επιλέγουµε από το µενού Simulation / Start. Όταν τελειώσει η προσοµοίωση, κάνουµε διπλό κλικ στο µπλοκ Time Scope και παρατηρούµε τα αποτελέσµατα. Ερωτήσεις: 1) Να εκτυπωθεί το αποτέλεσµα σε εκτυπωτή. Μετρήστε και αποτυπώστε τις τιµές όλων των σηµείων. Για να γίνει αυτό, αντικαταστήστε στην έξοδο του µπλοκ διαγράµµατος το µπλοκ Time Scope µε ένα µπλοκ Signal To Workspace, της βιβλιοθήκης DSP Blockset / DSP Sinks. Το µπλοκ αυτό χρησιµοποιείται γα την εξαγωγή ενός σήµατος σε ένα διάνυσµα στο περιβάλλον του Matlab, µε default όνοµα του διανύσµατος εξόδου το yout. Έτσι, αν επανέλθετε στο κεντρικό παράθυρο του Matlab και γράψτε yout, θα προβληθούν οι τιµές του διανύσµατος yout. 2) Ποιο είναι το µήκος του σήµατος που παίρνετε; 3) Πως συνδέεται το µήκος αυτό µε το µήκος των δυο τετραγωνικών παλµών που εισέρχονται στο µπλοκ συνέλιξης; Γιατί; Άσκηση 1.2. Παραγωγή εκθετικής ακολουθίας Η εκθετική ακολουθία δεν ανήκει στις εισόδους που είναι διαθέσιµες στις βιβλιοθήκες Sources του Simulink. Είναι όµως δυνατόν να δηµιουργηθεί µε υπάρχοντα µπλοκ και τη χρήση της σχέσης: a n = e n*lna 1) ηµιουργούµε µια συνάρτηση αναρρίχησης (ramp). H κατασκευή της µπορεί να γίνει µε τρεις τρόπους: α) µε ολοκλήρωση µιας βηµατικής συνάρτησης, β) µε τη χρήση του µπλοκ ramp που βρίσκεται στη βιβλιοθήκη Simulink / Sources ή γ) µε τη χρήση του µπλοκ Signal From Workspace της βιβλιοθήκης DSP Blockset / DSP Sources. Εδώ θα χρησιµοποιήσουµε τον τρίτο τρόπο. Εισάγουµε στο διάγραµµα ένα µπλοκ Signal From Workspace. Κάνουµε διπλό κλικ και ορίζουµε τις παραµέτρους ως εξής: Signal 0:40 Sample Time 1 Samples Per Frame 1 2

Γεννήτρια Σήµατος και Συνέλιξη H έκφραση 0 : 40 είναι µια ειδική έκφρασή του Matlab, η οποία παράγει ως έξοδο ένα σήµα µε αρχική τιµή 0, και την τιµή κάθε επόµενου δείγµατος µεγαλύτερη κατά 1. Έτσι, έχουµε ως έξοδο µια συνάρτηση αναρρίχησης. 2) Εισάγουµε στο διάγραµµα ένα µπλοκ fcn που βρίσκεται στη βιβλιοθήκη Simulink / Functions and tables. Κάνουµε διπλό κλικ στο µπλοκ και στο πεδίο Expression γράφουµε: pow(a, u), όπου a η εκάστοτε σταθερά και u το σήµα εισόδου(π.χ. για έξοδο 0.9 n γράφουµε pow(0.9, u) Ερωτήσεις: 1) Να γίνει εκτύπωση ή απλό σχέδιο του διαγράµµατος ροής της εκθετικής ακολουθίας. Σηµειώστε στο σχήµα σας τι είναι το κάθε µπλοκ. 2) Τρέξτε τη συνέλιξη µιας εκθετικής ακολουθίας µε a = 0.9 µε έναν τετραγωνικό παλµό διάρκειας 10. Λόγω µεγάλου µήκους της εκθετικής ακολουθίας, θέστε το µήκος των µπλοκ Buffer ίσο µε 16, και τιµές Sample Time στα µπλοκ Step ίσες µε 1. Εισάγετε µετά το µπλοκ συνέλιξης ένα µπλοκ Unbuffer από τη βιβλιοθήκη DSP Blockset / General DSP / Buffers. Ρυθµίστε τις παραµέτρους ως εξής: Initial Conditions 0 Number of Channels 1 Επίσης, στο µενού Simulation / Parameters ρυθµίστε τις παραµέτρους ως εξής: Simulation Time Start Time... 0 (Χρόνος εκκίνησης προσοµοίωσης) Stop Time... 50 (Χρόνος τερµατισµού προσοµοίωσης) Solver Options Type...Fixed Step / discrete (no continuous states) Fixed Step Size.Auto Mode...SingleTasking Σχεδιάστε το τελικό αποτέλεσµα. 3

Εργαστηριακή Άσκηση 1 4

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 2 ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Z ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΣΥΣΤΗΜΑΤΟΣ Σκοπός: Το Simulink χρησιµοποιείται για τον υπολογισµό του αντίστροφου µετασχηµατισµού Z ρητών πολυωνύµων. Στην άσκηση γίνεται χρήση του µπλοκ φίλτρο µε ανάδραση IIR, αν και ακόµα τα IIR φίλτρα δεν έχουν µελετηθεί. ίνεται επίσης µια εναλλακτική λύση για το πρόβληµα της δηµιουργίας µιας εκθετικής ακολουθίας a n µε τον υπολογισµό του αντίστροφου µετασχηµατισµού Z ενός συστήµατος πρώτης τάξης µε έναν πόλο. Βιβλιογραφία: Η άσκηση προϋποθέτει ότι οι φοιτητές έχουν γνώση των µετασχηµατισµών Ζ, των αντίστροφων µετασχηµατισµών Ζ και της έννοιας της Συνάρτησης Μεταφοράς. Επιπλέον υπάρχουν και ορισµένες έννοιες από τη θεωρία των Εξισώσεων ιαφορών. Τα αντικείµενα αυτά καλύπτονται στα παρακάτω εγχειρίδια: Oppenheim and Schafer [1988]: Παράγραφος 2.5, Κεφάλαιο 4 Oppenheim and Schefer [1975]: Παράγραφος 2.0-2.4 Jackson: Κεφάλαιο 3 και Παράγραφος 4.1-4.2 Proakis and Manolakis: Κεφάλαιο 3 Strum and Kirk: Κεφάλαιο 6 Roberts and Mullis: Κεφάλαιο 3 Defatta, Lucas and Hodgkiss: Παράγραφος 3.0-3.4 Kuc: Παράγραφος 2.8, Κεφάλαιο 5 Rabiner and Gold: Παράγραφος 2.13-2.17 Oppenheim and Willsky with Young: Προεργασία: 1. Να υπολογιστεί ο αντίστροφος µετασχηµατισµός Z, h[n] της συνάρτησης: 1 1 0. 995z Hz () = 1 2 1 199. z + z 2. Να υπολογιστεί ο µετασχηµατισµός Z της x[n]: x[n] = x 1 [n] * x 2 [n] x 1 [n] = (0.95) n sin (0.1n)u[n] x 1 [n] = (0.95) n sin (0.2n)u[n] 3. ίνεται η εξίσωση διαφορών: y[n] - 0.75y[n-1] - 0.125y[n-2] = 2x[n] y[-1] = y[-2] = 0 i) Να ευρεθεί η H(z) και να γίνει το µπλοκ διάγραµµα του συστήµατος. ii) Να υπολογιστεί η απόκριση δέλτα h[n] iii) Να βρεθεί η Y(z) για x[n] = u[n] - u[n-5] iv) Να υπολογιστεί το y[1] και y[2] α) µε την εξίσωση διαφορών και β) µε το θεώρηµα αρχικής τιµής. Παράδειγµα ιαδικασιών: Χρήση µπλοκ IIR για αντιστροφή µετασχηµατισµού Z Στην άσκηση αυτή θα χρησιµοποιηθούν τα φίλτρα IIR για την αντιστροφή του µετασχηµατισµού Z. Το µπλοκ IIR έχει µια είσοδο, µια έξοδο και περιέχει µια συνάρτηση µεταφοράς. Η συνάρτηση µεταφοράς ορίζεται µε την εισαγωγή των συντελεστών του µετασχηµατισµού Z. Αν ο µετασχηµατισµός Z της συνάρτησης µεταφοράς είναι H(z) τότε έξοδος = είσοδος * h[n] όπου έξοδος είναι η έξοδος του µπλοκ IIR, είσοδος είναι η είσοδος του µπλοκ IIR και h[n] είναι ο αντίστροφος µετασχηµατισµός Z της Η(z). Αν σαν είσοδος στο µπλοκ IIR χρησιµοποιηθεί η κρουστική συνάρτηση δ[n], η έξοδος του µπλοκ IIR θα είναι ο αντίστροφος µετασχηµατισµός Z της συνάρτησης µεταφοράς. Αυτό αποτελεί έναν πολύ καλό τρόπο για τη δηµιουργία σηµάτων στο Simulink.

Εργαστηριακή Άσκηση 2 Το µπλοκ φίλτρων IIR βρίσκεται στη βιβλιοθήκη Simulink / Discrete µε το όνοµα Discrete Filter. Οι παράµετροι του µπλοκ είναι οι πίνακες Numerator (Αριθµητής) και Denominator (Παρονοµαστής). Οι δυο πίνακες είναι της µορφής [Α 0 Α 1 Α m ] και [1 Β 1 Β 2 B n ], όπου οι συντελεστές Α i και B i είναι: Hz () = 1 2 A + A z + A z +... + A z m 0 1 2 m n 1 2 n 1 2 1+ Bz + Bz +... + BZ (1) υο σηµαντικά στοιχεία που πρέπει να θυµόµαστε για το µπλοκ IIR: i) Ο αριθµητής πρέπει να είναι ίσης ή µικρότερης τάξης από τον παρονοµαστή, δηλαδή πρέπει m <= n. ii) Για να εισαχθεί η συνάρτηση µεταφοράς για επεξεργασία από το Simulink πρέπει να γραφεί υπό την µορφή (1) και µετά να εισαχθούν οι συντελεστές. ηµιουργία εκθετικής ακολουθίας Με τη χρήση του µπλοκ IIR, µπορούµε να κατασκευάσουµε οποιοδήποτε σήµα µε ρητό µετασχηµατισµό Z πεπερασµένης τάξης που περιλαµβάνει όρο a n. 1) Υπολογίστε τον µετασχηµατισµό Z της a n u[n]. Βεβαιωθείτε ότι η τελική εξίσωση είναι σε µορφή όµοια µε την (1). 2) ιαλέξτε µια ευσταθή τιµή για το a, χρησιµοποιείστε ένα µπλοκ Discrete Filter και ένα µπλοκ Discrete Impulse από τη βιβλιοθήκη DSP Blockset / DSP Sources έτσι ώστε να δηµιουργήσετε µια εκθετική ακολουθία. Εισάγετε το σήµα σε ένα µπλοκ Time Scope, τρέξτε την προσοµοίωση, και ελέγξτε αν η ακολουθία είναι πράγµατι η a n u[n]. 3) οκιµάστε τώρα µε µια αρνητική τιµή για το a. 4) οκιµάστε µια τιµή για το a που οδηγεί σε ασταθές σήµα. Ασκήσεις: Άσκηση 2.1. Συνέλιξη εκθετικών ακολουθιών 1) Έστω h[n] = a n u[n] και x[n] = b n u[n]. Χρησιµοποιείστε ένα µπλοκ συνέλιξης και τη µέθοδο που περιγράφηκε παραπάνω για να ευρεθεί και εκτυπωθεί (ή σχεδιασθεί) η y[n] = h[n] * x[n]. ίνονται a = 0.9 και b = 0.5. Θέστε την παράµετρο Stop Time στο µενού Simulation / Parameters ίση µε 40 και το µήκος των µπλοκ buffer πριν από τη συνέλιξη ίσα µε 30. 2) Να ευρεθεί η y[n] χωρίς τη χρήση µπλοκ συνέλιξης. Χρησιµοποιείστε τρία ή το πολύ τέσσερα µπλοκς. Θέστε την παράµετρο Stop Time στο µενού Simulation / Parameters ίση µε 50. Εκτυπώστε ή σχεδιάστε το µπλοκ διάγραµµά σας. Επάνω στο σχήµα σας, σηµειώστε τις τιµές των µη µηδενικών συντελεστών του κάθε µπλοκ IIR που χρησιµοποιήθηκε. Άσκηση 2.2. Αντιστροφή µετασχηµατισµού Z ίνεται ο παρακάτω µετασχηµατισµός Z: 1 1 0. 995z Hz () = 1 2 1 199. z + z Να βρεθεί και να εκτυπωθεί ή σχεδιασθεί η h[n] µε τη χρήση του Simulink. Είναι αυτό που περιµένατε; Άσκηση 2.3. ηµιουργία Πολύπλοκης ακολουθίας Να βρεθούν οι µεγαλύτερες τιµές των παρακάτω ακολουθιών: 1) h[n] = (0.95) n sin (0.1n)u[n] 2) h[n] = (0.95) n sin (0.2n)u[n] ΤΡΟΠΟΣ 1: Για τη δηµιουργία των ακολουθιών, χρησιµοποιείστε δυο µπλοκ ηµίτονου. Τα µπλοκ του ηµίτονου είναι στη βιβλιοθήκη DSP Blockset / DSP Sources µε το όνοµα Sine Wave (amplitude=0.2 για (0.2n)u[n], Frequency=100). Χρησιµοποιείστε χρόνο δείγµατος 1, στο µενού Simulation / Parameters ρυθµίστε την παράµετρο Stop Time ίση µε 50, και τοποθετήστε ένα µπλοκ Time Scope για την έξοδο των αποτελεσµάτων. Για να φανεί µε πιο µεγάλη ακρίβεια η µέγιστη τιµή, µπορείτε επίσης να χρησιµοποιήσετε ως έξοδο ένα µπλοκ Signal To Workspace, της βιβλιοθήκης DSP Blockset / DSP Sinks. Το µπλοκ αυτό χρησιµοποιείται για να αποθηκεύσει την έξοδό του σε ένα διάνυσµα του Matlab (το default όνοµα του διανύσµατος είναι yout). Επανέλθετε στο κεντρικό παράθυρο του Matlab και 2

Μετασχηµατισµός Ζ και Συναρτήσεις Συστήµατος γράψτε την εντολή: max(yout). Η παραπάνω εντολή, θα δώσει τη µέγιστη τιµή του διανύσµατος yout. ΤΡΟΠΟΣ 2: Για τη δηµιουργία των ακολουθιών, χρησιµοποιείστε δυο µπλοκ φίλτρων Discrete Filter, τα οποία έχουν την κατάλληλη συνάρτηση µεταφοράς. Οι µέγιστες τιµές των ακολουθιών θα παρθούν όπως παραπάνω. Άσκηση 2.4. Επεξεργασία Εξισώσεων ιαφορών 1) Έστω y[n] = 2x[n] + 0.75y[n-1] + 0.125y[n-2]. Να βρεθεί η H(z) έτσι ώστε Y(z) = X(z) H(z). 2) Να εκτυπωθεί ή σχεδιαστεί η h[n]. Θέστε την παράµετρο Stop Time στο µενού Simulation / Parameters ίση µε 20, και τους χρόνους δείγµατος ίσους µε 1. 3) Να βρεθούν οι πρώτες πέντε τιµές της y[n] δηλ. οι { y[0], y[1],, y[4]} όταν η x[n] είναι τετραγωνικός παλµός διάρκειας πέντε. Υποτίθεται ότι y[n] = 0 για κάθε n<0. 3

Εργαστηριακή Άσκηση 2 4