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

Klíčové věci

  • ADC se široce používají k převodu analogových signálů, jako je zvuk a světlo, na digitální hodnoty, které lze použít v různých aplikacích.
  • Vzorkovací frekvence ADC určuje počet čtení za sekundu, přičemž vyšší vzorkovací frekvence umožňuje přesnější reprezentaci signálu.
  • Datový tok ADC ovlivňuje kvalitu získaného vzorku, přičemž více bitů má za následek hladší a přesnější měření. Různé typy ADC nabízejí různé kompromisy, pokud jde o rychlost, přesnost a spotřebu energie.

Analogově-digitální převodníky (ADC) jsou neuvěřitelně užitečné pro přeměnu jevů v reálném světě na hodnoty, které můžeme použít v programovacích projektech. Ale jak může ADC převést analogové signály na digitální, které můžeme použít kdekoli?

K čemu se ADC používají?

ADC najdete téměř všude. Jsou ve vašem telefonu a převádějí váš hlas na řetězec binárních hodnot. Jsou ve vašem autě a měří rotaci vašich kol. Jsou v osciloskopech, pomáhají zachytit signály a reprezentovat je. Přesto je většina lidí bude používat ve světě videa a zvuku, kde je zásadní dostat světlo a zvuk do digitálního prostoru.

Co je vzorkovací frekvence? Jak vzorkovací frekvence ovlivňuje ADC?

Jednou z nejdůležitějších metrik titulků ADC je vzorkovací frekvence: počet čtení za sekundu.

Velmi špičkový osciloskop může vzít deset miliard vzorků za sekundu. Odvážný malý MCP3008 ADC snese relativně skromných dvě stě tisíc. V audio světě je typická vzorkovací frekvence 44 100 za sekundu (44,1 kHz).

Čím více vzorků odebereme, tím přesněji dokážeme reprezentovat signál. Někdy je to nezbytné; někdy není. Řekněme, že stavíme banku faderů (navrženou pro ovládání elektroniky, jako byste viděli na osvětlovacím nebo audio pultu) s několika desítkami potenciometrů. V tomto případě se hodnoty, které potřebujeme změřit, pravděpodobně nezmění milionkrát za sekundu, protože naše prsty se nemohou pohybovat tak rychle. Potřebujeme jen dostatek vzorků, aby byl výsledek hladký a citlivý.

  10 nejlepších aplikací na vydělávání peněz, které platí v roce 2024

Co je to bitrate? Ovlivňuje přenosová rychlost kvalitu ADC?

Měli bychom také myslet na kvalitu vzorku, který získáváme. To je do značné míry určeno bitovou rychlostí, která nám říká, kolik stavů zapnuto-vypnuto můžeme použít k digitální reprezentaci napětí. Čím více bitů máme, tím více možných hodnot můžeme zaznamenat v daném vzorku a tím hladší a přesnější bude konečný výsledek.

Psali jsme o binárním systému a jeho fungování, takže pokud si nejste jisti, je dobré začít. Kolik bitů potřebujeme? Opět záleží na tom, čeho se snažíme dosáhnout. Někdy můžeme být omezeni protokolem, který používáme. Například protokol MIDI 1.0 je omezen na sedmibitové (a příležitostně čtrnáctibitové) hodnoty. V jiných případech může být limitujícím faktorem lidské vnímání. Pokud zvýšená věrnost nepřinese žádné znatelné zlepšení výsledku, nemusí to být užitečné.

Jak multiplexování zlepšuje kvalitu ADC?

Populární ADC čipy jako např ADS1115 a MCP3008 nabízí mnoho vstupů. Ale pod kapotou obsahují opravdu jen jeden ADC. To je možné díky multiplexorům zabudovaným do těchto zařízení. Multiplexery jsou ve světě elektroniky a telekomunikací naprosto všude. Jsou to digitální přepínače, které fungují jako řízení provozu pro váš ADC. ADC může vzorkovat jeden kanál, pak další a pak další. Máte-li tedy osm kanálů a vzorkovací frekvenci 200 000, můžete je procházet všemi, přičemž na kanál vezmete 25 000 vzorků.

Jaké typy ADC existují?

ADC fungují různými způsoby v závislosti na nákladech a požadovaných možnostech.

Flash ADC pracuje přes velmi složitý dělič napětí. Skupina rezistorů rozděluje referenční napětí na přírůstky, které jsou poté testovány proti vstupu prostřednictvím skupiny komparátorů. Flash ADC jsou bleskově rychlé, ale jsou omezené, pokud jde o bitovou hloubku, kvůli počtu požadovaných komparátorů. Ze stejného důvodu jsou také touží po moci.

Subranging ADC se snaží kompenzovat tyto slabé stránky rozdělením práce mezi dvě samostatné jednotky: jedna pro zhruba určení napětí a druhá pro přesné určení napětí. Rozdělením věcí můžeme snížit počet srovnávačů. Některé dílčí ADC rozdělí práci do tří fází s vestavěnou opravou chyb.

  Jak přepínat a přizpůsobovat zobrazení konverzace v aplikaci Outlook

