x[n] = 2 cos(0.1πn) + 3 sin(0.2πn) (1) % Discrete time indices

Σχετικά έγγραφα
x[n] = 2 cos(0.1πn) + 3 sin(0.2πn) (1) % Discrete time indices

y[n] = x[n] + αx[n M], a < 1 (1) y[n] = αy[n M] + x[n], a < 1 (2)

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

y[n] = f(x[n], w[n]) (1) w[n] = f(x[n], y[n]) (2)

y[n] = x[n] + αx[n M], a < 1 (1) y[n] = αy[n M] + x[n], a < 1 (2)

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

x(t) = cos(2π100t + π/3) sin(2π250t + π/4) (1)

y[n] = x[n] + αx[n M], a < 1 (1) y[n] + αy[n M] = x[n], a < 1 (2)

H ap (z) = z m a 1 az m (1)

z(t) = 5.05e j(2πf 0t 0.209) sin 3 (5t)dt = 4 15 x(t) = 4 + cos(2π100t + π/3) cos(2π250t π/7) + 2 sin(2π300t π/4) (6)

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

x(t) = 4 cos(2π400t π/3) + 2 cos(2π900t + π/8) + cos(2π1200t) h(t) = 2000sinc(2000t) = h(t) = 2000sinc(2000t) H(f) = rect

H ap (z) = z m a 1 az m (1)

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

x 1 [n] = 0, αλλού x[n]e jωn X(e jω ) =

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

A k s s k. H c (s) = H(z) = 1 e s kt dz 1

= R{(a + jb)e j2π 3 4 t } (6) a + jb = j2.707 = e j π (7) A = (9) f 0 = 3 4

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

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

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

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

x(t) = e 2t u(t) (4) y(t) = e t u( t) (5)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ, ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

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

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

u = x t t = t 0 = T = x u = = s t = = s u = u bat 1 + T c = 343 m/s 273

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

x(t) = 4 cos(2π600t π/3) + 2 cos(2π900t + π/8) + cos(2π1200t) (3)

X 1 = X1 = 1 (1) X 3 = X3 = 1 (2) X k e j2πk 1 2 t = k

x[n]e jωn (1) X(e jωkn ) x[n]e jω kn

= 5 cos(2π500t π/2) + 9 cos(2π900t + π/3) cos(2π1400t) (9) H(f) = 4.5, αλλού

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

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

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) )

LCs 2 + RCs + 1. s 1,2 = RC ± R 2 C 2 4LC 2LC. (s 2)(s 3) = A. = 4 s 3 s=2 s + 2 B = (s 2)(s 3) (s 3) s=3. = s + 2. x(t) = 4e 2t u(t) + 5e 3t u(t) (2)

y(t) = x(t) + e x(2 t)

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

400 = t2 (2) t = 15.1 s (3) 400 = (t + 1)2 (5) t = 15.3 s (6)

x(t) ax 1 (t) y(t) = 1 ax 1 (t) = (1/a)y 1(t) x(t t 0 ) y(t t 0 ) =

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων

Εργαστήριο ADICV1. Image Boundary detection and filtering. Κώστας Μαριάς 13/3/2017

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών. HY-215: Εφαρµοσµένα Μαθηµατικά για Μηχανικούς ιδάσκοντες : Γ. Στυλιανού, Γ.

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

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

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

X(t) = A cos(2πf c t + Θ) (1) 0, αλλού. 2 cos(2πf cτ) (9)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Επεξεργασία Σημάτων. Άσκηση 3η. Στυλιανού Ιωάννης. Τμήμα Επιστήμης Υπολογιστών

= t2 t T 2T 3t + 9T, για t < 3T και t 2T 2T t < 3T (Σχήµα

Εφαρµογες Της Ψηφιακης Επεξεργασιας Σηµατων. Εκτιµηση Συχνοτητων Με ΙδιοΑναλυση του Μητρωου ΑυτοΣυσχετισης

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

= 1 E x. f(t)x n (t)dt, n = 1, 2,, N (2) = 0, i = 1, 2,, N (3) E e = e 2 (t)dt (4) e(t) = f(t) c n x n (t) (5) f(t) cx(t) = 4 sin(t) (7)

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

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

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

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)

0 2j e jπt e j2πkt dt (3)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

x(t) = 2 + cos(2πt) sin(πt) 3 cos(3πt) cos(θ + π) = cos(θ). (3)

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

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΩΝ Εισαγωγή. Εµµανουήλ Ζ. Ψαράκης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Εργαστήριο ADICV2. Image filtering. Κώστας Μαριάς

