Πίνακας περιεχομένων:
Βίντεο: Φίλτρο FIR για πιο αξιόπιστη ανίχνευση συχνότητας: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Είμαι ένας πολύ μεγάλος θαυμαστής του akellyirl που διδάσκει σχετικά με την Αξιόπιστη Ανίχνευση Συχνότητας χρησιμοποιώντας Τεχνικές DSP, αλλά μερικές φορές η τεχνική που χρησιμοποίησε δεν είναι αρκετά καλή αν έχετε θορυβώδεις μετρήσεις.
Μια εύκολη λύση για να λάβετε μια καθαρότερη είσοδο για τον ανιχνευτή συχνότητας είναι να εφαρμόσετε κάποιο είδος φίλτρου γύρω από τη συχνότητα που θέλετε να εντοπίσετε.
Δυστυχώς, η δημιουργία ενός ψηφιακού φίλτρου δεν είναι εύκολη και περιλαμβάνει αρκετά μαθηματικά. Έτσι σκέφτηκα να δημιουργήσω ένα είδος προγράμματος για να απλοποιήσω τη δημιουργία τέτοιων φίλτρων, για να επιτρέψω σε οποιονδήποτε να τα χρησιμοποιήσει στα έργα του χωρίς να εμβαθύνει στις λεπτομέρειες.
Σε αυτό το Instructable, πρόκειται να εντοπίσω ένα ημιτονοειδές κύμα 50Hz σε μια θορυβώδη μέτρηση με ένα Arduino Uno (το Arduino δεν είναι πραγματικά απαραίτητο).
Βήμα 1: Το πρόβλημα
Φανταστείτε ότι τα μετρημένα δεδομένα εισόδου μοιάζουν με την καμπύλη παραπάνω - αρκετά θορυβώδη.
Αν κατασκευάσουμε έναν απλό ανιχνευτή συχνότητας όπως αυτόν του Akellyirl's Instructable, το αποτέλεσμα είναι "-inf" ή στην περίπτωση του παρακάτω κώδικα: "Ναι, πολύς θόρυβος …"
Σημείωση: Χρησιμοποίησα σχεδόν όλο τον κώδικα του akellyirl, αλλά πρόσθεσα έναν πίνακα rawData στο πάνω μέρος που περιέχει τις θορυβώδεις μετρήσεις.
Παρακάτω μπορείτε να βρείτε ολόκληρο τον κώδικα σε ένα αρχείο που ονομάζεται "unfiltered.ino".
Βήμα 2: Η λύση
Δεδομένου ότι τα δεδομένα εισόδου είναι θορυβώδη, αλλά γνωρίζουμε τη συχνότητα που ψάχνουμε, μπορούμε να χρησιμοποιήσουμε ένα εργαλείο που δημιούργησα που ονομάζεται easyFIR για να δημιουργήσουμε ένα φίλτρο Bandpass και να το εφαρμόσουμε στα δεδομένα εισόδου, το οποίο έχει ως αποτέλεσμα μια πολύ καθαρότερη είσοδο για τον ανιχνευτή συχνότητας (εικόνα παραπάνω).
Βήμα 3: EasyFIR
Το εργαλείο easyFIR είναι αρκετά εύκολο στη χρήση, απλώς κατεβάστε το αποθετήριο GitHub και εκτελέστε το αρχείο easyFIR.py με ένα δείγμα των μετρήσεων σας (σε μορφή CSV).
Εάν ανοίξετε το αρχείο easyFIR.py, θα βρείτε 5 παραμέτρους (δείτε την παραπάνω εικόνα) που μπορείτε και πρέπει να αλλάξετε ανάλογα με το αποτέλεσμα που θα θέλατε να επιτύχετε. Αφού τροποποιήσετε τις 5 παραμέτρους και εκτελέσετε το αρχείο python, θα δείτε τους υπολογισμένους συντελεστές στο τερματικό σας. Αυτοί οι συντελεστές είναι καθοριστικοί για το επόμενο βήμα!
Περισσότερες πληροφορίες για την ακριβή χρήση μπορείτε να βρείτε εδώ:
Βήμα 4: Φιλτράρισμα
Τώρα αν έχετε υπολογίσει τους απαιτούμενους συντελεστές φίλτρου, είναι πολύ εύκολο να εφαρμόσετε το πραγματικό αρχείο στο ανιχνευτή συχνότητας.
Όπως μπορείτε να δείτε στην παραπάνω εικόνα, χρειάζεται μόνο να προσθέσετε τους συντελεστές, τη συνάρτηση applyFilter και στη συνέχεια να φιλτράρετε τις μετρήσεις εισόδου.
Παρακάτω μπορείτε να βρείτε ολόκληρο τον κώδικα σε ένα αρχείο που ονομάζεται "filtered.ino".
Σημείωση: Χάρη σε αυτό το Stack Overflow Post για τον υπέροχο αλγόριθμο εφαρμογής φίλτρου!
Βήμα 5: Απολαύστε
Όπως μπορείτε να δείτε, τώρα είμαστε σε θέση να ανιχνεύσουμε ένα σήμα 50Hz ακόμη και σε θορυβώδες περιβάλλον;
Μη διστάσετε να προσαρμόσετε την ιδέα και τον κωδικό μου στις ανάγκες σας. Θα ήμουν πολύ ευγνώμων να συμπεριλάβω τις βελτιώσεις σας!
Αν σας αρέσει η δουλειά μου, θα εκτιμούσα πραγματικά αν υποστηρίζατε τη δουλειά μου με το αστέρι στο GitHub!
Ευχαριστώ για την υποστήριξη!:)
Συνιστάται:
Φίλτρο ελεγχόμενης τάσης MS-20 για φθηνό: 53 βήματα
MS-20 Φίλτρο ελεγχόμενης τάσης για φθηνό: Τι χρειάζεστε: Όλα τα εξαρτήματα για αυτήν την κατασκευή Μια καθαρή, καλά φωτισμένη επιφάνεια εργασίας Το κολλητήρι σας Συγκολλητική πένσα, απογυμνωτές σύριγγας, τσιμπιδάκια, ό, τι άλλο Ένα μεγάλο κομμάτι στόκος αφίσας για να κρατήσει τη δουλειά σας στη θέση This Instructable! Θυμηθείτε, θα χρειαστείτε ένα
Ηλιακό φίλτρο 58 χιλιοστών για DSLR: 6 βήματα
Ηλιακό φίλτρο 58 Mm για DSLR: Καθαρό ηλιακό φίλτρο για τηλεφακούς φακούς DSLR. Το IMHO, φαίνεται πολύ καλύτερο από τις χειροτεχνίες από χαρτόνι
Φίλτρο χαμηλής διέλευσης για υπογούφερ με 4558D IC: 6 βήματα
Low Pass Filter for Subwoofer With 4558D IC: Σε αυτό το έργο θα σας δείξω πώς μπορείτε να φτιάξετε ένα Low Pass Filter με 4558D IC για Subwoofer. Ας ξεκινήσουμε
Πώς να φτιάξετε φίλτρο χαμηλής διέλευσης για υπογούφερ με NE5532 IC - DIY (ELECTROINDIA): 4 Βήματα
Πώς να φτιάξετε φίλτρο χαμηλής διέλευσης για υπογούφερ με NE5532 IC | DIY (ELECTROINDIA): Σε αυτό το έργο θα σας δείξω πώς μπορείτε να φτιάξετε ένα Low Pass Filter για Subwoofer. Ας ξεκινήσουμε
Ένας πραγματικός τρόπος για να περάσετε οποιοδήποτε φίλτρο διαδικτύου: 3 βήματα
Ένας πραγματικός τρόπος για να περάσετε οποιοδήποτε φίλτρο Διαδικτύου: ΧΡΕΙΑΖΕΤΕ ΟΔΗΓΙΑ ΦΛΑΣ Αυτό είναι το πρώτο μου διδακτικό, οπότε μην είστε σκληρός μαζί μου Αυτό θα σας επιτρέψει να παρακάμψετε οποιοδήποτε φίλτρο διαδικτύου, όπως λέει ο τίτλος, το χρησιμοποιώ στο λύκειό μου. Εργασίες για σχολείο, ή δουλειά, σχεδόν οτιδήποτε άλλο. Μετά από πολλές προσπάθειες βρήκα