A digitális audió rejtelmei 1

A Microchips oldalon található oktató anyagok előző részeiben elég részletesen megismertük az elsősorban zenei felvételek keveréséhez szükséges eszközöket, és azok használatát. Alapvetően elmondható, hogy az eddig megtanultak egyaránt alkalmazhatóak analóg- és digitális audió rendszerekben, hiszen az említett eszközök kis túlzással mindkét technológiában megtalálhatóak. A technika mai állásának köszönhetően azonban nem csak hogy egyre több a digitális stúdióeszköz, hanem ezek virtuális változatai egyre inkább kezdik kiszorítani az analóg vasakat. A jelenség egyenes következménye, hogy egyre szaporodnak a házi-stúdiós felhasználók, akik majdnem 100%-ban csak digitális, azon belül is inkább csak szoftver eszközöket, úgynevezett digitális munkaállomásokat (népszerűbb nevükön DAW-okat) és plugineket használnak. Ugyanez a tendencia kezd egyre inkább kibontakozni a professzionális felhasználók köreiben is, ami persze nem baj, sőt kifejezetten előnyt jelent az otthoni stúdióknak, hiszen manapság már ugyanazokat az eszközöket használhatjuk otthon, mint amit a legnagyobb hangstúdiókban is. Ha ezeket a plugineket úgy használjuk, vagy úgy szeretnénk használni, mint az analóg eszközöket, akkor egy pontig nem tapasztalunk különbséget, azonban egy bizonyos tudásszint után észrevehetjük, hogy a két technológia között bizony létezik eltérés. Szerintem nem arról kell beszélnünk, hogy az egyik jobb vagy rosszabb, egyszerűen arról van szó, hogy eltérőek.

Mivel manapság a digitális audió technológia már egyértelműen kikerülhetetlen, így ha profi munkát szeretnénk végezni, mindenképpen meg kell ismernünk a digitális eszközök működését közelebbről is. A sorozat következő részeiben ezekről, a kifejezetten csak a digitális tartományban létező problémákról, megoldásaikról, az eszközökről és felhasználásukról lesz szó. Ahhoz, hogy ezeket az alapvető, részben technikai ismereteket megérthessük, elengedhetetlen, hogy ismerjük a digitális audió alapjait. Kezdjük mindjárt azzal, hogy mi is a digitális audio?


A hang (audió)
Fizikai értelemben a hang olyan rugalmas és rezgőképes közegben terjedő mechanikai rezgés, ami  longitudinális hullámként terjed, és hallószervünkben hangérzetet kelt. A hang tehát nem csak levegőben, de például vízben is terjedhet, viszont olyan helyen, ahol nincsen közvetítő közeg, nem képes erre. Ilyen például egy légüres tér, mint például az űr (ezért is lehetetlen a filmekben gyakran látható akciójelenet, amikben halljuk egy űrhajó robbanásának hangját).


Ebben a cikksorozatban elsősorban a legtöbb ember által hallható hangokkal, azon belül is leginkább zenével foglalkozunk, ami az általánosan elfogadott 20 Hz és 20.000 Hz közötti tartományban terül el. Az ennél alacsonyabb frekvenciákat infrahangnak, a magasabbakat ultrahangnak nevezzük.

Hogyan jön létre a hang? Maradjunk most egy egyszerűbb esetnél, ahol a hangforrás egy mozgó felület (pl. egy hangszóró, az animációban vörös színnel jelölve), a közvetítő közeg a levegő, az érzékelő felület pedig a saját fülünk. Mint a mellékelt ábrán is látható, a hangszóró mozgásának hatására a levegő részecskéi felváltva összetömörülnek, majd eredeti alapállapotukba állnak vissza. Ezt a levegő nyomásváltozásaként mérhetjük és érzékelhetjük, például a fülünkben található dobhártyán keresztül, ami gyakorlatilag a hangszóróval megegyező mozgást fog végezni. Mindez a természetben (a valóságnak nevezett dologban) történik, és mivel a fizika a természetben található anyaggal és annak mozgásával foglalkozik, ezért ezt a jelenséget is fizikai jelenségnek nevezzük. Tehát alapvetően nem létezik olyan, hogy analóg vagy digitális hang, ezekkel a jelzőkkel inkább a hang továbbításának, tárolásának, vagy feldolgozásának módját írjuk le.

Hang tárolása
Ahhoz, hogy a hangnak nevezett fizikai jelenséget ne csak az eredeti helyen és időben hallgathassuk meg, azt valamilyen formában tárolni, majd visszajátszani kell. Az ezzel foglalkozó feltalálók hamar rájöttek, hogy a levegő mozgását kell rögzíteni, de ezt persze nem egyszerű megoldani addig, amíg nem készítünk olyan eszközt, ami képes azt leírni. Az egyik első tárolt hang 1857-ben készült phonoautográffal, ami gyakorlatilag csak annyit tett, hogy a hanghullámokat lerajzolta egy papírra. Ezzel persze önmagában nem sokat érünk, mert még csak a tárolásra elég, a visszahallgatásra nem. Arra 1877-ig kellett várni, amikor rájöttek, hogy a hangot vissza is lehet játszani, ha a fémlemezbe karcolt hullámok egy membránt mozgatva mozgatják meg a levegőt. Ez a módszer gyakorlatilag napjainkig megmaradt a mikrobarázdás hanglemez képében, mindössze annyiban tér el, hogy a hangszóró mozgását elektromos árammal erősítjük fel.

1859-ben készült phonoautogram
Nagy áttörést hozott a mágnesszalagos rögzítési technológia megjelenése, mert ebben már nem tárgyakba vésett módon kellett a a hullámformát tárolni, hanem annak elektromos árammá alakított változata által létrehozott mágneses tér változásait. Ehhez először persze ki kellett fejleszteni egy olyan eszközt, ami a hanghullámok által keltett nyomásváltozást elektromos árammá alakította. Ez lett a mikrofon. Amikor hanghullám hatására a légnyomás megváltozik, a mikrofonban található membrán elmozdul, és ezáltal elektromos áramot indukál (állít elő). Kis túlzással azt mondhatjuk, hogy a vezetékben megjelentő feszültség egyes értékei megegyeznek a membrán egyes pozícióival. Ezután a fejlődés gyakorlatilag megállíthatatlannak tűnt, hiszen a hangot már elektromos vezetékeken (dróton), sőt akár a levegőben, rádióhullámok segítségével nagyon messzire is el lehetett juttatni. Gyakorlatilag ezt nevezhetjük analóg hangrögzítésnek, bár a lemezbe vésett barázdákban tárolt hanghullámmintákat is ide soroljuk. (A mágnesszalag legnagyobb előnye, hogy egy tároló elemet (a szalagot) nem csak egyszer lehet rögzítésre felhasználni, hanem azt újból és újból át lehet írni. Ez a kemény felületbe (pl. hanglemez) karcolt hang esetében nem lehetséges.)

Analóg audió
Az analóg szó jelentése: hasonló. Ez a mi szempontunkból nem sokat mond, ha csak azt nem, hogy a visszajátszott jel hasonló, mint a rögzített. Az analóg jelek egyik legfontosabb jellemzője, hogy időben folyamatosan változnak (elméletileg a lehető legfolyamatosabban, ami a jelenleg ismert fizika határain belül lehetséges).

Ha a hangszórót mozgató áram folyamatosan azonos erősségű (feszültségű), akkor a hangszóró nem mozog, csak egy adott helyzetben áll, tehát nem jön létre nyomásváltozás, így hang sem (viszont leéghet a tekercs). Ezt az állapotot hívjuk egyenfeszültségnek, angolul Direct Current, röviden DC, ami manapság az elemekből, akkumulátorokból, zenei szinten a DC Offset kifejezésből, vagy az analóg szintetizátorok vezérlésére használt CV, azaz control voltage, magyarul vezérlő feszültségből lehet ismerős.

