THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Ψηφιακά Φίλτρα => Topic started by: Faidon on May 02, 2006, 05:15:57 am



Title: Αιτιατό φίλτρο;
Post by: Faidon on May 02, 2006, 05:15:57 am
Τα φίλτρα είναι αιτιατά συστήματα. Δηλαδή έχουν κρουστική απόκριση h(n)=0 για n<0. Οπότε η έξοδος προκύπτει από την συνέλιξη:

y(n)=Σ h(k)*x(n-k) ,  όπου το άθροισμα είναι από k=0 έως Ν-1

Τα φίλτρα αυτά είναι υλοποιήσιμα. Αφού για τον υπολογισμό της στιγμιαίας τιμής της εξόδου απαιτείται ο υπολογισμός του αθροίσματος χρησιμοποιώντας απλά Ν-1 προηρούμενες τιμές της εισόδου και τις Ν τιμές της απόκρισης του φίλτρου.

Εγώ δεν έχω καταφέρει να υλοποιήσω αιτιατό φίλτρο. Συγκεκριμένα για τα FIR φίλτρα: Αφού ορίσω την H(ω), υπολογίζω την h(n) από τον αντίστροφο μετασχηματισμό Fourier. Στη συνέχεια ορίζω παράθυρο π.χ. το ορθογώνιο από -N/2 έως N/2. Με μετασχηματισμό Fourier υπολογίζω την απόκριση εκ νέου. Τα αποτελέμστα είναι φυσιολογικά. Τα αναμενόμενα. Το θέμα είναι ότι αυτή η υλοποίηση δεν είναι ούτε αιτιατή ούτε υλοποιήσιμη. Συμφωνα με τα προηγούμενα η έξοδος θα υπολογιστεί από τον τύπο:

y(n)=Σ h(k)*x(n-k) ,  όπου το άθροισμα είναι από k=-Ν/2 έως Ν/2

Τότε για τον υπολογισμό της στιγμιαίας τιμής της εξόδου απαιτείται ο υπολογισμός του αθροίσματος χρησιμοποιώντας και Ν/2 επόμενες τιμές της εισόδου (για k=-N/2 έως -1). Αυτό πρακτικά είναι αδύνατο. Πως να μαντέψεις τις επόμενες τιμές της εισόδου αν αυτή είναι ενα πραγματικό τυχαίο σήμα;

Άν επιλέξω παράθυρο π.χ. το ορθογώνιο από 0 έως Ν-1 (όπως προτείνουν και οι σημειώσεις) για Ν=50 έχω την απόκριση συχνότητας που επισυνάπτω σε διάγραμμα. Είναι αυτή σοβαρή υλοποίηση του φίλτρου;

Οποιαδήποτε βοήθεια, οποιαδήποτε σχόλια είναι καλοδεχούμενα.


Title: Απ: Αιτιατό φίλτρο;
Post by: JAs0n-X on May 02, 2006, 11:54:23 am
Στο μαθημα μας ειχε πει οτι η αιτιατοτητα στα ψηφιακα φιλτρα δεν εχει το νοημα της υλοποιησιμοτητας οπως στα αναλογικα.

Για να υπολογισεις την εξοδο ενος τετοιου φιλτρου:

α)Μπορεις να το υπολογισεις με καθυστερηση. Δηλαδη να φιλτραριστει κανονικα αλλα το αποτελεσμα θα το παιρνεις με μια χρονικη καθυστερηση εδω πχ 50 δειγματα. Αυτο καμμια φορα δεν δημιουργει προβλημα πχ αν φιλτραρεις μια φωτογραφια, δημιουργει ομως αν θες πχ να κοβεις τα μπασα σε ενα mp3!

β)κατι μας ειχε πει ο Μουστακας οταν εχουμε αυτη την περιτωση...
οτι μετατοπιζουμε το φιλτρο κλπ αλλα δεν το θυμαμαι!


Title: Re: Αιτιατό φίλτρο;
Post by: Faidon on May 02, 2006, 17:22:35 pm
Βασικά στην περίπτωση που σου έχεις ένα έτοιμο δεδομένο π.χ. ένα wav νομίζω ότι δεν υπάρχει πρόβλημα. Αφού έχεις όλες τις στιγμιαίες τιμές τις εισόδο δοσμένες (και τις "μελλοντικές"). Αν όμως θες να χρησιμοποιήσεις ένα ψηφιακό φίλτρο για να δώσεις πρίμα ή μπάσα στον ήχο ενός LIVE συγκροτήμαστος, τι κάνεις;
1. Να μαντέψεις τι θα παίξουν τις επόμενες 50 στιγμές δε γίνεται...
2. Να περιμένεις 50 στιγμές και μετά να παίξεις τη μουσική από τα ηχεία; Ίσως...
Δεν ξέρω αν ισχύει το παρακάτω: Έστω ότι για το συγκρότημα (όπως και τα wav) θεωρείς FS=44100Hz.
Τότε η διάρκεια της καθυστέρησης είναι 50*ΔΤ=50/FS=1.13ms. Μία τέτοια καθυστέρηση όντως δε θα πειράξει κανέναν.

Τελοσπάντων. Η απορία μου είναι η εξής: Τα φίλτρα τα σχεδιάζουμε με παράθυρα για n=-N/2 έως N/2 (όπως προτείναι το βιβλίο του Πανα) ή με παράθυρα για n=0 έως N-1 (όπως προτείνουν οι σημειώσεις);


Title: Απ: Αιτιατό φίλτρο;
Post by: JAs0n-X on May 02, 2006, 23:37:40 pm
Τελοσπάντων. Η απορία μου είναι η εξής: Τα φίλτρα τα σχεδιάζουμε με παράθυρα για n=-N/2 έως N/2 (όπως προτείναι το βιβλίο του Πανα) ή με παράθυρα για n=0 έως N-1 (όπως προτείνουν οι σημειώσεις);

Νομιζω το πρωτο, τουλαχιστον ετσι το καναμε στην εργασια...
θα μαθουμε οταν την παρουμε διορθωμενη!