ADC-d on igasuguste analoogsignaalide digitaalseks teisendamiseks üliolulised, kuid kuidas need tegelikult töötavad?

Võtmed kaasavõtmiseks

  • ADC-sid kasutatakse laialdaselt analoogsignaalide (nt heli ja valgus) teisendamiseks digitaalseteks väärtusteks, mida saab kasutada erinevates rakendustes.
  • ADC diskreetimissagedus määrab sekundis võetud näitude arvu, kusjuures suuremad diskreetimissagedused võimaldavad signaali täpsemat esitust.
  • ADC bitikiirus mõjutab saadud valimi kvaliteeti, kusjuures rohkem bitte annab sujuvamad ja täpsemad mõõtmised. Erinevat tüüpi ADC-d pakuvad kiiruse, täpsuse ja energiatarbimise osas erinevaid kompromisse.

Analoog-digitaalmuundurid (ADC-d) on uskumatult kasulikud, et muuta reaalmaailma nähtused väärtusteks, mida saame kasutada programmeerimisprojektides. Aga kuidas saab ADC teisendada analoogsignaale digitaalseks, mida saame kõikjal kasutada?

Milleks ADC-sid kasutatakse?

ADC-sid leiate peaaegu kõikjalt. Need on teie telefonis ja muudavad teie hääle kahendväärtuste jadaks. Need on teie autos ja mõõdavad teie rataste pöörlemist. Need on ostsilloskoobides, aidates signaale püüda ja neid esindada. Kuid koht, kus enamik inimesi on neid kasutanud, on video- ja helimaailm, kus valguse ja heli digitaalsesse ruumi viimine on ülioluline.

instagram viewer

Mis on valimisagedus? Kuidas diskreetimissagedus ADC-d mõjutab?

Üks kriitilisemaid ADC pealkirja mõõdikuid on proovivõtusagedus: igas sekundis võetud näitude arv.

Väga kõrgetasemeline ostsilloskoop võib võtta kümme miljardit proovi sekundis. Piksakas väike MCP3008 ADC võib võtta suhteliselt tagasihoidlikud kakssada tuhat. Helimaailmas on tüüpiline diskreetimissagedus 44 100 sekundis (44,1 kHz).

Mida rohkem proove võtame, seda täpsemalt suudame signaali esitada. Mõnikord on see hädavajalik; mõnikord ei ole. Oletame, et ehitame mõnekümne potentsiomeetriga faderipanka (mis on mõeldud elektroonika juhtimiseks, nagu näete valgustus- või helilaual). Sel juhul ei muutu väärtused, mida peame mõõtma, miljoneid kordi sekundis, kuna meie sõrmed ei saa nii kiiresti liikuda. Vajame lihtsalt piisavalt proove, et tulemus oleks sujuv ja tundlik.

Mis on bitikiirus? Kas bitikiirus mõjutab ADC kvaliteeti?

Peaksime mõtlema ka saadava proovi kvaliteedile. Selle määrab suuresti bitikiirus, mis ütleb meile, mitut sisse-välja olekut saame kasutada pinge digitaalseks esitamiseks. Mida rohkem bitte meil on, seda rohkem võimalikke väärtusi saame igasse proovi salvestada ning seda sujuvam ja täpsem on lõpptulemus.

Oleme kirjutanud binaarsüsteemist ja selle toimimisest, nii et kui te pole kindel, on see hea koht alustamiseks. Mitu bitti me vajame? Jällegi, see sõltub sellest, mida me püüame saavutada. Mõnikord võib kasutatav protokoll meid piirata. Näiteks MIDI 1.0 protokoll on piiratud seitsmebitiste (ja mõnikord ka neljateistkümnebitiste) väärtustega. Muudel juhtudel võib piiravaks teguriks olla inimese taju. Kui suurenenud täpsus ei too kaasa märgatavat tulemuse paranemist, ei pruugi see olla kasulik.

Kuidas multipleksimine parandab ADC kvaliteeti?

Populaarsed ADC kiibid nagu ADS1115 ja MCP3008 pakuvad palju sisendeid. Kuid kapoti all sisaldavad need tõesti ainult ühte ADC-d. See on võimalik nendesse seadmetesse sisseehitatud multiplekserite tõttu. Multipleksereid on elektroonika ja telekommunikatsiooni maailmas absoluutselt kõikjal. Need on digitaalsed lülitid, mis toimivad teie ADC liikluse juhtimisena. ADC võib proovivõtta ühest kanalist ja seejärel järgmisest ja siis järgmisest. Seega, kui teil on kaheksa kanalit ja diskreetimissagedus 200 000, saate neid kõiki vahetada, võttes 25 000 proovi kanali kohta.

Milliseid ADC tüüpe on olemas?

ADC-d töötavad erinevatel viisidel, sõltuvalt kuludest ja vajalikest võimalustest.

A Flash ADC töötab väga keerulise pingejaguri kaudu. Takistipank jagab võrdluspinge sammudeks, mida seejärel testitakse sisendi suhtes komparaatorite panga kaudu. Flash-ADC-d on välkkiired, kuid nende bitisügavus on vajalike võrdlusseadmete arvu tõttu piiratud. Samal põhjusel on nad ka võimunäljas.

A ADC alandamine püüab neid nõrkusi kompenseerida, jagades töö kahe eraldi üksuse vahel: üks pinge ligikaudseks väljatöötamiseks ja teine ​​selle täpseks väljatöötamiseks. Asjade jagamisega saame vähendada võrdlejate arvu. Mõned alamkategooria ADC-d jagavad töö kolmeks etapiks, kusjuures veaparandus on sisse ehitatud.