Ahhoz tehát, hogy hangról beszélhessünk, az elektromos áramnak váltakozó feszültségűnek kell lennie, hiszen ezzel írjuk le a légnyomás változást. A hanghullám két irányban változtatja meg a légnyomást, pozitív és negatív irányban (nő és csökken), amit a mikrofon és a hangszóró membránján előre és hátra iránynak látunk, természetesen az alapállapothoz képest, amikor nincsen nyomásváltozás. Ezt nevezzük 0-nak, a hangszóró kifelé mozgását pozitívnak (nyomásemelkedés), a befelé mozgását negatívnak (nyomás csökkenés). Többek között ezért is ábrázoljuk a hanghullámokat egy vízszintes tengely mentén fel és le irányban (ami a hangszórón előre és hátra iránynak minősül). Most tehát már tudjuk, hogyan alakul ki a sokat látott hanghullám grafikon.

Mint már megtudtuk, analóg jelfeldolgozás és rögzítés esetén a jel változása folyamatosan történik. Ez azt jelenti, hogy a hanghullám folyamatosan mozgatja az érzékelő felületet, például egy mikrofonban lévő membránt, és a mikrofonban ebből létrejövő elektromos feszültség is folyamatosan változik, ami egyben azt is jelenti, hogy felbontása végtelen (az egyes időpillanatokban mérhető érték pontossága gyakorlatilag csak a mérőműszer érzékenységétől és kijelzési képességétől függ). Ezzel a technológiával tehát elméletileg 100%-os pontossággal tudjuk a hanghullámokat rögzíteni és visszajátszani. Sajnos ez azonban csak elméleti szinten igaz, ugyanis a fizika törvényei az elektromos eszközökre is érvényesek (nem csak a hangra). Egyrészt az alkalmazott anyagokban lévő atomok korlátozzák a "felbontást", másrészt az elektronok áramlása a termodinamika szabályai szerint nem veszteségmentes, amiből torzítás, és úgynevezett zaj alakul ki. Ennek mértéke szoros összefüggésben áll az alkalmazott elektromos feszültséggel és áramerősséggel, amit sajnos nem választhatunk sem végtelen nagyra, sem végtelen kicsire.

Emellett az eszközök gyártásakor figyelembe kell venni sok minden mást is, nem csak a hangminőséget, ezért a szabványosított elektromos értékek egy általánosan elfogadott kompromisszumot jelentenek a hangminőség, gyárthatóság, és a felhasználási igények között. A professzionális stúdiótechnikai eszközök jelszintjét úgynevezett dBu skálán mérjük, aminek 0 dB (decibel) referenciaértéke 0,775 V (volt), szabványosan elfogadott legnagyobb értéke pedig +4 dBu, ami 1,228 V (RMS)-nek felel meg. (Az egyes gyártók sok esetben ennél nagyobb tartalékot is biztosítanak a referenciaérték felett, ami azt jelenti, hogy a +4 dBu átlépésekor még nem történik vágás.)

Digitális audió
Miután a hangot már eredményesen tudtuk elektromos jelekké alakítva analóg eszközökkel továbbítani, tárolni és feldolgozni, a következő lépcsőfok az elektromos jelek digitalizálása lett, mert ezzel a megoldással gyakorlatilag korlátlan ideig, veszteség nélkül tárolhatjuk és továbbíthatjuk az adatokat. Magát a tárolást ne keverjük össze a digitalizálással, aminél sajnos nagyon is számolnunk kell veszteséggel! De miből alakul ez ki? Ehhez először ismerjük meg röviden, hogyan történik a digitalizálás.

A digitális szó jelentése: valamely változó jelenségnek, vagy fizikai mennyiségnek diszkrét (nem folytonos), megszámlálhatóan felaprózott, s így számokkal meghatározható, felírható értékeinek halmaza. Az egyik legnagyobb különbség tehát az analóg és a digitális jelek között, hogy az analóg folyamatosan változik, míg a digitális csak bizonyos értékeket tud felvenni, és csak bizonyos időközönként. Ezt úgy kell elképzelni, hogy egy folyamatosan változó (analóg) jelet egy előre meghatározott időpillanatban megmérünk, úgy is mondjuk, hogy mintát veszünk belőle, és ez az érték lesz a digitális minta érték. Ez a digitalizáció.

Nézzük, hogy miként történik mindez a hangok tekintetében. A hang digitalizálásához azt először elektromos jelekké alakítjuk, hiszen ilyen elektromos elven működő analóg felvevő és lejátszó eszközeink már nagyon jók vannak, nincs tehát más dolgunk, mint a működésükhöz szükséges információkat digitális formában tárolni. Ez azt jelenti, hogy a mikrofon által adott elektromos feszültségértékeket folyamatosan mérjük, valamilyen módon ezeket feljegyezzük (tároljuk), majd a visszajátszás alkalmával a megfelelő időpontokban ismét előállítjuk, és ezt küldjük a hangszóró tekercsére, amitől az abban lévő mozgórész mozogni kezd és előállítja a szükséges légnyomásváltozásokat, vagyis a hangot.

Máris látható, hogy a digitális audió nem hang, hanem a hangot leíró információk, számok formájában tárolt változata, ami önmagában nem hallható! Vagyis hiába ismerjük a tárolt feszültségértékeket, azt a fülünkön keresztül soha nem fogjuk hallani. Mind a digitalizáláshoz, mind a visszajátszáshoz analóg eszközökre van szükségünk, annál is inkább, mert a diszkrét, pillanatnyi értékeket valamilyen módon folyamatos információkká kell alakítanunk. Ez akkor is igaz, ha a számok formájában tárolt információt eleve digitálisan állítottuk elő, például virtuális hangszerekkel.

Hogyan állítjuk elő a diszkrét értékeket, vagyis hogyan digitalizálunk? Nézzünk néhány alapvető ismeretet anélkül, hogy a legapróbb részletekig merülnénk bele a témába.

Kettes számrendszer
A digitális adatokat ma még bináris számrendszerben tároljuk, mert jelenleg nem áll rendelkezésünkre ennél jobb, általánosan használható módszer. A bináris számrendszer azt jelenti, hogy minden ábrázolható számot a 0 és 1 számjegyekkel írunk le. Mint minden más számrendszer, ez is két részből épül fel, a helyiértékből és az alakiértékből. A helyiérték azt jelenti, hogy az egyes számjegyek az adott számrendszerben milyen hatványú kitevőt jelentenek, az alakiérték pedig azt, hogy az adott helyiértéknek megfelelő hatvány hányadik kitevőjét jelzi. Ha ez bonyolultnak tűnik, gondoljunk rá, hogy a legtöbb ember számára ma teljesen hétköznapi tízes számrendszer is ugyanígy működik. A szám felírásakor a jobboldalon legszélső számjegy a tíz nulladik hatványát, vagyis 1-et jelent, és az ott található szám jelzi, hogy hány darab egyest kell számolni. Az ettől balra található első szám a tíz első hatványait jelenti, vagyis 10-20-30... stb., és az ott található szám azt jelzi, hogy ezt hányszor kell venni (szorozni). Az egyes helyiértékeken található alakiértékek által adott valódi értékek összege pedig maga az ábrázolt érték.


