Obsah

Spektrální analýza spojitých a diskrétních signálů

Diskrétní a spojité signály

Spojité signály – vyskytují se v reálném světě (například zvukové vlny), mají pro každý časový okamžik určitou hodnotu, což tvoří souvislou (spojitou) křivku. Některé signály (zejména ty pro teoretické příklady) se zapisují funkcí, ty jsou pak samozřejmě spojité (například sin(x)).

Diskrétní signály pak ze spojitých získáme vzorkováním a kvantováním. Vzorkování je výběr konkrétních hodnot v časové okamžiky s určitým rozestupem. Vzorkovací frekvence musí být minimálně 2× vyšší než nejvyšší frekvence v původním signálu. Signály se před analýzou prohánějí dolnopropustním filtrem, který z nich odmaže vysoké, pro analýzu nepotřebné frekvence. To říká Nyquistův teorém. Jinak dochází k aliasingu: zpětnou rekonsturkcí při aliasingu vzniká jiný signál, než byl původní.

Vzorkování signálu

Kvantování je použití nějaké hodnoty reprezentovatelné binárním číslem, tedy zaokrouhlení podle rozlišovacích možností použitého datového typu. Kvantování signálu

Spektrální analýza

Realné signály většinou nejsou jednoduché sinusovky, ale jedná se o kombinaci několika sinusovek (hudba – spojení několika tónů). Spojením těchto sinusovek pak vzniká výsledný signál. Na následujícím obrázku je červený a zelený signál, černý je pak prostý součet jejich hodnot v dané časové okamžiky, jedná se tedy o výsledný signál. Ze sinusovek lze získat jen periodický spojitý signál, pro diskrétní se pak prostě použije dostatečný počet sinusovek. Sečtení signálů

Podstatou spektrální analýzy je zjistit, nakolik jsou dané frekvence zastoupeny v analyzovaném signálu, tedy rozklad na jednotlivé sinusovky. Aby to nebylo jednoduché (tedy, aby to bylo obecné - pro komplexní signály), používá se komplexních čísel, místo sinusovky se pak používá komplexní exponenciála. Komplexním číslem jsme totiž zapsat jak amplitudu, tak fázi (viz níže). Komplexní exponenciála

Na obrázku je vidět, že je složená z kosinusovky na ose reálné a sinusovky na ose imaginární, čili dva v jednom. Abychom dostali pouhou kosinusovku, stačí tuto komplexní exponenciálu sečíst s komplexní exponenciálou zrcadlovou po ose Y, tedy s hodnotami komplexně sdruženými. Nakonec je to třeba vydělit dvěma, neboť na ose X jsme sčítali.

Rovnice komplexní exponenciály je následující: ejz, kde j je imaginární jednotka. Pro zapsání kosinusovky dle výše uvedených věcí slouží tedy následující vztah: $\cos (x) = \frac{e^{jx}+e^{-jx}}{2}$

Jelikož potřebujeme ovlivnit amplitudu1) a počáteční fázi2) vneseme je do vztahu (amplituda C1, fáze Φ1, ω1 je úhlová frekvence, t je čas): $C_1 \cos (\omega_1 t + \Phi_1) = \frac{C_1 e^{j \Phi_1} e^{j \omega_1 t}}{2} + \frac{C_1 e^{-j \Phi_1} e^{-j \omega_1 t}}{2}$

Z předchozího vztahu vytáhneme dva komplexní koeficienty c1 a c−1 (které jsou komplexně sdružené): $c_1 = \frac{C_1 e^{j \Phi_1}}{2}$, $c_{-1} = \frac{C_1 e^{-j \Phi_1}}{2}$. Těmito koeficienty se pak charakterizuje nějaká ta komplexní exponenciála, používají se v uvedeném tvaru, ze kterého lze vyčíst C1 a Φ, vypadají například takto: $c_1 = 0.3e^{j 2\pi}$, $c_{-1} = 0.3e^{-j 2\pi}$.

Když už umíme zapsat jednu komplexní exponenciálu a víme, že jakýkoli periodický signál lze složit z komplexních exponenciál, můžeme se pokusit pochopit zápis funkce (signálu) pomocí Fourierovy řady: $x(t) = \sum\limits_{k = -\infty}^{+\infty}{c_k e^{j k \omega_1 t}}$. Koeficienty ck jsou jednotlivé komplexní koeficienty charakterující k-tou sinusovku (komplexní exponenciálu), ze kterých je výsledný signál složen. ω1 je pak úhlová frekvence signálu, kterou z periody T získáme pomocí vztahu ω1 = 2π/T. Celkově tedy k zadání jakékoli periodické funkce x(t) postačí jednotlivé koeficienty fourierovy řady.

Fourierova transformace

Fourierova transformace slouží ke zjištění komplexních koeficientů analyzovaného signálu, tedy ke zjištění koeficientů ck jednotlivých komplexních exponenciál ve FŘ pro vyjádření daného signálu.

Teď nějaké obrázky pro vysvětlení toho, proč to může fungovat, jejich popis bude následovat:

Na prvním obrázku jsou dvě kosinusovky s různou amplitudou, ale stejnou periodou i fází (zelená a červená) - jejich násobením získáme vždy kladné hodnoty (modrá plocha). Záporné číslo značí podobnost s obráceným znamínkem, tj. porovnání 2 sinusovek zrcadlovývh přes osu X.

Na druhém obrázku jsou dvě fázově posunuté kosinusovky se stejnou periodou, jejich násobením získáme stále ještě kladné číslo, i když menší. Zvýrazněné modré kousky se totiž vzájemně vynulují, zbyde jen slabší modrá plocha.