SAR (Järjestikuste lähenduste register) ADC-d teevad oma tööd selle kaudu omamoodi binaarne otsing. Oletame, et meil on täita kaheksa bitti. SAR algab 10000000-st, mis on keskmine väärtus (00000000 on alumine ja 11111111 ülemine väärtus). Kui pinge ületab selle keskpunkti, jätab SAR vasakpoolseima numbri 1-ks; kui seda ei juhtu, määrab SAR vasakpoolseima numbri 0-ks. Protsessi saame korrata järgmise numbriga ja nii edasi rekursiivselt. See paneb arvatava väärtuse järk-järgult liikuma tegeliku väärtuse suunas:

Sel viisil kitsendame otsingut pidevalt, jagades võimalused pooleks ja küsides, kas tulemus on keskpunktist kõrgem või madalam. Sel juhul on väärtus kuskil 0 ja 255 vahel; pärast mõnda iteratsiooni on ADC välja selgitanud, et see on umbes 77.

Sigma-delta muundurid on ilmselt kõige raskemini mõistetavad. Neid kasutatakse ülitäpsete muusikaliste ja signaali mõõtmise rakenduste jaoks. Nad töötavad signaali ülediskretsiooniga ja viimistlevad tulemust kuradima keerulise filtreerimise ja matemaatika abil. See protsess vähendab tõhusalt proovivõtusagedust, suurendades samal ajal täpsust. Need ADC-d on suurepärased, kui müra ja täpsus on olulisemad kui kiirus.

Lõpuks on meil ADC-de integreerimine, mis on isegi aeglasemad kui sigma-delta. Need töötavad kondensaatori abil, mille laengu kiiruse järgi saab määrata sisendpinge. Siinne diskreetimissagedus sünkroniseeritakse sageli toiteallika sagedusega, mida saab kasutada müra hoidmiseks absoluutse miinimumini.

Mis on Nyquist-Shannoni teooria?

Oletame, et tahame kirjeldada analoogsignaali digitaalselt. Selleks vajame iga antud tsükli kohta vähemalt kahte punkti: ühte ülaosas ja ühte allosas. Seega peab meie diskreetimissagedus olema vähemalt kaks korda kõrgem sagedus, mida me eeldame mõõta.

Seda tuntakse Nyquisti sagedusena Rootsi-Ameerika füüsiku Harry Nyquisti järgi. Teooria on oma nime saanud Nyquisti ja Claude Shannoni (väljapaistev matemaatik ja krüptograaf) järgi, kuid mitte Edmund Whittakeri järgi, kes tuli selle ideega välja enne neid.

Kellele me teooriat tunnustame, on sellega probleeme. On võimatu ette teada, millal lainekuju ülemine ja alumine osa saabuvad. Mis siis, kui võtaksime oma proovid sissetuleva lainekuju poole peal? Jälgige, kuidas sissetuleva signaali nihe võib meie jäädvustatud tulemuse täielikult lamendada:

Või isegi hallutsineerida uusi lainekujusid, mida varem isegi ei eksisteerinud:

Neid hallutsinatsioone tuntakse kui varjunimed.

Probleem varjunimega

Tõenäoliselt on teile tuttav "vankriratta" illusioon, mis mõnikord tekib pöörleva objekti filmimisel. Auto rattad või helikopteri labad näivad pöörlevat tagasi – ainult väga aeglaselt. Mõnel juhul võivad terad täielikult seiskuda (ausalt öeldes imelike tulemustega – vaadake allolevat videot!).

Vanemat videomängu mängides võisite ka märgata, et paralleelsed jooned tekitavad mõnikord kummalisi kõverduvaid artefakte. Aiad, trepikojad ja triibulised džemprid hakkavad tõesti väga omapärased välja nägema. Või kuidas on lood nende kummaliste vilistavate helidega, mida mõnikord kostate, kui kuulate halva kvaliteediga digiühenduse kaudu kellegi kõnet? See on moonutus, kuid teatud tüüpi moonutus. Mis on kõigi nende koledate sagedustega, mis mürast esile kerkivad? Kui kuulate harmooniliselt rikkalikku sisu, näiteks trummikomplekti, on efekt veelgi ilmsem – eriti tipptasemel.

Kui mõistate ühe neist põhjustest, olete nende kõigi mõistmise poole teel. Vaguniratta puhul tähendab fikseeritud kaadrisagedus seda, et me ei suuda liikumist korralikult tabada. Kui miski pöörab igal kaadril 350°, on loomulik tajuda, et see on tegelikult 10° võrra tagasi nihutatud. Teisisõnu pole toimuva tõetruuks kirjeldamiseks piisavalt teavet. Meie võetavad proovid on valesti vastavuses sellega, mida proovime mõõta.

See ei ole probleem, mis on ainulaadne analoog-digitaalmuundamisel. Paljudel sellistel juhtudel teisendame üht tüüpi digitaalsignaali teiseks.

Niisiis, mis on lahendus? Neid on mitu. Võiksime nende artefaktidega tegelemiseks kasutada spetsiaalset filtrit, mida paljud ADC-d kapoti all teevad. Või võime võtta palju-palju rohkem proove, kui vajame. Mida rohkem proove võtame, seda täpsemaks muutub meie pilt lainest:

Parimate tulemuste saamiseks parema kvaliteediga proov

Kui teile tundub selline asi huvitav, on hea uudis see, et oleme vaevalt sellesse teemasse jõudnud. Siin on sügavused: ADC-d on äärmiselt keerulised.

Kuid lõppkasutaja või keskmise Arduino entusiasti seisukohast on need ka väga lihtsad. Pinged lähevad sisse ja numbrid tulevad välja. Niisiis, mida iganes te mõõta soovite – olgu selleks pinnase niiskusesisaldus või pinnase võnkumised. inimese häälekast või läbi objektiivi murduv footonite voog – on tõenäoline, et on olemas ADC, mis teeb töö.