A kettes számrendszerben pont ugyanígy áll a dolog, de nem a tíz, hanem a kettő hatványaival számolunk az egyes helyiértékeken, az alakiérték pedig szintén csak két számjegy lehet, 0 és 1. A valódi érték megállapítását ugyanúgy végezzük, mint a tízes számrendszer esetén, vagyis jobbról az első számjegy a legkisebb hatványú kitevőt jelenti, 2 a nulladik hatványon, vagyis 1. Következő 2 az első hatványon, vagyis 2. Következik kettő a második hatványon, vagyis 4 és így tovább. Persze mi ezeket az értékeket tízes számrendszerre számoljuk át, mert ehhez vagyunk szokva, de gyakorlati előnyökön kívül más különbség nincsen abban, hogy melyiket használjuk. A kettes számrendszerben szereplő helyiértékeket a digitális technikában biteknek nevezzük. Ha egy adat 8 bites, akkor 8db helyiértékkel írhatjuk le a valódi értéket.

Tipp:
A kettes számrendszerben, a legszélső jobboldali bitet LSB-nek, magyarul a legkevésbé jelentős bitnek is nevezik. Ennek "ellentéte" az MSB, ami a legfontosabb bitet jelenti, ugyanis ennek a legmagasabb a helyiértéke. Ez a számsor bal szélén található.

Miért a kettes (idegen szóval bináris) számrendszert használják a digitális eszközök? Nos, a válasz nagyon egyszerű. A kettes számrendszerben mindössze két alakiérték létezik: 0 és 1. Mondhatjuk úgy is, hogy vagy van valami (például töltés), vagy nincsen. Képzeljünk el egy kondenzátort, ami nem tesz mást, mint elektromos töltést tárol. Ha a kondenzátorban van töltés, akkor az érték 1, ha nincsen, akkor 0. Ennél egyszerűbben a digitális adattárolást nem lehet megoldani. Ha 4 db kondenzátort használunk a tárolásra, akkor mindegyik megfeleltethető egy kettes számrendszerbeli helyiértéknek, vagyis digitális bitnek, tehát 4 bites memóriáról és adatról beszélünk.

Zuse Z3 (1941-ből)
Ez volt az egyik első digitálisan működő számítógép, ami
22 bites szavakkal és már lebegőpontos ábrázolással dolgozott.
Nézzünk egy példát. Adott egy kettes számrendszerben ábrázolt érték, ami 4 bites adat lévén 1011. A mellékelt ábrán láthatjuk az egyes helyiértékeket, amit a kettő adott bitnek megfelelő hatványából számolhatunk ki. Nagyon egyszerű az érték tízes számrendszerre átszámítása, mert az adott helyiérték alatt látható számmal kell szorozni. Vagyis 1x1, 1x2, 0x4 és 1x8. Ezeket összeadva 11-et kapunk, legalábbis tízes számrendszerben ábrázolva.

Hogy könnyebb legyen róluk beszélni, a bitek száma szerint nevezték el az ábrázolt adatmennyiségeket. 8 bitet egy bájtnak nevezünk (byte). Szónak (word) nevezzük azt a bitmennyiséget, amivel az adott eszköz dolgozik. Egy 32 bites processzor esetében egy szó 32 bitnek felel meg. A megabájt, gigabájt, stb tulajdonképpen csak a bájt SI prefixumokkal kiegészített elnevezése, ami megkönnyíti a számokról történő beszélgetést, mert nem a használt kitevők értékét mondjuk, hanem ezeket az elnevezéseket. 1 megabájt, az egymillió bájt, de nem ezt mondjuk, és nem is azt, hogy 10 a hatodikon bájt, hanem hogy egy megabájt.

Sajnos a jelenlegi digitális számítógépek csak kettes számrendszerben képesek működni, vagyis adatot tárolni és azokkal műveleteket végezni, amit persze csak bitenként képesek végrehajtani. Mindennek alapjait a magyar származású Neumann János fektette le 1945-ben. Még a mai legmodernebb digitális cpu sem képes többre, mint összeadni két bitet. Mivel azonban ezt rendkívül gyorsan teszi meg, így nekünk úgy tűnik, mintha "bármire" képes lenne, ez azonban csak a tervezőik és programozóik leleményességének köszönhető.

Digitalizálás a gyakorlatban
A mintavételezést végző egységet analóg-digitális átalakítónak (ADC), népszerűbb -és idegen- nevén konverternek nevezzük, ami többféle módon is működhet, attól függően, hogy milyen jelet szeretnénk digitalizálni. Az egyik legelső és legelterjedtebb, sok szempontból legegyszerűbb megoldás a PCM (impulzus-kódmoduláció) rendszerű, egymást követő, vagy fokozatos közelítésnek nevezett eljárás. Ezt egy összetett áramkör végzi, amiben több részegység található. Az egyik egy órajel generátor (CLK), ami meghatározza, hogy mikor kell elvégezni a mintavételezést. Egy másik, az analóg feszültség bemenet (V be), ami egy mintavételező és tartó áramkörön (S/H) keresztül kapcsolódik a komparátorhoz (összehasonlítóhoz), és feladata, hogy a beérkező feszültségértéket mindaddig megtartsa, amíg az aktuális minta kvantálása be nem fejeződik. Erre azért van szükség, mert az analóg jel folyamatosan változik, akár két mintavétel között is. Ha a kvantálás alatt a mért érték megváltozik, akkor mit is mérünk? Ez bizony hibát okoz(na)!

Az egyik legfontosabb részegység a komparátor, ami úgy működik, mint egy kétkarú mérleg. Az egyik tálcájára helyezzük a megmérendő feszültséget (a digitalizálandó feszültség értéket, V be), a másikra pedig egy ismert referencia értéket. Amelyik a nagyobb, arra dől a mérleg, és ennek megfelelően fog a komparátor kimenetén egy jel megjelenni. Ha a referenciafeszültség nagyobb, mint az éppen aktuálisan mért érték, akkor a komparátor kimenetén nem jelenik meg feszültség (digitális 0 érték), minden más esetben (vagyis amikor kisebb vagy egyenlő), akkor a komparátor kimenetén feszültség jelenik meg (digitális 1 érték). Ezt a döntési folyamatot kvantálásnak nevezzük. Tehát minél pontosabban képes a komparátor mérni, vagyis különbséget tenni a két feszültségérték között, annál pontosabb lesz a digitalizáció. A különböző konverterek (és hangkártyák) között ennek az egységnek a mérési pontossága az egyik kritikus különbség.

Ahhoz, hogy a konverterbe beérkező feszültségeket pontosan tudjuk digitalizálni, nem csak a komparátornak kell nagyon finom és pontos méréseket végezni, hanem nagyon fontos az is, hogy a komparátor olyan referenciaértékkel hasonlítsa össze a beérkező feszültséget, amit nagyon pontosan ismerünk. Ezeket a feszültségértékeket egy az AD konverterbe épített DAC (digitál-analóg konverter) állítja elő, amit a SAR (egymást követő közelítési regiszter) vezérel. Vegyük észre, hogy minél pontosabb referenciafeszültség értéket képes a DAC előállítani, és ezt minél kisebb eltérésekkel teszi meg, annál pontosabb lesz a digitalizáció, annál jobban tudjuk rögzíteni az analóg hullámforma eredeti alakját. Fontos, hogy ahány bites ez a DAC, annyi bit pontossággal ábrázolhatjuk a digitalizált jelet is.

A SAR elsőként a legmagasabb rendelkezésre álló bitnek megfelelő feszültségértéket küldi ki a DAC-en. Ha a mérendő feszültség (V be) kisebb, mint az aktuálisan előállított referenciafeszültség (V ref), akkor a komparátor kimenetén nem jelenik meg feszültség, ami az aktuális helyiértéken lévő bitet kikapcsolja, vagyis 0-ra állítja. Minden más esetben feszültség jelenik meg, aminek hatására a SAR az adott helyiértéken lévő bitet bekapcsolja, vagyis 1 értékre állítja. Ezután a folyamat folytatódik tovább, az összes ez előtti, és a következő, eggyel kisebb helyiértéken lévő bitek összegének megfelelő referenciafeszültség értékkel. A folyamat mindaddig folytatódik, amíg el nem érünk a legkisebb helyiértékű bithez, és meg nem kapjuk a digitális értéket, amit az áramkör a kimenetre küld. Ez persze önmagában csak a folyamat, a pontos méréshez ennél több kell.

