Τομέας Γεωδαισίας και Τοπογραφίας 3ο Εξάμηνο ΑΠΘ/ΤΑΤΜ Τομέας Γεωδαισίας και Τοπογραφίας 3ο Εξάμηνο Σήματα και Φασματικές Μέθοδοι στη Γεωπληροφορική Signals and Spectral Methods in Geoinformatics Ακαδημαϊκή Χρονιά: 2014 – 2015 Πρόγραμμα: Τετάρτη 4 – 8 μ.μ. Διδάσκοντες: Δ. Δερμάνης, Η.Ν. Τζιαβός, Γ. Βέργος Ιστοσελίδες μαθήματος: http://olimpia.topo.auth.gr/courses/index.html http://web.auth.gr/e-topo/
Επιλογές γραμμών, συμβόλων & χρωμάτων ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB Τύποι Διαγραμμάτων Επιλογές γραμμών, συμβόλων & χρωμάτων Κλίμακες και άξονες διαγραμμάτων
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB Το MATLAB προσφέρει μια πληθώρα εντολών απεικόνισης των δεδομένων μας, οπότε η κάθε μια πρέπει να χρησιμοποιείται ώστε να επιτυγχάνεται η βέλτιστη παρουσίαση και αντίληψη από τον χρήστη. Υπάρχουν εντολές που δημιουργούν 2D & 3D διαγράμματα. Προσφέρεται μια πληθώρα επιλογών χρωμάτων, γραμμών, συμβόλων, κ.λπ. Μέτρο αποτελεί μόνο η δημιουργικότητά μας. Προσοχή!!!! Σε όλες τις περιπτώσεις το λιγότερο είναι και το καλύτερο (less is more). Πνιγμένα σε πληροφορίες και χρώματα διαγράμματα δεν είναι απαραίτητα και καλύτερα!!!
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot 1/5) Για παράδειγμα για να σχεδιάσουμε τις τιμές της μεταβλητής y=sin(x) μπορούμε να δουλέψουμε ως εξής… Προσοχή να δοθεί στο ότι αν σχεδιάσουμε μια νέα εικόνα τότε αυτή θα δημιουργηθεί πάνω στην άλλη και θα την αντικαταστήσει… Για να το αποφύγουμε αυτό (σε περίπτωση που δεν το θέλουμε) τότε με την εντολή figure δημιουργούμε ένα νεό πλαίσιο εικόνας για το νέο διάγραμμα.
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot 2/5) Σε περίπτωση που θέλουμε να χρησιμοποιήσουμε διαφορετικό χρώμα και τύπο γραμμής για το διάγραμμα, τότε αυτό το δηλώνουμε ως εξής
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot 3/5) Μπορούμε επιπλέον να σχεδιάσουμε στο ίδιο διάγραμμα δύο ή και περισσότερες μεταβλητές. Τι θα προκύψει από τις παρακάτω εντολές;;;;
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot 4/5) Τόσο με την plot όσο και με κάθε άλλη εντολή σχεδίασης στο MATLAB, μπορούμε (αντί να δημιουργούμε πολλές διαφορετικές εικόνες) να τις περιλάβουμε όλες σε μια. Αυτό είναι δυνατό με την εντολή subplot Ας υποθέσουμε ότι θέλουμε να υπολογίσουμε και σχεδιάσουμε τις μεταβλητές
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot 5/5) Προκειμένου να είναι τα διαγράμματα πλήρη, απομένει να ορίσουμε και τους άξονές τους καθώς και ένα τίτλο για το καθένα. Οι ετικέτες των αξόνων προσδιορίζονται με τις εντολές xlabel & ylabel ενώ ο τίτλος του διαγράμματος με την εντολή title.
M-Files στο MATLAB Αν θέλουμε να αλλάξουμε κάτι στο διάγραμμα των τεσσάρων εικόνων που δημιουργήσαμε τότε θα πρέπει να γράψουμε ξανά όλες τις εντολές και να κάνουμε τις αλλαγές μας. Αυτό προφανώς δεν είναι πρακτικό. Η απάντηση είναι ο κειμενογράφος του MATLAB και η συγγραφή ενός προγράμματος που θα εκτελεί τις εντολές που θέλουμε. Το πρόγραμμα αυτό αποθηκεύεται σε ένα αρχείο με επέκταση *.m το οποίο μπορούμε να ανακαλέσουμε από το δίσκο του υπολογιστή όποτε το χρειαζόμαστε.
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (stem) Για παράδειγμα αν σχεδιάσουμε τις τιμές της μεταβλητής y=sin(x) με την stem(x,y) έχουμε…
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (bar) Για παράδειγμα αν σχεδιάσουμε τις τιμές της μεταβλητής y=sin(x) στο διάστημα 0 ≤ x ≤ 4π με την bar(x,y) έχουμε…
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (hist) ??Ποια η διαφορά στα τέσσερα διαγράμματα?? Ας υποθέσουμε ότι θέλουμε να δημιουργήσουμε μια μεταβλητή οι τιμές της οποίας θα ακολουθούν την κανονική κατανομή με μεταβλητότητα 25 και να σχεδιάσουμε την συχνότητα εμφάνισης των τιμών της. hist(y,(-100:100)) ??Ποια η διαφορά στα τέσσερα διαγράμματα??
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (plot3) Η εντολή plot3, όπως και οι επόμενες που θα παρουσιαστούν, δημιουργεί 3D διαγράμματα για την μεταβλητή που θέλουμε να σχεδιάσουμε. Για παράδειγμα αν σχεδιάσουμε τις τιμές της μεταβλητής z=x2+y2 στο διάστημα -1 ≤ x,y ≤ 1 με την plot(x,y,z) έχουμε…
ΣΧΕΔΙΑΣΗ ΣΤΟ MATLAB (mesh, meshch, contour, meshz, surf) Η εντολή plot3, αποτελεί ουσιαστικά την 3D αναπαράσταση της plot. Σχεδιάζει δηλαδή διανύσματα. Σε περίπτωση που θέλουμε να σχεδιάσουμε συνεχή πεδία, δηλαδή πίνακες, τότε υπάρχουν οι mesh, meshch, contour, meshz & surf (μεταξύ των πολλών άλλων). Αν για παράδειγμα θέλουμε να σχεδιάσουμε τις τιμές της μεταβλητής z=x2+y2 στο διάστημα -1 ≤ x,y ≤ 1 όπου οι x,y,z είναι πίνακες (π.χ., πεδίο ανωμαλιών ελευθέρου αέρα), τότε για τις διάφορες επιλογές προκύπτουν τα σχήματα…
ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΣΤΟ MATLAB for – end while – end if – else if –end
ΟΙ ΕΝΤΟΛΕΣ for-end MATLAB Όπως και σε αρκετές άλλες γλώσσες προγραμματισμού, έτσι και στο MATLAB οι εντολές for-end χρησιμοποιούνται για να κάνουμε μια επαναληπτική διαδικασία. Αν για παράδειγμα θέλουμε να υπολογίσουμε τις τιμές της συνάρτησης z=x2+y2 για x[-5,5] και y[-4,8] τότε ο κώδικας θα έχει τη μορφή…
ΟΙ ΕΝΤΟΛΕΣ while-end MATLAB Στο MATLAB οι εντολές while-end χρησιμοποιούνται όπως και σε άλλες γλώσσες προγραμματισμού για να εκτελέσουμε μια διαδικασία κάνοντας παράλληλα και λογικό έλεγχο. Ποιο θα είναι για παράδειγμα το αποτέλεσμα των παρακάτω εντολών;
ΟΙ ΕΝΤΟΛΕΣ if-elseif-end MATLAB Στο MATLAB, όπως και σε άλλες γλώσσες προγραμματισμού, οι if-elseif-else-end χρησιμοποιούνται για να εκτελέσουμε κάποιον ή κάποιους λογικούς ελέγχους. Ποιο θα είναι για παράδειγμα το αποτέλεσμα των παρακάτω εντολών;
ΟΙ ΕΝΤΟΛΕΣ if-elseif-end MATLAB σχεδίαση της μεταβλητής Z Στο MATLAB, όπως και σε άλλες γλώσσες προγραμματισμού, οι if-elseif-else-end χρησιμοποιούνται για να εκτελέσουμε κάποιον ή κάποιους λογικούς ελέγχους. Ποιο θα είναι για παράδειγμα το αποτέλεσμα των παρακάτω εντολών; ξεκινά η if for-end loops τελειώνει η if σχεδίαση της μεταβλητής Z
ΟΙ ΕΝΤΟΛΕΣ tic-toc MATLAB Για το προηγούμενο παράδειγμα….
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t y(t) = f(t) + n(t) Παρατήρηση με πρόσθετο θόρυβο (υψηλές συχνότητες) t
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t y(t) = f(t) + n(t) Παρατήρηση με πρόσθετο θόρυβο (υψηλές συχνότητες) t ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ f(t) f(t) Εκτίμηση = απομάκρυνση θορύβου (φιλτράρισμα υψηλών συχνοτήτων) t
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t y(t) = f(t) + n(t) Παρατήρηση με πρόσθετο θόρυβο (υψηλές συχνότητες) t ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ f(t) Εκτίμηση = απομάκρυνση θορύβου (φιλτράρισμα υψηλών συχνοτήτων) t
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t y(t) = f(t) + n(t) Παρατήρηση με πρόσθετο θόρυβο (υψηλές συχνότητες) t ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ f(t) f(t) Εκτίμηση = απομάκρυνση θορύβου (φιλτράρισμα υψηλών συχνοτήτων) t
ΠΑΡΑΤΗΡΗΣΕΙΣ ΚΑΙ ΣΗΜΑΤΑ f(t) Φυσικό μέγεθος (ομαλό = χαμηλές συχνότητες) t y(t) = f(t) + n(t) Παρατήρηση με πρόσθετο θόρυβο (υψηλές συχνότητες) t ΑΝΑΛΥΣΗ ΔΕΔΟΜΕΝΩΝ f(t) f(t) Εκτίμηση = απομάκρυνση θορύβου (φιλτράρισμα υψηλών συχνοτήτων) t σφάλμα εκτίμησης
ΣΗΜΑΤΑ ΣΤΟ MATLAB Στους περισσότερους τύπους παρατηρήσεων στις γεωεπιστήμες (για παράδειγμα ανωμαλίες βαρύτητας, υψόμετρα γεωειδούς), υποθέτουμε ότι το σήμα που προσπαθούμε να παρατηρήσουμε/μετρήσουμε έχει κάποιο θόρυβο… Δηλαδή ότι τα σφάλματα που περιέχει ακολουθούν την κανονική κατανομή με κάποια μεταβλητότητα (μ=0 & σ2)… Άς υποθέσουμε ότι έχουμε τη συνάρτηση f=s+n, όπου s=aocos(t) (ao=5 και -4π≤t≤4π ) και γνωρίζουμε ότι τα σφάλματα των παρατηρήσεών μας προσομοιάζουν στο λευκό θόρυβο (ο θόρυβος των παρατηρήσεών ακολουθεί κανονική κατανομή) με μεταβλητότητα 0.5.
ΑΠΟΔΟΣΗ ΣΥΝΑΡΤΗΣΗΣ ΣΕ ΣΕΙΡΑ FOURIER f (t) ΑΠΟΔΟΣΗ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΑΡΙΘΜΟΥΣ t Τ συντελεστές α1, α2, ... της συνάρτησης f = a1φ1+ a2 φ2 + ... γνωστές συναρτήσεις βάσης φ1, φ2, ... συνάρτηση f
ΑΠΟΔΟΣΗ ΣΥΝΑΡΤΗΣΗΣ ΣΕ ΣΕΙΡΑ FOURIER Να σχεδιαστούν οι συναρτήσεις βάσεις φka(t) της ανάπτυξης μιας συνάρτησης σε σειρά Fourier
ΟΙ ΕΝΤΟΛΕΣ fid, fopen, fprintf Με τις εντολές fid, fopen, fprintf μπορούμε να αποθηκεύσουμε τις μεταβλητές που υπολογίζουμε στο MATLAB σε εξωτερικά αρχεία που είναι προσβάσιμα από τον σκληρό μας δίσκο. Η fid είναι ουσιαστικά μια μεταβλητή η οποία αποδίδεται σε ένα αρχείο για την αναγνώρισή του. Η fopen ανοίγει κάποιο αρχείο και η fprintf γράφει σε αυτό.
ΑΣΚΗΣΕΙΣ (1/2) Ημερομηνία Παράδοσης 06/11/2013 Θεωρώντας ότι έχουμε ένα συνεχές σήμα με περίοδο Τ=2π που ορίζεται στο διάστημα –4π ≤ t ≤ 4π να υπολογίσετε και σχεδιάσετε με το MATLAB τις πρώτες 20 συναρτήσεις βάσης φkb(t) της ανάπτυξης του σήματος σε σειρά Fourier. Οι είκοσι συναρτήσεις βάσης να σχεδιαστούν σε δύο διαφορετικά γραφήματα (στο πρώτο για k=0-9 και στο δεύτερο για k=10-19) με τους κατάλληλους άξονες και τίτλους. Σχολιάστε τα αποτελέσματα. Ποιες συναρτήσεις αναπαριστούν χαμηλές και ποιες υψηλές συχνότητες; Τέλος, να σχεδιάσετε όλες τις συναρτήσεις βάσης σε ένα ενιαίο γράφημα για t=3π/4 σαν σημειακές τιμές χρησιμοποιώντας την εντολή stem. Στον άξονα των x θα πρέπει να εμφανίζονται τα ονόματα των συναρτήσεων. Σχολιάστε τα αποτελέσματα. (βλ. sin_fourier.m)
ΑΣΚΗΣΕΙΣ (2/2) Να δημιουργήσετε πρόγραμμα στο MATLAB το οποίο θα αποδεικνύει ότι ισχύουν οι παρακάτω σχέσεις ορθογωνικότητας. Υπόδειξη: Έστω περίοδος Τ=2π. Η μεταβλητή t να ορίζεται στο διάστημα [–Τ/2≤t≤Τ/2]. Θα πρέπει να κάνετε μια επαναληπτική διαδικασία (for loop) η οποία να περιλαμβάνει ερώτημα(τα) (if-elseif-end) για m & n. Θεωρείστε όποιες τιμές m & n θεωρείτε σκόπιμο. Αποδώστε γραφικά κάποια από τα αποτελέσματα. (βλ. orthogonality.m)