ADC yra labai svarbūs konvertuojant visų rūšių analoginius signalus į skaitmeninius, bet kaip jie iš tikrųjų veikia?
Key Takeaways
- ADC plačiai naudojami analoginiams signalams, pvz., garsui ir šviesai, konvertuoti į skaitmenines reikšmes, kurios gali būti naudojamos įvairiose programose.
- ADC mėginių ėmimo dažnis nustato rodmenų, paimtų per sekundę, skaičių, o didesnis atrankos dažnis leidžia tiksliau atvaizduoti signalą.
- ADC bitų sparta turi įtakos gauto mėginio kokybei, o daugiau bitų lemia sklandesnius ir tikslesnius matavimus. Skirtingi ADC tipai siūlo skirtingus greičio, tikslumo ir energijos suvartojimo kompromisus.
Analoginiai-skaitmeniniai keitikliai (ADC) yra neįtikėtinai naudingi paverčiant realaus pasaulio reiškinius vertėmis, kurias galime naudoti programavimo projektuose. Bet kaip ADC gali konvertuoti analoginius signalus į skaitmeninius, kuriuos galime naudoti bet kur?
Kam naudojami ADC?
ADC rasite beveik visur. Jie yra jūsų telefone ir konvertuoja jūsų balsą į dvejetainių verčių eilutę. Jie yra jūsų automobilyje ir matuoja jūsų ratų sukimąsi. Jie yra osciloskopuose, padedantys užfiksuoti signalus ir juos atvaizduoti. Tačiau vieta, kur dauguma žmonių jais naudosis, yra vaizdo ir garso pasaulis, kuriame šviesos ir garso patekimas į skaitmeninę erdvę yra labai svarbus.
Kas yra imties dažnis? Kaip mėginių dažnis veikia ADC?
Viena iš svarbiausių ADC antraštės metrikų yra mėginių ėmimo dažnis: rodmenų, atliekamų kas sekundę, skaičius.
Labai aukštos klasės osciloskopas gali paimti dešimt milijardų mėginių per sekundę. Išrankus mažas MCP3008 ADC gali užimti palyginti kuklius du šimtus tūkstančių. Garso pasaulyje įprastas atrankos dažnis yra 44 100 per sekundę (44,1 kHz).
Kuo daugiau pavyzdžių paimame, tuo tiksliau galime pavaizduoti signalą. Kartais tai būtina; kartais taip nėra. Tarkime, statome fader banką (skirtą valdyti elektroniką, kaip matote ant apšvietimo ar garso stalo) su keliomis dešimtimis potenciometrų. Šiuo atveju vertės, kurias turime išmatuoti, greičiausiai nepasikeis milijonus kartų per sekundę, nes mūsų pirštai negali taip greitai judėti. Mums tiesiog reikia pakankamai pavyzdžių, kad rezultatas būtų sklandus ir jautrus.
Kas yra Bitrate? Ar bitų dažnis turi įtakos ADC kokybei?
Taip pat turėtume pagalvoti apie gaunamo mėginio kokybę. Tai daugiausia lemia bitų sparta, kuri nurodo, kiek įjungimo ir išjungimo būsenų galime naudoti skaitmeniniam įtampai pavaizduoti. Kuo daugiau bitų turime, tuo daugiau galimų verčių galime įrašyti bet kuriame pavyzdyje ir tuo sklandesnis bei tikslesnis galutinis rezultatas.
Mes rašėme apie dvejetainį ir kaip jis veikia, taigi, jei nesate tikri, tai gera vieta pradėti. Kiek bitų mums reikia? Vėlgi, tai priklauso nuo to, ką mes stengiamės pasiekti. Kartais mus gali apriboti naudojamas protokolas. Pavyzdžiui, MIDI 1.0 protokolas yra apribotas septynių bitų (o kartais ir keturiolikos bitų) reikšmėmis. Kitais atvejais ribojantis veiksnys gali būti žmogaus suvokimas. Jei padidėjęs tikslumas nepagerina rezultato, tai gali būti neapsimoka.
Kaip tankinimas pagerina ADC kokybę?
Populiarūs ADC lustai, tokie kaip ADS1115 ir MCP3008 pasiūlyti daug įvesties. Tačiau po gaubtu juose tikrai yra tik vienas ADC. Tai įmanoma dėl šiuose įrenginiuose įmontuotų multiplekserių. Multiplekserių yra absoliučiai visur elektronikos ir telekomunikacijų pasaulyje. Tai skaitmeniniai jungikliai, kurie veikia kaip jūsų ADC eismo kontrolė. ADC gali atrinkti vieną kanalą, tada kitą ir tada kitą. Taigi, jei turite aštuonis kanalus ir 200 000 atrankos dažnį, galite pasukti juos visus, paimdami 25 000 mėginių kiekviename kanale.
Kokie ADC tipai yra?
ADC veikia įvairiais būdais, priklausomai nuo reikalingų sąnaudų ir galimybių.
A Flash ADC veikia per labai sudėtingą įtampos daliklį. Rezistorių bankas padalija etaloninę įtampą žingsniais, kurie vėliau tikrinami pagal įvestį per komparatorių banką. „Flash ADC“ yra žaibiškai greiti, tačiau jie yra riboti, kai kalbama apie bitų gylį, nes reikia lyginamųjų elementų. Dėl tos pačios priežasties jie taip pat trokšta energijos.
A ADC sugrupavimas Siekia kompensuoti šiuos trūkumus paskirstydamas darbą tarp dviejų atskirų įrenginių: vienas apytiksliai nustato įtampą, o antrasis - tiksliai. Išskaidydami dalykus galime sumažinti lyginamųjų skaičių. Kai kurie ADC padalins darbą į tris etapus, o pakeliui bus įdiegtas klaidų taisymas.
SAR (Sėkmingas aproksimacijos registras) ADC atlieka savo darbą per savotiška dvejetainė paieška. Tarkime, kad turime užpildyti aštuonis bitus. SAR prasidės nuo 10000000, tai yra vidutinė vertė (00000000 yra apačioje ir 11111111 yra aukščiausia). Jei įtampa viršija šį vidurio tašką, SAR paliks kairįjį skaitmenį kaip 1; jei ne, SAR nustatys kairįjį skaitmenį į 0. Galime pakartoti procesą su kitu skaitmeniu ir tt rekursyviai. Dėl to spėjama vertė palaipsniui pereis prie tikrosios vertės:
Tokiu būdu mes nuolat siauriname paiešką, dalijame galimybes per pusę ir klausiame, ar rezultatas yra didesnis ar mažesnis už vidurinį tašką. Šiuo atveju reikšmė yra kažkur tarp 0 ir 255; po kelių pakartojimų ADC nustatė, kad jis yra apie 77.
Sigma-delta keitiklius bene sunkiausia suprasti. Jie naudojami didelio tikslumo muzikinėms ir signalų matavimo programoms. Jie veikia per daug atrinkdami signalą ir patobulindami rezultatą naudodami velniškai sudėtingą filtravimą ir matematiką. Šis procesas efektyviai sumažina mėginių ėmimo dažnį ir padidina tikslumą. Šie ADC yra puikūs, kai triukšmas ir tikslumas yra svarbesni už greitį.
Pagaliau turime ADC integravimas, kurios yra net lėtesnės nei sigma-delta. Jie veikia kondensatoriaus pagalba, pagal kurio įkrovimo greitį galima nustatyti įėjimo įtampą. Atrankos dažnis čia dažnai sinchronizuojamas su maitinimo dažniu, kuris gali būti naudojamas siekiant sumažinti triukšmą iki minimumo.
Kas yra Nyquist-Shannon teorija?
Tarkime, kad analoginį signalą norime apibūdinti skaitmeniniu būdu. Norėdami tai padaryti, kiekvienam ciklui reikia bent dviejų taškų: vieno viršuje ir vieno apačioje. Taigi mūsų mėginių ėmimo dažnis turi būti bent du kartus didesnis už didžiausią dažnį, kurį tikimės išmatuoti.
Tai žinomas kaip Nyquist dažnis švedų-amerikiečių fiziko Harry Nyquist vardu. Teorija pavadinta Nyquisto ir Claude'o Shannono (žymaus matematiko ir kriptografo) vardu, bet ne Edmundo Whittakerio vardu, kuris idėją sugalvojo anksčiau nei vienas iš jų.
Kad ir kam pripažintume teoriją, su ja yra problemų. Neįmanoma iš anksto žinoti, kada pasieks bangos formos viršus ir apačia. Ką daryti, jei paimsime mėginius įeinančios bangos formos viduryje? Stebėkite, kaip gaunamo signalo poslinkis gali visiškai išlyginti mūsų užfiksuotą rezultatą:
Arba net haliucinuoti naujas bangų formas, kurių anksčiau net nebuvo:
Šios haliucinacijos yra žinomos kaip slapyvardžiai.
Problema su slapyvardžiu
Tikriausiai jau esate susipažinę su „fūro rato“ iliuzija, kuri kartais atsiranda filmuojant besisukantį objektą. Atrodo, kad automobilio ratai arba sraigtasparnio mentės sukasi atgal – tik labai lėtai. Kai kuriais atvejais peiliukai gali visiškai sustoti (su atvirai keistais rezultatais – žiūrėkite žemiau esantį vaizdo įrašą!).
Žaisdami senesnį vaizdo žaidimą taip pat galbūt pastebėjote, kad lygiagrečios linijos kartais sukuria keistus deformuojančius artefaktus. Tvoros, laiptai ir dryžuoti džemperiai pradeda atrodyti labai savotiškai. O kaip dėl tų keistų švilpimo garsų, kuriuos kartais girdite klausydami, kaip kažkas kalba prastos kokybės skaitmeniniu ryšiu? Tai iškraipymas, bet tam tikras iškraipymas. Kas iš tų bjaurių dažnių, kylančių iš triukšmo? Jei klausotės harmoningai turtingo turinio, pavyzdžiui, būgnų komplekto, efektas bus dar akivaizdesnis – ypač aukščiausios klasės.
Jei suprantate vienos iš jų priežastį, galite suprasti juos visus. Vagono rato atveju fiksuotas kadrų dažnis reiškia, kad negalime tinkamai užfiksuoti judesio. Jei kas nors sukasi 350° kiekviename kadre, natūralu, kad jis iš tikrųjų pasislinko 10° atgal. Kitaip tariant, nėra pakankamai informacijos, kad būtų galima tiksliai parodyti, kas vyksta. Mūsų imami mėginiai nesutampa su tuo, ką bandome išmatuoti.
Tai nėra vienintelė analoginio skaitmeninio konvertavimo problema. Daugeliu šių atvejų vienos rūšies skaitmeninį signalą konvertuojame į kitą.
Taigi, koks sprendimas? Yra keli. Norėdami susidoroti su šiais artefaktais, galėtume pritaikyti specialų filtrą, ką daugelis ADC daro po gaubtu. Arba galime paimti daug daug daugiau pavyzdžių, nei mums reikia. Kuo daugiau mėginių paimame, tuo tikslesnis bus bangos vaizdas:
Geresnės kokybės mėginys, kad pasiektumėte geriausių rezultatų
Jei toks dalykas jums atrodo įdomus, gera žinia yra ta, kad mes beveik nepaneriame į šią temą. Čia yra gelmių: ADC yra labai sudėtingi.
Tačiau galutinio vartotojo ar vidutinio „Arduino“ entuziasto požiūriu jie taip pat labai paprasti. Įeina įtampa, išeina skaičiai. Taigi, kad ir ką norėtumėte išmatuoti – ar tai būtų dirvožemio lopinio drėgmės kiekis, ar žmogaus balso dėžutė arba fotonų srautas, lūžtantis per objektyvą – didelė tikimybė, kad yra ADC, kuris tai padarys darbas.