Τα ADC είναι ζωτικής σημασίας για τη μετατροπή όλων των ειδών αναλογικών σημάτων σε ψηφιακά, αλλά πώς λειτουργούν στην πραγματικότητα;
Βασικά Takeaways
- Τα ADC χρησιμοποιούνται ευρέως για τη μετατροπή αναλογικών σημάτων, όπως ήχου και φωτός, σε ψηφιακές τιμές που μπορούν να χρησιμοποιηθούν σε διάφορες εφαρμογές.
- Ο ρυθμός δειγματοληψίας ενός ADC καθορίζει τον αριθμό των μετρήσεων που λαμβάνονται ανά δευτερόλεπτο, με υψηλότερους ρυθμούς δειγματοληψίας που επιτρέπουν πιο ακριβή αναπαράσταση σήματος.
- Ο ρυθμός bit ενός ADC επηρεάζει την ποιότητα του δείγματος που λαμβάνεται, με περισσότερα bits που έχουν ως αποτέλεσμα πιο ομαλές και ακριβέστερες μετρήσεις. Διαφορετικοί τύποι ADC προσφέρουν διαφορετικούς συμβιβασμούς όσον αφορά την ταχύτητα, την ακρίβεια και την κατανάλωση ενέργειας.
Οι μετατροπείς αναλογικού σε ψηφιακό (ADC) είναι απίστευτα χρήσιμοι για τη μετατροπή των πραγματικών φαινομένων σε τιμές που μπορούμε να χρησιμοποιήσουμε σε έργα προγραμματισμού. Πώς όμως μπορεί ένα ADC να μετατρέψει αναλογικά σήματα σε ψηφιακά που μπορούμε να χρησιμοποιήσουμε οπουδήποτε;
Σε τι χρησιμοποιούνται τα ADC;
Θα βρείτε ADC σχεδόν παντού. Βρίσκονται στο τηλέφωνό σας και μετατρέπουν τη φωνή σας σε μια σειρά από δυαδικές τιμές. Βρίσκονται στο αυτοκίνητό σας, μετρώντας την περιστροφή των τροχών σας. Βρίσκονται σε παλμογράφους, βοηθώντας στη λήψη σημάτων και στην αναπαράστασή τους. Ωστόσο, το μέρος που θα τα έχουν χρησιμοποιήσει οι περισσότεροι είναι ο κόσμος του βίντεο και του ήχου, όπου η μεταφορά φωτός και ήχου σε έναν ψηφιακό χώρο είναι θεμελιώδης.
Τι είναι το ποσοστό δείγματος; Πώς επηρεάζει το ποσοστό δειγματοληψίας ένα ADC;
Μία από τις πιο κρίσιμες μετρήσεις επικεφαλίδας ενός ADC είναι ο ρυθμός δειγματοληψίας: ο αριθμός των μετρήσεων που λαμβάνονται κάθε δευτερόλεπτο.
Ένας πολύ υψηλής ποιότητας παλμογράφος μπορεί να πάρει δέκα δισεκατομμύρια δείγματα ανά δευτερόλεπτο. Το τυχερό μικρό MCP3008 ADC μπορεί να πάρει σχετικά μέτρια διακόσια χιλιάδες. Στον κόσμο του ήχου, ένας ρυθμός δειγματοληψίας 44.100 ανά δευτερόλεπτο (44,1 kHz) είναι τυπικός.
Όσο περισσότερα δείγματα παίρνουμε, τόσο με μεγαλύτερη ακρίβεια μπορούμε να αναπαραστήσουμε ένα σήμα. Μερικές φορές, αυτό είναι απαραίτητο. μερικές φορές, δεν είναι. Ας υποθέσουμε ότι φτιάχνουμε μια τράπεζα fader (σχεδιασμένη για τον έλεγχο ηλεκτρονικών συσκευών, όπως θα δείτε σε ένα γραφείο φωτισμού ή ήχου) με μερικές δεκάδες ποτενσιόμετρα. Σε αυτήν την περίπτωση, οι τιμές που πρέπει να μετρήσουμε είναι απίθανο να αλλάξουν εκατομμύρια φορές το δευτερόλεπτο, καθώς τα δάχτυλά μας δεν μπορούν να κινηθούν τόσο γρήγορα. Απλώς χρειαζόμαστε αρκετά δείγματα για το αποτέλεσμα να είναι ομαλό και να ανταποκρίνεται.
Τι είναι το Bitrate; Επηρεάζει το bitrate την ποιότητα ενός ADC;
Θα πρέπει επίσης να σκεφτούμε την ποιότητα του δείγματος που λαμβάνουμε. Αυτό καθορίζεται σε μεγάλο βαθμό από το bitrate, το οποίο μας λέει πόσες καταστάσεις ενεργοποίησης-απενεργοποίησης μπορούμε να χρησιμοποιήσουμε για να αναπαραστήσουμε ψηφιακά την τάση. Όσο περισσότερα bits έχουμε, τόσο περισσότερες πιθανές τιμές μπορούμε να καταγράψουμε σε οποιοδήποτε δεδομένο δείγμα και τόσο πιο ομαλό και ακριβές το τελικό αποτέλεσμα.
Έχουμε γράψει για το δυαδικό και πώς λειτουργεί, οπότε αν δεν είστε σίγουροι, αυτό είναι ένα καλό μέρος για να ξεκινήσετε. Πόσα bits χρειαζόμαστε; Και πάλι, εξαρτάται από το τι προσπαθούμε να πετύχουμε. Μερικές φορές, μπορεί να περιοριζόμαστε από το πρωτόκολλο που χρησιμοποιούμε. Για παράδειγμα, το πρωτόκολλο MIDI 1.0 περιορίζεται σε τιμές επτά bit (και περιστασιακά δεκατεσσάρων bit). Σε άλλες περιπτώσεις, ο περιοριστικός παράγοντας μπορεί να είναι η ανθρώπινη αντίληψη. Εάν η αυξημένη πιστότητα δεν επιφέρει κάποια αισθητή βελτίωση στο αποτέλεσμα, μπορεί να μην αξίζει τον κόπο.
Πώς η πολυπλεξία βελτιώνει την ποιότητα του ADC;
Δημοφιλή τσιπ ADC όπως το ADS1115 και το MCP3008 προσφέρουν πολλές εισροές. Αλλά κάτω από την κουκούλα, στην πραγματικότητα περιέχουν μόνο ένα μόνο ADC. Αυτό είναι δυνατό λόγω των πολυπλέκτη που είναι ενσωματωμένοι σε αυτές τις συσκευές. Οι πολυπλέκτης είναι απολύτως παντού στον κόσμο των ηλεκτρονικών και των τηλεπικοινωνιών. Είναι ψηφιακοί διακόπτες που λειτουργούν ως έλεγχος κυκλοφορίας για το ADC σας. Το ADC μπορεί να δοκιμάσει ένα κανάλι και μετά το επόμενο και μετά το επόμενο. Έτσι, εάν έχετε οκτώ κανάλια και ρυθμό δειγματοληψίας 200.000, μπορείτε να κάνετε περιστροφή σε όλα, λαμβάνοντας 25.000 δείγματα ανά κανάλι.
Τι τύποι ADC Υπάρχουν;
Τα ADC λειτουργούν με διάφορους τρόπους, ανάλογα με το κόστος και τις δυνατότητες που απαιτούνται.
ΕΝΑ Flash ADC λειτουργεί μέσω ενός πολύ περίπλοκου διαιρέτη τάσης. Μια ομάδα αντιστάσεων διαιρεί την τάση αναφοράς σε αυξήσεις, οι οποίες στη συνέχεια ελέγχονται έναντι της εισόδου μέσω μιας συστοιχίας συγκριτών. Τα Flash ADC είναι αστραπιαία, αλλά είναι περιορισμένα όσον αφορά το βάθος bit, λόγω του αριθμού των απαιτούμενων συγκριτών. Είναι επίσης πεινασμένοι για εξουσία για τον ίδιο λόγο.
ΕΝΑ Υποκατηγορία ADC επιδιώκει να αντισταθμίσει αυτές τις αδυναμίες μοιράζοντας την εργασία σε δύο ξεχωριστές μονάδες: η μία για να υπολογίσει χονδρικά την τάση και μετά τη δεύτερη για να την επεξεργαστεί με ακρίβεια. Διαχωρίζοντας τα πράγματα, μπορούμε να μειώσουμε τον αριθμό των συγκριτών. Ορισμένοι ADC που υποβαθμίζονται θα χωρίσουν την εργασία σε τρία στάδια, με ενσωματωμένη διόρθωση σφαλμάτων στην πορεία.
SAR (Μητρώο διαδοχικής προσέγγισης) Τα ADC κάνουν τη δουλειά τους μέσω ένα είδος δυαδικής αναζήτησης. Ας υποθέσουμε ότι έχουμε οκτώ bits να συμπληρώσουμε. Το SAR θα ξεκινά από 10000000, που είναι η μεσαία τιμή (00000000 είναι η κάτω και 11111111 η κορυφή). Εάν η τάση υπερβεί αυτό το μέσο, το SAR θα διατηρήσει το αριστερό ψηφίο ως 1. Εάν δεν το κάνει, το SAR θα ορίσει το αριστερό ψηφίο στο 0. Μπορούμε να επαναλάβουμε τη διαδικασία με το επόμενο ψηφίο και ούτω καθεξής αναδρομικά. Αυτό θα κάνει την εικαζόμενη τιμή να μετακινηθεί προς την πραγματική τιμή σταδιακά:
Με αυτόν τον τρόπο, περιορίζουμε συνεχώς την αναζήτηση, χωρίζοντας τις δυνατότητες στη μέση και ρωτώντας αν το αποτέλεσμα είναι υψηλότερο ή χαμηλότερο από το μέσο. Σε αυτήν την περίπτωση, η τιμή είναι κάπου μεταξύ 0 και 255. μετά από μερικές επαναλήψεις, το ADC έχει βρει ότι είναι περίπου 77.
Σίγμα-δέλτα Οι μετατροπείς είναι ίσως οι πιο δύσκολο να κατανοηθούν. Χρησιμοποιούνται για εφαρμογές μουσικής υψηλής ακρίβειας και μέτρησης σήματος. Λειτουργούν υπερδειγματοληψία ενός σήματος και τελειοποιώντας το αποτέλεσμα χρησιμοποιώντας τρομερά πολύπλοκο φιλτράρισμα και μαθηματικά. Αυτή η διαδικασία μειώνει αποτελεσματικά τον ρυθμό δειγματοληψίας ενώ αυξάνει την ακρίβεια. Αυτοί οι ADC είναι υπέροχοι όταν ο θόρυβος και η ακρίβεια έχουν μεγαλύτερη σημασία από την ταχύτητα.
Τέλος, έχουμε Ενσωμάτωση ADC, τα οποία είναι ακόμη πιο αργά από τα σίγμα-δέλτα. Λειτουργούν με τη βοήθεια ενός πυκνωτή, ο ρυθμός φόρτισης του οποίου μπορεί να χρησιμοποιηθεί για τον προσδιορισμό της τάσης εισόδου. Ο ρυθμός δειγματοληψίας εδώ συχνά συγχρονίζεται με τη συχνότητα τροφοδοσίας, η οποία μπορεί να χρησιμοποιηθεί για τη διατήρηση του θορύβου στο απόλυτο ελάχιστο.
Τι είναι η Θεωρία Nyquist-Shannon;
Ας υποθέσουμε ότι θέλουμε να περιγράψουμε ένα αναλογικό σήμα ψηφιακά. Για να γίνει αυτό, χρειαζόμαστε τουλάχιστον δύο πόντους για κάθε δεδομένο κύκλο: έναν στην κορυφή και έναν στο κάτω μέρος. Έτσι, η συχνότητα δειγματοληψίας μας πρέπει να είναι τουλάχιστον διπλάσια από την υψηλότερη συχνότητα που περιμένουμε να μετρήσουμε.
Αυτή είναι γνωστή ως συχνότητα Nyquist, από το όνομα του Σουηδοαμερικανού φυσικού Harry Nyquist. Η θεωρία πήρε το όνομά της από τον Nyquist και τον Claude Shannon (διαπρεπή μαθηματικό και κρυπτογράφο) αλλά όχι από τον Edmund Whittaker, ο οποίος είχε την ιδέα πριν από τον έναν από τους δύο.
Σε όποιον πιστεύουμε τη θεωρία, υπάρχει πρόβλημα με αυτήν. Είναι αδύνατο να γνωρίζουμε εκ των προτέρων πότε θα φτάσουν το πάνω και το κάτω μέρος μιας κυματομορφής. Τι γίνεται αν πάρουμε τα δείγματά μας στη μέση της εισερχόμενης κυματομορφής; Παρατηρήστε πώς μια μετατόπιση του εισερχόμενου σήματος μπορεί να ισοπεδώσει εντελώς το αποτέλεσμα που καταγράψαμε:
Ή ακόμα και ψευδαισθήσεις για νέες κυματομορφές που δεν υπήρχαν καν πριν:
Αυτές οι παραισθήσεις είναι γνωστές ως ψευδώνυμα.
Το πρόβλημα με το Aliasing
Πιθανότατα θα είστε εξοικειωμένοι με την ψευδαίσθηση του «τροχού του βαγονιού» που εμφανίζεται μερικές φορές όταν κινηματογραφείται ένα περιστρεφόμενο αντικείμενο. Οι τροχοί ενός αυτοκινήτου ή οι λεπίδες ενός ελικοπτέρου φαίνονται να γυρίζουν προς τα πίσω—μόνο πολύ αργά. Σε ορισμένες περιπτώσεις, οι λεπίδες μπορεί να σταματήσουν εντελώς (με ειλικρινά περίεργα αποτελέσματα—δείτε το παρακάτω βίντεο!).
Ενώ παίζετε ένα παλαιότερο βιντεοπαιχνίδι, μπορεί επίσης να έχετε παρατηρήσει ότι οι παράλληλες γραμμές μερικές φορές παράγουν περίεργα παραμορφωμένα αντικείμενα. Οι φράχτες, οι σκάλες και οι ραβδώσεις αρχίζουν να φαίνονται πολύ περίεργοι. Ή τι γίνεται με αυτούς τους περίεργους ήχους σφυρίσματος που ακούτε μερικές φορές όταν ακούτε κάποιον να μιλάει μέσω μιας ψηφιακής σύνδεσης κακής ποιότητας; Είναι παραμόρφωση, αλλά ένα συγκεκριμένο είδος παραμόρφωσης. Τι συμβαίνει με όλες αυτές τις άσχημες συχνότητες που αναδύονται από τον θόρυβο; Αν ακούτε αρμονικά πλούσιο περιεχόμενο, όπως ένα drumkit, το αποτέλεσμα είναι ακόμα πιο εμφανές — ειδικά στο high-end.
Εάν καταλαβαίνετε την αιτία ενός από αυτά, είστε στο δρόμο για να τα κατανοήσετε όλα. Στην περίπτωση του τροχού βαγονιού, ο σταθερός ρυθμός καρέ σημαίνει ότι δεν μπορούμε να αποτυπώσουμε σωστά την κίνηση. Εάν κάτι περιστρέφεται 350° σε κάθε καρέ, είναι φυσικό να αντιληφθείτε ότι στην πραγματικότητα έχει μετακινηθεί προς τα πίσω κατά 10°. Με άλλα λόγια, δεν υπάρχουν αρκετές πληροφορίες για να αναπαραστήσουν πιστά αυτό που συμβαίνει. Τα δείγματα που παίρνουμε δεν ευθυγραμμίζονται με αυτό που προσπαθούμε να μετρήσουμε.
Αυτό δεν είναι ένα πρόβλημα που είναι μοναδικό στην αναλογική-ψηφιακή μετατροπή. Σε πολλές από αυτές τις περιπτώσεις, μετατρέπουμε ένα είδος ψηφιακού σήματος σε άλλο.
Λοιπόν, ποια είναι η λύση; Υπάρχουν αρκετές. Θα μπορούσαμε να εφαρμόσουμε ένα ειδικό φίλτρο για να αντιμετωπίσουμε αυτά τα τεχνουργήματα, κάτι που κάνουν πολλά ADC κάτω από την κουκούλα. Ή, μπορούμε να πάρουμε πολλά, πολλά περισσότερα δείγματα από όσα χρειαζόμαστε. Όσο περισσότερα δείγματα παίρνουμε, τόσο πιο ακριβής γίνεται η εικόνα μας για το κύμα:
Δείγμα με μεγαλύτερη ποιότητα για τα καλύτερα αποτελέσματα
Αν βρίσκετε κάτι τέτοιο ενδιαφέρον, τα καλά νέα είναι ότι μόλις βυθιστήκαμε σε αυτό το θέμα. Εδώ υπάρχουν πολλά βάθη: τα ADC είναι εξαιρετικά περίπλοκα.
Αλλά από τη σκοπιά του τελικού χρήστη ή του μέσου λάτρη του Arduino, είναι επίσης πολύ απλά. Οι τάσεις μπαίνουν και οι αριθμοί βγαίνουν. Έτσι, ό, τι κι αν επιδιώκετε να μετρήσετε—είτε είναι η περιεκτικότητα σε υγρασία ενός τμήματος εδάφους, είτε οι ταλαντώσεις ενός ανθρώπινο κιβώτιο φωνής ή μια ροή φωτονίων που διαθλούν μέσω ενός φακού—οι πιθανότητες είναι καλές ότι υπάρχει ένα ADC που θα κάνει το δουλειά.