Egyszerű, 4 bites kvantálási példa
A titok a kettes számrendszerben rejlik, ugyanis az egyes bitek által előállított feszültségértékek rendre az előző felét jelentik. Nézzünk egy példát, az egyszerűség kedvéért 4 bites ábrázolással, és 15 V maximálisan ábrázolható feszültséggel. Ez esetben a 15 V értéket a bináris 1111 szám jelöli. A legmagasabb (4-es) bit 8 V, a 3-as ennek fele, vagyis 4 V, a 2-es 2 V, az 1-es pedig 1 V. A digitalizálandó (megmérendő) feszültség legyen 11 V.

A SAR elsőként a legmagasabb helyiértéknek (4-es bit) megfelelő, vagyis legnagyobb referenciafeszültséget küldi a komparátorra, ez a példában 8 V. Melyik a nagyobb, 8 vagy 11? Természetesen 11, tehát a komparátor feszültséget küld vissza, a 4-es bit értéke tehát 1-lesz. Következő a 3-as bit, és a neki megfelelő 4 V-os feszültség, plusz az előzőleg kapott érték, ami esetünkben 1 lett, vagyis 8 V. Ez együtt 4+8=12 V. Ez bizony nagyobb mint a mérendő érték, tehát a komparátor kimenetén nem jelenik meg feszültség, a 3-as bit értéke 0 lesz. Következik a 2-es bit, aminek feszültség értéke 2 V, ehhez jönnek még az előző bitek, vagyis 8+0+2=10 V. Ez nem nagyobb mint a mérendő érték, tehát a komparátor 1-et ad vissza. Jöjjön az utolsó bit, az 1-es, aminek feszültség értéke 1V. A referenciafeszültség tehát 8+0+2+1=11V lesz. A referencia nem nagyobb mint a mérendő feszültség, tehát a komparátor kimenetén feszültség jelenik meg, az utolsó bit pedig 1-re lesz beállítva. Mivel elfogytak a rendelkezésre álló bitek, a SAR regiszterei az 1011 bináris értéket fogják tartalmazni, ezt lehet belőle kiolvasni. Mivel a példa értékeit a kettes számrendszer helyiértékei szerint választottam, így egyszerűen ellenőrizhetjük az eredményt, ha a kapott bináris számot decimálissá alakítjuk. Ez pont 11 lesz, tehát a digitalizálás pontos értéket adott.

Életszerűbb 4 bites kvantálási példa
Nézzünk egy életszerűbb (de még mindig egyszerűsített) példát, ahol a maximálisan ábrázolható feszültség 1,875 V (mivel az egyes bit helyiértékeknek megfelelő feszültségek: 1V, 0,5V, 0,25V, 0,125V.), a kvantálandó feszültség pedig 1,18 V (tekintsünk most el a nem egész számok digitalis ábrázolásának problematikájától, amire majd később térünk vissza, hiszen most egy referenciaszinthez képest dolgozunk).

Kvantálási (kerekítési) hibák, szinusz hullám
4 bites digitalizálása esetén
A SAR elsőként a legmagasabb helyiértéknek (4-es bit) megfelelő, vagyis legnagyobb feszültséget küldi a komparátorra, ez 1 V. Melyik a nagyobb, 1 vagy 1,18? Természetesen az 1,18, tehát a komparátor feszültséget ad vissza, a 4-es bit értéke 1 lesz. Következik a 3-as bit, plusz a 4-es, ezek összesen 1+0,5=1,5 V referenciafeszültséget állítanak elő. Ez nagyobb mint a mérendő 1,18 V, tehát a komparátor 0 értékre állítja be a 3-as bitet. Következik a 2-es bit és persze az összes őt megelőző: 1+0+0,25=1,25 V. Ez nagyobb mint a mérendő 1,18 V, tehát a komparátor 0 értékre állítja be a 2-es bitet. Jön az utolsó 1-es bit és az összes előző, vagyis 1+0+0+0,125=1,125. Ez kisebb, mint a mérendő 1,18 V, tehát a komparátor 1-re állítja be az 1-es bitet. A kvantálás befejeződött, a SAR 1001 bináris értéket ad vissza. Ha ezt ellenőrizzük, vagyis átváltjuk 10-es számrendszerre (beszorozzuk az egyes helyiértékek decimális értékével), akkor az eredmény 1,125 V-lesz, nem pedig 1,18 V. Vagyis ebben az esetben a választott referencia feszültséggel (1,875 V) és 4 bittel az 1,18 V értéket nem lehet pontosan ábrázolni. Ezt nevezzük kvantálási hibának.

Tipp:
Ha a kvantáló algoritmus "intelligens", akkor a fenti esetben figyelembe veszi, hogy mikor "jár jobban", 1 V-al, vagy 1,125 V-al. Az egyik esetben a hiba -0,18V, a másikban pedig +0,055 V. Nyilván egyik sem tökéletes érték, de a második esetben sokkal közelebb áll a "valósághoz". Ez az egyik oka annak, hogy miért "szólnak jobban" bizonyos konverterek, mint társaik.

Effektív bitszám (ENOB)
Sajnos a legtöbb esetben a digitalizálás során mindig keletkeznek kvantálási hibák, ezért a konverterek által használt bitszám önmagában nem adja meg egyértelműen az átalakítás pontosságát. Akkor mégis mennyi lehet egy konverter valódi "felbontása" (dinamikatartománya, pontossága, stb.)? Egy ideális (elméleti) konverter esetében csak a kvantálási zaj rontja az átalakítás minőségét, ezért ebben az esetben a valódi, hasznos bitszámot a következő képlettel számíthatjuk ki:
Bár a képlet egyszerűnek látszik, sajnos az effektív bitszámot megállapítani nem egyszerű feladat, még elméleti szinten sem, ugyanis a képletben a jel-zaj viszonyt (SNR) RMS értékkel kell szerepeltetni, ez pedig függ a jeltől (a hullámformától) és bizonyos esetekben a frekvenciától is. A fenti képlettel azonban nem sokat érünk, ugyanis csak az elméleti konverterekre (kvantálókra) igaz, mert a valóságban is létező konverterek egyéb zaj- és torzítási forrásokkal is rendelkeznek, és ezek hatása bizonyos szempontból olyan, mintha az átalakítónak még kisebb lenne a bitszáma. A hasznos jel, valamint a zaj és torzítások (harmonikusok és intermodulációs komponensek) teljesítményének arányát SINAD-nak nevezzük (Signal to Noise And Distortion). Az ideális kvantáló kvantálási zajával összehasonlítva a SINAD-ot:

Vagyis az elérhető valódi bitszámot befolyásolja az is, hogy milyen zajszintű jelet kapcsolunk az átalakító elé, és hogy milyen mintavételezési technológiát és frekvenciát alkalmazunk. A chip gyártók elismerik, hogy audió felhasználást tekintve a hasznos dinamikatartományt évente kb. 2 dB-el, és három évente kb. 1 bittel képesek növelni, legalábbis a rendelkezésre álló 1999-es adat szerint.

Mindenesetre a végleges hasznos bitek számát csak egy-egy konkrét rendszerre lehet megadni, hiszen minden AD és DA konverternek van analóg kapcsolási része is, amik szintén zajt termelnek. A legtisztább és legbiztosabb megoldás a saját rendszerünk valós bitszámának megállapítására, ha megmérjük a jel-zaj viszonyt. Ha ez pl. 102 dB, akkor az effektív, valós bitszámunk mindössze kb. 17 (SNR/6).