Tady vidíme, co se stane, když porovnáme nevýhodně posunuté sinusovky - vyjde nám nula (součet modrých ploch). To ale řeší komplexní exponenciála, na jedné ose nám sice může vyjít nula, na té druhé je však takto posunutá sinusovka, takže zjistíme podobnost (korelaci) s ní. Tím, že porovnáme s realnými a imaginárními složkami komplexní exponenciály, porovnáváme vlastně se 2 fázově posunutými sinusovkami naráz, takže pokud je správná frekvence, zjistíme přesně fázi.

A na závěr ukázka, jak se chovají 2 sinusovky s různou periodou. Vybarvené plochy jsou jednou kladné, jednou záporné, v důsledku je jejich součet nula. Pokud vynásobíme dvě periodické funkce, získáme funkci, která má periodu vzniklou násobením period obou fnkcí, takže je také periodická - proto nám to u všech kombinací nakonec vyjde na obou stranách stejné (pod osou i nad osou).

Důsledky: koeficienty FŘ jsou komplexní čísla, která nám říkají, nakolik se signál podobá komplexní exponenciále s danou frekvencí (to je to ejkω1t ve vzorci FŘ - k ovlivňuje frekvenci k-tého členu FŘ).

Tato sada koeficientů je spektrální funkce X(jω), tedy funkce, které jako parametr předáme úhlovou frekvenci právě zjišťovaná sinusovky (komplexní exponenciály) a ona nám řekne, jaký komplexní koeficient bude mít odpovídající člen Fourierovy řady. Postupně se ji tedy ptáme na všechny sinusovky (komplexní exponenciály), ze kterých chceme signál složit, a získáme všechny koeficienty. Vzoreček vypadá takto: $X(j \omega) = \int_{-\infty}^\infty x(t) e^{j \omega t} dt$ V této rovnici se integruje součin signálu (x(t)) a komplexní exponenciály ejωt – jedná se tedy o součiny hodnot signálu v daném čase a hodnot komplexní exponenciály ve stejném čase. Tomuto výpočtu se říká korelace – porovnáváme (korelujeme) dvě funkce. To je to, co je znázorněné na těch obrázcích výše. Velikost tohoto komplexního koeficientu (jeho absolutní hodnota) nám pak udává amplitudu dané sinusovky v signálu – amplituda všech porovnávaných komplexních exponenciál je vždy stejná (to je ta pravá část součinu), proto se ve výsledky neprojeví. Navíc nám tento komplexní koeficient udává i fázi (v kruhu je to jednoduché, spočítáme si úhel od osy X k bodu vyjádřenému komplenxním číslem.

Pro diskrétní signály pak vzorec vypadá FŘ velmi podobně, jen se místo x(t) zapisuje x[t] a integrál se přepíše na sumu dělenou počtem zkoumaných vzorků (tj. jakoby integrujeme jen v časech, kdy máme udanou hodnotu signálu). Vzorec pro koeficienty X[k] diskrétní fourierovy transformace vypadá takto: $X[k] = \sum_{n=0}^{N-1} {x[n] e^{-j \frac {2 \pi}N k n}}$, kde N je počet vzorků a x[n] jsou jednotlivé vzorky.

Existuje i inverzní fourierova transformace, které je velmi podobná, ale naopak když dosadíme komplexní koeficienty, získáme hodnoty signálu v čase (to je ten vzorec v sekci FŘ).

V programu pak fourierovce předáme pole vzorků, dostaneme pole koeficientů (kterých je polovina, druhá polovina jsou hodnoty komplexně združené, neboť pracujeme s realým signálem, bez imaginárních hodnot).

k-tý koeficient fourierovky charakterizuje sinusovku (komplexní exponenciálu) o frekvenci $f = \frac{f_s k}N$, kde fs je vzorkovací frekvence diskrétního signálu a N je počet vzorků, nad kterými jsme fourierovku dělali.

Rychlá Fourierova transformace je pak úprava implementace tohoto algoritmu tak, že se využívají dílčí výsledku, místo aby se vše počítalo jednotlivě pro každou hodnotu v signálu a každý zjišťovaný komplexní koeficient. Omezením je, že musí zpracovávat 2n vozrků, což lze ale zajistit například doplněním nulami.


<Pitel> tak me napada… co je vubec vystupem ty furierovy transformace?
<funous> pole koeficientu
<funous> kazdy z nich charakterizuje nejakou sinusovku (presneji komplexni exponencialu) s frekvenci, na zaklade toho, kolikaty prvek v poli vystupu to je
<funous> a z koeficientu se vycte amplituda a fazovy posun
<funous> cili nejaka frekvencni charakteristika signalu :)

<Pitel> hmm, cajk, to bych u toho furiera jeste pobral, ale jak to funguje, to uz mi hlava nebere

<funous> vemes signal, vemes sinusovku s nejakou frekvenci, porovnas, ziskas podobnost, ktera ti rika, nakolik se to podoba jedne a druhe slozce kompl. exponencialy (tedy sinusovce a kosinusovce)
<funous> jo, tomu porovnani, resp integralu soucinu, se rika korelace

Shrnutí (na co nezapomenout)

Co je třeba vědět kdyby se zeptali

1)
amplituda – maximální hodnota periodicky se měnící veličiny, funkce sin(x) má amplitudu 1
2)
počáteční fáze – nakolik je funkce posunutý po X-ové ose, tedy u sinusovky o kolik bychom museli sinusovku s danou fází po X-ové ose posunout, abychom dostali sinusovku
3)
imaginární složka má opačné znaménko