Hlavní navigace

Analogový záznam analogového signálu na digitálním počítači

22. 8. 2017
Doba čtení: 5 minut

Sdílet

Mít elpíčko nebo kazetu neobsahující kvantizační zkreslení a artefakty ztrátové komprese můžeme i pomocí matematického triku, bez kompresoru FLAC. Stejně tak s obrazem.

Postrádáte, stejně jako já, analogovou plynulost magnetofonu, analogové televize, gramofonových desek a filmové fotografie, které nemají ani tzv. kvantizační šum, ani artefakty ztrátové komprese? Ať už znatelné, nebo jen z principiálního hlediska?

Vynalezl jsem, jak prakticky dokonale analogově zaznamenáme multimediální signál na digitálním počítači. Bez nutnosti přídavného hardwaru. Se spotřebou místa na disku, která bude matematicky optimální vzhledem ke zvolené úrovni šumu v analogovém záznamu.

Spotřeba disku nebude proměnlivá v závislosti na obsahu jako u FLACu nebo PNG.

Tzv. kvantizační šum je ve skutečnosti zkreslení, nikoliv šum

Podle názvu by to měl být šum – něco náhodného, na signálu nezávislého. Ve skutečnosti to vůbec náhodné není, je to na signálu deterministicky závislé, silně nelineární a u periodických signálů to přidává harmonické kmitočty. Je to tedy ve skutečnosti kvantizační zkreslení.

Můžeme signál kvantizovat pomocí ADC s vysokým počtem bitů, např. 24, a kvantizační zkreslení zanedbat. Jenže pak bude signál zabírat velké množství místa na disku. Sekunda stereo záznamu 48 kHz 24 bitů zabere 288 kilobytů, tříminutová písnička 52 megabytů.


Moehre1992, GFDL

Vlevo analogový záznam se šumem, vpravo digitální záznam s kvantizačním zkreslením. Chybové signály mají v obou případech stejnou sílu i statistické rozložení. Vlevo je ovšem šum nezávislý na signálu, vpravo zkreslení deterministicky dané signálem. Počet digitálních bitů pro přenos obou je identický. Kvantizační zkreslení si nahoře vymýšlí hnědozelenou barvu, siluety hor, vlevo dole žlutou a červenou barvu, odstraňuje část hnědého oblouku pod deskou, v zadní části desky si vymýšlí neexistující tmavé skvrny. Dolní část vertikálního odlesku na desce má nesprávný trojúhelníkový tvar. Vertikální hrana na zdi za deskou se ztratila.

Trik

Trik spočívá v tom, že není požadavek, že analogový záznam musí být bez šumu. Bezšumový analogový záznam neexistuje. Navíc bychom ho ani nevyužili. Šum je v signálu přítomen už ze zdroje – termodynamický šum mikrofonu, obrazový šum způsobený kvantizací na fotony.

Předvedu zde metodu, jak omezený počet bitů záznamu převést z kvantizačního zkreslení do aditivního, pseudonáhodného šumu, a signálu zůstane teoreticky plynulá, nekvantizovaná škála úrovní, omezená pouze množstvím úrovní zdrojového signálu v digitálním počítači – např. 24 bitů, formát float apod. Kvalita náhodnosti šumu bude omezena pouze náhodností pseudonáhodného generátoru. Použít lze libovolný pseudonáhodný generátor.

Toto převedení využije teoretickou kapacitu kanálu na doraz, počet bitů záznamu bude tedy odpovídat počtu bitů odstupu signálu od šumu, nebude zde žádná režie.


Asim 18, Wikimedia(CC-BY-SA)

Vlevo původní obrázek s 24 bity na pixel. Vpravo analogový záznam se spotřebou 9 bitů na pixel, neomezeným počtem úrovní hodnot a odstupem signálu od šumu maximálně využívajícím teoretickou kapacitu – 16,9 dB. Uprostřed digitální záznam, na kterém je analogový záznam přenášen. Digitální záznam má 9 bitů na pixel a pouze 8 úrovní hodnot.

Algoritmus analogizace digitálního kanálu