Referenciafeszültség kiválasztása
Mint láthatjuk, a sokbites digitalizálás tulajdonképpen egy többször ismételt igen/nem döntési folyamat, ahol a döntést mindig egy alap referenciafeszültség szorzatával előállított értékhez képest tudjuk elvégezni. Néhány olvasóban talán felmerül a kérdés, hogy milyen referenciafeszültséget kell, vagy érdemes választani (bár ezt csak a konverter készítője tudja megtenni, mi felhasználók nem). Ez tulajdonképpen nagyon egyszerűnek tűnik, ha észrevesszük, hogy a legmagasabb összehasonlítható feszültség egyben a legmagasabb digitalizálható feszültség is. Ha szeretnénk, hogy a digitális eszközeink által használt jelszintek az analóg eszközök számára is elfogadhatóak legyenek (és ez visszafelé is igaz legyen), akkor érdemes a már meglévő szabványokhoz igazodni. Az EBU szabványos, professzionális jelszintet figyelembe véve az elfogadott referencia érték a +4 dBu (0 VU), ami 1,228 V RMS-nek felel meg. Ha figyelembe vesszük, hogy az analóg eszközök (pl. keverőpultok) általában +22 dBu érték felett már nagyon erős túlvezérlésbe kerülnek, akkor ennek megfelelően érdemes a professzionális digitális eszközünk referencia feszültségét is megválasztani.

Most persze néhányan elcsodálkoznak, hogy akkor miért -18dBFS az EBU által szabványosnak nevezett digitális 0 VU érték? Nos, a digitális technikában csúcsfeszültségeket mérünk, az analóg technikában pedig átlagértékeket. Egy +4dBu analóg jel csúcsértéke akár +3,47 V is lehet, amit ha visszaszámolhatnánk, akkor +13dBu értéknek felelne meg (nyilván nem lehet ilyen számítást szabályosan elvégezni). Ha ehhez hozzáadnánk a VU metereken látható, és általánosan is elfogadott +3 dB felső határt, akkor máris +16 dBu-nál tartanánk. Ha biztosra akarunk menni, akkor hagyunk még 2 dB biztonsági tartalékot, és meg is van a 18 dB csúcsérték. Mivel digitális átalakításkor nem léphetjük túl a maximális referenciaszintet, így ha ezt a normál 0 VU fölé 18 dB-el választjuk, jó átjárhatóságot kapunk az analóg és digitális eszközük között. Persze ha ennél is nagyobb dinamikatartományra van szükségünk, akkor választhatunk magasabb referenciafeszültséget is, amivel ha kell, +22 dBu fölé is könnyedén eljuthatunk.

Tipp:
Az analóg stúdióeszközöknél szabványnak számító 0 VU nem pillanatnyi csúcsfeszültséget jelent, hanem RMS, vagyis átlag jelszintet. Ez a régi, analóg VU meterek miatt terjedt el, ezek 1,228 V RMS jelszintű, 1 kHz-es szinusz hullám esetén mérnek 0 VU, vagyis +4 dBu értéket. A modern, digitális rendszereknél azonban nem az átlag érték, hanem a mindenkor érvényes csúcsérték a fontosabb, hiszen konverzió alatt semmi sem lépheti át a 0 dBFS abszolút maximális jelszintet. A digitális kivezérlésmérők tehát a pillanatnyi csúcsértéket jelzik, nem az átlagot. Ez mellett tovább bonyolítja a dolgot, hogy az egyes hanghullámoknak más és más RMS értéke van, és mindez függ a frekvenciától is. Vagyis sajnos nincsen egyetlen, mindig működő átváltási mód dBu és dBFS között.

Bármit is választunk referencia feszültségnek, az AD konverterünk addig a jelszintig lesz képes digitalizálni, az felett már mindent 0 dBFS-nek fog regisztrálni. A dolog azonban nem ennyire egyszerű, ugyanis a digitalizáláshoz használt bitek száma határozza meg azt, hogy a referenciafeszültség és a 0 V közötti területet hány részre osztjuk fel. Ha pl. 8 biten digitalizálunk, akkor egyáltalában nem mindegy, hogy 1,228 V-ot osztunk fel 8 részre, vagy 6,152 V-ot. Az utóbbi esetben az alacsony jelszintű hangok sokkal zajosabbá válnak, mert az egyes biteknek megfelelő feszültségértékek között nagy lesz a különbség, így a kismértékű feszültségváltozások nem jelennek meg a digitális adatokban, azok vagy 0, vagy 1 értéket tudnak csak felvenni. Jó ha tudjuk, hogy például a hang térbeli elhelyezkedését sok esetben ezek a szinte alig hallható részek adják meg, így aztán elég fontosnak mondhatóak. Tehát nem biztos, hogy a "felbontás" növelése érdekében érdemes magas jelszinttel elkészíteni a felvételt, és ehhez választani a magasabb referenciafeszültséget. Már csak azért sem, mert a maximális dinamikatartományt kihasználó hangok (időpillanatok) száma elenyésző a sokkal alacsonyabb jelszintekkel szemben. (A hang lecsengése mindig hosszabban hallható, mint a tranziens rész, bár az is igaz, hogy a tranziens is nagyban meghatározza a hang jellegét.)

Egy szó mint száz, a választott referenciafeszültség alapvetően határozza meg a dinamikatartományt, a konverter pontosságát és az elérhető zajszintet. A legjobb, ha ezek együttes figyelembevételével választjuk meg az optimális kompromisszumot adó értéket, és lehetőleg a gyártó előírásai szerint üzemeltetjük az eszközt.

Folyamatosan változó analóg jel digitalizálása
Lassacskán elértünk oda, hogy van egy digitalizáló eszközünk, ami képes egy elektromos jel feszültségértékét egy adott időpillanatban megmérni, és ezt kettes számrendszerben ábrázolni. Tételezzük fel, hogy rendelkezünk az ahhoz szükséges eszközökkel is, amik ezt a digitális adatot képesek a digitalizálóból kiolvasni, majd egy adott helyre (egy memóriába) elraktározni. Ezzel azonban még csak egyetlen egy időpillanat feszültségértékét tároltuk el, ami nem jelent változást, nem mozgatja meg a hangszórót, csak egy bizonyos helyzetben tartja. Önmagában tehát még nem képez hangot. Emlékezzünk vissza, mi is a hang: A légnyomás hullámokban történő változása. Tehát ha hangot szeretnénk előállítani, akkor nem elég egyetlen egy időpillanat légnyomás értékét előállítani, egynél sokkal több kell. Ehhez a hangszórót folyamatosan kell mozgatnunk, amihez a hangot leíró elektromos jel feszültsége is váltakozni fog, ezért a digitalizációt is több időpillanatban kell elvégeznünk.

Tekintsük a mellékelt ábrát, ahol egy szinusz függvénynek megfelelő hullámot látunk, ami egy szinusz hanghullámnak megfelelő elektromos feszültségérték változást mutat be. Függőleges tengelyen helyezkednek el a feszültség értékek, a maximális (az egyszerűség kedvéért) +/-8-al. Pozitív és negatív értékek is vannak, hiszen váltakozó feszültségről beszélünk. Középen látható a 0 feszültség érték. A vízszintes tengelyen ábrázoltuk az időt, egyelőre mértékegység nélkül. Mint látható, a hanghullámunk "véletlenül" pont a digitalizálás kezdetét jelentő 0 időpontban indul, és 12 időegység alatt zajlik le egy periódusa.

