2.4. DISKRÉTNÍ SIGNÁLY 2.4.1. Vzorkování Vzorkování je nejběžnější způsob vzniku diskrétních signálů ze signálů spojitých. Předpokládejme, že spojitý signál x(t) je přiveden na spínač, který se velice krátce sepne každých T[vz] sekund. Pokud je doba, během které je spínač sepnut o mnoho menší než interval mezi dvěma sepnutími, můžeme považovat impulsní signál na výstupu spínače za signál v diskrétním čase t[n] = nT[vz], kde n = ….., -2, -1, 0, 1, 2, … . Je označován jako navzorkovaný signál původního spojitého signálu a dobu T[vz] nazýváme vzorkovací perioda, resp. vzorkovací interval. Je-li doba mezi každými dvěma sepnutími spínače konstantní, hovoříme o rovnoměrném vzorkování. Obr.2-35 Vzorkování Obr.2-36 Spojitý signál a jeho navzorkovaná verze Aby bylo možné zjednodušit analýzu vlivu vzorkování na vlastnosti vzorkovaného signálu, je navzorkovaná verze původního spojitého signálu x(t) vyjadřována ve tvaru x(t).p(t), kde p(t) je periodický sled jednotkových impulsů definovaný jako (2.51) Z toho pro navzorkovaný signál platí (2.52) Tento vztah říká, že navzorkovaný signál x(t)p(t) je sled impulsů, jejichž úrovně jsou rovny hodnotám vzorků původního signálu v časech nT[vz]. (Vzorkování popsané vztahem (2.52) označujeme jako ideální vzorkování.) Podstatné z hlediska vzorkování je stanovení velikosti vzorkovací periody T[vz], resp. vzorkovací frekvenci f[vz] = 1/T[vz] nebo w[vz] = 2p/T[vz]. Pro stanovení této hodnoty uvažujme situaci na obr.2-37. Obr.2-37 Vzorkování signálu a jeho spektrum Nechť má vzorkovaný signál f(t) (obr.2-37a) spektrum zobrazené na (obr.2-37b). Puls Diracových impulsů s periodou T má spektrum ve tvaru periodického sledu Diracových impulsů ve frekvenční oblasti s periodou w[vz], tak jak bylo určeno v příkladu na konci kap.2.3.3 a jak je zobrazeno na obr.2-37 vpravo uprostřed. Protože navzorkovaný signál je dán součinem původního spojitého signálu a sledu jednotkových impulsů (vztah (2.52)) je výsledné spektrum nevzorkovaného signálu dáno konvolucí obou dílčích spekter. A protože definiční vlastností jednotkového impulsu je, že výsledek jeho konvoluce se signálem je hodnota signálu v místě výskytu jednotkového impulsu, je výsledné spektrum takové, jaké je uvedeno na obr.2-37e. Má periodický charakter s periodou rovnou vzorkovací frekvenci a tvar jednotlivých segmentů odpovídá tvaru spektra vzorkovaného signálu. Digitalizace signálu tedy způsobuje periodizaci spektra, přičemž jednotlivé spektrální periody mají tvar spektra původního spojitého signálu. Z obrázku vyplývá, že jednotlivé segmenty spektra se nebudou prolínat za předpokladu, že maximální frekvence složek signálu není větší než polovina vzorkovací frekvence. Toto pravidlo nazýváme vzorkovací teorém (Nyquistův, Kotelnikovův či Shannonův teorém) a matematicky jej vyjadřujeme ve tvaru , (2.53) kde f[max] je nejvyšší frekvence harmonické složky obsažené ve vzorkovaném signálu. Zpětný převod z diskrétní reprezentace na spojitou se provádí potlačením těch částí spektra, které jsou kolem nenulových násobků vzorkovací frekvence. Toto potlačení lze provést selektivním systémem, který dokáže propustit harmonické složky signálu s nižšími frekvencemi a naopak potlačuje složky s vyššími kmitočty - takovému systému (filtru) říkáme dolní propust. Pokud by vzorkovací frekvence právě splňovala vzorkovací teorém (f[vz] = f[max]), pak by výsledné spektrum vypadalo jak je zobrazeno na obr.2-38. Z hlediska zpětného převodu by to znamenalo použitá dolní propust by měla mít ideální vlastnosti, tj. harmonické složky diskrétního signálu o frekvencích do f[vz]/2 by měla zachovat bez jakéhokoliv zkreslení, naopak všechny harmonické složky, jejichž frekvence jsou vyšší než f[vz]/2 by měla beze zbytku odstranit. Takový ideální systém bohužel sestrojit nelze a tak je potřeba při řešení reálných vytvořit vzorkováním poněkud méně vyhraněnou situaci, tedy používat vzorkovací frekvenci vyšší než přesně definuje vzorkovací teorém. V praxi to bývá 4 až 5-násobek maximální frekvence složek obsažených v původním spojitém signálu. 0br.2-38 Princip Č/A (číslicově/analogového) převodu Pokud není vzorkovací teorém splněn, dochází ke zkreslení průběhu signálu, kterému říkáme překrývání spekter nebo aliasing. Znamená to, že složka o frekvenci f[x] vyšší než je polovina vzorkovací frekvence se do navzorkovaného signálu promítá jako signál o frekvenci |f[vz] - f[x]|, což má v časové oblasti vliv jak je naznačeno na obr.2-39 vpravo. Obr.2-39 Překrývání spekter vlivem nevhodné vzorkovací frekvence Vliv změn vzájemného poměru frekvence harmonického signálu a frekvence jeho vzorkování je jednoznačně zřejmý z obr.2-40. Předpokládejme stále stejnou vzorkovací frekvenci s tím ,že se mění frekvence vzorkovaného spojitého signálu. První obrázek znázorňuje situaci, kdy je frekvence původního harmonického signálu nulová, tj. cos (0) = 1 - průběh je konstantní a tedy jakákoliv nenulová vzorkovací frekvence je dostatečná. Obrázek (b) vyjadřuje případ kdy je vzorkovací frekvence 16x větší než frekvence signálu a následují ilustrace signálů, kdy je vzorkovací frekvence 8x (c) a 4x (d) větší než frekvence signálu. V případě signálu na části obrázku (d) to konkrétně znamená, že v každé periodě signálu jsou známy hodnoty čtyř vzorků. Protože předpokládáme, že je počáteční fáze signálu nulová odpovídají vzorky signálu hodnotám signálu pro cos(0), cos3p/2), cos(p) a cos(3p/2). Mezní případ popisuje obrázek (e), kdy je vzorkovací frekvence právě rovna dvojnásobku frekvence signálu, tedy situace kdy je právě splněna mezní podmínka vzorkovacího teorému. Další obrázky již ilustrují případy tzv. podvzorkovaného signálu, tj. frekvence vzorkování již nesplňuje vzorkovací teorém. Na obrázku (f) je případ, kdy je f[x] = 3f[vz]/4. Zde se navzorkovaný signál jeví jako signál o frekvenci |f[vz] - f[x]| = f[vz]/4, který je zobrazen v části (d). Zvyšující se poměrnou frekvenci signálu vůči frekvenci vzorkování pak zobrazují další časti obrázku až obrázek (i) reprezentuje stav, kdy je frekvence vzorkování právě rovna frekvenci signálu. Protože opět je počáteční fáze nulová, jsou hodnoty navzorkovaného signálu právě rovny hodnotám cos(2kp) a jeví se jako signál konstantní. Kdyby došlo k dalšímu zvyšování poměru frekvence signálu k frekvenci vzorkování charakter obrázků by se opakoval díky periodicitě spektra navzorkovaného signálu. Obr.2-40 Vliv změny poměru mezi frekvencí harmonického signálu a frekvencí jeho vzorkování Poznámka nakonec kapitoly: Je potřeba si uvědomit, že číslicová reprezentace původního spojitého (analogového) signálu není v konečném důsledku taková, jaká byla výše použita pro vysvětlování principu vzorkování. Konečná reprezentace vzorků diskrétního (číslicového) signálu je ve formě posloupnosti čísel, se kterými dále pracují výpočetní systémy, řízené patřičnými algoritmy založenými na matematickém vyjádření použitých metod. 2.4.2. Základní operace s číslicovými signály Podobně jako v případě spojitých signálů (kap.2.3.1) lze zkoumat vliv jednotlivých matematických operací na průběh číslicových signálů. Obr.2-41 Základní matematické operace se signály - inverze časové osy (vlevo), posun v čase (vpravo) Kromě násobení signálu konstantou, se lze zabývat posunem signálu v čase, inverzí časové osy, případně kompresí či expanzí časového měřítka. První dvě z uvedených operací (posun a inverze v čase) jsou ilustrovány na obr.2-41 a lze konstatovat, že situace je zcela ekvivalentní situaci s níž jsme se setkali spojitých signálů. Poněkud jiný je případ změny časového měřítka. Základní tvar časového měřítka je dán vzorkovací periodou a polohy jednotlivých vzorků jsou definovány celočíselnými násobky vzorkovací periody. Pokud má dojít ke změně časového měřítka, pak zdánlivě nejjednodušší cestou jak to učinit je změna velikosti vzorkovací periody - to ovšem naráží na nutnost zachování poměrů vyplývajících ze vzorkovacího teorému (musí být zachován, jinak dojde ke zkreslení signálu. Druhá možnost je vložení či vyjmutí vzorků ze signálu. Ale i v tomto případě je nutné, aby byl zachován vzorkovací teorém, zejména v případě vyjímání vzorků z diskrétní reprezentace signálu. V případě vložení nových n vzorků mezi každé dva stávající je potřeba řešit způsob interpolace (tj. jak stanovit hodnoty jednotlivých vzorků, což není zcela elementární úloha. V případě vyjmutí vzorků je situace poněkud jednodušší, je však nanejvýš vhodné zachovat pravidelnost vzorkování, tedy mezi každými dvěma ponechanými vzorky vypustit stejný počet původních vzorků. 2.4.3. Matematické modely základních diskrétních signálů Periodické signály Diskrétní signál x(kT) je periodický s periodou NT, právě když platí x[(k+N)T] = x(kT), pro k = 0, ±1, ±2, … (2.54) Vzhledem k tomu, že periodicita diskrétních signálů je vázána na celočíselný násobek vzorkovací periody, je logické, že vzorkovaný spojitý periodický signál s periodou T[s] je reprezentován periodickým diskrétním signálem pouze tehdy, je-li perioda T[s] právě rovna N-násobku vzorkovací periody, tj. platí T[s] = NT. Jako příklady periodických signálů můžeme považovat signály reprezentované funkcemi x(kT) = = A.cos(2pk/N), x(kT) = A.sin(2pk/N) nebo x(kT) = A.exp(j2pk/N). Komplexní exponenciála samozřejmě rovněž reprezentuje periodický signál, protože platí (2.55) Jednorázové signály Základními jednorázovými diskrétními signály jsou stejně jako v případě spojitých signálů jednotkový impuls a jednotkový skok, které jsou definovány následujícími vztahy: Jednotkový impuls (2.56) a jednotkový skok (2.57) Obr.2-42 Diskrétní reprezentace jednotkového impulsu a jednotkového skoku 2.4.4 Rozklad diskrétních periodických signálů na dílčí harmonické složky Nechť x(kT) je periodický signál s periodou NT; pak lze x(kT) rozložit pomocí komplexní exponenciální Fourierovy řady (2.58) kde (2.59) Důkaz: Změňme index sumace ve vztahu pro výpočet koeficientu c[n] (2.60) Pak je (2.61) Potom pro k = m je ; (2.62) pro k ¹m ; (2.63) a tedy (2.64) €€€ Příklad: Určete spektrum signálu x(kT) = A.cos(2pk/N). Řešení: Zadaný diskrétní signál x(kT) reprezentuje periodická funkce s periodou N, který si můžeme vyjádřit pomocí Eulerovy vztahu ve tvaru . (2.65) Nyní protože (2.66) je (2.67) Z toho plyne, že a a[n] = 0 pro všechna jiná n. (2.68) Spektrum tohoto signálu pak můžeme graficky vyjádřit jak je tomu na obr.2-43. Obr.2-43 Amplitudové a fázové spektrum signálu x(kT) = A.cos(2pk/N) 2.4.5 Fourierova transformace s diskrétním časem (FTDT) Nechť x(kT) je časově omezený signál s diskrétním časem s x(kT)=0 pro všechna celá k < -N[1] a k > N[1], kde N[1] je celočíselná konstanta. Dále, nechť pro kladné sudé celé číslo N>2N[1] označíme signál s periodou NT, který je x(kT) pro k = -N/2, -(N/2)+1, …, -1, 0, 1, …, (N/2)-1. Z definice máme (2.69) Protože je periodická funkce s periodou NT, má Fourierovu řadu (2.70) kde . (2.71) Z definice vyplývá, že lze poslední uvedenou rovnici přepsat do tvaru . (2.72) a potom . (2.73) kde ω je pro N→¥ spojitá (nediskrétní) veličina. 2.4.6 Diskrétní Fourierova transformace (DFT) Aby bylo možné počítat s frekvenčním spektrem na počítači, je třeba spektrální funkci diskretizovat. Předpokládejme, že je diskrétní signál x(nT) = 0 pro n < 0 a n ≥ N, pak DFT je definována vztahem . (2.74) Zpětnou inverzní diskrétní Fourierovu transformaci pak definuje vztah . (2.75) Pokud uvažujeme pouze posloupnost hodnot bez její časové resp. kmitočtové interpretace, lze definiční vztah diskrétní Fourierovy transformace vyjádřit též ve tvaru . (2.76) resp. inverzní transformace . (2.77) (Tento způsob vyjádření se v odborné literatuře často vyskytuje, nicméně vzhledem ke ztrátě fyzikální interpretace použitých posloupností nebudeme nadále tohoto způsobu popisu využívat.) Platí, že . (2.78) Tuto vlastnost diskrétní Fourierovy transformace nazýváme inverzibilita. Můžeme ji dokázat následujícím postupem: . (2.79) Vliv DFT na charakter spektra harmonického signálu je patrný z obr.2-44 a 2-45. Na obr.2-44 je zobrazen případ, kdy je perioda vzorkovaného signálu T[s] = 2p/w[1] rovna celočíselnému násobku vzorkovací periody T = 2p/w[vz], v konkrétním případě T[s] = 4T, tj. w[1] = w[vz]/4 = p/(2T). Na obou obrázcích jsou zobrazeny v levé části časové průběhy a vpravo jim odpovídající spektra. Konečný úsek signálu je vytvořen z původního časově neomezeného průběhu vynásobením obdélníkovým oknem, jehož délka je rovna celočíselnému násobku vzorkovací periody, konkrétně N = 8. Spektrum vynásobeného, tj. časově omezeného úseku spojitého harmonického signálu je dán konvolucí spekter původního harmonického signálu a spektra obdélníkového okna ve tvaru funkce Sa(w). Vzorkování tohoto úseku signálu o konečné době trvání vyjádříme dle definice (vztah (2.52)) násobením sledem jednotkových impulsů s periodou opakování rovnou vzorkovací periodě T. Tomu odpovídá rovněž periodické impulsní spektrum s periodou rovnou vzorkovací frekvenci w[vz] = NΩ a výsledné spektrum navzorkovaného signálu je konvolucí všech tří dílčích složek jejichž násobením vznikl diskrétní harmonický signál omezeného trvání. Diskrétní verzi spektra získáme násobení m tohoto spektra pulsem Diracových s frekvencí Ω. Tomuto pulsu odpovídá v časové oblasti periodický sled jednotkových impulsů s periodou NT a protože konečné spektrum je výsledkem násobení spojitého spektra navzorkovaného signálu konečného trvání je časová reprezentace navzorkovaného spektra konvoluce navzorkovaného konečného signálu s časovou reprezentací vzorkovacího pulsu spektra. Touto konvolucí se signálu nepřímo vnucuje periodicita, takže výsledné diskrétní spektrum je spektrem periodického signálu. Tím, že vzorkování signálu je vhodně vázáno s délkou konečného obdélníkového okna a tím i se vzorkováním spektra odpovídá fiktivní výsledný periodický signál původnímu signálu, jehož spektrum jsme pomocí DFT počítali. Na druhé straně, pokud délka omezujícího obdélníkového okna neodpovídá celočíselnému násobku period vstupního signálu, pak i výsledné diskrétní spektrum odpovídá signálu, jehož průběh modifikován, např. tak, jak je zobrazeno na obr.2-45. Obr.2-44 Princip a důsledky diskrétní Fourierovy transformace pro kmitočet signálu ω[1] = w[vz]/4 = p/(2T) Obr.2-45 Princip a důsledky diskrétní Fourierovy transformace pro kmitočet signálu ω[1] =5 w[vz]/16 = 5p/(8T) 2.4.6 Rychlá Fourierova transformace (FFT) Definiční vztah pro výpočet diskrétní Fourierovy transformace v exponenciálním tvaru můžeme pomocí Eulerova vztahu vyjádřit i funkcemi sin a cos jako . (2.80) Výpočet každé z N složek spektra diskrétního signálu pak představoval N-násobný součet součinu hodnoty signálu s reálnou i komplexní složkou jádra transformace, představované odpovídajícími hodnotami funkcí sin a cos. Takto definovaný výpočet je poměrně pracný a je otázkou, zda jej nelze optimalizovat. Zrychlení výpočetního algoritmu se může dosáhnout využitím dříve vypočítaných mezivýsledků, resp. vynecháním zbytečných výpočtů – např. násobení nulou. Relativně zdlouhavé a opakované výpočty hodnot obou goniometrických funkcí lze usnadnit používáním předem spočítaných tabulkových hodnot pro jednu čtvrtinu periody jedné z obou funkcí. Dalšího zefektivnění výpočtu lze dosáhnout vhodným uspořádáním výpočetního algoritmu, např. tzv. rychlou Fourierovou transformací. Abychom dokázali posoudit pracnost jednotlivých variant výpočtu diskrétního spektra diskrétního signálu je potřeba určit základní elementy výpočtu. Z definičního vztahu (2.80) vyplývá takové elementy jsou dva - násobení komplexního čísla a sečítání dvou čísel. Jednotku pracnosti P tedy definujme pomocí jednoho komplexního násobení a sečtení dvou čísel. Výpočet jedné hodnoty spektra signálu o N vzorcích pomocí definičního vztahu představuje N elementů pracnosti výpočtu, tedy N.P. Pracnost výpočtu celého spektra zahrnujícího N hodnot poté představuje hodnotu N.N.P = N^2.P. Tuto hodnotu můžeme považovat za referenční pro srovnání s pracnostmi jiných variant výpočtu. Algoritmus rychlé Fourierovy transformace má dvě z hlediska pracnosti v podstatě ekvivalentní varianty: · rozklad v časové oblasti; · rozklad ve frekvenční oblasti, z nichž se podrobněji zabývejme principem první varianty, který je pak snadno aplikovatelný i pro postup druhý. Předpokládejme, že vstupní signálová posloupnost má sudý počet vzorků. Rozdělíme ji na dvě dílčí posloupnosti (obr.2-46): * {g[i]} = {x[2i]} - sudé prvky původní posloupnosti; * {h[i]} = {x[2i+1]} - liché prvky původní posloupnosti, i = 0,1,…, N/2-1. Obr.2-46 Rozdělení signálové posloupnosti Dále předpokládáme, že všechny posloupností (původní i obě dílčí), mají svou DFT, které jsou definovány vztahy (2.81) a (2.82) pro . k-tou hodnotu spektra počítanou podle původního transformačního algoritmu nyní vyjádřeme pomocí dílčích výpočtů G(k) a H(k). V tom případě platí (2.83) Když hodnoty pomocných dílčích posloupností budeme počítat podle základního definičního vztahu, bude celková pracnost součtem pracností výpočtu spekter obou posloupností a jejich spojení 2.(N/2)^2.P+N.P = (N^2.P)/2 + N.P^ (2.84) tzn. uspoření pracnosti téměř na polovinu, pokud bude druhý člen vyjadřující pracnost zkombinování obou posloupností malý ve srovnání se členem prvním (to bude platit především pro velké hodnoty N). Je-li N/2 opět sudé, může se v dělení dále pokračovat – celkově je výhodné, je-li N mocninou dvou, tj. platí N = 2^m - v tom případě lze pokračovat v dělení až ke vstupní signálové posloupnosti (obr.2-47). a) b) c) d) Obr.2-47 Výpočetní schéma algoritmu FFT rozkladem v časové oblasti Každý uzel ve výpočetním schématu představuje součet příspěvků reprezentovaných vstupními orientovanými hranami, přičemž jeden z obou vstupů je násoben vahou Wr. Pracnost výpočtu v každém uzlu schématu bude tedy právě P a počet uzlů v každé výpočetní vrstvě je N, pracnost výpočtu v celé vrstvě je N.P. Počet vrstev ve výpočetním schématu bude v případě N = 2^m právě m = log[2]N a proto celková pracnost je N.P.m = N.P.log[2]N. Při velkých N tento výraz roste již téměř lineárně a jeho hodnoty jsou proto výrazně menší než původní pracnost s kvadratickou závislostí. Vzhledem k postupnému dělení a uspořádávání dílčích vstupních posloupností není po dokončení rozkladu vstupní signálová posloupnost uspořádána vzestupně podle jejích indexů, nýbrž jinak. Vyjádříme-li hodnoty indexů jednotlivých vzorků binárně a tato binární čísla čteme zprava doleva tvoří hodnoty indexů přirozeně rostoucí posloupnost - proto nazýváme uspořádání vzorků vstupní posloupnosti bitově inverzní. Další skutečností usnadňující výpočet je existence standardních opakujících se motýlkovitých výpočetních struktur o čtyřech uzlech a čtyřech hranách, což znamená, že výpočet v rámci každé takové dílčí struktury se řídí stále stejným algoritmem. Navíc pro výpočet výstupních hodnot v každé vrstvě jsou potřeba pouze vstupní vzorky každé vrstvy, výpočet tedy může probíhat vždy jen v jedné vrstvě a lze tak šetřit výpočetní paměť.