bx 2 (t). Για είσοδο ax 1(t) + bx 2 (t), η έξοδος είναι x(t t 0 ) και y(t t 0) = t t 0 x(t) ax 1 (t 1) + bx 2 (t 1) sin ax 1 (t)+

y = u i t 1 2 gt2 y = m y = 0.2 m

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 10 ο : MATLAB

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

Επεξερασία εικόνας. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #09

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

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

y(t) = x(t) + e x(2 t)

Ψηφιακή Επεξεργασία Εικόνας

x(t) = sin 2 (5πt) cos(22πt) = x 2 (t)dt

y[n] 5y[n 1] + 6y[n 2] = 2x[n 1] (1) y h [n] = y h [n] = A 1 (2) n + A 2 (3) n (4) h[n] = 0, n < 0 (5) h[n] 5h[n 1] + 6h[n 2] = 2δ[n 1] (6)

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

ΜΕΡΟΣ Α: Απαραίτητες γνώσεις

e (4+j2πf)t dt (5) (0 1)

sin(30 o ) 4 cos(60o ) = 3200 Nm 2 /C (7)

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

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

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

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

Μια «ανώδυνη» εισαγωγή στο μάθημα (και στο MATLAB )

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

ΕΡΓΑΣΙΑ ΣΤΟ ΜΑΘΗΜΑ ΨΗΦΙΑΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΣΗΜΑΤΩΝ

Συστήµατα Πολυµέσων Ενδιάµεση Εξέταση: Οκτώβριος 2004

Digital Image Processing

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

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

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

d 2 dt 2 y(t) + d y(t) 2y(t) = x(t) (1)

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

LC d2 dt 2 y(t) + RC d y(t) + y(t) = x(t) (1)

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Τµήµα Επιστήµης Υπολογιστών HY-370: Ψηφιακή Επεξεργασία Σήµατος Χειµερινό Εξάµηνο 2016 ιδάσκοντες : Γ. Στυλιανού - Γ. Καφεντζής Πρώτο Εργαστήριο Σηµείωση : Για ϐοήθεια σχετικά µε τις εντολές/συναρτήσεις MATLAB γράψτε : doc εντολή/συνάρτηση στο Command Window του MATLAB. Ασκηση 1 - Υπολογισµός Περιόδου (20 µ.) Εστω το διακριτό σήµα x[n] = 2 cos(0.1πn) + 3 sin(0.2πn) (1) (Αʹ) Ας δηµιουργήσουµε στο MATLAB 50 δείγµατα του παραπάνω διακριτού σήµατος και ας εµ- ϕανίσουµε το αποτέλεσµα µε την εντολή stem, ορίζοντας κατάλληλα το διάνυσµα του διακριτού χρόνου n, να είναι από µηδέν έως 49 (σύνολο 50 χρονικές στιγµές). n = 0:49; x = 2*cos(0.1*pi*n) + 3*sin(0.2*pi*n); stem(n,x); xlabel( Samples ); title( Synthetic signal ); % Discrete time indices % Signal % Visualize i. Από το σχήµα, µπορείτε να ϐρείτε ποιά είναι περίπου η περίοδος του σήµατος ; (µην κλείσετε το γράφηµα) ii. Υπολογίστε µε ακρίβεια την περίοδο του σήµατος σε αριθµό δειγµάτων στο χαρτί, και επι- ϐεβαιώστε το αποτέλεσµα ελέγχοντας στο MATLAB τις τιµές του σήµατος. iii. Υπολογίσατε σωστά την περίοδο αρχικά µε το µάτι ; iv. Από ποιά συχνότητα του σήµατος προέρχεται η περίοδος του σήµατος ; v. Αν αυτό το σήµα έχει προέλθει από δειγµατοληψία ενός σήµατος συνεχούς χρόνου µε συχνότητα δειγµατοληψίας 200 Hz, τότε πόση είναι η περίοδος του σήµατος συνεχούς χρόνου ; (Βʹ) Ας υποθέσουµε ότι προσθέτουµε άλλη µια συνιστώσα στο παραπάνω σήµα : x[n] = 2 cos(0.1πn) + 2 cos(0.15πn) + 3 sin(0.2πn) (2) i. ηµιουργήστε 150 δείγµατα στο MATLAB. Εκτελώντας ξανά την εντολή stem για το παραπάνω σήµα, εµφανίστε το. ii. Εχει αλλάξει η περίοδος του σήµατος σε σχέση µε το προηγούµενο σήµα ; iii. Αν ναι, από ποιά συχνότητα προέρχεται η νέα περίοδος ; iv. Πόση είναι η περίοδος σε αριθµό δειγµάτων ; v. Πόση είναι η περίοδος σε δευτερόλεπτα, αν το σήµα συνεχούς χρόνου από το οποίο προήλθε δειγµατοληπτήθηκε µε συχνότητα δειγµατοληψίας 200 Hz; (Γʹ) Εστω το διακριτό σήµα x[n] = cos(0.1π + 0.4n) (3) όπου n = 0, 1,, 99. (αʹ) Σχεδιάστε µε την εντολή stem το σήµα. (ϐʹ) Ελέγξτε το γράφηµα. Είναι το σήµα περιοδικό ; Ποιά περίοδο ϐρίσκετε µε το µάτι ;

