Шта су АДЦ (аналогно-дигитални претварачи) и како раде?

Ključni Zaključci

  • ADC-ovi (analogno-digitalni pretvarači) imaju široku primenu u transformaciji analognih signala, kao što su zvuk i svetlost, u digitalne vrednosti koje se mogu koristiti u različitim aplikacijama.
  • Brzina uzorkovanja ADC-a određuje broj očitavanja koja se uzimaju u jednoj sekundi, pri čemu veće stope uzorkovanja omogućavaju preciznije predstavljanje signala.
  • Brzina rada ADC-a utiče na kvalitet dobijenog uzorka, a veći broj bitova rezultira glatkijim i preciznijim merenjima. Različiti tipovi ADC-a nude različite kompromise u pogledu brzine, preciznosti i potrošnje energije.

Analogno-digitalni pretvarači (ADC) su izuzetno korisni za prebacivanje pojava iz stvarnog sveta u vrednosti koje možemo koristiti u programerskim projektima. Ali, kako to ADC pretvara analogne signale u digitalne, koje možemo upotrebiti bilo gde?

Za šta se koriste ADC-ovi?

ADC-ove ćete naći gotovo svuda. Oni se nalaze u vašem telefonu i transformišu vaš glas u niz binarnih vrednosti. Oni su u vašem automobilu, mereći rotaciju vaših točkova. Takođe su u osciloskopima, pomažući u snimanju i predstavljanju signala. Ipak, najčešća upotreba ADC-ova je u svetu videa i zvuka, gde je unos svetla i zvuka u digitalni prostor od fundamentalnog značaja.

Šta je brzina uzorkovanja? Kako brzina uzorkovanja utiče na ADC?

Jedna od ključnih karakteristika ADC-a je brzina uzorkovanja: broj očitavanja koji se uzimaju svake sekunde.

Visokokvalitetni osciloskop može uzeti i do deset milijardi uzoraka u sekundi. Skromniji MCP3008 ADC može da obradi oko dvesta hiljada uzoraka. U svetu audia, tipična brzina uzorkovanja je 44.100 uzoraka u sekundi (44,1 kHz).

Što više uzoraka uzmemo, preciznije možemo predstaviti signal. Ponekad je ovo neophodno, a ponekad nije. Recimo da pravimo kontrolnu tablu sa nekoliko desetina potenciometara (koja se koristi za kontrolu elektronike). U ovom slučaju, vrednosti koje treba meriti se verovatno neće menjati milion puta u sekundi, jer naši prsti ne mogu da se kreću tako brzo. Potrebno nam je samo dovoljno uzoraka da bi rezultat bio gladak i brz.

Šta je brzina prenosa? Da li brzina prenosa utiče na kvalitet ADC-a?

Takođe treba razmotriti kvalitet uzorka koji dobijamo. Na njega u velikoj meri utiče brzina u bitovima, koja nam govori koliko stanja uključeno-isključeno možemo koristiti da digitalno predstavimo napon. Što više bitova imamo, više mogućih vrednosti možemo zabeležiti u bilo kom datom uzorku, što rezultira glatkijim i preciznijim konačnim rezultatom.

Prethodno smo pisali o binarnosti i njenom funkcionisanju, tako da je to dobra polazna tačka ako niste sigurni. Koliko bitova nam je potrebno? Ponovo, to zavisi od cilja. Ponekad smo ograničeni protokolom koji koristimo. Na primer, MIDI 1.0 protokol je ograničen na vrednosti od sedam bitova (povremeno četrnaest bitova). U drugim slučajevima, ograničavajući faktor može biti ljudska percepcija. Ukoliko povećana vernost ne donosi primetno poboljšanje rezultata, možda se to ne isplati.

Kako multipleksiranje poboljšava kvalitet ADC-a?

Popularni ADC čipovi, kao što su ADS1115 i MCP3008, nude brojne ulaze. Međutim, ispod površine, oni zapravo sadrže samo jedan ADC. Ovo je omogućeno zahvaljujući multiplekserima ugrađenim u ove uređaje. Multiplekseri se široko koriste u svetu elektronike i telekomunikacija. Oni su digitalni prekidači koji deluju kao kontrola protoka za vaš ADC. ADC može uzorkovati jedan kanal, zatim sledeći, i tako dalje. 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-a postoje?

ADC-ovi funkcionišu na različite načine, u zavisnosti od troškova i potrebnih mogućnosti.

Fleš ADC radi pomoću kompleksnog razdelnika napona. Grupa otpornika deli referentni napon na manje jedinice, koje se zatim testiraju u odnosu na ulaz pomoću grupe komparatora. Fleš ADC-ovi su izuzetno brzi, ali su ograničeni kada je u pitanju dubina bita zbog broja potrebnih komparatora. Takođe, troše dosta energije iz istog razloga.

ADC sa podopsezima nastoji da nadoknadi ove nedostatke deleći posao između dve odvojene jedinice: jedne za grubo izračunavanje napona i druge za njegovo precizno određivanje. Razdvajanjem zadataka možemo smanjiti broj potrebnih komparatora. Neki ADC sa podopsezima dele posao u tri faze, sa ugrađenom korekcijom grešaka.

