ntua-cvsp-lab / DSP_LabSupport

Here the students of the 2019-2020 DSP course can submit questions regarding the course to the teaching assistants.
7 stars 3 forks source link

[lab2] Απορίες πάνω στο Μέρος 2 #49

Open chrisdim opened 4 years ago

chrisdim commented 4 years ago

Καλησπέρα, Συγκέντρωσα κάποιες απορίες αναφορικά με το μέρος 2 της 2ης εργαστηριακής άσκησης που μου προέκυψαν, κατά την προσπάθεια μου να το υλοποιήσω: [1] Αρχικά, βλέπω ότι εφαρμόζουμε μια πληθώρα μετασχηματισμών σε ένα σήμα εισόδου x[n], το οποίο ναι μεν λάβαμε από το compressed file "step00.npz", ωστόσο δεν διευκρινίζεται ποιο είναι. Το αρχείο αυτό περιλαμβάνει 7 σήματα συνολικά. Αυθαίρετα, επέλεξα ως σήμα εισόδου την επιτάχυνση στον άξονα Χ (accx), προκειμένου να συνεχίσω με την άσκηση. [2] Αδυνατώ να κατανοήσω πλήρως την εφαρμογή του binomial φίλτρου στο μέρος 2.4 για την εξομάλυνση της εξόδου του τελεστή Teager-Kaiser. Αρχικά, όσον αφορά τη θεωρητική του εφαρμογή, πως γίνεται ένα σήμα του οποίο το φάσμα είναι 1 να επιδρά με οποιονδήποτε τρόπο πολλαπλασιαζόμενο με το φάσμα του σήματος εισόδου; Έπειτα, όσον αφορά την εργαστηριακή του υλοποίηση πώς ακριβώς θα κινηθούμε; Δοκίμασα να χρησιμοποιήσω τη συνάρτηση scipy.unit_impulse, ωστόσο η κρουστική δ[n-1] που αναφέρεται σε παρελθοντικά δείγματα δεν γίνεται να υλοποιηθεί με αυτόν τον τρόπο. Κάποιο hint; [3] Στο μέρος 2.5 μας ζητάτε να κάνουμε STFT στο αρχικό μας σήμα x[n] ή κάτι τελείως διαφορετικό; Ευχαριστώ και συγγνώμη για το μήνυμα-σεντόνι, Χρήστος.

chrisdim commented 4 years ago

Συμπληρώνω εδώ: Ένας τρόπος που βρήκα στο internet για την εφαρμογή ενός binomial φίλτρου είναι με τη συνάρτηση lfilter με ορίσματα αριθμητής = οι συντελεστές των κρουστικών και παρονομαστή τη μονάδα. Κάτι τέτοιο θα ήταν σωστό;

cgaroufis commented 4 years ago

Καλησπέρα,

[1] Ως προς αυτό έχεις δίκιο, είναι παράλειψη της εκφώνησης. Στο μέρος 2 της εργαστηριακής άσκησης, θέλουμε να τρέξετε τον κώδικα και να παραθέσετε ενδεικτικά plots (θα ανέβει τις επόμενες μέρες ανανεωμένη εκφώνηση) για τα σήματα acc_x, gyr_x και hrm που περιέχονται στο step_00.npz . Στη συνέχεια, στο μέρος 3 της άσκησης, θα επαναλάβετε τη διαδικασία αυτή για μία πληθώρα σημάτων (αν και εκεί απλά θέλουμε να εξαχθούν τα στατιστικά features του ερωτήματος 1.4 από τις MTE των σημάτων αυτών, και όχι να παραθέσετε διαγράμματα). [2] Aυτό που προτείνεις με χρήση της lfilter() στο follow-up post ειναι σωστό. Ένας εναλλακτικός τρόπος να πραγματοποιηθεί το φιλτράρισμα με το binomial φιλτρο που σας δίνουμε είναι με χρήση της εντολής convolve() της numpy, με ορίσματα το σήμα και το διάνυσμα συντελεστών της κρουστικής απόκρισης του φίλτρου [2b] Όσον αφορά την επίδραση του φίλτρου, σκέψου ότι η έξοδός του, y[n], θα ισούται με 0.25x[n-1] + 0.5x[n] + 0.25x[n+1]. Εναλλακτικά, αν κάνεις τις πράξεις στην κρουστική απόκριση θα δεις ότι ο DTFT της (αν δε μου έχει ξεφύγει κάτι στις πράξεις) βγαίνει 0.5(1+cosω), που για ω στο διάστημα [0,π] αντιστοιχεί σε λειτουργία βαθυπερατού φίλτρου. [3] Πρακτικά θέλουμε το pipeline εφαρμογής φίλτρων Gabor / υπολογισμού ενέργειας Teager-Kaiser για τις εξόδους των φίλτρων / εξαγωγής της μέγιστης μέσης ενέργειας από αυτές που υπολογίσατε να μη γίνει απευθείας για όλο το σήμα, αλλά για διαδοχικά overlapping τμήματα του σήματος, διάρκειας 20 sec, με βήμα μεταξύ τους 5 sec (δηλαδή πρώτα για το διάστημα [0,20] sec, μετά για το [5,25] sec, κοκ)

Καλή συνέχεια, Χρήστος

KonstantinosRiz commented 4 years ago

Καλησπέρα, Όταν λέτε overlapping ("με επικάλυψη" στην εκφώνηση) 5 sec δεν σημαίνει ότι το κοινό τμήμα που κόβουν και τα δύο φίλτρα είναι 5 sec; Στο παράδειγμα που αναφέρατε όμως το overlapping κομμάτι δεν είναι το [5, 20], δηλαδή 15 sec; Αυτό που περιγράφετε ακούγεται όντως σαν "βήμα" όπως είπατε παραπάνω αλλά νιώθω ότι είναι διαφορετικά πράγματα (δεν ξέρω αν εδώ έχει πολλή σημασία βέβαια). Ποιο από τα δύο θέλουμε τελικά;

cgaroufis commented 4 years ago

Καλησπέρα,

Good catch - στην εκφώνηση το εννοούμε ως βήμα (οπότε η επιθυμητή απόσταση μεταξύ δύο διαδοχικών πλαισίων είναι 5 sec) και όχι ως overlap (στην οποία περίπτωση, αν το overlap ήταν 5 sec το δεύτερο παράθυρο θα ήταν το [15, 35] sec). Θα ανέβει διορθωμένη έκδοση της εκφώνησης.

Καλή συνέχεια, Χρήστος

KonstantinosRiz commented 4 years ago

Ωραία, ευχαριστώ για την διευκρίνιση!