A nulla időpontban a feszültség érték 0, ezt regisztrálja a digitalizáló, és ennek megfelelően (egy egyszerűbb 4 bites példánál maradva) 0000 értéket tárol el a memóriába. A következő mintavételi időpont az 1 időegységnél történik meg, ennek feszültségértéke +4, tehát a digitalizáló 0100 értéket ad át a memóriának. A második időpillanatban a feszültség érték +7, a memóriába ennek megfelelően 0111 kerül. A harmadik időpontban a feszültség érték +8, ennek megfelelően a memóriába 1000 kerül. A folyamat egészen addig folytatódik, amíg a digitalizálást be nem fejezzük. Tételezzük fel, hogy ezt az ábrán látható 18-ik időpillanatban tesszük meg. Tehát most a memóriában megtalálható 18 időpillanat aktuális feszültség értéke, onnan elméletileg könnyen visszaállíthatjuk az eredeti hullámformát, vagyis visszajátszhatjuk a hangot. Ehhez nem kell mást tenni, mint egy megfelelő eszközzel a megfelelő időpillanatokban előállítani a megfelelő feszültségértékeket.

24 bites digitalizáció szimulálása
Nagyításhoz katt a képre.
Bitmélység példa
Próbáljuk ki egy kis gyakorlati példán keresztül, hogy mit is jelent az, hogy hány biten digitalizáljuk a hangot. Ezt szakszóval bitmélységnek is nevezik, ami azt jelenti, hogy hány biten ábrázoljuk az adatot. Ehhez nyissunk meg egy üres DAW projektet 44,1 kHz mintavételi frekvenciával, amiben létrehozunk egy audió sávot. Ennek első insert pontjára elhelyezünk egy teszthang generátort, amin 1000 Hz-es szinusz hullámot állítunk be, 0 dBFS kimeneti jelszinttel. Ezzel szimuláljuk a digitalizálóba beérkező analóg szinusz hanghullámot. Amint halljuk, ez szinte tökéletesen megfelel egy valódi szinuszhullám hangjának (tekintsünk most el attól, hogy a hangot nyilván egy digitál-analóg átalakítón keresztül halljuk). Ha nem csak hallani, de látni is szeretnénk a kísérlet eredményeit, a következő insert pontokra helyezzünk el egy spektrumanalizátor- és egy oszcilloszkóp plugint. Én a MeldaProduction termékeit választottam, az MMultiAnalyzert (ingyenes változat: MAnalyzer) és az ingyenes MOscilloscope-ot. A fenti ábrán láthatjuk a "tiszta" szinuszhullám által adott eredményeket és az általam alkalmazott beállításokat is. Mint várható volt, a mai, alapnak számító 24 bites ábrázolással a hullámforma valódi szinusz függvénynek megfelelő képet ad, és a spektrum diagram is nagyjából tiszta 1000 Hz-et mutat (tekintsünk el a spektrumgrafikon alján látható kvantálási zajtól, amivel a következő részben foglalkozunk majd részletesen).

Most szimuláljuk a digitalizálást. Erre a célra egy mintavételi bitszám beállító (esetünkben csökkentő) plugint fogunk használni. Én az ingyenes MBitFun-t választottam (aki 100%-os pontosságra törekszik, az válassza inkább a Repaer JS Bit Reductiont). Helyezzük hát el a plugint a teszthang generátor után, de az analizátor és az oszcilloszkóp elé, hiszen azt szeretnénk látni, hogy milyen hatást gyakorol a bitszám csökkentés a létrejövő analóg hullámformára és hangra. Ha bekapcsoljuk és megnyitjuk a plugint, láthatjuk, hogy a bitszám csökkentés "csak" 16 bitről indul lefelé, de ez mint látni fogjuk nem túl nagy probléma, tekintve hogy a CD is 16 biten működik, és dinamikatartománya így is jelentősen meghaladja az általános felhasználási igényeket. Különbséget nem nagyon hallunk a 24 bites (vagy 32, vagy 64, attól függően, hogy milyen a DAW beállítása) és a 16 bites szinusz hangja között, amiről a plugin ki-be kapcsolásával is egyszerűen meggyőződhetünk. Ez persze nem jelenti azt, hogy nincs különbség, de ezt most inkább csak látjuk a spektrumanalizátoron, mint halljuk! Amit láthatunk, az az, hogy a 16 bites mintavételkor a kvantálási zajküszöb megemelkedik (az alul látható "szőrős" hullámok felfelé emelkednek, lásd a képen).

Nézzük (és halljuk), hogy mi történik akkor, ha a bitszámot elkezdjük csökkenteni. Ezt az MBitFun "bits" nevű paraméterének állítgatásával tehetjük meg. Induljunk 16-tól lefelé, és figyeljünk a hangra, valamint a spektrumra és a hullámformára. 8 bitig nem sok különbséget hallani, pedig a spektrumanalizátoron jól látható, hogy egyre több harmonikus keletkezik, de a hullámforma még mindig egészen hasonlít az eredeti szinuszra. 7 bitnél viszont már elkezd az oszcilloszkóp képe vibrálni, a hullám kezd szögletesedni. A torzítás 4 bittől kezd egyértelműen hallhatóvá válni, 1 bitnél pedig gyakorlatilag már egy négyszöghullámot látunk és hallunk. Most kapcsoljuk ki a teszthang generátort, és helyezzünk el a sávon egy audió fájlt, mondjuk egy kész mixet (referencia zenét), és ezen is játsszuk végig a fenti folyamatot, 16 bittől lefelé haladva. Nem meglepő módon a szinusz teszthez hasonló eredményeket kapunk. 8 bitig nem igazán hallani különbséget, ami sokakat talán meglephet, akik szerint csak 32 biten lehet jó zenét készíteni... 6 bitnél már hallani némi zajosodást, de az igazi problémák ismét 4 bittől lefelé kezdődnek. Itt már jelentős zaj hallható, ami 2 bitnél már olyan szintre erősödik, hogy tényleg nagyon zavaró. Ettől azonban még a zene nagy része felismerhető marad, ami az 1 bites digitalizációról már nem igazán mondható el. Itt inkább csak pattogást és kattogást hallhatunk. Mindez persze erősen függ a választott zene spektrumától és jelszintjétől. Hogy miért?

A digitalizáció mint már tudjuk, bitekben történik. Egy bit nagyjából 6dB dinamikatartománynak felel meg. Minél kisebb a beérkező jel szintje, annál kevesebb részre lehet egy adott referenciaszinthez képest felosztani. Egy kicsit hasonló ez egy gate működéséhez. Ha a jelszint egy adott határ alá esik, akkor nem keletkezik kimenő jel (0 lesz a szó értéke), ha egy adott szint felett van, akkor viszont van kimenő feszültség. Vagyis minél magasabb a jelszint, annál inkább valószínű, hogy a kvantálás nem 0 értéket fog adni. Így a magasabb jelszintű zenék kevésbé torzított hatást adnak a kísérletben. Ez azonban nem azt jelenti, hogy a több bites digitalizálásnak nagyobb a felbontása, hanem azt, hogy nagyobb a dinamikatartománya. Vagyis pl. 1 bit esetében csak 6dB dinamikatartományunk van, ami azt jelenti, hogy az adott pillanatban vagy van jel, vagy nincs. 2 bit esetében ez már 12dB-t jelent, aminél érdekes módon már tökéletesen felismerhető az eredeti hang, legalábbis akkor, ha jelszintje kitölti a használt referenciaszint adta dinamikatartományt (vagyis nem túl halk vagy túl hangos). Mindezt egyszerűen ki is próbáltuk az imént. Bár a dolog nem ennyire egyszerű és nem is teljesen pontos a megfogalmazás, de most mindenki saját fülével hallhatta, hogy szerinte mennyi biten kell digitalizálni ahhoz, hogy a hang az eredetivel azonos élményt nyújtson.

