ADC-ovi su ključni za pretvaranje svih vrsta analognih signala u digitalne, ali kako oni zapravo rade?
Ključni zahvati
- ADC se naširoko koristi za pretvaranje analognih signala, poput zvuka i svjetla, u digitalne vrijednosti koje se mogu koristiti u raznim aplikacijama.
- Brzina uzorkovanja ADC-a određuje broj očitanja uzetih u sekundi, pri čemu veće brzine uzorkovanja omogućuju točniji prikaz signala.
- Bitrate ADC-a utječe na kvalitetu dobivenog uzorka, pri čemu više bitova rezultira glatkijim i preciznijim mjerenjima. Različite vrste ADC-ova nude različite kompromise u pogledu brzine, preciznosti i potrošnje energije.
Analogno-digitalni pretvarači (ADC) nevjerojatno su korisni za pretvaranje pojava iz stvarnog svijeta u vrijednosti koje možemo koristiti u projektima programiranja. Ali kako ADC može pretvoriti analogne signale u digitalne koje možemo koristiti bilo gdje?
Za što se koriste ADC?
Pronaći ćete ADC svugdje. Oni su na vašem telefonu i pretvaraju vaš glas u niz binarnih vrijednosti. Oni su u vašem autu, mjere okretanje vaših kotača. Oni su u osciloskopima, pomažu u hvatanju signala i njihovom predstavljanju. Ipak, mjesto gdje će ih većina ljudi koristiti je svijet videa i zvuka, gdje je dovođenje svjetla i zvuka u digitalni prostor od temeljne važnosti.
Što je stopa uzorkovanja? Kako brzina uzorkovanja utječe na ADC?
Jedna od najvažnijih glavnih metrika ADC-a je brzina uzorkovanja: broj očitanja svake sekunde.
Vrlo vrhunski osciloskop mogao bi uzeti deset milijardi uzoraka u sekundi. Odvažni mali MCP3008 ADC može podnijeti relativno skromnih dvjesto tisuća. U audio svijetu tipična je brzina uzorkovanja od 44 100 u sekundi (44,1 kHz).
Što više uzoraka uzmemo, točnije možemo prikazati signal. Ponekad je to bitno; ponekad, nije. Recimo da gradimo fader banku (dizajniranu za kontrolu elektronike, kakvu biste vidjeli na rasvjetnom ili audio stolu) s nekoliko desetaka potenciometara. U ovom slučaju, vrijednosti koje trebamo izmjeriti vjerojatno se neće mijenjati milijune puta u sekundi jer se naši prsti ne mogu pomicati tako brzo. Trebamo samo dovoljno uzoraka da rezultat bude gladak i brz.
Što je bitrate? Utječe li bitrate na kvalitetu ADC-a?
Također bismo trebali razmišljati o kvaliteti uzorka koji dobivamo. To je uvelike određeno brzinom prijenosa, koja nam govori koliko uključeno-isključeno stanja možemo koristiti za digitalno predstavljanje napona. Što više bitova imamo, više mogućih vrijednosti možemo zabilježiti u bilo kojem danom uzorku i krajnji rezultat je glatkiji i precizniji.
Pisali smo o binarnom sustavu i kako funkcionira, pa ako niste sigurni, to je dobro mjesto za početak. Koliko bitova trebamo? Opet, ovisi o tome što pokušavamo postići. Ponekad možemo biti ograničeni protokolom koji koristimo. Na primjer, MIDI 1.0 protokol ograničen je na sedmo-bitne (i povremeno četrnaesto-bitne) vrijednosti. U drugim slučajevima, ograničavajući faktor može biti ljudska percepcija. Ako povećana vjernost ne dovede do vidljivog poboljšanja rezultata, možda se ne isplati.
Kako multipleksiranje poboljšava kvalitetu ADC-a?
Popularni ADC čipovi poput ADS1115 i MCP3008 nude mnogo inputa. No ispod haube zapravo sadrže samo jedan ADC. To je moguće zbog multipleksera ugrađenih u ove uređaje. Multiplekseri su apsolutno posvuda u svijetu elektronike i telekomunikacija. To su digitalni prekidači koji djeluju kao kontrola prometa za vaš ADC. ADC može uzorkovati jedan kanal, zatim sljedeći, pa sljedeći. Dakle, ako imate osam kanala i brzinu uzorkovanja od 200 000, možete rotirati kroz sve njih, uzimajući 25 000 uzoraka po kanalu.
Koje vrste ADC postoje?
ADC rade na različite načine, ovisno o cijeni i potrebnim mogućnostima.
A Flash ADC radi preko vrlo složenog razdjelnika napona. Grupa otpornika dijeli referentni napon u inkremente, koji se zatim testiraju prema ulazu preko grupe komparatora. Flash ADC-ovi su munjevito brzi, ali su ograničeni kada je riječ o dubini bita zbog broja potrebnih komparatora. Oni su također gladni moći iz istog razloga.
A Podraspon ADC nastoji nadoknaditi ove slabosti dijeljenjem rada između dvije odvojene jedinice: jedna za grubo određivanje napona, a zatim druga za točnu obradu. Razdvajanjem stvari možemo smanjiti broj komparatora. Neki ADC-ovi podrazreda će podijeliti rad u tri faze, s ispravljanjem pogrešaka ugrađenim usput.
SAR (Registar sukcesivne aproksimacije) ADC-ovi rade svoj posao putem vrsta binarnog pretraživanja. Pretpostavimo da imamo osam bitova za ispuniti. SAR će početi od 10000000, što je srednja vrijednost (00000000 je donja, a 11111111 je gornja). Ako napon prijeđe ovu srednju točku, SAR će zadržati krajnju lijevu znamenku kao 1; ako ne, SAR će postaviti krajnju lijevu znamenku na 0. Možemo ponoviti proces sa sljedećom znamenkom i tako dalje rekurzivno. To će dovesti do postupnog pomicanja pretpostavljene vrijednosti prema stvarnoj vrijednosti:
Na taj način neprestano sužavamo pretragu, dijeleći mogućnosti na pola i pitajući je li rezultat viši ili niži od srednje točke. U ovom slučaju, vrijednost je negdje između 0 i 255; nakon nekoliko ponavljanja, ADC je utvrdio da je oko 77.
Sigma-delta pretvarači su vjerojatno najteži za razumjeti. Koriste se za visokoprecizne aplikacije za mjerenje glazbe i signala. Oni rade prekomjerno uzorkovanjem signala i pročišćavanjem rezultata pomoću vraški kompliciranog filtriranja i matematike. Ovaj proces učinkovito smanjuje brzinu uzorkovanja dok povećava preciznost. Ovi ADC-ovi su izvrsni kada su buka i preciznost važniji od brzine.
Konačno, imamo Integrirajući ADC, koji su još sporiji od sigma-delta. Rade uz pomoć kondenzatora čijom se brzinom napunjenosti može odrediti ulazni napon. Brzina uzorkovanja ovdje je često sinkronizirana s frekvencijom napajanja, što se može koristiti da se buka svede na apsolutni minimum.
Što je Nyquist-Shannonova teorija?
Recimo da želimo digitalno opisati analogni signal. Da bismo to učinili, potrebne su nam najmanje dvije točke za svaki dani ciklus: jedna na vrhu i jedna na dnu. Dakle, naša učestalost uzorkovanja mora biti najmanje dvostruko veća od najveće frekvencije koju očekujemo izmjeriti.
Ovo je poznato kao Nyquistova frekvencija, po švedsko-američkom fizičaru Harryju Nyquistu. Teorija je nazvana po Nyquistu i Claudeu Shannonu (istaknuti matematičar i kriptograf), ali ne po Edmundu Whittakeru, koji je došao na ideju prije njih dvojice.
Kome god pripisali teoriju, postoji problem s njom. Nemoguće je unaprijed znati kada će doći vrh i dno valnog oblika. Što ako uzmemo naše uzorke na sredini dolaznog valnog oblika? Promatrajte kako pomak u dolaznom signalu može potpuno izravnati naš snimljeni rezultat:
Ili čak halucinirati nove valne oblike koji prije nisu ni postojali:
Ove halucinacije poznate su kao aliasi.
Problem s aliasingom
Vjerojatno ste upoznati s iluzijom "kotača vagona" koja se ponekad pojavljuje kada se snima objekt koji se okreće. Čini se da se kotači na automobilu ili lopatice na helikopteru okreću unatrag - samo vrlo sporo. U nekim slučajevima, oštrice bi se mogle potpuno zaustaviti (s iskreno čudnim rezultatima—pogledajte video ispod!).
Dok ste igrali stariju videoigru, možda ste također primijetili da paralelne linije ponekad stvaraju čudne artefakte savijanja. Ograde, stubišta i prugasti skakači počinju doista izgledati vrlo neobično. Ili što je s onim čudnim zviždukavim zvukovima koje ponekad dobijete kada slušate nekoga kako govori preko digitalne veze loše kvalitete? To je distorzija, ali posebna vrsta distorzije. Što je sa svim tim ružnim frekvencijama koje izviru iz buke? Ako slušate harmonijski bogat sadržaj, poput kompleta bubnjeva, učinak je još očitiji—posebno u visokoj razini.
Ako razumijete uzrok jednog od ovih, na putu ste da ih sve razumijete. U slučaju kotača vagona, fiksna brzina kadrova znači da ne možemo pravilno uhvatiti kretanje. Ako se nešto rotira za 350° svaki okvir, sasvim je prirodno primijetiti da se zapravo pomaknulo unatrag za 10°. Drugim riječima, nema dovoljno informacija da bi se vjerno prikazalo što se događa. Uzorci koje uzimamo nisu usklađeni s onim što pokušavamo izmjeriti.
Ovo nije problem koji je jedinstven za analogno-digitalnu pretvorbu. U mnogim od ovih slučajeva jednu vrstu digitalnog signala pretvaramo u drugu.
Dakle, koje je rješenje? Ima ih nekoliko. Mogli bismo primijeniti poseban filtar za rješavanje ovih artefakata, što mnogi ADC rade ispod haube. Ili, možemo uzeti mnogo, mnogo više uzoraka nego što nam je potrebno. Što više uzoraka uzmemo, naša slika vala postaje preciznija:
Uzorak bolje kvalitete za najbolje rezultate
Ako vam je ovakva stvar zanimljiva, dobra vijest je da smo jedva zaronili u ovu temu. Ovdje ima mnogo dubina: ADC su iznimno komplicirani.
Ali sa stajališta krajnjeg korisnika ili prosječnog Arduino entuzijasta, oni su također vrlo jednostavni. Naponi ulaze, a brojevi izlaze. Dakle, što god želite mjeriti - bilo da se radi o sadržaju vlage u komadu tla, oscilacijama ljudski govorni okvir ili tok fotona koji se lomi kroz leću - dobre su šanse da postoji ADC koji će učiniti posao.