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

Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python): 11 βήματα
Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python): 11 βήματα

Βίντεο: Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python): 11 βήματα

Βίντεο: Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python): 11 βήματα
Βίντεο: Ολοκληρώστε το μάθημα TypeScript σε μια ώρα | Δακτυλογραφία για αρχάριους 2024, Ιούλιος
Anonim
Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python)
Πειράματα στην προηγμένη καταγραφή δεδομένων (χρησιμοποιώντας Python)

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

(Μπορείτε να δείτε όλο τον κώδικα και να τον κατεβάσετε από: Κωδικός στο GitHub Μπορείτε να ξεκινήσετε την προβολή, ίσως σε άλλο παράθυρο, με μόλις 2 κλικ)

Συνήθως η καταγραφή δεδομένων περιλαμβάνει τα ακόλουθα:

  • Απόκτηση δεδομένων: Διαβάστε μερικά δεδομένα από έναν αισθητήρα. Συχνά αυτό είναι απλώς η ανάγνωση ενός μετατροπέα αναλογικού σε ψηφιακό (ADC) σε μια συσκευή όπως το Arduino.
  • Επεξεργασία δεδομένων: Όταν διαβάζετε μια τιμή ADC, η έξοδος των μετατροπέων κανονικά πρέπει να κλιμακωθεί στις σωστές μονάδες. Μπορεί επίσης να χρειαστεί να κάνετε κάποια προσαρμογή για να βαθμονομήσετε τις τιμές για να διορθώσετε σφάλματα αισθητήρα.
  • Φιλτράρισμα: Τα δεδομένα συνήθως περιέχουν κάποιο θόρυβο, μπορεί να φιλτραριστεί έτσι ώστε να αναζητάτε ένα σήμα στα δεδομένα σας και όχι το θόρυβο.
  • Αποθήκευση δεδομένων: Τα δεδομένα αποθηκεύονται, ίσως σε ένα αρχείο κειμένου, ίσως στο cloud. Τα δεδομένα θα πρέπει να επιβιώσουν ακόμη και αν το ρεύμα σβήσει. Είναι εύκολο να αποθηκεύσετε πάρα πολλά δεδομένα, έχουμε ένα μικρό κόλπο για να μειώσετε το χώρο αποθήκευσης δεδομένων.
  • Εμφάνιση δεδομένων: Μέθοδοι για να δείτε τα δεδομένα σας, όχι πραγματικά καταγραφή δεδομένων, αλλά αν δεν κάνετε κάποια εμφάνιση των δεδομένων, γιατί να τα συλλέξετε;
  • Απομακρυσμένη πρόσβαση: Δεν είναι απαραίτητο, αλλά είναι ωραίο να έχετε.

Τα περισσότερα εκπαιδευτικά περιλαμβάνουν μερικά αλλά όχι όλα τα παραπάνω, ή τα κάνουν με πολύ απλό τρόπο. Αυτό το εκπαιδευτικό θα αντιμετωπίσει 2 από τα συχνά παραβλεπόμενα προβλήματα καταγραφής και ως μπόνους θα σας δώσει ένα μέσο γραφικής παράστασης των δεδομένων σας χωρίς τη χρήση μιας υπηρεσίας cloud. Μπορείτε να χρησιμοποιήσετε ολόκληρο το πράγμα ή να τραβήξετε κομμάτια και να τα αναμίξετε σε ένα δικό σας έργο.

Βήμα 1: Εργαλεία και υλικά

Εργαλεία και υλικά
Εργαλεία και υλικά

Αυτό το παράδειγμα είναι όλα στην Python, επομένως θα λειτουργεί και τα στοιχεία μπορούν να χρησιμοποιηθούν σε σχεδόν οποιοδήποτε λειτουργικό σύστημα, συμπεριλαμβανομένων των Mac, PC, Linux και του Raspberry Pi.

