Καταχώρηση τιµής σε µια µεταβλητή.

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

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

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

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 17

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

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

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

Βασικά στοιχεία του MATLAB

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 14

Σύντομη Αναφορά σε Βασικές Έννοιες Ψηφιακής Επεξεργασίας Σημάτων

Ο ΑΜΦΙΠΛΕΥΡΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Z

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

1. ΚΕΦΑΛΑΙΟ ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΗΜΑΤΑ

Για τη δημιουργία ενός διανύσματος με στοιχεία από το 0 μέχρι το 20 με βήμα το 2 (χρησιμοποιείται συνήθως για διανύσματα χρόνου) δίνουμε

Συστήματα Αναμονής (Queuing Systems)

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

Υπολογισμός αθροισμάτων

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

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

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

4. Εισαγωγή στο Matlab

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΕΞΕΤΑΣΗ ΙΑΝΟΥΑΡΙΟΥ (28/1/2011)

ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Z. χρόνου και εξηγήσουµε έννοιες όπως περιοχή σύγκλισης, πόλος και µηδενικό.

Βασικές Γνώσεις Μαθηματικών Α - Β Λυκείου

Chapter 2 Discrete-Time Signals and Systems

i) x(n-2)={ ½ ½ 0 0 }, ii) x(-n)= { 0 0 ½ ½ }, iii) x(4-n)= { 0 0 ½ ½ }, iv) x(n+2)={ ½ ½ 0 0 }

Σήματα και Συστήματα. Διάλεξη 6: Ανάλυση Σημάτων σε Ανάπτυγμα Σειράς Fourier. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

ηµιουργία αρχείου στον matlab editor Πληκτρολόγηση ακολουθίας εντολών

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)

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

ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (14/9/2012)

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

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

ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER ΑΝΑΛΥΣΗ FOURIER ΔΙΑΚΡΙΤΩΝ ΣΗΜΑΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ. DTFT και Περιοδική/Κυκλική Συνέλιξη

Εισαγωγή στα Σήματα. Κυριακίδης Ιωάννης 2011

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

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

Ο ΑΜΦΙΠΛΕΥΡΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Z

Παραρτήματα. Παράρτημα 1 ο : Μιγαδικοί Αριθμοί

2. Ανάλυση και Σύνθεση κυματομορφών με την μέθοδο Fourier

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

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

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

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

1ο Κεφάλαιο: Συστήματα

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

επιµέλεια Θοδωρής Πιερράτος

E(X(t)) = 1 k + k sin(2π) + k cos(2π) = 1 k + k 0 + k 1 = 1

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

2 ο κεφάλαιο: Ανάλυση και Σύνθεση κυματομορφών με τον Μετασχηματισμό Fourier

Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

Διακριτός Μετασχηματισμός Fourier

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB. Κολοβού Αθανασία Ε.Τ.Ε.Π.

Αλγεβρικές Παραστάσεις

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

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

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

Αριθμητική Ανάλυση και Εφαρμογές

Κεφάλαιο ΙII : Εργαστηριακές ασκήσεις που αφορούν εντολές ελέγχου της ροής ενός προγράµµατος.

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

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

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

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

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

1.2 ΣΗΜΑΤΑ. (Σχ. 1.7). Η σταθερή Τ είναι το διάστηµα δειγµατοληψίας.

Αριθµητική Ανάλυση. Ενότητα 5 Προσέγγιση Συναρτήσεων. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

Γραφικές παραστάσεις (2ο μέρος)

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

ΚΕΦΑΛΑΙΟ 2. Ηλεκτρονικη και 1/62 Πληροφορίας

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

Πρόβλημα 29 / σελίδα 28

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Ημιτονοειδή σήματα Σ.Χ.

ΤΟ ΜΑΥΡΟ ΚΟΥΤΙ. 1. Το περιεχόμενο του μαύρου κουτιού. 2. Είσοδος: σήματα (κυματομορφές) διέγερσης 3. Έξοδος: απόκριση. (απλά ηλεκτρικά στοιχεία)

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

ΕΠΑΝΑΛΗΨΗ ΒΑΣΙΚΩΝ ΕΝΝΟΙΩΝ

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM 1/ 80. ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT Σ.

Ηβασική δοµή δεδοµένων είναι ο πίνακας που δεν χρειάζεται να οριστεί η διάσταση του.

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Αριθµητική Ολοκλήρωση

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Transcript:

