ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Direct Digital Synthesis (DDS) Přímá číslicová syntéza Tyto materiály vznikly za podpory Fondu rozvoje vysokých škol v roce 2013 (projekt č. 1256/2013)
Obsah Úvod do přímé číslicové syntézy (DDS) Nejjednodušší způsob realizace Další možnosti vylepšení fázový akumulátor Varianta DDS bez zaokrouhlování fáze Varianta DDS se zaokrouhováním fáze Vztah mezi vstupním hodinovým kmitočtem a parametry generovaného signálu Možnosti fyzické realizace DDS Softwarová implementace algoritmu DDS Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 2 z 23
Přímá číslicová syntéza zkratka z anglického výrazu Direct Digital Synthesis triviální způsob, jak digitálně generovat analogový signál (různé frekvence i tvar, obvykle sinusový) pomocí přesného (referenčního) zdroje kmitočtu a D/A převodníku hojně využívaný algoritmus, v praxi lze nalézt např. u: funkčních generátorů (měřicí technika) kvadraturních modulátorů (telekomunikační technika) Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 3 z 23
Teorie a princip DDS nejjednodušší hardwarový způsob implementace DDS zdroj referenčního (velice stabilního!!!) kmitočtu čítač adresy paměť (uloženy vzorky výstupního signálu např. sin) D/A převodník CLK f REF čítač adresy paměť (sin) register D/A převodník f OUT DATA Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 4 z 23
Princip DDS její podstata V paměti je uložena 1 perioda výstupního signálu (v DSP lze využít symetrie průběhu a tím možno použít menší paměť) V každém taktu hodinového signálu f REF se inkrementuje hodnota čítače ten je použit pro adresaci paměti z paměti se přečte další vzorek výstupního signálu vzorek je nahrán do D/A převodníku Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 5 z 23
Teorie popis funkce frekvence výstupního signálu je dána vztahem: f REF /n kde n je počet vzorků uložených v paměti jedné periody výstupního signálu změna kmitočtu DDS možná změnou n (počtem vzorků), případně změnou f REF není výhodné přidává se tzv. akumulátor fáze Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 6 z 23
Akumulátor fáze varianta DDS bez zaokrouhlování fáze varianta bez zaokrouhování znamená, že všechny bity akumulátoru jsou použity pro adresaci převodníku fáze amplituda Aktuální hodnota akumulátoru nese informaci o aktuální fázi!!! Přírůstek akumulátoru N-bitů N-bitů X-bitů dle použitého D/A převodníku Registr Akumulátor fáze Převodník fázeamplituda D/A převodník N-bitů N-bitů Ref. hodinový signál f CLK Registr akumulátoru šířka akumulátoru = N bitů Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 7 z 23
Parametry výstupního signálu generovaného DDS Pokud zvolím velký počet bitů akumulátoru získám velké frekvenční a fázové rozlišení Ovšem narůstají požadavky na velikost paměti pro uložení vzorků!!! Je-li N = 32, při šířce vzorku 1 Byte potřebuji paměť o velikosti 32 GB to je neúnosné proto se používá varianta DDS se zaokrouhlováním fáze, pro adresaci se použije několik horních bitů akumulátorů Počet bitů akumulátoru N Počet bodů (rozsah akumulátoru) Frekvenční rozlišení @ f clk = 1 MHz Fázové rozlišení @ f clk =1 MHz 8 12 16 32 40 48 256 4 096 65 535 4 294 967 296 1 099 511 627 776 281 474 976 710 656 3,9 khz 244 Hz 15,2 Hz 232 Hz 909 nhz 3,55 nhz 24,5 x 10 3 1,53 x 10 3 9,58 x 10 5 1,46 x 10 9 5,71 x 10 12 2,23 x 10 14 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 8 z 23
Akumulátor fáze varianta DDS se zaokrouhlováním fáze varianta se zaokrouhováním znamená, že všechny bity akumulátoru NEJSOU použity pro adresaci převodníku fáze amplituda, pro adresaci se vezme pouze M horních bitů Počet vzorků P na 1 periodu signálu určuje počet bitů M pro adresaci paměti dle vztahu: P = 2 M N-bitů Přírůstek akumulátoru Registr Ref. hodinový signál f CLK N-bitů N-bitů M-bitů Akumulátor fáze M horních bitů akumulátoru Registr akumulátoru Převodník fázeamplituda X-bitů dle použitého D/A převodníku D/A převodník šířka akumulátoru = N bitů Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 9 z 23
Zaokrouhlování fáze Pro adresaci slov v paměti vzorků (tabulce) se použijí pouze nejvyšší bity akumulátoru, ostatní nižší se zaokrouhlují ( zahazují ) Příklad: 32-bitový akumulátor mám dostatečné frekvenční a fázové rozlišení nicméně velikost paměti je omezena na 4 k slova (potřebuji 2 12 vzorků) 32-bitový akumulátor fáze nejvyšších12-bitů tyto bity slouží pro adresaci paměti 20-bitů se zaokrouhluje Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 10 z 23
Grafická reprezentace algoritmu DDS Příklad : šířka akumulátoru : N = 3 bity adresa paměť 100 011 010 001 000 přírůstek akumulátoru ACC = 1 Obsah akumulátoru adresuje paměť 0 7 data data data data data data data data 101 111 110 frekvence výstupního signálu generovaného pomocí DDS: f OUT f CLK N 2 Acc Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 11 z 23
Parametry signálu generovaného pomocí DDS Frekvence referenčního hodinového signálu f CLK Šířka (počet bitů) akumulátoru N Frekvenční rozlišení udává nejmenší krok, s jakým lze nastavovat frekvenci generovaného signálu Fázové rozlišení udává, s jakým krokem lze měnit fázi generovaného signálu Frekvenční rozlišení DDS f OUT f 2 CLK N Fázové rozlišení DDS 2 N 2 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 12 z 23
Výhody DDS algoritmu Hz rozlišení výstupní frekvence a setinové ladění fáze, vše řízené číslicově extrémně rychlé přepínání frekvence bez anomálií výstupního signálu a vlivu doby ustálení snadné odvození dvou fázově posunutých signálů -> často se DDS syntéza používá v I, Q modulátorech/demodulátorech (QAM) vyžadují se dva referenční signály posunuté vzájemně o /2 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 13 z 23
Možné realizace DDS speciální integrované obvody např. AD 9854 (v sobě zahrnuje akumulátor + konvertor amplitudy + D/A převodník) FPGA obvody softwarová implementace lze implementovat např. na DSP, případně i libovolném dostatečně rychlém (mikro)procesoru Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 14 z 23
Příklad realizace - obvod AD9854 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 15 z 23
Časové průběhy Registr N-bitů Akumulátor fáze 1 Převodník fázeamplituda 2 D/A převodník 3 N-bitů N-bitů M-bitů X-bitů Ref. hodinový signál f CLK 1 2 3 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 16 z 23
Frekvenční spektrum na výstupu D/A dáno konvolucí generovaného signálu (např. sinusovky) se spektrem obdélníkového okna (sin x/x) spektrum obsahuje složky na frekvencích f f ( i M) i CLK amplitudy jednotlivých složek jsou dány vztahem U i sin( ( i M)) ( i M) kde M je poměr f OUT / f CLK i je přirozené číslo Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 17 z 23
Frekvenční spektrum DDS signálu pro sinusový signál příklad : f CLK = 300 MHz, f OUT = 80 MHz Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 18 z 23
Důsledky vyplývající ze spektra nutno zařadit filtr typu dolní propust D/A převodník filtr DP útlum amplitudy na f CLK/2 (vzorkovací věta) -3.92 db ( cca 16 %!!! ) v případě potřeby nutno korigovat na úrovni SW nebo HW z tohoto důvodu se typicky volí mezní kmitočet filtru cca 40 % f CLK/2 Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 19 z 23
Efekt zaokrouhlování fáze Díky němu vznikají chyby v amplitudě generovaného signálu Tyto chyby mají periodický výskyt Negativně ovlivňují výstupní spektrum DDS generátorů ve spektru jsou další rušivé složky DDS generátory proto nejsou vhodné např. pro testování A/D převodníků nemají nízké THD či SINAD ve srovnání s klasickými RC, LC oscilátory Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 20 z 23
Softwarová implementace DDS bez zaokrouhlování fáze Co potřebuji? akumulátor fáze 1 proměnná přírůstek akumulátoru 1 proměnná tabulka se vzorky výstupního signálů pole dat velikost N je dána velikosti (bitovou šířkou) akumulátoru Princip v přerušení od DA převodníku se k akumulátoru fáze přičte přírůstek akumulátoru aktuální hodnota akumulátoru se použije pro adresaci tabulky dat aktuální frekvence výstupního signálu je dána četností volání přerušovací rutiny a velikostí přírůstku akumulátoru pokud např. DA převodník či audiokodek vzorkuje frekvencí 48 khz, tato frekvence přímo představuje referenční hodinový signál DDS algoritmu Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 21 z 23
Softwarová implementace DDS se zaokrouhlováním fáze Co potřebuji? akumulátor fáze 1 proměnná přírůstek akumulátoru 1 proměnná ukazatel na paměť 1 proměnná tabulka se vzorky výstupního signálů pole dat velikost N je dána požadavkem na parametry DDS Princip v přerušení od DA převodníku se k akumulátoru fáze přičte přírůstek akumulátoru vezme se hodnota akumulátoru fáze a bitově se posune doprava o daný počet bitů, zbylá hodnota se uloží do ukazatele na paměť pro adresaci paměti vzorků se použije hodnota uložena do ukazatele na paměť velikost přírůstku fáze přímo určuje aktuální frekvenci výstupního signálu Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 22 z 23
Příklad v jazyce C volatile short ACC = 0; // akumulator faze - 16 bitu volatile short delta_acc = 1024 // prirustek akumulatoru faze 16 bitu volatile short pointer // ukazatel na pamet 16 bitu volatile short data[256] =. // pole vzorku vystupniho signalu //preruseni od DAC prevodniku - vzrokovací frekvence 48 khz void DAC_interrupt { ACC = ACC + delta_acc; pointer=acc >>8; DAC=data[pointer] // hodnotou z tabulky posli na vystup DAC } Parametry DDS výše uvedeného příkladu N = 16 Fclk = 48 khz Fout = 48 khz/ 2^16*1024 = 750 Hz velikost tabulky 256 vzorku => 2^8 = 256 => zaokrouhleni akumulatoru faze na 8 bitů Podpůrné výukové materiály pro předmět A4M38AVS - Aplikace vestavných systémů Snímek 23 z 23