Ψηφιακή Επεξεργασία Σήµατος - 2016/Πρώτο Εργαστήριο 2 (γʹ) Επιβεβαιώστε (ή διαψέυστε) την απάντησή σας υπολογίζοντας ϑεωρητικά την περίοδο. Ασκηση 2 - ιόρθωση σφαλµάτων (30 µ.) Τα συστήµατα DVD αποθηκεύουν τις εικόνες που αποτελούν ένα video µε µορφή σειρών από ψη- ϕιακούς αριθµούς. Αν υπάρχει κάποιο πρόβληµα στο δισκάκι (ελαφρά γρατζουνιά, ϕθορά, σκόνη), το σύστηµα του DVD προσπαθεί να καθαρίσει το δίσκο από το πρόβληµα χρησιµοποιώντας ϕίλτρα (δηλ. συστήµατα διακριτού χρόνου που περιγράφονται ως εξισώσεις διαφορών!). Εδώ ϑα εξετάσουµε δυο τέτοια απλά συστήµατα, τα οποία ϑα ονοµάζουµε στο εξής ϕίλτρα. Το πρώτο είναι το ϕίλτρο κυλιόµενης µέσης τιµής (moving average). Συγκεκριµένα, ϑα χρησιµοποιήσουµε ένα τέτοιο ϕίλτρο τριών σηµείων (3-point Moving Average), το οποίο είδατε και στις διαλέξεις : y[n] = 1 2 x[n k] (4) 3 k=0 Το δεύτερο είναι ένα ϕίλτρο µεσαίας τιµής (median filter), επίσης τριών σηµείων : y[n] = median(x[n + 1], x[n], x[n 1]) (5) Παρατηρήστε ότι και τα δυο ϕίλτρα απαιτούν µόνο 3 τιµές της εισόδου για να παράξουν µια τιµή της εξόδου. i. Χρησιµοποιώντας την εντολή A = imread( Saturn.tif ); διαβάστε την εικόνα Saturn.tif. είτε τη µε την εντολή figure; imshow(a); Υποθέστε ότι αυτή είναι µια καθαρή εικόνα από ένα DVD δίσκο. ii. Χρησιµοποιώντας την εντολή B = imread( NoiseSaturn.tif ); διαβάστε την εικόνα NoiseSaturn.tif. είτε τη µε την εντολή figure; imshow(b); Ο ϑόρυβος που ϐλέπετε να έχει προστεθεί στην εικόνα ονοµάζεται salt and pepper noise (ϑόρυ- ϐος αλάτι και πιπέρι, λόγω της µορφής του). Υποθέστε ότι προήλθε από σφάλµα ανάγνωσης του δίσκου DVD λόγω ϕθοράς. iii. Προσπαθήστε να εφαρµόσετε τα παραπάνω ϕίλτρα για να καθαρίσετε την εικόνα B. Σκεφτείε ότι η εικόνα είναι ένας πίνακας MxN, που σας είναι γνωστά (γράψτε [M,N] = size(b) αν ϑέλετε να τα έχετε σε µεταβλητές). Εφαρµόστε τα ϕίλτρα σας κατά γραµµές ή κατά στήλες του πίνακα. Θεωρήστε ότι κάθε γραµµή (ή στήλη) αποτελεί ένα µονοδιάστατο σήµα x[n] για τις παραπάνω εξισώσεις, το οποίο πρέπει να διατρέχετε σε τριάδες, µε µετατόπιση ένα δείγµα κάθε ϕορά. Η έξοδος y[n] ϑα είναι µια αριθµητική τιµή την οποία ϑα αποθηκεύσετε σε έναν πίνακα C, στην κατάλληλη ϑέση. Προσέξτε το type casting µεταξύ των εικόνων όταν τις απεικονίζετε. Αν ϑέλετε, εµπνευστείτε από τον παρακάτω κώδικα που αφορά το ϕίλτρο της Σχέσης (4) εφαρµοσµένο στις γραµµές τις εικόνας :

