Open giorgoskallitsis opened 4 years ago
Εδώ, για την υλοποίηση της lfilter δε σου χρειάζονται οι συντελεστές του μετασχηματισμού Ζ της συνάρτησης, αλλά τα διανύσματα συντελεστών b[n],a[n] της εξίσωσης διαφοράς που περιγράφει το φίλτρο (τσέκαρε κ το documentation της εντολής για περισσότερες πληροφορίες).- εναλλακτικά, μπορείς να της περάσεις ως ορίσματα το διάνυσμα κρουστικής απόκρισης του φίλτρου, h[n], και τη μονάδα (καθότι σε αυτή την περίπτωση συμπίπτουν με τα διανύσματα b,a, δοθέντος του time shift κατά 1 όρο).
Καλή συνέχεια, Χρήστος
Η εξισωση διαφορων που βρισκω ειναι: 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]. Αυτη ηταν πρακτικα η ερωρηση μου
Καλησπέρα,
Αν θέλεις να εισαι τεχνικά ακριβής, μπορείς να υπολογίσεις το z[n] = y[n-1] = 0.25x[n] + 0.5x[n-1] + 0.25x[n-2], μέσω της lfilter() (ή της convolve()) και στη συνέχεια να μετατοπίσεις κατά ένα δείγμα τη z.
Χρήστος
Ναι εχετε δικιο, ευχαριστω παρα πολυ!
Καλησπερα σας προσπαθω να υλοποιησω το binomial φιλτρο στο ερωτημα 2.4 μεσω της lfilter. Υπολογισα τον αριθμητη και τον παρανομαστη της συναρτησης H(z) και ειδα πως ο ορος α[0] (δηλαδη ο σταθερος ορος στον παρανομαστη) μου προεκυψε ισος με το 0 (ο παρανομαστης που βρηκα ειναι ο 1*z^(-1)). Οταν πηγα να το υλοποιησω στην python, μου εβγαλε BUG πως ο ορος α[0] δεν μπορει να ειναι 0, γιατι δεν υποστηριζεται απο την python. Τι μπορω να κανω?