Co jsou ADC (Analogově-digitální převodníky) a jak fungují?

Základní body

  • Analogově-digitální převodníky (ADC) se běžně využívají k transformaci analogových signálů, jako je zvuk či světlo, na digitální hodnoty. Tyto hodnoty jsou následně zpracovávány v různých aplikacích.
  • Vzorkovací frekvence ADC udává, kolik měření proběhne za sekundu. Vyšší frekvence vzorkování umožňuje detailnější zobrazení původního signálu.
  • Bitová hloubka ADC ovlivňuje kvalitu výsledného vzorku. Použití více bitů vede k hladším a přesnějším měřením. Různé typy ADC se liší v rychlosti, přesnosti a spotřebě energie.

ADC jsou klíčové pro převod reálných jevů do podoby, kterou lze zpracovávat v programovacích projektech. Jakým způsobem ale dokážou transformovat analogové signály na digitální, které můžeme následně využít?

Kde se s ADC setkáváme?

ADC se nachází téměř v každém moderním zařízení. Najdeme je například v mobilních telefonech, kde převádějí hlas na binární data. Jsou i v automobilech, kde měří otáčení kol, nebo v osciloskopech, které díky nim dokáží zachycovat a zobrazovat různé signály. Nejčastěji se s nimi setkáváme při zpracování obrazu a zvuku, kde je nezbytné převést světlo a zvuk do digitální formy.

Co je to vzorkovací frekvence a jak ovlivňuje ADC?

Jedním z nejdůležitějších parametrů ADC je vzorkovací frekvence, která udává počet měření za sekundu.

Špičkové osciloskopy mohou odebírat i desítky miliard vzorků za sekundu. Naopak menší ADC, jako například MCP3008, zvládnou „pouze“ stovky tisíc vzorků. V audio technice se běžně používá frekvence 44 100 vzorků za sekundu (44,1 kHz).

Čím více vzorků odebereme, tím přesnější je reprezentace signálu. V některých případech je to klíčové, jindy méně důležité. Představme si například zařízení pro ovládání osvětlení nebo zvuku s mnoha potenciometry. V tomto případě není nutné snímat hodnoty milionkrát za sekundu, protože lidský prst se nedokáže pohybovat tak rychle. Stačí nám tedy taková frekvence vzorkování, aby byl výsledek plynulý a citlivý.

Co je bitová hloubka a jak ovlivňuje kvalitu ADC?

Dalším důležitým faktorem je kvalita vzorku, kterou udává bitová hloubka. Ta určuje, kolik stavů (zapnuto/vypnuto) můžeme použít k digitálnímu vyjádření napětí. Vyšší bitová hloubka znamená větší počet možných hodnot v daném vzorku, což vede k hladšímu a přesnějšímu výsledku.

Pokud neznáte binární systém, je dobré se s ním nejprve seznámit. Kolik bitů vlastně potřebujeme? Záleží na konkrétním použití. Někdy jsme omezeni použitým protokolem. Například MIDI 1.0 je limitováno sedmi, případně čtrnácti bity. Jindy může být omezujícím faktorem lidské vnímání. Pokud vyšší věrnost nepřinese znatelné zlepšení, nemusí být nutná.

Jak multiplexování zlepšuje možnosti ADC?

Populární ADC čipy jako ADS1115 a MCP3008 mají více vstupů. Nicméně, uvnitř obsahují pouze jeden ADC. To je možné díky multiplexorům, které jsou součástí těchto zařízení. Multiplexory fungují jako digitální přepínače, které umožňují ADC postupně vzorkovat signál z různých kanálů. Pokud tedy máme například osm kanálů a vzorkovací frekvenci 200 000, můžeme je postupně procházet a na každý kanál tak připadne 25 000 vzorků.

Jaké existují typy ADC?

ADC fungují různými způsoby v závislosti na ceně a požadovaných vlastnostech.

Flash ADC využívá složitý dělič napětí, který rozděluje referenční napětí na menší díly. Ty jsou pak porovnávány se vstupním napětím pomocí sady komparátorů. Flash ADC jsou velmi rychlé, ale jejich bitová hloubka je omezena počtem potřebných komparátorů. Z tohoto důvodu mají také vysokou spotřebu energie.

Subranging ADC se snaží tyto nedostatky vyřešit rozdělením převodu mezi dvě jednotky: jedna hrubě určí napětí a druhá ho přesněji specifikuje. Díky tomuto rozdělení je možné snížit počet potřebných komparátorů. Některé subranging ADC rozdělují převod do tří fází s vestavěnou korekcí chyb.

