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

LAB 2 2.4 #56

Open giorgoskallitsis opened 4 years ago

giorgoskallitsis commented 4 years ago

Καλησπερα σας προσπαθω να υλοποιησω το binomial φιλτρο στο ερωτημα 2.4 μεσω της lfilter. Υπολογισα τον αριθμητη και τον παρανομαστη της συναρτησης H(z) και ειδα πως ο ορος α[0] (δηλαδη ο σταθερος ορος στον παρανομαστη) μου προεκυψε ισος με το 0 (ο παρανομαστης που βρηκα ειναι ο 1*z^(-1)). Οταν πηγα να το υλοποιησω στην python, μου εβγαλε BUG πως ο ορος α[0] δεν μπορει να ειναι 0, γιατι δεν υποστηριζεται απο την python. Τι μπορω να κανω?

cgaroufis commented 4 years ago

Εδώ, για την υλοποίηση της lfilter δε σου χρειάζονται οι συντελεστές του μετασχηματισμού Ζ της συνάρτησης, αλλά τα διανύσματα συντελεστών b[n],a[n] της εξίσωσης διαφοράς που περιγράφει το φίλτρο (τσέκαρε κ το documentation της εντολής για περισσότερες πληροφορίες).- εναλλακτικά, μπορείς να της περάσεις ως ορίσματα το διάνυσμα κρουστικής απόκρισης του φίλτρου, h[n], και τη μονάδα (καθότι σε αυτή την περίπτωση συμπίπτουν με τα διανύσματα b,a, δοθέντος του time shift κατά 1 όρο).

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

giorgoskallitsis commented 4 years ago

Η εξισωση διαφορων που βρισκω ειναι: y[n]=0.25x[n-1]+0.5x[n]+0.25x[n+1]. O ορος με το χ[n+1] με χαλαει κυριως, γιατι στη μορφη της Ifilter ολοι οι οροι και στο y και στο x ειναι της μορφης [n],[n-1] κλπ. Γι αυτο, ουσιαστικα εθεσα οπου n το n-1 ωστε να απαλλαγω απο τον ορο με το x+1, αλλα τοτε ο συντελεστης α0 του y[n] εγινε 0, αφου ο ορος αυτος μετατραπηκε σε y[n-1]. Αυτη ηταν πρακτικα η ερωρηση μου

cgaroufis commented 4 years ago

Καλησπέρα,

Αν θέλεις να εισαι τεχνικά ακριβής, μπορείς να υπολογίσεις το z[n] = y[n-1] = 0.25x[n] + 0.5x[n-1] + 0.25x[n-2], μέσω της lfilter() (ή της convolve()) και στη συνέχεια να μετατοπίσεις κατά ένα δείγμα τη z.

Χρήστος

giorgoskallitsis commented 4 years ago

Ναι εχετε δικιο, ευχαριστω παρα πολυ!