Algoritmus vysílání

  • Nejdříve musíme znát počet úrovní digitálního kanálu, pro který budeme formátovat. Mějme digitální kanál přenášející celá čísla 0, 1, 2, …, N.
  • Vezme se vstupní analogový signál v intervalu <0;N> (oba kraje jsou zahrnuty).
  • Vygeneruje se pseudonáhodné (se vstupním signálem nekorelované) reálné číslo s rovnoměrným pravděpodobnostním rozdělením v intervalu ← 0,5;0,5) (-0,5 je zahrnuto, +0,5 není zahrnuto).
  • Pseudonáhodné číslo se k analogovému signálu přičte.
  • Číslo se zaokrouhlí k nejbližšímu celému. Pokud je přesně v půlce mezi celými čísly, zaokrouhluje se vždy nahoru.
  • Celé číslo se uloží do digitálního kanálu.

Algoritmus příjmu

  • Z digitálního kanálu se veme celé číslo 0 – N.
  • Vygeneruje se stejné pseudonáhodné reálné číslo jako ve vysílači.
  • Pseudonáhodné reálné číslo se od digitálního celého čísla odečte v doméně reálných čísel a máme analogový výstup – reálné číslo.
  • Analogový výstup je nachlup identický s analogovým vstupem do přijímače, je k němu pouze přičten pseudonáhodný šum s rovnoměrným pravděpodobnostním rozdělením na intervalu ← 0,5;+0,5).

Důkaz funkce

Pokud by se obyčejně zaokrouhlovalo (kresba 1), chybový signál by byl přímo dán desetinnou částí čísla vynásobenou –1, s tím že desetinné hodnoty v intervalu ← 1,0;-0,5) by byly přemapovány o jednotku výše. Každá desetinná část bude notoricky házet pořád tu samou chybovou hodnotu – chybový signál tedy bude závislý na vstupním signálu a nebude se jednat o aditivní šum, ale o zkreslení.

Kresba 1: Chování chyby, kdyby se obyčejně zaokrouhlovalo.

Pseudonáhodný, na vstupu nezávislý signál, nám tyto desetinné hodnoty náhodně protočí – rotuje (kresba 2). Proto každá vstupní desetinná hodnota bude házet plné spektrum chybových hodnot (kresba 3). Do které se zrovna trefí, nebude odvoditelné ze signálu, neboť to bude řízeno pseudonáhodným generátorem. Náhodná rotace nenáhodného signálu produkuje signál náhodný. Chybový signál tedy bude aditivním šumem a nikoliv zkreslením.

Kresba 2: Chování chyby v analogizovaném kanálu pro 4 různé hodnoty pseudonáhodného čísla

Kresba 3: Chování chyby a signálu v analogizovaném kanálu pro spojité spektrum pseudonáhodných čísel.

Analogizace není dither

Dither je něco jiného. Na vstup ditheru přichází sice také analogový signál, výstup má ale omezený počet úrovní. Z výstupu ditheru se původní analogový signál již nedá odvodit, a to ani s aditivním šumem. Dither je deterministický proces určený obsahem přenášených dat.

Analogizace produkuje něco zcela jiného – původní analogový signál, ke kterému je přičten aditivní šum. Výstup analogizace na rozdíl od ditheru je nekonečné množství úrovní. Pokud neznáme seed pseudonáhodného generátoru, výstup nelze na rozdíl od ditheru předpovědět. Analogizace je asi tak dither jako jsou vysílačky dither nebo jako je analogová televize dither nebo jako je AM rádio dither.

root_podpora

Co znamenají decibely šumu?

Stejně jako decilitr je desetina litru, decibel je desetina belu. Bel je logaritmická jednotka desítkového poměru dvou výkonů. Výkonů, nikoliv napětí. Poměr výkonů 1:10 je –1 bel, 1:1 je 0 belů, 10:1 je 1 bel, 100:1 jsou 2 bely, 1000:1 jsou 3 bely atd. Poměr jakých výkonů? Poměr výkonů na zátěžovém odporu elektronického výstupu. Protože energie na odporu je druhou mocninou napětí, 20 dB pak odpovídá poměru napětí 10:1, 40 dB poměru napětí 100:1, 60 dB poměru napětí mezi 1V a 1mV atd.:

V dalším článku bude praktická ukázka analogového záznamu do digitálního souboru a rekonstrukce analogového obrazu zpět pomocí skriptu s programem G'MIC.

Byl pro vás článek přínosný?

Autor článku

Karel Kulhavý vystudoval operační systémy, sítě a překladače na MFF UK a je autorem optického pojítka Twibright Ronja a spoluautorem textového a grafického webového prohlížeče Twibright Links.