Ψηφιακή Επεξεργασία Σήµατος - 2016/Πρώτο Εργαστήριο 3 % Initialize C [M,N] = size(b); C = zeros(m,n); % Cast to double for processing B = double(b); % Apply a moving average (MA) filter in every row for i = 1:M for j = 1:N-2 % Why N-2 and not N? x = % INSERT CODE HERE - use B matrix to get % triads of data of row i y = % INSERT CODE HERE - use x vector to implement % your filter C(i,j) = y; % Store result in another matrix % Cast it to unsigned int C = uint8(c); % Show the result figure; imshow(c); title( MA-filtered image in rows ); Μπορείτε αν ϑέλετε να χρησιµοποιήσετε τις συναρτήσεις sum, mean, median, αλλά µόνο αυτές. Για κάθε ένα από τα δυο ϕίλτρα : iv. Παραδώστε κώδικα που παράγει δυο εικόνες του πίνακα C, µια που έχει προέλθει από ϕιλτράρισµα των γραµµών του πίνακα B, και µια που έχει προέλθει από ϕιλτράρισµα των στηλών του πίνακα B. Σχολιάστε τις παρατηρήσεις σας. Συµπεριλάβετε τις παραγόµενες εικόνες στην αναφορά σας. Εν γένει, ϑα χαρακτηρίζατε και τα δυο ϕίλτρα ως αποδοτικά ; v. Παραδώστε κώδικα που εφαρµόζει τα ϕίλτρα σας διαδοχικά (π.χ. εφαρµόστε ένα ϕίλτρο πρώτα σε γραµµές, και στο αποτέλεσµα που ϑα πάρετε εφαρµόστε το ίδιο ϕίλτρο ξανά κατά στήλες). Υλοποιήστε αυτή την προσέγγιση και µε τα δυο ϕίλτρα. Συµπεριλάβετε τις παραγόµενες εικόνες στην αναφορά σας. Παρέχει καλύτερο αποτέλεσµα από πριν ; Σχολιάστε. Ασκηση 3 - Ασφαλής Επικοινωνία (30 µ.) Για την ασφαλή επικοινωνία δεδοµένων µεταξύ δυο σταθµών, χρησιµοποιούµε ένα πρότυπο σήµα µήκος 50 δειγµάτων, για να το προσθέσουµε ως ϑόρυβο σε τυχαίες χρονικές στιγµές στα σήµατα που ϑέλουµε να στείλουµε. Το σήµα-πρότυπο ϐρίσκεται στο αρχείο Pat.wav, και το έχουν τόσο ο ποµπός όσο και ο δέκτης. Το σήµα που εµείς λάβαµε σε κάποια χρονική στιγµή στο δέκτη είναι το σήµα noisy.wav. Ας τα ϕορτώσουµε και ας τα ακούσουµε : [pattern, fs] = audioread( Pat.wav ); soundsc(pattern, fs); figure(1); plot(pattern); xlabel( Samples ); [noisy, fs] = audioread( noisy.wav );