Καταχώρηση τιµής σε µια µεταβλητή. Απευθείας καταχώρηση >> a=si(pi/2) a = 1 Αν στο τέλος κάθε δήλωσης τοποθετείται το ερωτηµατικό τότε το πρόγραµµα δεν µας δείχνει τη τιµή της µεταβλητής. >> a=si(pi/2); Αν ενδιαφερόµαστε να µάθουµε τις ενεργές µεταβλητές τότε χρησιµοποιούµε την εντολή who >> who Your variables are: a b c d e Αν ενδιαφερόµαστε να µάθουµε την τιµή της τότε πληκτρολογούµε τη µεταβλητή στο περιβάλλον του προγράµµατος. >> a = 1 Μπορούµε να καταχωρήσουµε τιµή σε µια µεταβλητή µε την χρήση µεταβλητών. >> a=50; >> b=12; >> c=15; >> d=cos(pi/3); >> e=(a+b-c)*d; 1

Μορφή των µεταβλητών. Προκαθορισµένη µορφή. Είναι η µορφή που χρησιµοποιεί αυτόµατα το πρόγραµµα. Περιέχει τα πέντε πιο σηµαντικά ψηφία ενός πραγµατικού αριθµού. >> pi as = 3.1416 Μορφή log. Με αυτή τη µορφή µπορούµε να δούµε την τιµή µιας µεταβλητής µε µεγαλύτερη ακρίβεια βάζοντας την εντολή format log πριν ζητήσουµε από το πρόγραµµα να µας δώσει την τιµή της µεταβλητής >> format log >> pi as = 3.14159265358979 2

Επιστηµονική µορφή. Με αυτή τη µορφή µπορούµε να δούµε την εκθετική µορφή µιας µεταβλητής βάζοντας την εντολή format short e ή την εντολή format log e πριν ζητήσουµε από το πρόγραµµα να µας δώσει την τιµή της µεταβλητής. >> format short e >> pi as = 3.1416e+000 >> format log e >> pi as = 3.141592653589793e+000 Μορφή bak. Χρησιµοποιούµε την µορφή αυτή όταν χρειαζόµαστε µόνο δύο µηδενικά. Έτσι πριν ζητήσουµε την τιµή της µεταβλητής βάζουµε την εντολή format bak. >> format bak >> pi as = 3.14 Για να επιστρέψουµε στην κανονική µορφή γράφουµε την εντολή format. 3

Απλές γραφικές παραστάσεις. Χρησιµοποιώντας τη συνάρτηση plot(x,t) µπορούµε να κάνουµε τη γραφική παράσταση της µεταβλητής x σε συνάρτηση µε τη µεταβλητή t. Θα πρέπει οι δύο µεταβλητές να έχουν το ίδιο αριθµό τιµών. Η γραφική παράσταση της συνάρτησης x = si(2 π f t) για τιµές του χρόνου από µηδέν έως 0,05 µε βήµα 0,0001 και για συχνότητα f = 100 Hz πραγµατοποιείται ως >> f=100; >> t=0:0.0001:0.05; >> x=si(2*pi*f*t); >> plot(t,x) Μπορούµε να κάνουµε ταυτόχρονη γραφική παράσταση δύο συναρτήσεων x και y των οποίων η ανεξάρτητη µεταβλητή t να είναι κοινή χρησιµοποιώντας την εντολή plot(t,x,t,y) 4

Υπάρχει η δυνατότητα να έχουµε περισσότερες από µία γραφικές παραστάσεις στην οθόνη χρησιµοποιώντας τη subplot(m,,p). Αν χρησιµοποιήσετε την εντολή help subplot στο περιβάλλον του προγράµ- µατος θα δείτε τη σηµασία των παραµέτρων m, και p Μπορούµε επιπλέον να τοποθετήσουµε και τίτλο στη γραφική παράσταση µε τη βοήθειατης title( ) Χρησιµοποιώντας τη xlabel( ) και ylabel( αντίστοιχες µεταβλητές στους άξονες ) τοποθετούµε και τις Με τη βοήθεια της axis( [xmi xmax ymi ymax] ) καθορίζεται η βαθµολογία των αξόνων Σηµειώνεται ότι η εντολή help ισχύει για κάθε εντολή. Στο πρόγραµµα που ακολουθεί κάνει τις γραφικές παραστάσεις του ηµίτονου και του συνηµίτονου σε συνάρτηση µε το χρόνο 5