SAR (registar sukcesivnih aproksimacija) ADC-ovi obavljaju svoj posao pomoću neke vrste binarne pretrage. Pretpostavimo da imamo osam bitova za popunjavanje. SAR će početi od 10000000, što je srednja vrednost (00000000 je na dnu, a 11111111 na vrhu). Ako napon premaši ovu srednju tačku, SAR će zadržati krajnju levu cifru kao 1; ako ne, SAR će postaviti krajnju levu cifru na 0. Proces se može ponoviti sa sledećom cifrom, i tako dalje rekurzivno. Ovo će postepeno pomerati pretpostavljenu vrednost ka stvarnoj vrednosti:

Na ovaj način, kontinuirano sužavamo pretragu, deleći mogućnosti na pola i pitajući se da li je rezultat viši ili niži od srednje tačke. U ovom slučaju, vrednost je negde između 0 i 255; nakon nekoliko iteracija, ADC je utvrdio da je oko 77.

Sigma-delta pretvarači su verovatno najteži za razumevanje. Koriste se za visokoprecizne muzičke i merne aplikacije. Oni funkcionišu prekomernim uzorkovanjem signala i prečišćavanjem rezultata koristeći složeno filtriranje i matematiku. Ovaj proces efikasno smanjuje brzinu uzorkovanja uz povećanje preciznosti. Ovi ADC-ovi su odlični kada su buka i preciznost važniji od brzine.

Konačno, imamo integrisane ADC-ove, koji su još sporiji od sigma-delta pretvarača. Oni rade uz pomoć kondenzatora, čija se brzina punjenja koristi za određivanje ulaznog napona. Brzina uzorkovanja je često sinhronizovana sa frekvencijom napajanja, što može pomoći da se šum svede na minimum.

Šta je Najkvist-Šenonova teorija?

Pretpostavimo da želimo da digitalno opišemo analogni signal. Za to su nam potrebne najmanje dve tačke za svaki dati ciklus: jedna na vrhu i jedna na dnu. Prema tome, naša frekvencija uzorkovanja mora biti najmanje dvostruko veća od najveće frekvencije koju očekujemo da merimo.

Ovo je poznato kao Najkvistova frekvencija, nazvana po švedsko-američkom fizičaru Hariju Najkvistu. Teorija je nazvana po Najkvistu i Klodu Šenonu (poznatom matematičaru i kriptografu), a ne po Edmundu Vitakeru, koji je došao na ovu ideju pre njih.

Kome god da pripišemo teoriju, postoji problem sa njom. Nemoguće je unapred znati kada će stići vrh i dno talasnog oblika. Šta ako uzmemo uzorke na sredini dolaznog talasnog oblika? Obratite pažnju kako bi promena u dolaznom signalu mogla potpuno da izjednači naš zabeleženi rezultat:

Ili čak halucinirati nove talasne oblike koji prethodno nisu ni postojali:

Ove halucinacije su poznate kao aliasi.

Problem sa alijasom

Verovatno ste upoznati sa iluzijom „točka vagona“ koja se ponekad javlja pri snimanju objekta koji se okreće. Čini se da se točkovi na automobilu ili lopatice na helikopteru okreću unazad – ali veoma sporo. U nekim slučajevima, oštrice se mogu potpuno zaustaviti (što dovodi do čudnih rezultata – pogledajte video ispod!).

Možda ste primetili da paralelne linije ponekad stvaraju čudne artefakte savijanja dok ste igrali starije video igrice. Ograde, stepeništa i skakači sa prugama počinju da izgledaju neobično. Ili šta je sa onim čudnim zvižducima koje ponekad dobijete kada slušate nekoga kako govori preko digitalne veze lošeg kvaliteta? To je izobličenje, ali poseban tip izobličenja. A šta je sa svim tim ružnim frekvencijama koje se pojavljuju iz buke? Ako slušate harmonično bogat sadržaj, poput bubnjeva, efekat je još očigledniji – posebno u visokom zvuku.

Ako razumete uzrok jednog od ovih problema, na putu ste da razumete sve njih. U slučaju točka vagona, fiksna brzina kadrova znači da ne možemo pravilno da uhvatimo kretanje. Ako se nešto rotira za 350° svaki kadar, sasvim je prirodno primetiti da se zapravo pomerilo unazad za 10°. Drugim rečima, nema dovoljno informacija da se verno predstavi ono što se dešava. Uzorci koje uzimamo nisu usklađeni sa onim što pokušavamo da izmerimo.

Ovo nije problem koji se javlja samo u analogno-digitalnoj konverziji. U mnogim slučajevima, mi pretvaramo jednu vrstu digitalnog signala u drugu.

Dakle, šta je rešenje? Postoji nekoliko rešenja. Možemo primeniti poseban filter da bismo rešili ove artefakte, što mnogi ADC-ovi rade „ispod haube“. Ili, možemo uzeti mnogo više uzoraka nego što nam je potrebno. Što više uzoraka uzmemo, to je naša slika talasa tačnija:

Uzorak većeg kvaliteta za najbolje rezultate

Ako vam je ova tema zanimljiva, dobra vest je da smo tek počeli da istražujemo. Ovde postoje velike dubine: ADC-ovi su izuzetno složeni.

Međutim, sa stanovišta krajnjeg korisnika, ili prosečnog Arduino entuzijaste, oni su takođe veoma jednostavni. Naponi ulaze, a brojevi izlaze. Dakle, šta god želite da izmerite – bilo da je to sadržaj vlage u zemljištu, oscilacije ljudske glasne kutije ili tok fotona koji se prelama kroz sočivo – velike su šanse da postoji ADC koji će obaviti taj posao.