Uživatelské nástroje

Nástroje pro tento web


pitel:isz:spektralni_analyza_spojitych_a_diskretnich_signalu

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
Poslední revizeObě strany příští revize
pitel:isz:spektralni_analyza_spojitych_a_diskretnich_signalu [18. 09. 2015, 11.57:25] – [Fourierova transformace] math pitelpitel:isz:spektralni_analyza_spojitych_a_diskretnich_signalu [31. 05. 2017, 08.21:32] – wikipedia https pitel
Řádek 1: Řádek 1:
 +====== 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í.
 +
 +[[https://en.wikipedia.org/wiki/File:Sampled.signal.svg|{{ https://upload.wikimedia.org/wikipedia/commons/thumb/8/88/Sampled.signal.svg/220px-Sampled.signal.svg.png |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.
 +[[https://en.wikipedia.org/wiki/File:Digital.signal.svg|{{ https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Digital.signal.svg/220px-Digital.signal.svg.png |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.
 +{{ http://www.downloadsoftware4free.com/screen/full/amplitude--making-waves.living-graphs-inc.jpg |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).
 +[[https://en.wikipedia.org/wiki/File:Euler%27s_Formula_c.png|{{ https://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/Euler%27s_Formula_c.png/330px-Euler%27s_Formula_c.png |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í: //e<sup>jz</sup>//, 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 amplitudu((amplituda -- maximální hodnota periodicky se měnící veličiny, funkce //sin(x)// má amplitudu 1)) a počáteční fázi((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)) vneseme je do vztahu (amplituda C<sub>1</sub>, fáze Φ<sub>1</sub>, ω<sub>1</sub> 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 //c//<sub>1</sub> a //c//<sub>−1</sub> (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 C<sub>1</sub> 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 //c<sub>k</sub>// jsou jednotlivé komplexní koeficienty charakterující k-tou sinusovku (komplexní exponenciálu), ze kterých je výsledný signál složen. ω<sub>1</sub> je pak úhlová frekvence signálu, kterou z periody T získáme pomocí vztahu ω<sub>1</sub> = 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ů c<sub>k</sub> 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:
 +
 +[[http://www.katjaas.nl/correlation/correlation.html|{{http://www.katjaas.nl/correlation/cos6.gif}}]]
 +
 +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.
 +
 +[[http://www.katjaas.nl/correlation/correlation.html|{{http://www.katjaas.nl/correlation/cosphase.gif}}]]
 +
 +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.
 +
 +[[http://www.katjaas.nl/sinusoids2/sinusoids2.html|{{http://www.katjaas.nl/sinusoids2/sinxcos.gif}}]]
 +
 +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.
 +
 +[[http://www.katjaas.nl/sinusoids2/sinusoids2.html|{{http://www.katjaas.nl/sinusoids2/periods3.gif}}]]
 +
 +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 //e<sup>jkω<sub>1</sub>t</sup>// 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 //e<sup>jωt</sup>// -- 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 //f<sub>s</sub>// 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 2<sup>//n//</sup> 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) =====
 +  * Spojité signály - definované v každém časovém okamžiku
 +  * Diskrétní signály - hodnoty definované jen v diskrétní časové okamžiky, ze spojitých je získáme vzorkováním (výběr hodnot s nějakou vzorkovací frekvencí, která musí být 2x větší, než maximální frekvence signálu, nutno tedy předem analogově filtrovat) a kvantováním (prakticky je to zaokrouhlování v rámci datového typu)
 +  * periodické spojité signály lze zapsat pomocí Fourierovy řady, což je součet několika sinusovek a kosinusovek, které lze jednotně vyjádřit jako komplexní exponenciály (kosinusovka v realné ose, sinusovka v imaginární)
 +  * diskrétní lze také zapsat pomocí FŘ, její koeficienty získáme diskrétní Fourierovou transformací (využívá korelaci), ta nám říká, nakolik jsou jednotlivé frekvence zastoupeny v signálu a s jakou amplitudou a frekvencí
 +  * každý koeficient FŘ odpovídá komplexní exponenciále s určitou frekvencí, absolutní hodnota koeficientu nám udává amplitudu - můžeme zjistit "hlasitost" (zastoupení) jednotlivých frekvencí, tedy analyzovat ve frekvenčním spektru
 +  * realné signály nemají imaginární složku, koeficienty FŘ jsou komplexně sdružené (máme N koeficientů, k-tý a (N-k)-tý jsou komplexně sdružené((imaginární složka má opačné znaménko))
 +
 +==== Co je třeba vědět kdyby se zeptali ====
 +  * Korelace - porovnání jednohéo signálu s druhým - integrál součinů signálů v jednotlivých časových okamžicích
 +  * Korelace s komplexní exponenciálou = korelace s reálnou kosinusovkou a imaginární sinusovkou
 +  * nulový koeficient korelace značí, ze se signály nepodobají, kladný pro podobné signály, záporný pro podobné, ale zrcadlové signály (tj. mají vždy opačná znamínka hodnot)
 +  * Koeficienty DFŘ jsou periodické, je to způsobené aliasingem (pak jsou pro takové frekvence, že díky použití diskrétního signálu zkoumáme prakticky identickou komplexní exponenciálu, liší se sice zásadně, ale jen mimo zkoumané diskrétní okamžiky)
 +  * 2x vyšší vzorkovací frekvence než maximální frekvence signálu kvůli aliasingu - ten způsobuje nejednoznačnost interpretace diskrétních hodnot
 +  * analogové filtry před vzorkováním lze realizovat například pomocí cívek/kondenzátorů (potřebujeme low-pass filtr, tedy dolní propusť - propustit jen frekvence nižší než polovina té vzorkovací)
 +  * kdo chce zaručenou jedničku, tak se naučí vzorec na koeficient FŘ + vzorec na výpočet korelace se dá odvodit celkem jednoduše
/var/www/wiki/data/pages/pitel/isz/spektralni_analyza_spojitych_a_diskretnich_signalu.txt · Poslední úprava: 30. 12. 2022, 13.43:01 autor: 127.0.0.1