figure(1); clf t=0:0.0001:0.05; x=si(2*pi*100*t); y=0.5*cos(2*pi*300*t); subplot(2,1,1), plot(t,x); title('γραφική παράσταση ηµιτόνου') axis([0,0.05,-1,1]); xlabel('t'); ylabel('si(2πft)'); subplot(2,1,2), plot(t,y); title('γραφική παράσταση συνηµιτόνου') axis([0,0.05,-1,1]); xlabel('t'); ylabel('cos(2πft)'); Η figure(1); clf καθαρίζει την εικόνα 1. Είναι καλό πριν από κάθε νέα εικόνα να χρησιµοποιείται. Αν θέλουµε να διαγράψουµε όλες τις εικόνες χρησιµοποιούµε την close all, είναι καλό να χρησιµοποιείται στην αρχή κάθε προγράµµατος. Τοποθετούµε % όταν θέλουµε να κάνουµε σχόλια. Η clc καθαρίζει την επιφάνεια εργασίας. 6

Βασικοί τρόποι εισαγωγής δεδοµένων Οι δύο βασικότεροι µέθοδοι εισαγωγής δεδοµένων είναι: Στον editor του προγράµµατος. Η µέθοδος αυτή χρησιµοποιείται στις περιπτώσεις που έχουµε να κάνουµε πράξεις µε λίγες γραµµές κώδικα. Σηµειώνεται ότι µέχρι τώρα όλα τα παραδείγµατα έχουν γίνει στο editor του Matlab. Στον M-file editor του Matlab ο οποίος µας δίνει τη δυνατότητα να δηµιουργούµε απόαπλέςσειρέςεντολώνµέχρικαικώδικαπρογραµµατισµού. 7

Ενεργοποίηση του M-file. Για να ενεργοποιήσουµε τον M-file editor κάνουµε τα βήµατα: Πηγαίνουµε στην επιλογή file έπειτα => ew και τέλος στη επιλογή => M-file Αποθήκευση. Αποθηκεύσουµε το M-file µε τη γνωστή διαδικασία: File => Save workspace As... χρησιµοποιώντας την προτεινόµενη από το πρόγραµµα επέκταση (format) για τα αρχεία πουδηµιουργούµεστον M-file editor Εκτέλεση αρχείων M-file. Τέλος για να εκτελέσουµε τον κώδικα από ένα αρχείο M-file, καλούµε το αρχείο γράφοντας απλά το όνοµά του στο βασικό editor του Matlab. Σηµειώνεταιότιγιαναεντοπίσειαλλάκαιναεκτελέσειτο M-fileαρχείοθαπρέπεινα είναι αποθηκευµένο στο κατάλογο work του Matlab 8

Μερικές εντολές εισόδου-εξόδου και ελέγχου. Το Matlab µας δίνει τη δυνατότητα βρόχων επαναλήψεων µε εντολές όπως for και ελέγχου ροής χρησιµοποιώντας εντολές ελέγχου όπως if και while. Ο χρήστης µπορεί να εισάγει µία τιµή σε µεταβλητή από το πληκτρολόγιο χρησιµοποιώντας την εντολή iput. Η σύνταξη της εντολής είναι (µεταβλητή) = iput ( µήνυµα προς τον χρήστη ) Οχρήστηςµπορείναεξάγειµηνύµαταστηοθόνηµετηβοήθειατηςεντολή disp. Η σύνταξη της εντολής είναι disp( µήνυµα προς τον χρήστη ) Ο χρήστης µπορεί να εξάγει χαρακτήρες και τιµές µεταβλητών προς το εξωτερικό περιβάλλον µε τη βοήθεια της εντολή aswer. Η σύνταξη της εντολής είναι aswer[ χαρακτήρες µεταβλητή] 9

Στο πρόγραµµα που ακολουθεί εµφανίζονται στη οθόνη οι περιττοί αριθµοίαπό 1 έως 7 for x=1:2:7; x ed Στο πρόγραµµα που ακολουθεί εµφανίζεται στη οθόνη το άθροισµα των τετραγώνων των περιττών αριθµών από 1 έως 7 x=1; s=0; while x<=7 s=s+x^2; x=x+2; ed s Το πρόγραµµα που ακολουθεί δέχεται έναν αριθµό και επιστρέφει την τετραγωνική του ρίζα % Εύρεση τετραγωνικής ρίζας umber=iput(' ώστε τον αριθµό '); umber=sqrt(umber); aswer=['η τετραγωνική ρίζα του αριθµού είναι']; disp(aswer) disp(umber) 10

