Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front panel). Σχεδίαση του front panel για ένα πρόγραμμα Συλλογής & Επεξεργασίας Μετρήσεων. Δομικό Διάγραμμα (block diagram). Δομές προγραμματισμού. Η δομή Επανάληψης. Συνάρτηση δημιουργίας τυχαίων αριθμών. 1
Μέρος Α : Σκοπός και Περιγραφή της Άσκησης 7.1 ΕΠΙΔΙΩΞΗ ΤΗΣ ΑΣΚΗΣΗΣ Έχοντας εξετάσει σε προηγούμενες ασκήσεις (στις Ασκήσεις 4 και 6) πως ένα σύστημα μέτρησης μπορεί να επιδρά και να αλλάζει τη κατάσταση του εξωτερικού περιβάλλοντος, λειτουργώντας έναν κινητήρα ή αναβοσβήνοντας μία LED. Σ αυτή την άσκηση, επανερχόμαστε, να εξετάσουμε τη λειτουργία ενός συστήματος μέτρησης (ενός συστήματος DAQ) που αφορά τη μέτρηση / αίσθηση / αντίληψη του περιβάλλοντος. Εξετάζουμε την αντίληψη του εξωτερικού περιβάλλοντος, από ένα σύστημα μέτρησης, όμως όχι πάλι μέσα από τη μέτρηση μεταβλητών, όπως θερμοκρασία, υγρασία ή ένταση φωτός, αλλά μέσα από τη μέτρηση μίας διαφορετικής ενεργειακής μεταβλητής που είναι ο ήχος. Αντιλαμβανόμαστε το εξωτερικό περιβάλλον, μέσα από τις πέντε αισθήσεις μας. Βλέπουμε σκηνές και αντικείμενα σ αυτό, ακουμπάμε αντικείμενα, δοκιμάζουμε τη γεύση τους, μυρίζουμε την οσμή (τη μυρωδιά) τους, αλλά και ακούμε όλους τους διαφορετικούς ήχους που δημιουργούνται σ αυτό. Πέρα από την όραση, βασικό μέσο αίσθησης και αντίληψης γεγονότων και καταστάσεων στον εξωτερικό κόσμο, είναι η ακοή / το ακουστικό μας σύστημα. Ένα ρομπότ ή ένα σύστημα μέτρησης μπορεί να αντιλαμβάνεται και να μετράει τον εξωτερικό κόσμο με διαφορετικό τρόπο απ ότι εμείς ή άλλοι οργανισμοί. Όμως, ό- πως και εμείς, διαθέτουν και αυτά πολλούς διαφορετικούς τρόπους, για να αντιλαμβάνονται και να αντιδρούν ή λειτουργούν στο εξωτερικό περιβάλλον. Ένα ρομπότ, για παράδειγμα, μπορεί να εντοπίζει τη θέση που βρίσκεται στο χώρο και να προσανατολίζεται, χρησιμοποιώντας τη σύγχρονη μέθοδο του GPS. Μπορεί να μετράει την απόστασή του από αντικείμενα, χρησιμοποιώντας ultrasonic sensors. Μπορεί να ξεχωρίζει χρώματα και να αντιλαμβάνεται ήχους. Ρομπότ και συστήματα μέτρησης αντιλαμβάνονται και μετρούν μεταβολές στον εξωτερικό κόσμο, διαφορετικά απ ότι εμείς ή άλλοι οργανισμοί. Όμως, όπως για εμάς, έτσι και για αυτά τα συστήματα, η αντίληψη και η δυνατότητα επεξεργασίας οπτικών και ακουστικών σημάτων είναι πρωταρχική για την αντίληψη του εξωτερικού περιβάλλοντος και τη λειτουργία τους, σ αυτό. Σ αυτή την άσκηση, ξεκινάμε να εξετάζουμε οπτικά, κυρίως όμως ακουστικά σήματα. Πως αυτά τα σήματα γίνονται αντιληπτά από ένα σύστημα μέτρησης και ποιες βασικές μορφές επεξεργασίας ένα σύστημα μέτρησης ή ρομποτικό σύστημα εκτελεί σ αυτά τα σήματα, για να εντοπίσει ή να μετρήσει βασικά χαρακτηριστικά του εξωτερικού περιβάλλοντος. Πιο αναλυτικά, σ αυτή την άσκηση, ξεκινάμε να εξετάζουμε μία θεμελιώδη / πολύ βασική μορφή / μέθοδο επεξεργασίας ηχητικών / φωνητικών σημάτων: την ανάλυση Fourier 2
7.2 Εισαγωγή Είδαμε σε προηγούμενες ασκήσεις πως βασική λειτουργία ενός συστήματος μέτρησης (DAQ) είναι να μετράει μία μεταβλητή του εξωτερικού περιβάλλοντος, να αποθηκεύει αυτές τις μετρήσεις και να τις επεξεργάζεται, ώστε στη βάση αυτής της επεξεργασίας, να εκτελέσει μία ή άλλη λειτουργία, στο εξωτερικό περιβάλλον. Στη πρώτη εφαρμογή, εξετάζουμε πάλι αυτή τη λειτουργία, δηλαδή τη μέτρηση μίας μεταβλητής, από ένα σύστημα μέτρησης και την αποθήκευση των τιμών αυτής της μεταβλητής, στο χρονικό διάστημα της μέτρησης, σ ένα αρχείο, στο σκληρό δίσκο του υπολογιστή. Εξετάζουμε αυτή τη λειτουργία, μέσα από τη μέτρηση μίας φυσικής μεταβλητής που είναι ήχος, καταγράφοντας / παίρνοντας ηχητικά σήματα, τόσο από το φυσικό περιβάλλον, όσο και από τον εικονικό περιβάλλον του διαδικτύου. Χωρίς αισθητήρες, χρησιμοποιούμε το μικρόφωνο του υπολογιστή, για να (επιχειρήσουμε να) πάρουμε, να αποθηκεύσουμε και να επεξεργαστούμε ηχητικά σήματα. Τόσο σήματα, όπως συλλαβές και λέξεις που λέμε στο μικρόφωνο του υπολογιστή, όσο και ήχο, από το διαδίκτυο, συνδέοντας στον υπολογιστή στο διαδίκτυο και γράφοντας και αποθηκεύοντας τα ηχητικά σήματα, από video ή ταινίες στο διαδίκτυο. Εφαρμογή 7.1 Εγγραφή Ηχητικού Σήματος από το Διαδίκτυο Γράψτε ένα πρόγραμμα που να καλεί το φυλλομετρητή ιστού (web browser), μέσα από το LabVIEW και μέσα από το φυλλομετρητή, να ανοίγει / προσπελαύνει μία σελίδα στο διαδίκτυο, να εμφανίζει και να παίζει το περιεχόμενο αυτής της σελίδας. Καθώς το πρόγραμμα ανοίγει και παίζει τα περιεχόμενα αυτής της σελίδας, θα πρέπει να γράφει και να αποθηκεύει σ ένα αρχείο ήχου (wav αρχείο) τον ήχο / το φωνητικό σήμα που ακούγεται, όσο η σελίδα είναι ανοικτή (Εικόνα 1). Σ αυτό το πρόγραμμα αυτή την εφαρμογή, εξετάζουμε την επικοινωνία του LabVIEW, με άλλα προγράμματα. Συγκεκριμένα, την επικοινωνία του LabVIEW με το φυλλομετρητή ιστού (web browser). Μέσα από το LabVIEW, καλούμε το φυλλομετρητή ιστού και χρησιμοποιούμε το φυλλομετρητή, για να ανοίξουμε μία σελίδα στο διαδίκτυο. Καθώς ο φυλλομετρητής ανοίγει αυτή τη σελίδα και παίζει το περιεχόμενό της, το πρόγραμμα, χρησιμοποιώντας το εσωτερικό μικρόφωνο του υπολογιστή, γραφεί τον ήχο το φωνητικό σήμα που ακούγεται, όσο η σελίδα είναι ανοικτή και αποθηκεύει αυτό τον ήχο, σ ένα αρχείο ήχου. 3
Εικόνα 1: 4
Εφαρμογή 7.2 Πρόσβαση και Επεξεργασία των Δεδομένων σ ένα Αρχείο Γράψτε ένα πρόγραμμα στο LabVIEW που να ανοίγει και να διαβάζει το σήμα, από ένα αρχείο ήχου (αρχείο wav) που προηγούμενα, έχουμε δημιουργήσει, γράφοντας ένα εξωτερικό ηχητικό σήμα ή εσωτερικό, από τον ήχο ενός video που παίζεται στον υπολογιστή. Αφού ανοίξει και διαβάσει το σήμα στο αρχείο, το πρόγραμμα θα πρέπει να παίξει αυτό το φωνητικό σήμα, υποδηλώνοντας / δείχνοντας στη πράξη πως το πρόγραμμα μπορεί να διαβάζει και να παίζει αρχεία ήχου (Εικόνα 2). Σ αυτή την εφαρμογή, το πρόγραμμα απλά διαβάζει ένα αρχείο ήχου που προηγούμενα, έχουμε δημιουργήσει καταγράφοντας ένα ηχητικό σήμα και παίζει το ηχητικό σήμα, σ αυτό το αρχείο. Μπορούμε να γράψουμε προγράμματα που διαβάζουν άλλους τύπους αρχείων, πέρα από αρχεία αριθμητικών δεδομένων (τιμών), αρχεία κειμένου ή αρχεία ή- χου? Στη επόμενη εφαρμογή, εξετάζουμε ένα πρόγραμμα που να διαβάζει και να παίζει video (αρχεία mp4). Εφαρμογή 7.3 Πρόσβαση σε Αρχεία mp4 (video) Γράψτε ένα πρόγραμμα στο LabVIEW που να ανοίγει και να παίζει αρχεία mp4 (video) (Εικόνα ). Το πρόγραμμα απλά βασίζεται / ακολουθεί τις τεχνικές που χρησιμοποιήσαμε στα δύο προηγούμενα προγράμματα. Αναζητά ένα αρχείο στο σύστημα αρχείων του υπολογιστή. Μόνο που αυτό το αρχείο, αντί για αρχείο ήχου, είναι ένα αρχείο mp4. Για να ανοίξει αυτό το αρχείο, το πρόγραμμα καλεί ένα άλλο πρόγραμμα, το Windows Media Player. Όπως ακριβώς, στην Εφαρμογή 7.1, ένα άλλο πρόγραμμα καλούσε το φυλλομετρητή ιστού, για να ανοίξει και να εμφανίσει τα περιεχόμενα μίας σελίδας στο διαδίκτυο. Λειτουργώντας μέσα από το LabVIEW, ο Media Player α- νοίγει και εκτελεί το αρχείο mp4, που υποδεικνύουμε, προσδιορίζοντας τη θέση αυτού του αρχείου, στο σύστημα αρχείων του υπολογιστή. Εφαρμογή 7.4 Εγγραφή και Εκτέλεση ενός Εξωτερικού Φωνητικού Σήματος Τροποποιώντας λίγο το πρόγραμμα 7.1, γράψτε και αποθηκεύστε μία λέξη ή μία συλλαβή, έστω τη συλλαβή «α», σ ένα αρχείο ήχου. Μετά, χρησιμοποιείστε το πρόγραμμα 7.2, για να ανοίξετε το αρχείο wav που δημιουργήσατε (Εικόνα 3). 5
Εικόνα 2: 6
Εικόνα 3: Η κυματομορφή της συλλαβής «α», στο πεδίο του χρόνου. 7
Εικόνα 4: Η παράσταση της συλλαβής «α», στο πεδίο της συχνότητας. 8
Μέρος Β : Επεξεργασία Ηχητικών Σημάτων Στο πρώτο μέρος της άσκησης, εξετάσαμε την εγγραφή ενός ηχητικού σήματος, από το μικρόφωνο του υπολογιστή και την αποθήκευσή του, σ ένα αρχείο wav. Είδαμε ακόμα πως ένα πρόγραμμα μπορεί να ανοίγει ένα αρχείο ήχου και να παίζει το ηχητικό σήμα, σ αυτό το αρχείο. Σ αυτή την ενότητα εξετάζουμε την επεξεργασία ενός ηχητικού σήματος, από ένα πρόγραμμα. Βασική μέθοδος της επεξεργασίας ενός ηχητικού σήματος είναι η ανάλυση Fourier, η μετατροπή του σήματος από το πεδίο του χρόνου, στο πεδίο της συχνότητας (Εικόνα ). Η βασική αρχή της ανάλυσης Fourier είναι ότι κάθε κυματομορφή x(t), οσοδήποτε σύνθετη, περιοδική ή όχι, μπορεί να αναλυθεί σε άθροισμα απλών ημιτονοειδών κυματομορφών: N x(t) = Α 0 + k=1 Α k cos(2πf k t + φ k ) = Α 0 + k=1 Α k e j2πf kt + φ κ Ν Όσο πιο σύνθετη είναι η κυματομορφή x(t), τόσο μεγαλύτερο θα πρέπει να είναι το πλήθος Ν των ημιτονοειδών όρων που θα πρέπει να χρησιμοποιήσουμε προκειμένου να προσεγγίσουμε όσο το δυνατό ακριβέστερα τη κυματομορφή x(t). Εάν η x(t) είναι περιοδική, εάν δηλαδή η κυματομορφή x(t) αποτελείται από την επανάληψη ενός τμήματος της, όπως ένας τετραγωνικός ή τριγωνικός παλμός, έτσι ώστε: x(t +Τ) = x(t) για κάποια χρονική περίοδο Τ, τότε η x(t) αναλύεται σε ημιτονοειδείς όρους που οι συχνότητές τους είναι όλες πολλαπλάσια μιας θεμελιώδους συχνότητας f 0 : x(t) = Α 0 + k=1 Α k cos((2πkf 0 )t + φ k ) N Οι συχνότητες kf 0, k = 1,2,3,... των ημιτονοειδών όρων στους οποίους αναλύεται η x(t) ονομάζονται αρμονικές συχνότητες της x(t). Στα δύο επόμενα προγράμματα, εξετάζουμε αυτή τη μέθοδο. Εφαρμογή 7.5 Ανάλυση Fourier ενός απλού Ημιτονικού Σήματος Γράψτε ένα πρόγραμμα που να κάνει την ανάλυση Fourier ενός απλού ημιτονικού σήματος, δηλαδή της συνάρτησης 9
x(t) = α sin(2πft), όπου α είναι ένας πραγματικός αριθμός και f η συχνότητα του ημιτονοειδούς σήματος. 7.3 Σχεδιάζοντας το Front Panel του Προγράμματος Για να δημιουργήσουμε το front panel του προγράμματος, ακολουθούμε τα παρακάτω βήματα: 7.3.1 Στo front panel, από τη κατηγορία Graph Indicators, επιλέγουμε το Waveform Graph: Graph Indicators Waveform Graph 7.3.2 Πάλι στo front panel, από τη κατηγορία Graph Indicators, επιλέγουμε το ΧΥ Graph: Graph Indicators XY Graph 7.3.3 Δημιουργούμε ένα διακόπτη, για να ελέγχουμε τη συχνότητα του ημιτονικού σήματος. Έτσι, από τη κατηγορία Numeric Controls, επιλέγουμε το διακόπτη Dial: Numeric Controls Dial Κάνουμε διπλό κλικ στο όνομα του διακόπτη που εξορισμού, είναι Dial και αλλάζουμε την ονομασία του, σε Frequency. Αλλάζουμε τη κλίμακα του οργάνου,από 0 10 σε 0 100 (Εικόνα 5). Θα χρησιμοποιήσουμε αυτό το διακόπτη, για να ρυθμίζουμε τη συχνότητα του ημιτονικού σήματος, από 1 Hz μέχρι 100 Hz. 7.3.4 Προσθέτουμε δύο ακόμα αριθμητικές ενδείξεις, δημιουργώντας το front panel της Εικόνας 5. 7.4 Δημιουργία του Δομικού Διαγράμματος Για να δημιουργήσουμε το πρόγραμμα 7.5, της ανάλυσης ημιτόνου, εκτελούμε τα παρακάτω βήματα: 7.4.1 Από τη κατηγορία Signal Processing, επιλέγουμε τη συνάρτηση Sine Waveform: 10
Εικόνα 5: Το front panel του προγράμματος της ανάλυσης Fourier. 11
Signal processing Sine Waveform Η συνάρτηση Sine Waveform δημιουργεί μία ημιτονοειδή κυματομορφή. Οι ακροδέκτες εισόδου της συνάρτησης παριστάνουν διάφορες παραμέτρους του τετραγωνικού παλμού, όπως πλάτος (amplitude), συχνότητα (frequency), ποσοστιαία διάρκεια του θετικού τμήματος σαν ποσοστό της περιόδου Τ του παλμού (duty cycle). Στην έξοδο της συνάρτησης, παίρνουμε το σήμα / τη κυματομορφή ενός η- μιτονικού σήματος 7.4.2 Στην είσοδο Frequency, συνδέουμε τον αντίστοιχο διακόπτη που δημιουργήσαμε στο front panel, για να ρυθμίζουμε τη συχνότητα του ημιτόνου, δυναμικά, κατά την εκτέλεση του προγράμματος. 7.4.3 Στην έξοδο του μπλοκ Sine Waveform, συνδέουμε την Waveform Graph, για να παριστάνουμε γραφικά το ημιτονικό σήμα (Εικόνα 6). 7.4.4 Από τη κατηγορία Programming Waveform, επιλέγουμε τη συνάρτηση Get Waveform Components: Programming Waveform Get Waveform Components Η συνάρτηση Get Waveform Components αναλύει μία κυματομορφή στις X και Υ τιμές αυτής της κυματομορφής. Αυτή η συνάρτηση δηλαδή, δίνει: Τις Y τιμές της κυματομορφής Το σταθερό διάστημα Δt, ανάμεσα σε δύο διαδοχικές τιμές Υ n καιy n+1 της κυματομορφής 7.4.5 Από τη κατηγορία Signal processing Transforms, επιλέγουμε το μετασχηματισμό Fourier (FFT): Signal Processing Transforms FFT 7.4.6 Συνδέουμε την έξοδο Υ του μπλοκ Get Waveform, στην είσοδο του FFT, για να υπολογίσουμε το μετασχηματισμό Fourier των τιμών (δειγμάτων) Υ. 7.4.7 Από τη περίοδο dt της δειγματοληψίας, υπολογίζουμε τη συχνότητα της δειγματοληψίας f s. 7.4.8 Διαιρούμε τη συχνότητα της δειγματοληψίας δια του πλήθους των δειγμάτων, για να υπολογίσουμε το διάστημα Δf ανάμεσα σε διαδοχικές συχνότητες. 12
Εικόνα 6: Το δομικό διάγραμμα της ανάλυσης Fourier. 13
7.4.9 Χρησιμοποιούμε την εντολή επανάληψης For, για να δημιουργήσουμε τις συχνότητες που θα επιχειρήσουμε να αναλύσουμε το σήμα. Για κάθε συχνότητα, ο μετασχηματισμός Fourier, υπολογίζει το αντίστοιχο πλάτος A k, σ αυτή τη συχνότητα. 7.4.10 Συνδυάζουμε τιμές συχνότητας και πλάτους, χρησιμοποιώντας την εντολή Bundle. 7.4.11 Παριστάνουμε το πλάτος σα συνάρτηση της συχνότητας, στην οθόνη XY Graph. 14