Έτσι, για να χρησιμοποιήσετε αυτό το εκπαιδευτικό το μόνο που χρειάζεστε είναι ένα περιβάλλον Python 3.6 που εκτελείται και κάντε λήψη του συνημμένου κώδικα. Αφού εκτελέσετε τον κώδικα που έχω ρυθμίσει, μπορείτε να τον τροποποιήσετε για τα δικά σας πειράματα. Όπως συνηθίζεται με την Python, μπορεί να χρειαστεί να προσθέσετε κάποια πακέτα/μονάδες για να λειτουργήσουν όλα. Το περιβάλλον μου Spyder συνοδεύεται από όλα σχεδόν τα απαιτούμενα μέρη (βλ. Γραφική οδηγία με δυνατότητα απόδοσης με Python Screen Scraping). Όταν ξεκινάτε για πρώτη φορά το ρολόι για τυχόν μηνύματα σφάλματος, θα σας ενημερώσουν για τυχόν τμήματα που λείπουν στο περιβάλλον σας.

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

Για να κατανοήσετε τον κώδικα θα χρειαστεί να έχετε λίγη εμπειρία με αντικειμενοστραφή Python, εξηγώντας ότι αυτό είναι πέρα από το πεδίο αυτού του οδηγού, αλλά η Google θα πρέπει να σας δώσει οποιαδήποτε βοήθεια μπορεί να χρειαστείτε.

Σημειώστε τον κωδικό: (Κωδικός στο GitHub Μπορείτε να ξεκινήσετε την προβολή, ίσως σε άλλο παράθυρο, με μόλις 2 κλικ) είναι τώρα στο Python 3.6, οπότε το καλύτερο είναι να έχετε 3.6. Η παλαιότερη έκδοση του κώδικα βρίσκεται εδώ στους παρακάτω συνδέσμους.

Βήμα 2: Χτίζοντας ένα πείραμα

Χτίζοντας ένα Πείραμα
Χτίζοντας ένα Πείραμα

Υπάρχουν τρία βήματα προγραμματισμού (και γραμμές) για τη δημιουργία ενός πειράματος. Κάθε πείραμα είναι μια συνάρτηση στο αντικείμενο LoggingSim στο αρχείο simulate_logging.py. Ας δούμε το πείραμα 1 (μόνο το πρώτο γράφημα) το οποίο θα εκτελέσουμε στο επόμενο βήμα:

def experim_with_sample_rates (self):

εκτύπωση "" "Πείραμα με δείγματα τιμών Εξετάζοντας διαφορετικούς ρυθμούς δειγμάτων αλλάζοντας δέλτα Τ" "self.start_plot (plot_title =" Δείγματα τιμών - Μέρος 1/3: Delta T = 1.0 ") self.add_sensor_data (name =" dt = 1. ", πλάτος = 1., noise_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Κάθε πείραμα γράφεται ως δική του συνάρτηση, έτσι έχουμε μια γραμμή που ορίζει τη συνάρτηση (def πείραμα…..)