Προγραµµατισµός συνάρτησης Το Matlab µας δίδει τη δυνατότητα να γράψουµε (προγραµµατίσουµε) συναρτήσεις τις οποίες µπορούµε στη συνέχεια να τις χρησιµοποιήσουµε σε διάφορες θέσεις ενός προγράµµατος εισάγοντας µόνο δεδοµένα. Οι συναρτήσεις είναι τύπου M-file µε τη διαφορά ότι αρχίζουνε µε τη δήλωση fuctio Η συνάρτηση που ακολουθεί βρίσκει τις ρίζες ενός τριώνυµου fuctio [r1,r2]=rizes(a,b,c) % a είναι ο συντελεστής του δευτεροβάθµιου όρου % b είναι ο συντελεστής του πρωτοβάθµιου όρου % c είναι ο γνωστός όρος % r1 και r2 είναι οι ρίζες του τριωνύµου %----------------------------------------- diak=b^2-4*a*c; r1=(-b+sqrt(diak))/(2*a); r2=(-b-sqrt(diak))/(2*a); if diak>=0 disp('οι ρίζες είναι πραγµατικές') else disp('οι ρίζες είναι µιγαδικές') ed 11

Αφού αποθηκεύσετε το M-file µε όνοµα rizes.m µε το γνωστό τρόπο στο κατάλογο work του Matlab παρατηρήστε τι θα πάρετε αν γράψετε help rizes στον editor του Matlab. Αν στη συνέχεια γράψετε [r1,r2] = rizes(1,-3,2) χωρίς ερωτηµατικό θα πάρετε >> [r1,r2]=rizes(1,-3,2) r1 = 2.00 r2 = 1.00 Ενώ αν γράψετε [r1,r2]=rizes(1,-3,2); µε ερωτηµατικό θα πρέπει στη συνέχεια να γράψετε [r1,r2] για να δείτε τις ρίζες. >> [r1,r2]=rizes(1,-3,2); >> [r1,r2] as = 2.00 1.00 Παρατηρούµε ότι η συνάρτηση επιστρέφει ένα διάνυσµα µε δύο στοιχεία τις ρίζες του τριωνύµου. 12

Αποθήκευση δεδοµένων σε δυαδικό αρχείο. Το MATLAB έχει τη δυνατότητα να αποθηκεύουµε αποτελέσµατα σε δυαδικά αρχεία µε την εντολή save. Η σύνταξη της εντολής είναι save [όνοµα αρχείου.mat][δεδοµένα] Αν θέλουµε να αποθηκεύσουµε τις ρίζες του τριωνύµου που βρήκαµε τότε γράφουµε >> r=[r1,r2]; >> save rizes.mat r Φορτώνουµε τα δεδοµένα από ένα δυαδικό αρχείο µε την εντολή load. Η σύνταξη της εντολής είναι load [όνοµα αρχείου] 13