Tipp:
Az alacsony bitszámú digitalizálásnál az alacsony jelszintek különbsége megszűnik (gyakorlatilag eltűnik és vagy nulla, vagy a legalsó értéket veszi fel). Érdekes módon ezt a torzítást mi zajnak halljuk, ami a bitszám csökkenésével növekszik, hiszen a jelenség egyfajta kompresszorként működik.

A próba előkészítésekor kétféle bitmélység csökkentő pluginnel is elvégeztem a fentieket, és bizony azt tapasztaltam, hogy bár nem nagy mértékben, de eltérő eredményeket adnak. Mivel az MBitFun nem DAW specifikus és ingyenes is, ezért választottam végül ezt a példákhoz. A mellékelt ábrán lévő spektrumanalizátor képet a tesztben használt 44,1 kHz mintavételezésű projektben készítettem, két különböző sávon. Mindkettőn 1000 Hz-es, 0 dBFS kivezérlésű szinuszhullámot állított elő a Reaper saját teszthang generátora, de a vörös színnel jelölt sávon a Reaper saját JS Bit Reduction pluginje, a zöld sávon a már megszokott MeldaProduction MBitFun lett elhelyezve. Látható, hogy a két színnel készült diagram eltérő. Mivel nem tudom és nem is akarom az összes lehetséges plugint és DAW-ot végig letesztelni, így most azt mondom, ha valaki otthon a cikkben láthatótól kissé eltérő eredményeket kap, akkor ne csodálkozzon. A válasz egyébként elég egyszerű: a Reaper Bit Reduction plugin valóban vágja a beállított biteknél a mintákat, az MBitFun viszont 24 bitre konvertálva küldi ki a jelet. A hallható és látható eredmény egyébként gyakorlatilag azonos, így a fenti próba szempontjából nem csapjuk be magunkat. Minderről egyszerűen meggyőződhetünk, ha a pluginek után elhelyezünk egy bitszám mérő plugint, pl. az ingyenes Bittert.

Aki szeretne további érdekességeket is tapasztalni, annak a következőkben a Reaper JS Bit Reduction pluginhez hasonló, valódi vágást végző pluginre lesz szüksége, mert az MBitFun a továbbiakban nem ad megfelelő eredmény, ezért a következő próba elvégzéséhez sajnos csak 1 biten használható!

Mint tudjuk, 1 biten kb. 6 dB dinamikatartományt tudunk digitalizálni. Ha tehát a digitalizálást 1 biten végezzük, akkor a 6 dB dinamikatartománynál magasabb eltérést mutató jeleket nem tudjuk megkülönböztetni. Ezt tökéletesen tesztelhetjük is, ha visszakapcsoljuk az imént használt teszthang generátort, és 1-re csökkentjük az átvitel bitmélységét. Elsőként hagyjuk meg a 0 dBFS jelszintet, amit mint látható és hallható, 1 biten is átvisz a rendszer. Most kezdjük a tesztgenerátorból kilépő jelszintet 1dB-enként csökkenteni. Figyeljük meg, hogy ezt egészen -6 dBFS-ig nem a hangerő csökkenése, hanem a keletkező harmonikusok szintjének növekedése követi, majd -6 dBFS szintnél a jel megszűnik. Igazoltuk tehát, hogy 1 biten, a referencia szinthez képest 6 dB dinamikatartományt tudunk digitalizálni. A digitális audió esetében a referencia mindig a 0 dBFS, ehhez képest 6 dB dinamikatartomány az 0 és -6 dBFS közötti rész. Ha a digitalizálást 2 bitre emeljük, a szinuszunk ismét hallhatóvá válik, de csak addig, amíg a teszthang kivezérlését nem csökkentjük a 2 bitnek megfelelő jelszint alá, ami 2x6=-12dB. És ez így folytatódik minden rendelkezésre álló bit esetében.

Tipp:
A későbbi részekben részletesebben is lesz róla szó, hogy a mintavételezési frekvencia erősen befolyásolja a fenti jelenségeket, amit az iménti 1 bites próbánál kifejezetten jól érzékelhetünk, ha a 44,1 kHz-es mintavételt átkapcsoljuk 48 kHz-re, vagy még magasabbra. Ezekben az esetekben sokkal kevesebb torzítást hallunk, hiszen a szinusz hullámból egyre több adat áll rendelkezésre. Mindez persze extrém példa, hiszen 1 biten senki sem digitalizál hangot, a szabványos 16 bit pedig 44,1 kHz-en is kiváló eredményt ad, nem sok okunk van tehát arra, hogy ennél magasabb értékekkel dolgozzunk!

Digitálisan ábrázolt hang megszólaltatása
Egyértelmű, hogy a hang digitalizálása önmagában nem túl sok mindenre használható. Valójában a méréseken, elemzéseken, kutatásokon kívül szinte semmire. Vagyis nem sok értelme van hanghullámokat tárolni vagy digitálisan szimulálni úgy, hogy azokat nem tudjuk meghallgatni. Ehhez viszont egy újabb eszközre van szükségünk, ami a digitális adatokból (ismét) analóg feszültségértékeket képes előállítani, amit aztán a mikrofonhoz, vagy más elektromos elven működő hangforrásokhoz hasonlóan erősítő és hangszóró segítségével tudunk megszólaltatni.

Erre a célra az úgynevezett digitál-analóg átalakítókat (DAC) használhatjuk, ami kis túlzással az ADC tükörképének tekinthető. Mint ott, itt is igaz, hogy többféle működési mód lehetséges, attól függően, hogy mely képességeket tartjuk fontosabbnak. A videó technikában pl. kisebb felbontás, de sokkal nagyobb sebesség (frekvencia) kell, míg audió felhasználáshoz alacsonyabb mintavételi frekvencia is elegendő, viszont sokkal precízebb működés, ha úgy tetszik nagyobb felbontás szükséges.

A DAC tulajdonképpen egy olyan áramkör, ami meghatározott időpontokban (az órajelnek megfelelő (CLK) megszakításokban), feszültségérték impulzust állít elő (innen származik a PCM rövidítésből az impulzus szó). A feszültségértéket többféle módszerrel is előállíthatja, erre most nem térünk ki részletesen, csak egy egyszerű megvalósításról, az R-2R létra kapcsolásról lesz szó röviden (lásd a lentebbi ábrán). Ez a már említett AD konverterhez nagyon hasonlóan működik, de itt nem komparátort találunk, hanem az egyes biteknek megfelelő ellenállás értéket adó (a példánál maradva 4 bites) lépcsőfokokat. Az első lépcsőfok az első bitnek megfelelő feszültségérték előállításához szükséges ellenállású, a második a másodiknak megfelelő, és így tovább. Ha a kapcsolás egyes lábaira a digitális bemeneten a memóriából feszültség érkezik, akkor az adott biteknek megfelelő ellenállás értékek összeadódnak, és az így kialakult ellenállásnak megfelelően változik a referencia feszültség (V ref) értéke, ami a DAC kimenetén (V out) mint pillanatnyi, impulzusszerű feszültségérték jelenik meg.

4 bites R-2R létra kapcsolás
Ezek a feszültségértékek jó esetben megfelelnek az eredeti analóg hullámforma által azonos időpillanatban előállított feszültségértékeknek. Azonban ha csak ezeket az impulzusszerű feszültségértékeket (a lenti ábrán piros karikák) küldenénk a hangszóróra, nagy valószínűséggel nem az eredeti hangot (kék vonal) hallanánk, hiszen az analóg jel folyamatosan változik, nem pedig rövid idejű "tüskékből" áll. A Shannon-Nyquist tétel kimondja, hogy egy folytonos idejű jel (analóg) elvileg tökéletesen visszaállítható mintáiból (diszkrét digitális értékek), ha a mintavételi frekvencia legalább kétszer akkora, mint a jel sávszélessége, és a sávszélesség korlátozott. 