Ψηφιακή Επεξεργασία Σήµατος - 2016/Πρώτο Εργαστήριο 4 soundsc(noisy, fs); figure(2); plot(noisy); xlabel( Samples ); Η εντολή plot είναι ϐολικότερη εδώ για την απεικόνιση, αλλά στην πραγµατικότητα τα σήµατά µας είναι διακριτού χρόνου (µπορείτε να το δείτε µε την εντολή stem, όπως την γνωρίζετε). Θα ϑέλαµε να ανακτήσουµε το καθαρό σήµα. Για το σκοπό αυτό, µπορούµε να χρησιµοποιήσουµε την πράξη της ετεροσυσχέτισης, η οποία ορίζεται ως φ xy [l] = + n= x[n]y[n + l] (6) Οµοια µε την πράξη της ετεροσυσχέτισης στο συνεχή χρόνο, µας αποκαλύπτει οµοιότητες και διαφορές µεταξύ των σηµάτων που συσχετίζονται. Ο δείκτης l ονοµάζεται lag, που σηµαίνει κα- ϑυστέρηση, και έχει ακριβώς όµοιο ϱόλο µε τη µεταβλητή τ στο συνεχή χρόνο 1. Η συνάρτηση [cc, lags] = xcorr(...) του MATLAB ϑα σας ϐοηθήσει να συσχετίσετε τα σήµατα. είτε προσεκτικά (!) το documentation της, καθώς η υλοποίηση του MATLAB διαφέρει λίγο από τον παραπάνω ορισµό, και όπως ίσως ϑυµάστε και από το συνεχή χρόνο, η ετεροσυσχέτιση είναι διαφο- ϱετική όταν συσχετίσουµε το x[n] µε το y[n] απ όταν συσχετίσουµε το y[n] µε το x[n]. Στις χρονικές τιµές των lags όπου η τιµή της ετεροσυσχέτισης είναι µεγάλη, σηµαίνει ότι εκεί έχει ϐρεθεί µεγάλη οµοιότητα του ενός σήµατος µε το άλλο. Προς ϐοήθειά σας, πληροφορείστε ότι το πρότυπο σήµα έχει προστεθεί σε 36 ϑέσεις στο σήµα noisy.wav. Αν ϐρείτε αυτές τις ϑέσεις, µπορείτε απλά να το αφαιρέσετε µε µια απλή πράξη αφαί- ϱεσης του σήµατος προτύπου από το ϑορυβώδες σήµα. Επίσης, το σήµα που έχει σταλεί στο δέκτη περιέχει οµιλία πολύ καλής ποιότητας. Αυτό ϑα σας ϐοηθήσει να ελέγξετε τα αποτελέσµατά σας. Ο παρακάτω κώδικας ϑα σας ϐοηθήσει. Χρησιµοποιήστε το documentation του MATLAB όπου έχετε αµφιβολία. [cross_corr, lags] = % INSERT CODE HERE; % Compute cross-correlation figure(3); plot(lags, cross_corr); % Plot it and check it carefully xlabel( Lags ); title( Cross-correlation ); % Using information from the plot, define a good threshold T % which separates peaks from other -not useful- data T = % INSERT CODE HERE ; % Use findpeaks to easily detect instants of high correlation % T will be used as the minimum peak height threshold [pks, locs] = findpeaks(cross_corr, lags, MinPeakHeight, T); % Check your selected peaks - did your threshold work? Did you select 36 peaks? plot(lags, cross_corr); hold on; plot(locs, pks, o ); hold off; % Check without counting peaks :) size(locs) % is it 1 x 36? 1 Θυµηθείτε : φ xy(τ) = + x(t)y(t + τ)dt (7)

Ψηφιακή Επεξεργασία Σήµατος - 2016/Πρώτο Εργαστήριο 5 % Copy noisy signal to process it clean = noisy; % Subtract pattern from noisy signal - use "clean" vector % For every lag index present in vector locs, you have % to subtract the pattern signal from the received signal % Use operator ":" to choose pieces of the signal in MATLAB % as follows: % signal(start:) = signal(start:) - another_signal(start:); for i = 1:length(locs) %%%%%%%%%%%%%%%%%% % INSERT CODE HERE %%%%%%%%%%%%%%%%%% % Listen! It should sound perfectly clear... soundsc(clean, fs); Η συνάρτηση findpeaks του MATLAB είναι πολύ ϐολική για να ϐρίσκετε κορυφές σε µια συνάρτηση, ανάλογα µε το πόσο απέχουν µεταξύ τους, µε το αν ϑέλετε να υπερβαίνουν κάποια τιµή, κλπ. Ρίξτε απλά µια µατιά στο documentation της συνάρτησης στο MATLAB για να δείτε τις δυνατότητές της, µια και η εντολή όπως δίνεται στον παραπάνω κώδικα είναι πλήρης. Ελέγξτε προσεκτικά τις ϑέσεις των καθυστερήσεων (τις τιµές των locs δηλαδή) που σας επιστρέφει η findpeaks. είτε τι υπάρχει στο ϑορυβώδες σήµα σε αυτές τις χρονικές στιγµές. Για την παράδοση της άσκησης, γράψτε πλήρη αναφορά, συµπεριλαµβάνοντας απαντήσεις σε όλα τα ερωτήµατα του εργαστηρίου, καθώς και διαγράµµατα/γραφήµατα/εικόνες µε τα αποτελέσµατά σας, και συµπεριλάβετε τον κώδικα MATLAB σε ξεχωριστά.m files. Η παράδοση γίνεται αποκλειστικά µε το πρόγραµµα TURNIN. Ανάθεση : 23/09/2016 Προθεσµία : 02/10/2016, 23:59:59 (TURNIN timestamp)