SAR (Successive Approximation Register) ADC provádějí převod pomocí binárního vyhledávání. Představme si, že potřebujeme získat osmibitovou hodnotu. SAR začne s hodnotou 10000000 (střední hodnota mezi 00000000 a 11111111). Pokud je napětí vyšší než tato střední hodnota, ponechá SAR nejlevější bit jako 1. Pokud ne, nastaví ho na 0. Tento proces se opakuje pro další bit a tak dále. Odhadovaná hodnota se postupně blíží skutečné hodnotě:

Vyhledávání se tak postupně zužuje, když se rozhoduje, zda je výsledek vyšší nebo nižší než aktuální střední hodnota. V tomto případě se hodnota pohybuje mezi 0 a 255 a po několika krocích ADC zjistí, že je přibližně 77.

Sigma-delta převodníky jsou složitější na pochopení. Používají se v náročných audio aplikacích a při měření signálu. Fungují tak, že převzorkují signál a výsledek zpřesňují pomocí filtrů a matematických výpočtů. Tím se efektivně snižuje vzorkovací frekvence a zároveň se zvyšuje přesnost. Tyto ADC jsou ideální tam, kde záleží více na přesnosti a potlačení šumu než na rychlosti.

Poslední kategorií jsou integrační ADC, které jsou ještě pomalejší než sigma-delta. Pracují s kondenzátorem, jehož rychlost nabíjení se používá k určení vstupního napětí. Vzorkovací frekvence je zde často synchronizována s frekvencí napájení, což pomáhá minimalizovat šum.

Co je Nyquist-Shannonova teorie?

Při digitálním zpracování analogového signálu potřebujeme pro každý cyklus alespoň dva body: jeden na vrcholu a jeden na dně. Vzorkovací frekvence tedy musí být minimálně dvojnásobkem nejvyšší frekvence, kterou chceme měřit.

Tuto teorii formuloval švédsko-americký fyzik Harry Nyquist a proto se nazývá Nyquistova frekvence. Teorie je pojmenována po Nyquistovi a Claudovi Shannonovi, ale ne po Edmundu Whittakerovi, který s tímto konceptem přišel ještě dříve.

Problém s přisuzováním teorie je v tom, že předem nevíme, kdy dorazí vrchol a dno vlny. Co když budeme vzorkovat v polovině vlny? Všimněte si, jak posun ve vstupním signálu může zcela zkreslit výsledný vzorek:

Nebo dokonce může dojít k zobrazení nových průběhů, které ve skutečnosti neexistovaly:

Tento jev se nazývá aliasing.

Problém s aliasingem

Možná znáte iluzi „kola vozu“, která se objevuje při natáčení točícího se objektu. Zdá se, že kola auta nebo vrtule se točí dozadu, a to dokonce velmi pomalu. V některých případech se mohou dokonce úplně zastavit.

Při hraní starších videoher jste si mohli všimnout, že rovnoběžné čáry někdy vytvářejí podivné artefakty. Ploty, schodiště a pruhované svetry vypadají zvláštně. Podobně se při poslechu nekvalitního digitálního spojení občas objevují pískavé zvuky. Jde o specifický typ zkreslení. Odkud se berou tyto ošklivé frekvence vycházející z šumu? Pokud posloucháte bohatý harmonický obsah, například bicí soupravu, je efekt ještě patrnější, zejména při vysoké kvalitě.

Pokud chápete princip jednoho z těchto jevů, jste na dobré cestě k pochopení všech. V případě kola vozu pevná snímková frekvence znemožňuje správné zachycení pohybu. Pokud se objekt otočí při každém snímku o 350°, je přirozené, že se zdá, že se ve skutečnosti posunul o 10° zpět. Jinými slovy, nemáme dostatek informací, které by věrně zobrazily to, co se děje. Vzorky, které odebíráme, neodpovídají tomu, co se snažíme měřit.

Tento problém se netýká pouze analogově-digitální konverze. V mnoha případech převádíme jeden druh digitálního signálu na jiný.

Jaká je tedy řešení? Existuje jich několik. Můžeme použít speciální filtr pro potlačení artefaktů, což mnoho ADC provádí automaticky. Nebo můžeme odebrat mnohem více vzorků, než je nutné. Čím více vzorků, tím přesnější je zobrazení vlny:

Pro dosažení nejlepších výsledků vzorkujte ve vyšší kvalitě

Pokud vás toto téma zaujalo, vězte, že jsme se ho sotva dotkli. ADC jsou velmi složitá zařízení.

Z pohledu běžného uživatele nebo fanouška Arduina jsou však také velmi jednoduché. Na vstupu je napětí a na výstupu číselná hodnota. Ať už chcete měřit cokoli – vlhkost půdy, oscilace hlasivek nebo proud fotonů – existuje velká šance, že najdete ADC, který to zvládne.