Με τη βοήθεια της εντολής fpritf είναι δυνατή η αποθήκευση δεδοµένων σε εξωτερικά αρχεία. Περισσότερες πληροφορίες µπορείτε να πάρετε αν χρησιµοποιήσετε την εντολή help fprit. Με το πρόγραµµα που ακολουθεί δηµιουργείται ένα αρχείο µε όνοµα exp.txt στο οποίο έχουν γραφεί οι αριθµοί από 0 µέχρι 1 µε βήµα 0,1 και οι αντίστοιχοι exp(x). x = 0:.1:1; y = [x; exp(x)]; fid = fope('exp.txt','w'); fpritf(fid,'%6.2f %12.8f\',y); fclose(fid); Το περιεχόµενο του exp.txt 0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183 14

ΣΗΜΑΤΑ ΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Ένα διακριτό σήµα δηλώνεται µε x(), όπου η µεταβλητή λαµβάνει ακέραιες τιµές καιπαριστάνειδιακριτέςχρονικέςστιγµές. { x ( ) } = K, x ( 1), x (0), (1), K x ( ) = x Στο MATLAB µπορούµε να παραστήσουµε µια πεπερασµένης διάρκειας ακολουθία µε έναδιάνυσµαγραµµή. >> = [ 3, 2, 1,0,1,2,3]; >> x = [7, 5, 1,3,4,6,9]; 15

Χρησιµοποιώντας τη συνάρτηση stem(,x) µπορούµε να κάνουµε τη γραφική παράσταση της ακολουθίας x. Υπάρχει η δυνατότητα να έχουµε περισσότερες από µία γραφικές παραστάσεις στην οθόνη χρησιµοποιώντας τη subplot(m,,p). Μπορούµε επιπλέον να τοποθετήσουµε και τίτλο στη γραφική παράσταση µε τη βοήθεια της title( Ακολουθία x() ) Χρησιµοποιώντας τη xlabel( ) και ylabel( δ() ) τοποθετούµε και τις αντίστοιχες µεταβλητές στους άξονες Με τη βοήθεια της axis( [xmi xmax ymi ymax] ) καθορίζεται η βαθµολογία των αξόνων 16

Το µοναδιαίο δείγµα Κρουστική ακολουθία 1, δ ( 0 ) = 0, = Με τη συνάρτηση impseq, χρησιµοποιώντας τη λογική σχέση == 0, δηµιουργούµε µια κρουστική ακολουθία στο διάστηµα 1 0 2 fuctio [x,] = impseq(0,1,2) if ((0 < 1) (0 > 2) (1 > 2)) error( Τα δεδοµένα πρέπει να ικανοποιούν την 1 <= 0 <= 2') ed = [1:2]; x = [(-0) == 0]; Μπορούµε να χρησιµοποιήσουµε και τη συνάρτηση zeros(1,n) η οποία δηµιουργεί διάνυσµα γραµµή µε Ν µηδενικά. fuctio [x,] = impseq(0,1,2) if ((0 < 1) (0 > 2) (1 > 2)) error( Τα δεδοµένα πρέπει να ικανοποιούν την 1 <= 0 <= 2') ed = [1:2]; x = [zeros(1,(0-1)), 1, zeros(1,(2-0))]; 17 0 0

Μοναδιαία βηµατική ακολουθία u ( 0 1, ) = 0, < Με τη συνάρτηση stepseq, χρησιµοποιώντας τη λογική σχέση >= 0, δηµιουργούµε µια κρουστική ακολουθία στο διάστηµα 1 0 2 fuctio [x,] = stepseq(0,1,2) if ((0 < 1) (0 > 2) (1 > 2)) error( Τα δεδοµένα πρέπει να ικανοποιούν την 1 <= 0 <= 2') ed = [1:2]; x = [(-0) >= 0]; Μπορούµε να χρησιµοποιήσουµε και τη συνάρτηση oes(1,n) η οποία δηµιουργεί διάνυσµα γραµµή µε Ν µονάδες. fuctio [x,] = impseq(0,1,2) if ((0 < 1) (0 > 2) (1 > 2)) error( Τα δεδοµένα πρέπει να ικανοποιούν την 1 <= 0 <= 2') ed = [1:2]; x = [zeros(1,(0-1)), oes(1,(2-0+1))]; 18 0 0

Παράδειγµα 1 figure(1); clf 1=-10; 2 = 20; 0=0; [x,]=impseq(0,1,2); subplot(2,1,1), stem(,x); title( Κρουστική ακολουθία') axis([-20,30,-1,2]); xlabel(''); ylabel( d()'); Παράδειγµα 2 %figure(1); clf 1=-10; 2 = 20; 0=0; [y,]=stepseq(0,1,2); subplot(2,1,2), stem(,x); title( Βηµατική ακολουθία') axis([-20,30,-1,2]); xlabel(''); ylabel( h()'); 19

Πραγµατική εκθετική ακολουθία x ( ) = a, ; a R Στο MATLAB µε τη βοήθεια της πράξης µεταξύ διανυσµάτων.^ δηµιουργούµε πραγµατική εκθετική ακολουθία πεπερασµένης διάρκειας. Για παράδειγµα η πραγµατική εκθετική ακολουθία δηµιουργείται από τις εντολές Μιγαδική εκθετική ακολουθία x ( ) = (0,8), 0 x ( ) = >> = [0:20]; x= (0.8).^; e ( σ+ jω0 ) όπου σ ονοµάζεται εξασθένιση και Ω 0 είναι η διακριτή συχνότητα σε rad. Χρησιµοποιούµε τη συνάρτηση exp για να παράγουµε µιγαδική εκθετική ακολουθία. Η µιγαδική εκθετική ακολουθία, 20 δηµιουργείται από τις εντολές x ( ) = e (3+ j2), 0 20 >> = [0:20]; x= exp((3+ 2*j)*); 20

Ηµιτονοειδής ακολουθία x ) ( 0 = si ( Ω + φ), όπου φ η φάση σε rad. Χρησιµοποιούµε τη συνάρτηση si (ή cos) για να παράγουµε ηµιτονοειδή ακολουθία. Η ηµιτονοειδής ακολουθία x ( ) = 2cos(0,1π π / 2) + 0,8si (0,3 π ), 0 < 40 δηµιουργείται από τις εντολές >> = [0:39]; x= 2*cos(0.1* pi*- pi/2) + 0.8*si(0.3* pi*) Τυχαίες (στοχαστικές) ακολουθίες Στο MATLAB υπάρχουν δύο συναρτήσεις που παράγουν (ψευδο-)τυχαίες ακολουθίες. Η rad(1,n) η οποια δηµιουργεί µια τυχαία ακολουθία µήκους Ν µε στοιχεία τα οποία είναι οµοιόµορφα κατανεµηµένα στο διάστηµα [0,1]. Η rad(1,n)ηοποιαδηµιουργείµια Gaussia τυχαίαακολουθίαµήκουςνµεµέσητιµή 1 και διακύµανση επίσης 1. 21

Περιοδικές ακολουθίες Μία ακολουθία x() είναι περιοδική αν x(+n) = x() για κάθε. Η µικρότερη τιµή του Ν ονοµάζεται θεµελιώδης περίοδος. Μια περιοδική ακολουθία θα δηλώνεται ως ~ x ( ). Για να σχηµατίσουµε P περιόδους της ~ x ( ) από µία περίοδο x ( ), 0 N 1, µπορούµε να αντιγράψουµετην x() P φορές. >> xtilde= [x,x, Kx]; Μιαάλληµέθοδοςείναι. Νασχηµατίσουµεέναπίνακαπουπεριέχει Pγραµµέςόπουταστοιχείακάθεγραµµήςείναι x(), >> xtilde = x'*oes(1,p); %P στήλες του x, x είναι διάνυσµα γραµµή; στησυνέχειαµετηβοήθειατου (:)ναµετατρέψουµετις P γραµµέςσεένα µεγάλο διάνυσµα στήλη >> xtilde= xtilde(:); % Μεγάλο διάνυσµα στήλη; και τέλος να αντιστρέψουµε το διάνυσµα στήλη >> xtilde = xtilde'; % Μεγάλο διάνυσµα στήλη; 22

Παράδειγµα 3 figure(1); clf % Παράδειγµα 3 =[0:20]; % Πραγµατική εκθετική ακολουθία x1=(0.8).^; subplot(2,1,1), stem(,x1,'k') title('πραγµατική εκθετική ακολουθία') xlabel('') ylabel('x()') % Μιγαδική εκθετική ακολουθία x2=exp((-0.1+0.2*pi*j)*); subplot(2,1,2), stem(,real(x2),'k') title( Πραγµατικό µέρος της µιγαδικής εκθετικής ακολουθίας') xlabel('') ylabel('x()') 23

figure(1); clf =[0:19]; % Ηµιτονοειδής ακολουθία x1=2*si(0.2*pi*+pi/6)+cos(0.5*pi*); subplot(3,1,1), stem(,x1,'k') title('ηµιτονοειδής ακολουθία') xlabel('') ylabel('x()') % Τυχαία ακολουθία N=20; x2=rad(1,n); subplot(3,1,2), stem(,x2,'k') title('τυχαία ακολουθία') xlabel('') ylabel('x()') % Περιοδική Ακολουθία x=[4 3 2 1 0]; P=4; xtilde=x'*oes(1,p); xtilde=xtilde(:); xtilde=xtilde'; subplot(3,1,3), stem(,xtilde,'k') title('περιοδική Ακολουθία') xlabel('') ylabel('x()') Παράδειγµα 4 24

Πρόσθεση ακολουθιών Πράξεις µεταξύ ακολουθιών Ηπρόσθεσηδύοακολουθιώνµετοίδιοµήκοςγίνεταιµετηβοήθειατης + µετηνεντολή >> x = x1+ x2; Στη συνέχεια παρουσιάζεται η συνάρτηση sigadd η οποία βρίσκει το άθροισµα δύο ακολουθιών που είτε έχουν το ίδιο µήκος είτε όχι. Η συνάρτηση έχει είσοδο τηνακολουθία x 1 ( 1 ),.. 1,mi 1 1,max καιτηνακολουθία x 2 ( 2 ), 2,mi 2 2, max καιεπιστρέφειτοάθροισµατους y(), όπου = mi(, ) και = mi(, ) mi max mi 1,mi 2, mi fuctio [y,] = sigadd(x1,1,x2,2) % y = το άθροισµα των ακολουθιών στο διάστηµα % x1 = η πρώτη ακολουθία στο διάστηµα 1 % x2 = η δεύτερη ακολουθία στο διάστηµα 1 = mi(mi(1),mi(2)):max(max(1),max(2));%η διάρκεια της y() y1 = zeros(1,legth()); y2 = y1; y1(fid((>=mi(1))&(<=max(1))==1))=x1; % x1 µε διάρκεια y2(fid((>=mi(2))&(<=max(2))==1))=x2; % x2 µε διάρκεια y = y1+y2; % Η ακολουθία του αθροίσµατος 25 max 1,max 2, max

Η συνάρτηση fid (fid idices of ozero elemets) επιστρέφει τις θέσεις των στοιχείων του διανύσµατος x οι οποίες είναι µη-µηδενικές. Για παράδειγµα =fid(x>100) επιστρέφει τις θέσεις όπου x()>100. >> x = [2 4 6 3 7 1 9 5 8]; >> fid(x>5) as = 3 5 7 9 Ο τελεστής & είναι ο τελεστής του λογικού ΑND. Μπορείτε µε τη εντολή help arith ή help relog και help slase να δείτε τους αριθµητικούς τελεστές, λογικούς τελεστές και τους. τελεστές πράξεων µεταξύ πινάκων x=[1,2]; x=[0,1]; y=[5,6]; y=[3,4]; [z,] = sigadd(x,x,y,y) 26

Πολλαπλασιασµός ακολουθιών Ο πολλαπλασιασµός δύο ακολουθιών µε το ίδιο µήκος γίνεται µε τη βοήθεια της.* µε την εντολή >> x=x1.*x2; Στη συνέχεια παρουσιάζεται η συνάρτηση sigmult η οποία βρίσκει το γινόµενο δύο ακολουθιών που είτε έχουν το ίδιο µήκος είτε όχι. Η συνάρτηση έχει είσοδο τηνακολουθία x 1 ( 1 ),.. 1,mi 1 1,max καιτηνακολουθία x 2 ( 2 ), 2,mi 2 2, max καιεπιστρέφειτογινόµενό τους y(), όπου = mi(, ) και = mi(, ) mi max mi 1,mi 2, mi fuctio [y,] = sigmult(x1,1,x2,2) % y = το άθροισµα των ακολουθιών στο διάστηµα % x1 = η πρώτη ακολουθία στο διάστηµα 1 % x2 = η δεύτερη ακολουθία στο διάστηµα 1 = mi(mi(1),mi(2)):max(max(1),max(2));%η διάρκεια της y() y1 = zeros(1,legth()); y2 = y1; y1(fid((>=mi(1))&(<=max(1))==1))=x1; % x1 µε διάρκεια y2(fid((>=mi(2))&(<=max(2))==1))=x2; % x2 µε διάρκεια y = y1.*y2; % Η ακολουθία του γινοµένου 27 max 1,max 2, max

Χρονική µετατόπιση y ( ) = { x ( k ) } Παρατηρούµε ότι στη χρονική ολίσθηση το διάνυσµα x δεν µεταβάλλεται αλλά το διάνυσµα µεταβάλλεται προσθέτοντας k σε κάθε στοιχείο του. Η συνάρτηση sigshift µετατοπίζει χρονικά ένα σήµα. fuctio [y,] = sigshift(x,m,0) % x = η ακολουθία εισόδου στο διάστηµα m % y = η χρονικά µετατοπισµένη κατά 0 ακολουθία = m+0; y = x; Ανάκλαση y ( ) = { x( ) } Η ανάκλαση ενός σήµατος γίνεται µε τη συνάρτηση sigfold, η οποία χρησιµοποιεί τη συνάρτηση fliplr(x). fuctio [y,] = sigfold(x,) % x = η ακολουθία εισόδου στο διάστηµα % y = η ανάκλαση της ακολουθίας εισόδου y = fliplr(x); = -fliplr();» x=[1 2 3 4];» fliplr(x) as = 4 3 2 1 28

Παράδειγµα 5 figure(1); clf m=[-20:1:22]; x=[zeros(1,20),6:-1:1,0:2:28,zeros(1,2)]; subplot(3,1,1), stem(m,x,'k') axis([-20,26,0,30]); [y1,]=sigshift(x,m,4); subplot(3,1,2), stem(,y1,'k') axis([-20,26,0,30]); [y2,]=sigfold(x,m); subplot(3,1,3), stem(,y2,'k') axis([-20,26,0,30]); 29

30 Άθροισµα των όρων ακολουθίας ) ( ) ( ) ( 2 1 2 1 x x x + + = = K Με τη συνάρτηση sum(x(1:2)) προδιορίζουµε το άθροισµα των όρων της ακολουθίας x Η ενέργεια µιας ακολουθίας από τη = = x x x x E 2 * ) ( ) ( ) ( Η ισχύς µιας περιοδικής ακολουθίας δίνεται από τη = = 1 0 2 ) ( 1 N x x N P x=[1 2 3 4]; Ex=sum(x.*coj(x)); Ex=sum(abs(x).^2); Γινόµενο των όρων ακολουθίας ) ( ) ( ) ( 2 1 2 1 x x x = = K Με τη συνάρτηση prod(x(1:2)) προδιορίζουµε το άθροισµα των όρων της ακολουθίας x Παράδειγµα 6

Άρτια και Περιττά Σήµατα Ένα σήµα x() λέγεται άρτιο (ή παρουσιάζει άρτια συµµετρία αν x(-) = x(), - < <. Αντίθεταλέγεταιπεριττό (παρουσιάζειπεριττήσυµµετρία) αν x(-) = -x(), - < <. Κάθε πραγµατικό σήµα µπορεί να εκφραστεί ως άθροισµα ενός άρτιου x e (t) και ενός περιττού σήµατος x o (t), δηλαδή, x(t)=x e (t) + x o (t), όπου [ x ( ) + x ( )] x ( ) 1 2 e = Η ανάλυση ενός σήµατος γίνεται µε τη συνάρτηση eveodd fuctio [xe, xo, m] = eveodd(x,) if ay(imag(x) ~= 0) error ('x δεν είναι µια πραγµατική ακολουθία') ed m = -fliplr(); m1 = mi([m,]); m2 = max([m,]); m = m1:m2; m = (1)-m(1); 1 = 1:legth(); x1 = zeros(1,legth(m)); x1(1+m) = x; x = x1; xe = 0.5*(x + fliplr(x)); xo = 0.5*(x - fliplr(x)); 31

Παράδειγµα 7 = [-10:10]; x = *(stepseq(0,-10,10)-stepseq(10,-10,10)); [xe,xo,m] = eveodd(x,); subplot(1,1,1) subplot(3,1,1); stem(,x, k ); title('σήµα') xlabel(''); ylabel('x()'); axis([-10,10,0,1.2]) subplot(3,1,2); stem(m,xe, k ); title('περιττό µέρος') xlabel(''); ylabel('xe()'); axis([-10,10,0,1.2]) subplot(3,1,3); stem(m,xo, k ); title( Άρτιο µέρος') xlabel(''); ylabel('xe()'); axis([-10,10,-0.6,0.6]) 32

Ασκήσεις 1. Ναβρεθούνηακολουθίααυτοσυσχέτισης r xx (l) καιηακολουθίαδιασυσχέτισης r xy (l) γιατις ακόλουθες ακολουθίες x ( ) = (0,9), 0 20 y ( ) = (0,8), 20 0 2. ίνεταιηακολουθία x()πουέχειακολουθίααυτοσυσχέτισης r xx (l).μετηβοήθειατης x() σχηµατίζεται η ακολουθία y() = x() + α x(-k). Να βρεθεί η αναλυτική έκφραση της ακολουθίας αυτοσυσχέτισης r yy (l) σεσυνάρτησηµετη r xx (l)τοακαιτο k. Αν x() = cos(0,2π) + 0,5 cos(0,6π), α = 0,1και k = 50, ναβρεθούν 200 δείγµατατης συνάρτησης y() καιναβρεθείηακολουθίατηςαυτοσυσχέτηςτης. Απότην r yy (l) είναιδυνατόναπροσδιοριστούνοιποσότητεςακαι k. jω 0 3. Η µιγαδική εκθετική σειρά e ή η ηµιτονοειδής σειρά cos( Ω0 ) είναι περιοδική αν η Ω κανονικοποιηµένη συχνότητα 0 K F0 είναι ρητός αριθµός, δηλαδή, αν F όπου K και Ν 2π 0 = N είναι ακέραιοι αριθµοί. Να δηµιουργηθεί και να σχεδιαστεί να ακολουθία cos(0,3 π ), -20 20. Είναι η ακολουθία περιοδική; Ποια είναι η θεµελιώδης περίοδος; Εξετάζοντας τη γραφική παράσταση ποια ερµηνεία δίνεται για τους ακέραιους Κ και Ν; Ναδηµιουργηθείκαινασχεδιαστείναακολουθία cos(0,3 ), -20 20. Είναιηακολουθία περιοδική; Πως φαίνεται αυτό στη γραφική της παράσταση; 33