Πίνακας περιεχομένων:

Arduino: Frequency Transform (DFT): 6 βήματα
Arduino: Frequency Transform (DFT): 6 βήματα

Βίντεο: Arduino: Frequency Transform (DFT): 6 βήματα

Βίντεο: Arduino: Frequency Transform (DFT): 6 βήματα
Βίντεο: Discrete Fourier Transform (DFT) for the given sequence 2024, Ιούλιος
Anonim
Arduino: Frequency Transform (DFT)
Arduino: Frequency Transform (DFT)

Αυτό το πρόγραμμα είναι να υπολογίσει τον μετασχηματισμό συχνότητας στο arduino με έλεγχο του χτυπήματος στις παραμέτρους. επιλύεται χρησιμοποιώντας βεβηλωμένο τέταρτο μετασχηματισμό.

αυτό δεν είναι FFT

Ο FFT είναι αλγόριθμος που χρησιμοποιείται για την επίλυση του DFT με μικρότερο χρόνο.

Κωδικός για FFT μπορείτε να βρείτε πουθενά.

Βήμα 1: Πώς λειτουργεί (έννοια):

Πώς λειτουργεί (έννοια)
Πώς λειτουργεί (έννοια)
Πώς λειτουργεί (έννοια)
Πώς λειτουργεί (έννοια)

Το δεδομένο πρόγραμμα μετατροπής συχνότητας παρέχει εξαιρετικό έλεγχο της εξόδου που χρειάζεστε. αυτό το πρόγραμμα αξιολογεί το εύρος συχνοτήτων που δίνει ο χρήστης σε δεδομένη είσοδο για το σύνολο δεδομένων.

  • Στο σχήμα ένα σύνολο δεδομένων που αποτελείται από δύο συχνότητες που ονομάζονται f2 και f5 και πρέπει να ελεγχθούν. Τα f2 και f5 είναι τυχαία ονόματα για δύο συχνότητες, υψηλότερος αριθμός για σχετικά υψηλότερη συχνότητα. εδώ μικρότερη συχνότητα f2 έχει μεγαλύτερο πλάτος και f5 μικρότερο πλάτος.
  • Μπορεί να αποδειχθεί μαθηματικά ότι -το άθροισμα του πολλαπλασιασμού δύο αρμονικών συνόλων δεδομένων με διαφορετική συχνότητα τείνει στο μηδέν (υψηλότερος αριθμός δεδομένων μπορεί να οδηγήσει σε αποτέλεσμα ζύμωσης). Στην περίπτωσή μας Αν αυτές οι δύο συχνότητες πολλαπλασιασμού έχουν την ίδια (ή πολύ κοντινή) συχνότητα, το άθροισμα του πολλαπλασιασμού είναι μη μηδενικός αριθμός όπου το πλάτος εξαρτάται από το πλάτος των δεδομένων.
  • για την ανίχνευση συγκεκριμένης συχνότητας, το σύνολο δεδομένων μπορεί να πολλαπλασιαστεί με διάφορες συχνότητες δοκιμής και το αποτέλεσμα μπορεί να δώσει συστατικό αυτής της συχνότητας στα δεδομένα.

Βήμα 2: Πώς λειτουργεί (στον κώδικα):

Πώς λειτουργεί (στον κώδικα)
Πώς λειτουργεί (στον κώδικα)
Πώς λειτουργεί (στον κώδικα)
Πώς λειτουργεί (στον κώδικα)

για αυτά τα δεδομένα (f2+f5) ένα προς ένα f1 σε f6 πολλαπλασιάζεται και η τιμή του αθροίσματος σημειώνεται. αυτό το τελικό άθροισμα αντιπροσωπεύει το περιεχόμενο αυτής της συχνότητας. Η ανάπαυση (μη αντιστοίχιση) συχνότητας θα πρέπει να είναι ιδανικά μηδενική, αλλά δεν είναι δυνατή σε πραγματική περίπτωση. Για να γίνει το άθροισμα μηδέν απαιτείται να έχουμε άπειρο μέγεθος συνόλων δεδομένων.

  • όπως μπορεί να φανεί στο σχήμα f1 έως f6 δοκιμαστική συχνότητα και εμφανίζεται ο πολλαπλασιασμός του με το σύνολο δεδομένων σε κάθε σημείο.
  • στο δεύτερο σχήμα απεικονίζεται το άθροισμα αυτού του πολλαπλασιασμού σε κάθε συχνότητα. δύο κορυφές στο 1 και 5 είναι αναγνωρίσιμες.