Η επόμενη, χωρίς σχόλια γραμμή, (start_plot (….) Δημιουργεί το αντικείμενο για το πείραμα και του δίνει ένα όνομα.

Η επόμενη γραμμή χωρίς σχόλια, (add_sensor_data (…) χωρίζεται σε πολλές γραμμές. Προσομοιώνει έναν αισθητήρα που μετρά ένα σήμα με πιθανό θόρυβο και κάποια επεξεργασία. Τα ορίσματα της συνάρτησης είναι τα εξής:

  • όνομα: ένα όνομα που τίθεται στο τελικό γράφημα για τον προσδιορισμό των δεδομένων
  • πλάτος: πόσο μεγάλο είναι το σήμα, θα χρησιμοποιούμε πάντα ένα πλάτος 1. σε αυτό το διδακτικό.
  • noise_amp: πόσο μεγάλος είναι ο θόρυβος, 0. δεν είναι θόρυβος, θα ξεκινήσουμε εδώ.
  • delta_t: ο χρόνος μεταξύ των μετρήσεων, ελέγχει το ρυθμό δείγματος.
  • max_t: ο μέγιστος χρόνος συλλογής δεδομένων, θα χρησιμοποιούμε πάντα 10 σε αυτό το εκπαιδευτικό.
  • run_ave: επεξεργασία χρησιμοποιώντας μέσο όρο λειτουργίας, 0 σημαίνει μη επεξεργασία.
  • trigger_value: επεξεργασία χρησιμοποιώντας σκανδάλη, 0 σημαίνει καμία επεξεργασία

η τελευταία γραμμή χωρίς σχόλια, (self.show_plot ……) εμφανίζει το γράφημα.

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

Βήμα 3: Εκτέλεση ενός πειράματος

Αυτός είναι ο κώδικας για την εκτέλεση ενός πειράματος. Όπως συμβαίνει συνήθως με την Python, τοποθετείται στο τέλος του αρχείου.

sim_logging = LoggingSim ()

sim_logging.experiment_with_sample_rates ()

Αυτό είναι μόνο 2 γραμμές:

  • Δημιουργία προσομοιωτή καταγραφής (LoggingSim ())
  • Εκτελέστε το (sim_logging.experiment_with_sample_rates ())

Στον κωδικό που έχω κατεβάσει έχω μερικές ακόμη γραμμές και σχόλια, θα πρέπει να είναι εύκολο να καταλάβω.

Βήμα 4: Πείραμα: Ποσοστό δείγματος

Πείραμα: Ποσοστό δείγματος
Πείραμα: Ποσοστό δείγματος
Πείραμα: Ποσοστό δείγματος
Πείραμα: Ποσοστό δείγματος
Πείραμα: Ποσοστό δείγματος
Πείραμα: Ποσοστό δείγματος

Ο προσομοιωτής, όπως έχει ρυθμιστεί εδώ, βγάζει πάντα ένα ωραίο ομαλό ημιτονοειδές κύμα πλάτους 1. Για αυτό το πείραμα θα μπλέξουμε με τον ρυθμό δειγματοληψίας, όπως προσαρμόστηκε με το delta_t, τη χρονική διαφορά μεταξύ των δειγμάτων. Δεν θα έχουμε θόρυβο ή άλλη επεξεργασία. Ο κώδικας χρησιμοποιεί 3 ρυθμούς δειγμάτων (delta_t = 1.0, 0.1 και 0.01.) Δεδομένου ότι τα γραφήματα πέφτουν το ένα πάνω στο άλλο, το πείραμα ρυθμίζεται για να παράγει 3 διαφορετικά γραφήματα. Τα γραφήματα που προκύπτουν είναι οι εικόνες για αυτό το βήμα.

def experim_with_sample_rates (self):

εκτύπωση "" "Πείραμα με δείγματα τιμών Εξετάζοντας διαφορετικούς ρυθμούς δειγμάτων αλλάζοντας το δέλτα Τ" "self.start_plot (plot_title =" Δείγματα τιμών πειράματος 1/3: Delta T = 1.0 ") self.add_sensor_data (name =" dt = 1. ", πλάτος = 1., noise_amp =.0, delta_t = 1., max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ------------- ----------------------------------- self.start_plot (plot_title = "Τιμές δείγματος πειράματος 2/3: Delta T = 0.1 ") self.add_sensor_data (name =" dt = 1. ", πλάτος = 1., noise_amp =.0, delta_t = 0.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () # ---------------------------------------------------- εαυτός.start_plot (plot_title = "Ποσοστά δείγματος πειράματος 3/3: Δέλτα Τ = 0,01") self.add_sensor_data (όνομα = "dt = 1.", πλάτος = 1., noise_amp =.0, delta_t = 0.01, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Για να το εκτελέσετε χρησιμοποιήστε τη γραμμή: sim_logging.experiment_with_sample_rates ()

Πιθανά συμπεράσματα:

  • Το πολύ χαμηλό ποσοστό δειγματοληψίας είναι πραγματικά κακό.
  • Τα υψηλά ποσοστά είναι συχνά καλύτερα.

(Python 3.6 Code στο GitHub παρακάτω σύνδεσμος στις οδηγίες, 2.7)

Βήμα 5: Πείραμα: Εμφάνιση θορύβου

Πείραμα: Εμφάνιση θορύβου
Πείραμα: Εμφάνιση θορύβου

Σε αυτό το πείραμα διατηρούμε το ίδιο σήμα, χρησιμοποιούμε ένα μέσο ρυθμό δείγματος και έχουμε εκεί διαφορετικές ποσότητες θορύβου (noise_amp =.0,.1, 1.0.) Εκτελέστε το με: sim_logging.experiment_showing_noise (). Η έξοδος είναι ένα γράφημα με 3 γραμμές.

Πιθανό συμπέρασμα:

Ο θόρυβος δυσκολεύει να δει το σήμα, μειώστε το αν μπορείτε

Ο κώδικας:

# ------------------------------------------------

def experim_showing_noise (self): print "" "Πείραμα που δείχνει θόρυβο Κοιτάζοντας διαφορετικές ποσότητες θορύβου αλλάζοντας το εύρος του θορύβου. ", amplitude = 1., noise_amp =.0, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name =" noise = 0.1 ", amplitude = 1., noise_amp =. 1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name = "noise = 1.0", amplitude = 1., noise_amp = 1., delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot ()

Βήμα 6: Πείραμα: Μειώστε τον θόρυβο με κινητό μέσο όρο

Πείραμα: Μειώστε τον θόρυβο με κινητό μέσο όρο
Πείραμα: Μειώστε τον θόρυβο με κινητό μέσο όρο
Πείραμα: Μειώστε τον θόρυβο με κινητό μέσο όρο
Πείραμα: Μειώστε τον θόρυβο με κινητό μέσο όρο

Ένας κινητός μέσος όρος (για παράδειγμα με μήκος 8) λαμβάνει τις τελευταίες 8 μετρήσεις και τις υπολογίζει κατά μέσο όρο. Εάν ο θόρυβος είναι τυχαίος, ελπίζουμε ότι ο μέσος όρος θα είναι κοντά στο 0. Εκτελέστε το πείραμα με: sim_logging.experiment_showing_noise (). Έξοδος ένα γράφημα.

Πιθανά συμπεράσματα:

  • Ένας κινητός μέσος όρος εξαλείφει μεγάλο μέρος του θορύβου
  • Όσο μεγαλύτερος είναι ο κινητός μέσος όρος, τόσο περισσότερη μείωση θορύβου
  • Ο μεγαλύτερος κινούμενος μέσος όρος μπορεί να μειώσει και να παραμορφώσει το σήμα

Ο κώδικας:

# ------------------------------------------------

def experim_with_moving_average (self): print "" "Experiment with MovingAverage Κοιτάζοντας διαφορετικό MovingAverage αλλάζοντας το μήκος. Όλοι έχουν τον ίδιο θόρυβο." " # ------------------ ------------------------------ self.start_plot (plot_title = "MovingAverage-Part 1/2: No Moving Average") self.add_sensor_data (name = "ave len = 0", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.show_plot () self.start_plot (plot_title = "MovingAverage-Part 2/2: Len 8 and 32") self.add_sensor_data (name = "ave len = 8", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 8, trigger_value = 0) self.add_sensor_data (name = "ave len = 32", amplitude = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 32, trigger_value = 0) self.show_plot ()

Βήμα 7: Πείραμα: Κινούμενος μέσος όρος και ποσοστό δείγματος

Πείραμα: Κινούμενος μέσος όρος και ποσοστό δείγματος
Πείραμα: Κινούμενος μέσος όρος και ποσοστό δείγματος

Σε αυτό το πείραμα συγκρίνουμε το ακατέργαστο σήμα με θόρυβο και 2 διαφορετικές παραλλαγές στη μείωση του θορύβου.

  1. Μέσος ρυθμός δείγματος και μέσος όρος λειτουργίας
  2. Υψηλός ρυθμός δειγματοληψίας και μεγάλος μέσος όρος λειτουργίας

Εκτελέστε το με: sim_logging …… Η έξοδος είναι ένα γράφημα. Νομίζω ότι είναι σαφές ότι το #2 κάνει καλύτερη δουλειά στη μείωση του θορύβου, οπότε θα μπορούσαμε να συμπεράνουμε ότι:

Ο υψηλός ρυθμός δειγματοληψίας και ο μεγάλος μέσος όρος λειτουργίας είναι καλός

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

Ο κώδικας:

def experim_with_moving_average_and_sample_rate (self):

εκτύπωση "" "Πειραματιστείτε με κινούμενο μέσο όρο και ρυθμό δείγματος, dt, ο μέσος όρος εκτέλεσης ποικίλλει" " # ---------------------------- -------------------- self.start_plot (plot_title = "Κινούμενος μέσος όρος και ρυθμός δείγματος") self.add_sensor_data (όνομα = "dt =.1 ra = 0 trig = 0 ", πλάτος = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 0, trigger_value = 0) self.add_sensor_data (name =" dt =.1 ra = 10 trig = 0 ", πλάτος = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (όνομα = "dt =.01 ra = 100 trig = 0", πλάτος = 1., noise_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value = 0) self.show_plot ()

Βήμα 8: Πείραμα: Καταγραφή με σκανδάλη

Πείραμα: Καταγραφή με σκανδάλη
Πείραμα: Καταγραφή με σκανδάλη

Σε αυτό το πείραμα προσθέτουμε ένα έναυσμα. Πρώτον, τι εννοώ με το έναυσμα; Ο σκανδάλος είναι μια τεχνική όπου συλλέγουμε δεδομένα αλλά τα αποθηκεύουμε μόνο αφού αλλάξει κάποια μεταβλητή κατά ένα σημαντικό ποσό. Σε αυτά τα πειράματα έβαλα ένα έναυσμα στη μεταβλητή χρόνου (άξονας x). Χρησιμοποιώντας τη σκανδάλη, μπορώ να πάρω τον υψηλό όγκο δεδομένων από την ταχεία δειγματοληψία και να την μειώσω σε πιο λογική ποσότητα δεδομένων. Είναι ιδιαίτερα χρήσιμο με υψηλά ποσοστά δειγμάτων και μακροπρόθεσμο μέσο όρο.

Πήρα τη γραμμή #2 από το τελευταίο πείραμα που ήταν "καλό" και πρόσθεσε ένα έναυσμα. Εκτελέστε το με: sim_logging …… Η έξοδος είναι ένα γράφημα, x γραμμές.

Τι γίνεται; Παίρνουμε μια "καλή" πλοκή με μια λογική ποσότητα δεδομένων (το ίδιο με το #1). Υπήρξε κάποιο κόστος σε υψηλότερη επεξεργασία. Συνολικά, ωστόσο, τα αποτελέσματα είναι περίπου ίδια με το #1 του χαμηλότερου δείγματος δείγματος με λιγότερο φιλτράρισμα. Μπορείτε να συμπεράνετε:

  • Ο μέσος όρος λειτουργίας με ενεργοποίηση μπορεί να δώσει καλή μείωση θορύβου με λογικές ποσότητες δεδομένων.
  • Η επιπλέον επεξεργασία μπορεί να μην δώσει τόσο καλύτερα αποτελέσματα και συνοδεύεται από κόστος.

Ο κώδικας:

# ------------------------------------------------

def experim_with_trigger (self): εκτύπωση "" "Πείραμα με ενεργοποίηση, dt, μέσος όρος και ενεργοποίηση όλων" "----------------------- ------------------------- self.start_plot (plot_title = "Ενεργοποίηση 1/1-Ενεργοποίηση") self.add_sensor_data (όνομα = "dt =.1 ra = 10, trig = 0 ", πλάτος = 1., noise_amp =.1, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (name =" dt =.01 ra = 100, trig =.1 ", πλάτος = 1., noise_amp =.1, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =.1) self.show_plot ()

=

Βήμα 9: Πείραμα: Καταγραφή με σκανδάλη - Μεγαλύτερος θόρυβος

Πείραμα: Καταγραφή με σκανδάλη - Μεγαλύτερος θόρυβος
Πείραμα: Καταγραφή με σκανδάλη - Μεγαλύτερος θόρυβος

Ας κάνουμε το ίδιο πείραμα με το τελευταίο βήμα και ενισχύουμε τον θόρυβο. Εκτελέστε το με: sim_logging …… Η έξοδος είναι ένα γράφημα, 2 γραμμές.

Τώρα η επιπλέον επεξεργασία φαίνεται να αξίζει περισσότερο. Ένα εύλογο συμπέρασμα εδώ μπορεί να είναι:

Η επιλογή της ποσότητας και του τύπου επεξεργασίας για τη μείωση του θορύβου εξαρτάται από το σήμα και τον θόρυβο

Ο κώδικας:

def experim_with_trigger_louder_noise (self):

εκτύπωση "" "Πιο δυνατός θόρυβος από προηγούμενο πείραμα" "self.start_plot (plot_title =" An Experiment with Trigger-Louder Noise ") self.add_sensor_data (name ="… dt =.1 ra = 10 ", πλάτος = 1., noise_amp =.5, delta_t =.1, max_t = 10., run_ave = 10, trigger_value = 0) self.add_sensor_data (name = "..dt =.01 ra = 100 tv =.1", πλάτος = 1., noise_amp =.5, delta_t =.01, max_t = 10., run_ave = 100, trigger_value =.1) self.show_plot ()

Βήμα 10: Κάντε τα δικά σας πειράματα

Κάντε τα δικά σας πειράματα
Κάντε τα δικά σας πειράματα

Σε αυτό το σημείο ελπίζω να βλέπετε ότι οι τεχνικές σε αυτό το εκπαιδευτικό μπορεί να είναι χρήσιμες στην καταγραφή δεδομένων, αλλά ότι πρέπει επίσης να χρησιμοποιηθούν με λίγη σκέψη. Ο πειραματισμός μαζί τους μπορεί να βοηθήσει στη διαδικασία.

Μερικές παρατηρήσεις σχετικά με τα πειράματα και πράγματα που μπορεί να εξετάσετε:

  • Τα ημιτονοειδή κύματα δεν είναι το μόνο ενδιαφέρον είδος σήματος, δοκιμάστε άλλα, άλλα κύματα ή ράμπες ή…..
  • Χρησιμοποίησα μια κανονική κατανομή για τον θόρυβο, υπάρχουν τόσα πολλά είδη θορύβου. θα πρέπει να λάβετε υπόψη τους άλλους
  • Οι μέσοι όροι λειτουργίας είναι μια απλή, αλλά όχι η μόνη μέθοδος για την εξέταση του θορύβου

Σημείωση: καταγραφή εικόνων από τη Wikipedia.

Βήμα 11: Χρήση των τεχνικών στο λογισμικό καταγραφής

Χρήση των τεχνικών στο λογισμικό καταγραφής σας
Χρήση των τεχνικών στο λογισμικό καταγραφής σας

Ο κώδικας μου είναι αντικειμενοστρεφής και η επεξεργασία για τον μέσο όρο και τον κανόνα ενεργοποίησης μπορεί απλώς να αντιγραφεί στο περιβάλλον Python και στη συνέχεια να χρησιμοποιηθεί. Τα αντικείμενα είναι:

  • DataTrigger στο data_trigger.py
  • MovingAverage στο move_average.py

Το κύριο αντικείμενό μου LoggingSim στο simulate_logging.py θα σας δώσει ένα καλό παράδειγμα για το πώς να το χρησιμοποιήσετε. Εάν χρησιμοποιείτε άλλη γλώσσα, μπορείτε να διαβάσετε τον κώδικα μου και να τον εφαρμόσετε στη γλώσσα σας.

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

Το παραπάνω γράφημα προέρχεται από το Graph Your Solar Power by russ_hensel το οποίο χρησιμοποιεί το ίδιο αντικείμενο μέσης λειτουργίας.

Συνιστάται: