2.5 0.5 0-0.5 - -.5-2 0 50 00 50 200 250 300 350 400 450 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ "ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΩΝ" ΣΥΣΤΗΜΑ ΣΗΜΑΤΟ ΟΤΗΣΗΣ Dual Tone Multi Frequency Το πάτηµα ενός πλήκτρου µίας τηλεφωνικής συσκευής έχει σαν αποτέλεσµα την δηµιουργία ενός DTMF (Dual Tone Multi Frequency) σήµατος σύµφωνα µε τον παρακάτω πίνακα. DTMF Kωδικοποίηση 336 Συχνότητα 209 477 697 2 3 770 4 5 6 852 7 8 9 94 * 0 # Πίνακας Οι συχνότητες που περιέχονται στον Πίνακα είναι επιλεγµένες έτσι ώστε καµιά από αυτές να µην είναι πολλαπλάσιο κάποιας άλλης καθώς επίσης το άθροισµα και η διαφορά οποιωνδήποτε από τις παραπάνω συχνότητες να µην παράγει κάποια από τις άλλες συχνότητες που εµφανίζονται στον παραπάνω Πίνακα. Το Συνολικό Σύστηµα Στο Block διάγραµµα που ακολουθεί φαίνεται το συνολικό σύστηµα το οποίο θα πρέπει να υλοποιηθεί στα πλαίσια αυτής της εργασίας. Παρατηρείστε ότι το τηλεπικοινωνιακό κανάλι θεωρούµε ότι είναι ιδανικό (η απόκριση συχνότητάς του έχει µέτρο ίσο µε την µονάδα), πράγµα βέβαια που στην πραγµατικότητα δεν ισχύει (για ένα µοντέλο τηλεπικοινωνιακού καναλιού περισσότερο κοντά στην πραγµατικότητα δες στην σελίδα 5). 2 3 4 5 6 7 8 9 * 0 # Γεννήτρια DTMF Σηµάτων Ιδανικό Τηλεπικοινωνιακό Κανάλι Αποκωδικοποιητής DTMF Σηµάτων 2 Σχήµα
ηµιουργία ενός DTMF σήµατος Κατά την φάση της ηµιουργίας ενός DTMF σήµατος, καλούµαστε να βρούµε ένα σύστηµα το οποίο σε κάθε πάτηµα ενός ψηφίου ή συµβόλου της τηλεφωνικής συσκευής, θα δηµιουργεί στην έξοδό του ένα σήµα συγκεκριµένης χρονικής διάρκειας το οποίο θα προκύπτει από την υπέρθεση δύο σηµάτων των οποίων οι συχνότητες αντιστοιχούν στο συγκεκριµένο ψηφίο (δές Πίνακα ) της τηλεφωνικής συσκευής που πατήσαµε. Αν δηλαδή για παράδειγµα πατήσουµε το πλήκτρο µε το ψηφίο 2 τότε το σύστηµα θα πρέπει να δηµιουργήσει στην έξοδό του το ακόλουθο σήµα x(n)=cos(2π697n/fs) + cos(2π336n/fs) n=0,,2,,n όπου fs η συχνότητα δειγµατοληψίας και Ν η χρονική διάρκεια (σε πλήθος δειγµάτων) του DTMF σήµατος. Ένα τέτοιο σύστηµα υλοποιεί η συνάρτηση phone_pad που δίνεται παρακάτω. Η συνάρτηση αυτή δέχεται σαν είσοδο ένα ψήφιο και επιστρέφει σαν έξοδο, στην µεταβλητή signal, το επιθυµητό σήµα διακριτού χρόνου χρονικής διάρκειας Ν δειγµάτων. function signal=phone_pad(k); N=204; %Αριθµός ειγµάτων/ανά Ψηφίο n=0:n- fs=892; %Συχνότητα ειγµατοληψίας F_c=[697;770;852;94]*ones(,3); F_c=F_c';F_c=F_c(:)'; F_r=[209;336;477]*ones(,4); F_r=F_r(:)'; F=2*pi/fs*[F_c;F_r]; switch k case {,2,3,4,5,6,7,8,9} signal=cos(f(:,k)*n);signal=sum(signal);signal=[signal zeros(size(signal))]; case '*' signal=cos(f(:,0)*n);signal=sum(signal);signal=[signal zeros(size(signal))]; otherwise disp('unknown digit') end signal=signal'; sound(signal,fs) plot([: length(signal)]',signal, 'r') Αποκωδικοποίηση ενός DTMF σήµατος Κατά την φάση της αποκωδικοποίησης (decoding) ενός DTMF σήµατος το τηλεφωνικό κέντρο καλείται να αποφασίσει σε ποιο ψηφίο ή σύµβολο αντιστοιχεί το DTMF σήµα το οποίο έλαβε. 2
Έχουν προταθεί στην βιβλιογραφία αρκετοί τρόποι για την υλοποίηση του αποκωδικοποιητή. Στην εργασία αυτή ζητείται η υλοποίηση των παρακάτω δύο (2) διαφορετικών τρόπων. Υπολογίζοντας τον ιακριτό Μετασχηµατισµό Fourier (DFT) του DTMF σήµατος. Η ιδέα είναι απλή, αφού το σήµα συντίθεται από δύο ηµιτονικά σήµατα περιµένουµε το ενεργειακό του περιεχόµενο να είναι συγκεντρωµένο γύρω από συγκεκριµένες συχνότητες. Για τον υπολογισµό του DFT µπορούµε να χρησιµοποιήσουµε είτε FFT [] είτε τον αλγόριθµο του Goertzel [σελίδες 520-523 της αναφοράς 2 στην βιβλιογραφία που παρατίθεται]. Χρησιµοποιώντας µία Συστοιχία Φίλτρων (Filter Bank). Ένας άλλος τρόπος µε τον οποίο µπορούµε να υλοποιήσουµε τον αποκωδικοποιητή είναι να περάσουµε το DTMF σήµα µέσα από µία συστοιχία φίλτρων (Filter Bank) όπως αυτή που φαίνεται στο Σχήµα 2. Η (z) y (n) Η 2 (z) y 2 (n) Η 3 (z) y 3 (n) x(n) Η 4 (z) y 4 (n) Η 5 (z) y 5 (n) Η 6 (z) y 6 (n) Η 7 (z) y 7 (n) Σχήµα 2 Παρατηρείστε ότι κάθε φίλτρο πρέπει να σχεδιαστεί έτσι ώστε να περνάει µόνο µία συχνότητα από τις επτά που υπάρχουν στον Πίνακα. Αν για παράδειγµα υποθέσουµε ότι το πρώτο φίλτρο της συστοιχίας επιτρέπει την διέλευση της µικρότερης συχνότητας (697 ), που εµφανίζεται στον Πίνακα, και το έβδοµο φίλτρο της συστοιχίας επιτρέπει την διέλευση της µεγαλύτερης συχνότητας (477 ), που εµφανίζεται στον ίδιο πίνακα, η απόκριση συχνότητας του πέµπτου φίλτρου της συστοιχίας Η 5 (ω) θα 3
πρέπει να προσεγγίζει την ιδανική απόκριση συχνότητας που φαίνεται στο παρακάτω σχήµα. Η 5 (ω) - 209/4096 0 209/4096 ω Σχήµα 3 Για να αποφασίσουµε τέλος το ψηφίο ή το σύµβολο που αντιστοιχεί στο DTMF σήµα που οδηγήσαµε στην είσοδο της συστοιχίας φίλτρων, υπολογίζουµε την ενέργεια των σηµάτων y i (n) i=,2,..,7 των εξόδων της συστοιχίας φίλτρων και αποµονώνουµε τις δύο εκείνες εξόδους που έχουν την µεγαλύτερη ενέργεια. Για την προσέγγιση των ιδανικών προδιαγραφών που φαίνονται στο Σχήµα 3, µπορούµε να χρησιµοποιήσουµε είτε: Κ Ζωνοδιαβατό (Bandpass) FIR φίλτρο Κ2 FIR φίλτρο Εγκοπής (συµπληρωµατικό) Κ3 ΙIR φίλτρο Εγκοπής (συµπληρωµατικό) ιαδικασία Α Μέρος. Κατανοήστε την λειτουργία της συνάρτησης phone_pad και συµπληρώστε τις κενές γραµµές έτσι ώστε να µπορούµε να δηµιουργήσουµε το DTMF σήµα οποιουδήποτε από τα ψηφία επιθυµούµε. 2. Υλοποιείστε στο περιβάλλον της ΜΑΤLΑΒ τον αποκωδικοποιητή του DTMF σήµατος υπολογίζοντας τον ιακριτό Μετασχηµατισµό Fourier χρησιµοποιώντας: [Μ] FFT και [Μ2] τον αλγόριθµο του Goertzel εκτιµείστε την υπολογιστική πολυπλοκότητα κάθε µίας από τις παραπάνω µεθόδους. 3. Υλοποιείστε στο περιβάλλον της ΜΑΤLΑΒ τον αποκωδικοποιητή του DTMF σήµατος χρησιµοποιώντας την ιδέα της συστοιχίας των φίλτρων για τις κατηγορίες Κ και Κ3 των φίλτρων που αναφέρθηκαν στην προηγούµενη ενότητα. Για την σχεδίαση των φίλτρων της κατηγορίας: Κ χρησιµοποιείστε το sptool της ΜΑΤLΑΒ. Κ3 δηµιουργείστε µία δική σας συνάρτηση στην οποία θα δίνεται σαν είσοδο τις ιδανικές προδιαγραφές και θα σας επιστρέφει τους συντελεστές των κρουστικών αποκρίσεων των φίλτρων. 4
4. ηµιουργήστε µία συνάρτηση µε όνοµα decode η οποία θα δέχεται σαν είσοδο το DTMF σήµα signal, θα χρησιµοποιεί την εντολή conv της MATLAB για τον υπολογισµό των εξόδων y i (n) i=,2,..,7της συστοιχίας φίλτρων, θα χρησιµοποιεί την εντολή norm της MATLAB για τον υπολογισµό της ενέργειας των σηµάτων y i (n) i=,2,..,7 των εξόδων της συστοιχίας φίλτρων και θα αποφασίζει το ψηφίο που αντιστοιχεί στο DTMF σήµα που οδηγήσατε στην είσοδο της. Εκτιµείστε την υπολογιστική πολυπλοκότητα του αποκωδικοποιητή για κάθε µία από τις κατηγορίες φίλτρων που χρησιµοποιήσατε. 5. Τροποποιείστε κατάλληλα τις συναρτήσεις σας έτσι ώστε το συνολικό σύστηµα να µπορεί να δηµιουργεί και να αποκωδικοποιεί αριθµούς τηλεφωνικών κλήσεων δέκα (0) ψηφίων. Β Μέρος Θεωρείστε τώρα ότι το τηλεπικοινωνιακό κανάλι δεν είναι ιδανικό (Σχήµα 4). Στην περίπτωση αυτή το σήµα που φθάνει στην είσοδο του αποκωδικοποιητή είναι, όπως φαίνεται και στο παρακάτω σχήµα, το άθροισµα του DTMF σήµατος και του σήµατος θορύβου w(n) ο οποίος θεωρείστε ότι είναι λευκός και Γκαουσιανός. είτε την συµπεριφορά των τεχνικών που αναπτύξατε στο Α µέρος της εργασίας στην παρουσία θορύβου. Για το σκοπό αυτό για κάθε µία από τις παραπάνω τεχνικές, διατηρώντας την ισχύ του DTMF σήµατος σταθερή αυξήστε βαθµιαία την ισχύ του θορύβου και δείτε τα αποτελέσµατα στην αποκωδικοποίηση (Επαναλάβετε το πείραµα σας πολλές φορές (π.χ. 5000) και µετρείστε για κάθε τιµή του λόγου Σήµατος/Θόρυβο (Signal to Noise Ratio) που χρησιµοποιήσατε, τον αριθµό των αποτυχηµένων µεταδόσεων). Αναπτύξτε και υλοποιείστε στο περιβάλλον της ΜΑΤLAB τουλάχιστον µία τεχνική εκτίµησης φάσµατος για την αποκωδικοποίηση του DTMF σήµατος. w(n) 2 3 4 5 6 7 8 9 * 0 # Γεννήτρια DTMF Σηµάτων 5 Τηλεπικοινωνιακό Κανάλι Αποκωδικοποιητής DTMF Σηµάτων 5 Σχήµα 4 Για την καλύτερη παρουσίαση των αποτελεσµάτων σας, µπορείτε να χρησιµοποιήσετε το GUI της MATLAB. Βιβλιογραφία. Γ. Β. Μουστακίδης, "Βασικές Τεχνικές Ψηφιακής Επεξεργασίας Σηµάτων," Εκδόσεις ΤΖΙΟΛΑ, 2004. 2. Sanjit K. Mitra, "Digital Signal Processing, A Computer-Based Approach," McGraw-Hill, 998. 3. Vinay K. Ingle and John G. Proakis, "Digital Signal Processing Using MATLAB," PWS Publishing Company, 997. 4. Matlab's Tutorial, Mathworks Inc. 5