Tehát ezt a tételt nem csak a mintavételkor (digitalizáláskor), hanem a visszaállításkor (lejátszáskor) is alkalmaznunk kell, ami segítségünkre van abban is, hogy az impulzusok közötti időben létrejövő feszültségértékeket valamilyen módon "ki tudjuk találni". És itt van a megfejtése annak a tévhitnek, hogy a digitális jel szögletes. Bár amíg digitális formában tároljuk, addig valóban igaz, hogy két időpont között nem változik az érték, de amint visszaalakítjuk analóg hullámmá, a tárolt értékek között is létrejönnek a hiányzó közbenső értékek. Erre az úgynevezett interpolációs technikát használjuk, ami egy olyan matematikai közelítő módszer, amely egy függvény nem ismert értékeire az ismert értékek alapján ad közelítést. Esetünkben ez a Whittaker–Shannon interpolációs képlet, amit a valóságban egy úgynevezett helyreállító szűrő (reconstruction filter) valósít meg, ami közvetlenül a DAC impulzus kimenete után helyezkedik el  (lásd a fenti ábrán). Ez nem más, mint egy analóg aluláteresztő szűrő, amivel két legyet is ütünk egy csapásra.

Egy elméleti DAC diszkrét Dirac impulzusok sorozatát bocsátja ki, ami végtelen széles frekvenciasávot és végtelen rövid időt jelent. A gyakorlatban használt DAC azonban csak véges sávszélességű és idejű impulzusokat képes létrehozni, és szűrés nélkül ezek mindegyike az eredeti jelhez képest hamis magasfrekvenciákat hoz létre. A helyreállító szűrőben használt aluláteresztő szűrő egyrészt kisimítja a hullámformát, ezzel eltüntetve a Nyquist határ feletti frekvenciákat (vagy legalábbis egy részüket), miközben egyben vissza is állítja az eredeti, folyamatos analóg hullámformát, legyen az digitalizált, vagy mesterséges úton, digitálisan előállított hang. Sajnos a szűrő "minősége" erősen befolyásolja a létrejövő hang tisztaságát, és ebből is adódik az egyes audió interfészek hangzása közötti különbség.

Tipp:
Néhány DAW megpróbálja a rendelkezésre álló digitális adatokból vizuálisan is visszaállítani az analóg hullámformát. A mellékelt ábrán ugyanazt az 1 sample hosszúságú Dirac impulzust tartalmazó wav fájlt látjuk az Ocenaudio és a Reaper ábrázolásában.  Mint látható, a használt algoritmusnak megfelelően eltérő képet kapunk, és sajnos hasonló a helyzet a különböző gyártóktól származó DA koverterekkel is.

Mint tudjuk, az analóg szűrők nem képesek lineáris fázisú működésre, és függőleges meredekségű vágásra (100 dB/oktáv), így DA átalakításkor a gyakorlatban mindig létrejönnek olyan, a Nyquist határ feletti nemkívánatos, káros frekvenciák is, amiket az eredeti hang nem tartalmazott. A problémát viszonylag egyszerűen orvosolhatjuk, ha túlmintavételezést (lásd a következő részben) alkalmazunk, amivel a Nyquist határt a hallható frekvenciák fölé emeljük, így egy egyszerűbb, olcsóbb szűrővel is megfelelő hangminőséget érhetünk el. Nem mellesleg a lejátszáskori túlmintavételezés segítségével az interpoláció eredményét is javíthatjuk, hiszen nem csak az éppen aktuális, hanem az előző és a következő sample értéket is ismerjük, amiből sokkal részletesebben állapíthatjuk meg a mintavételi időpontok között elhelyezkedő feszültségértékeket.

A digitalizálás bitmélységének szimulálásakor már megtapasztalhattuk, hogy milyen a különböző bitmélységű analóg-digitál átalakítások hangzása, de bevallom férfiasan, hogy valójában ott inkább a digitál-analóg átalakítást hallhattuk. A kettő persze nem áll nagyon messze egymástól, így egyetlen olvasónak sem kell kétségbe esnie emiatt, sőt így két próbát végeztünk el egyszerre. Aki mégis szeretné újból megtapasztalni a különböző bitmélységű DA konverziók hangját, az lapozzon vissza és végezze el újból az előző kísérleteket.

Hány biten érdemes dolgozni, aka. 24 vs 32 bit
Ez a téma olyan bonyolult, hogy egy külön részben foglalkozunk majd vele részletesen. Előzetesen annyit, hogy a mai technológiákkal előállítható anyagokból, sorozatgyártásban elkészíthető szabványos professzionális audió kapcsolások elérhető legalacsonyabb elméleti zajszintje -129,6 dBu. Az emberi fül kialakításából eredő, az ember által felfogható legnagyobb jel-zaj arány kb. 124 dB (ami nem áll messze az elkészíthető legkisebb -129,6 dBu elméleti határtól), de kísérletek azt mutatják, hogy emberek esetében nincsen értelme -102,8 dBu zajszintnél alacsonyabbnak. A 24 bites digitális audióval ábrázolható maximális elméleti dinamikatartomány 144 dB. Bár ez nem teljesen igaz, de ebből már látszik, hogy már a 24 bit is elméletileg nagyobb tartományt fog le, mint amit valaha is képesek lennénk hallani (ami egyébként nagyjából 21,6 bitnek felel meg). Ennél többet szerintem nem kell mondani. Akinek mégis, az ide kattintva előreléphet a vonatkozó részhez.

Tételezzük fel, hogy a fentiekben megismert digitalizáló (AD) és visszajátszó (DA) konvertert nem azonos időben és nem azonos helyen használjuk, hiszen pont ez lenne a hangrögzítés értelme. Sőt, hogy még tovább nehezítsük a dolgot, nem is azonos gyártótól származnak, így kicsi a valószínűsége, hogy pontosan ugyanúgy működnek. Bekapcsoljuk tehát a DA eszközünket, csatlakoztatjuk hozzá a memóriát, amiben tároltuk a mintavett adatokat, és elindítjuk a lejátszást... és csodálkozunk, mert amit hallunk, annak semmi köze az eredeti hanghoz. Ennek persze több oka is lehet, és pontosan ezekkel fogunk foglalkozni a következő részben.

Addig is eredményes keverést és hibamentes digitalizálást kívánok mindenkinek!

A következő részhez katt ide!


Felhasznált irodalom:
https://en.wikipedia.org/wiki/Phonautograph
https://hu.wikipedia.org/wiki/Helyi%C3%A9rt%C3%A9k
https://en.wikipedia.org/wiki/Word_(computer_architecture)
https://hu.wikipedia.org/wiki/SI-prefixum
https://hu.wikipedia.org/wiki/A_sz%C3%A1m%C3%ADt%C3%B3g%C3%A9p_t%C3%B6rt%C3%A9nete
https://hu.wikipedia.org/wiki/Anal%C3%B3g-digit%C3%A1lis_%C3%A1talak%C3%ADt%C3%B3
http://www.sengpielaudio.com/calculator-db-volt.htm
http://www.rane.com/note137.html
https://en.wikipedia.org/wiki/Successive_approximation_ADC
https://hu.wikipedia.org/wiki/Jitter
https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
https://en.wikipedia.org/wiki/Bit_numbering
https://en.wikipedia.org/wiki/Digital-to-analog_converter
https://www.tek.com/blog/tutorial-digital-analog-conversion-r-2r-dac
https://www.soundonsound.com/techniques/does-your-studio-need-digital-master-clock
http://sound.whsites.net/noise.htm
https://en.wikipedia.org/wiki/Root_mean_square

Nincsenek megjegyzések:

Megjegyzés küldése