SAR (Successive Approximation Register) ADC vykonávají svou práci prostřednictvím binárního vyhledávání. Předpokládejme, že musíme vyplnit osm bitů. SAR bude začínat od 10000000, což je střední hodnota (00000000 je spodní a 11111111 je horní). Pokud napětí překročí tento střední bod, SAR zachová číslici zcela vlevo jako 1; pokud tomu tak není, SAR nastaví číslici zcela vlevo na 0. Proces můžeme opakovat s další číslicí a tak dále rekurzivně. To způsobí, že se odhadovaná hodnota postupně posune ke skutečné hodnotě:

Tímto způsobem neustále zužujeme vyhledávání, rozdělujeme možnosti na polovinu a ptáme se, zda je výsledek vyšší nebo nižší než střed. V tomto případě je hodnota někde mezi 0 a 255; po několika iteracích ADC zjistil, že je to kolem 77.

Sigma-delta převodníky jsou asi nejobtížnější na pochopení. Používají se pro vysoce přesné hudební aplikace a aplikace pro měření signálu. Pracují tak, že signál převzorkují a výsledek zpřesní pomocí ďábelsky složitého filtrování a matematiky. Tento proces účinně snižuje vzorkovací frekvenci a zároveň zvyšuje přesnost. Tyto ADC jsou skvělé, když na hluku a přesnosti záleží více než na rychlosti.

Nakonec tu máme integrační ADC, které jsou ještě pomalejší než ty sigma-delta. Pracují s pomocí kondenzátoru, jehož rychlostí nabíjení lze určit vstupní napětí. Vzorkovací frekvence je zde často synchronizována s frekvencí napájení, což lze využít k tomu, aby byl šum na absolutním minimu.

Co je Nyquist-Shannonova teorie?

Řekněme, že chceme popsat analogový signál digitálně. K tomu potřebujeme alespoň dva body pro každý daný cyklus: jeden nahoře a jeden dole. Naše vzorkovací frekvence tedy musí být alespoň dvojnásobkem nejvyšší frekvence, kterou očekáváme měření.

Toto je známé jako Nyquistova frekvence podle švédsko-amerického fyzika Harryho Nyquista. Tato teorie je pojmenována po Nyquistovi a Claudu Shannonových (významný matematik a kryptograf), ale nikoli po Edmundu Whittakerovi, který s tímto nápadem přišel dříve než jeden z nich.

Komu přisuzujeme teorii, má s ní problém. Není možné předem vědět, kdy dorazí horní a dolní část křivky. Co když vezmeme vzorky uprostřed příchozí vlny? Všimněte si, jak může posun v příchozím signálu zcela zploštit náš zachycený výsledek:

  Python skripty pro pravidelné mazání souborů

Nebo dokonce halucinujte nové průběhy, které dříve ani neexistovaly:

Tyto halucinace jsou známé jako aliasy.

Problém s aliasingem

Pravděpodobně budete obeznámeni s iluzí „kolo vozu“, která se někdy objevuje při natáčení rotujícího předmětu. Zdá se, že kola auta nebo lopatky vrtulníku se otáčejí dozadu – jen velmi pomalu. V některých případech se čepele mohou úplně zastavit (s upřímně divnými výsledky – podívejte se na video níže!).

Při hraní starší videohry jste si také mohli všimnout, že paralelní čáry někdy vytvářejí podivné deformační artefakty. Ploty, schodiště a pruhované svetry začínají skutečně vypadat velmi zvláštně. Nebo co ty podivné pískavé zvuky, které občas slyšíte, když někoho posloucháte přes nekvalitní digitální připojení? Je to zkreslení, ale zvláštní druh zkreslení. Co je se všemi těmi ošklivými frekvencemi vycházejícími z hluku? Pokud posloucháte harmonicky bohatý obsah, jako je bicí souprava, efekt je ještě zřetelnější – zvláště ve vysoké kvalitě.

Pokud pochopíte příčinu jednoho z nich, jste na dobré cestě k pochopení všech. V případě kola vagónu znamená pevná snímková frekvence, že nemůžeme správně zachytit pohyb. Pokud se při každém snímku něco otočí o 350°, je zcela přirozené, že si všimnete, že se to ve skutečnosti posunulo o 10° dozadu. Jinými slovy, není dostatek informací, které by věrně reprezentovaly, co se děje. Vzorky, které odebíráme, nejsou v souladu s tím, co se snažíme měřit.

Toto není problém, který je jedinečný pro analogově-digitální konverzi. V mnoha z těchto případů převádíme jeden druh digitálního signálu na jiný.

Takže, jaké je řešení? Je jich několik. Mohli bychom použít speciální filtr, abychom se vypořádali s těmito artefakty, což mnoho ADC dělá pod kapotou. Nebo můžeme odebrat mnohem, mnohem více vzorků, než potřebujeme. Čím více vzorků odebereme, tím přesnější bude náš obraz vlny:

Vzorek s vyšší kvalitou pro nejlepší výsledky

Pokud vám něco takového přijde zajímavé, dobrou zprávou je, že jsme se do tohoto tématu sotva ponořili. Zde je třeba sáhnout do hloubky: ADC jsou extrémně komplikované.

Ale z pohledu koncového uživatele nebo průměrného nadšence Arduina jsou také velmi jednoduché. Vstoupí napětí a vyjdou čísla. Ať už tedy chcete měřit cokoli – ať už je to obsah vlhkosti v kousku půdy, oscilace lidské hlasové schránky nebo proud fotonů lámajících se přes čočku – je velká šance, že existuje ADC, které to udělá. práce.