Έτσι, χρησιμοποιώντας την ίδια προσέγγιση για τυχαία δεδομένα, μπορούμε να αξιολογήσουμε για τόσες πολλές συχνότητες και να αναλύσουμε το περιεχόμενο συχνότητας των δεδομένων.

Βήμα 3: Χρήση κώδικα για ανάλυση συχνότητας:

Χρήση κώδικα για ανάλυση συχνότητας
Χρήση κώδικα για ανάλυση συχνότητας

για παράδειγμα, ας χρησιμοποιήσουμε αυτόν τον κώδικα για να βρούμε DFT τετραγωνικού κύματος.

πρώτα επικολλήστε τον συνημμένο κώδικα (λειτουργία dft) μετά από βρόχο όπως φαίνεται στην εικόνα

8 ΟΡΟΙ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΕΙΔΙΚΟΙ

  1. μια σειρά από τις οποίες πρέπει να ληφθεί dft
  2. μέγεθος ενός πίνακα
  3. χρονικό διάστημα μεταξύ 2 μετρήσεων σε πίνακα σε milliSECONDS
  4. χαμηλότερη τιμή εύρους συχνοτήτων σε Hz
  5. ανώτερη τιμή εύρους συχνοτήτων σε Hz
  6. μέγεθος των βημάτων για το εύρος συχνοτήτων
  7. επανάληψη σήματος (τουλάχιστον 1) υψηλότερη ακρίβεια ζύμης αριθμού αλλά αυξημένος χρόνος διαλύματος
  8. λειτουργία παραθύρου:

    0 για παράθυρο 1 για παράθυρο επίπεδης κορυφής 2 για παράθυρο hann 3 για παράθυρο σφυρί

(εάν δεν έχετε ιδέα σχετικά με την επιλογή παραθύρου διατηρήστε την προεπιλογή 3)

παράδειγμα: dft (a, 8, 0.5, 0, 30, 0.5, 10, 3); εδώ a είναι ένας πίνακας μεγέθους 8 στοιχείου που πρέπει να ελεγχθεί για 0 Hz έως 30 Hz με 0,5 βήματα (0, 0.5, 1, 1.5,…, 29, 29.5, 30) 10 παράθυρο επανάληψης και σφυρηλάτησης

εδώ είναι δυνατόν να χρησιμοποιηθεί πίνακας μεγαλύτερου μεγέθους όσο μπορεί να χειριστεί το arduino.

Βήμα 4: Έξοδος:

Παραγωγή
Παραγωγή
Παραγωγή
Παραγωγή

αν σχολιάσετε

Serial.print (f); Serial.print ("\ t");

από τον σειριακό σχεδιαστή κώδικα θα δοθεί η φύση του φάσματος συχνοτήτων, αν όχι η σειριακή οθόνη θα δώσει συχνότητα με το πλάτος της.

Βήμα 5: Έλεγχος διαφόρων μεγεθών παραθύρου και δείγματος:

Έλεγχος διαφόρων μεγεθών παραθύρων και δειγμάτων
Έλεγχος διαφόρων μεγεθών παραθύρων και δειγμάτων

στο σχήμα, η συχνότητα του ημιτονοειδούς κύματος μετριέται χρησιμοποιώντας διαφορετική ρύθμιση.

Βήμα 6: Παράδειγμα:

Παράδειγμα
Παράδειγμα

συγκρίνεται ο μετασχηματισμός των δεδομένων χρησιμοποιώντας SciLab και arduino.

Συνιστάται: