Vlastnosti Fourierovy transformace Linearita Fourierova transformace je lineární (všechny druhy :-) ), je tedy homogenní a aditivní Homogenita: změna amplitudy v časové oblasti způsobí stejnou změnu amplitudy ve frekvenční oblasti
Aditivita: něco přidám v časové oblasti a přidá se to i ve frekvenční (nezávisle)
Komprese / expanze Když signál natáhnu v časové oblasti, smrskne se mi ve frekvenční a obráceně Příklad: gaussovka (jejím obrazem je opět gaussovka)
Posunutí v časové oblasti Při posunutí v časové oblasti zůstává magnituda stejná a mění se pouze fáze
Jaká informace je ukryta ve fázi? Vezmu jednoduchý signál, provedu DFT, převedu do polárních souřadnic, postupně nahradím magnitudu a fázi náhodnými čísly a následně zrekonstruuji zpět do časové oblasti (IDFT) Ve fázi je dobře vidět poloha hran. Proč? Hrana v časové oblasti vznikne, když na stejném místě roste současně hodně sinusovek musí mít stejnou fázi zobecnění: hodně informace o tvaru signálu v časové oblasti je schováno ve fázi. Naopak na fázi moc nezáleží u signálů, kde na tvaru moc nezáleží a informace je schovaná ve frekvencích, např. audio signál. % vygeneruji jednoduchy signal clear all x(1:50) = 0; x(51:100) = linspace(0.9,1.2,50); x(101:299) = 0; % provedu DFT a prevod do polarnich souradnic [ReX ImX] = DFT(x); [XMag, XPha] = RectToPolar(ReX,ImX); % nahodna faze z intervalu pi / pi XPha0 = (rand(1,length(xmag))-0.5)*2*pi; % rekonstrukce jen z magnitudy [X2r X2i] = PolarToRect(XMag,XPha0); x2 = IDFT(X2r, X2i); % rekonstrukce jen z faze XMag0 = rand(1,length(xmag)); [X3r X3i] = PolarToRect(XMag0,XPha); x3 = IDFT(X3r, X3i); % a ted spolecne namalujeme subplot(3,1,1); plot(x); title('originalni signal'); subplot(3,1,2); plot(x2) title('rekonstrukce z magnitudy'); subplot(3,1,3); plot(x3) title('rekonstrukce z faze');
Periodicita signálu v časové oblasti DFT považuje časový signál za periodický. Když něco uděláme se spektrem, před převedením zpět do časové oblasti, může být výsledný časový signál delší, nevejde se do daného počtu vzorků. Příklad cirkulární konvoluce (přednáška o aplikacích konvoluce pomocí DFT)
Periodicita signálu ve frekvenční oblasti Záporné frekvence od -0,5 do 0 vzorkovací frekvence Zrcadlový obraz: magnituda sudá, fáze lichá Záporná frekvence, co je to za podivnost?
Amplitudová modulace Modulace spojení (merging) dvou signálů Amplitudová modulace násobení Obálka nosné = původní signál Násobení v časové oblasti = konvoluce ve frekvenční Nosná je puls výsledek konvoluce je posun Výsledek ve frekvenční oblasti Nosná zůstane Spektrum originálu se tam objeví Objeví se ještě něco dalšího! Co to je? Negativní frekvence! Více o modulacích v PDF GenerováníSignálu
% amplitudova modulace - ukazka zapornych frekvenci clear all; [Y,FS,NBITS]=wavread('mechanika2.wav'); y2 = Y'; Y2 = fft(y2); delka = length(y2); delkas = length(y2) / FS; % delka signalu v sekundach % vytvoreni nosne (na frekvenci napr. ctvrtiny vzorkovacky originalu) t = linspace(0,delkas,delka); nosna = sin(fs/4*2*pi*t); NOS = fft(nosna); % amplitudova modulace - nasobeni signalu v casove oblasti hloubkamodulace = 1; am = nosna.* (1 + hloubkamodulace * y2); % tomu by mela odpovidat konvoluce ve frekvencni % a protoze jadro je puls, tak se to jen posune a zjevi % se zaporne frekvence AM = fft(am); % a ted uz to jen namalujeme subplot(3,1,1); plot(abs(y2(1:delka/2))); axis([0 delka/2 0 max(abs(y2))]); title('frekvence audio'); subplot(3,1,2); plot(abs(nos(1:delka/2))); axis([0 delka/2 0 max(abs(nos))]); title('frekvence nosna'); subplot(3,1,3); plot(abs(am(1:delka/2))); axis([0 delka/2 0 3000]); title('frekvence amplitudove modulace'); Totéž v Matlabu
Užitečné dvojice Každému signálu v časové oblasti odpovídá nějaký signál ve frekvenční oblasti a obráceně. Existují dvojice (časová/frekvenční) které jsou užitečnější než jiné. Například obdélníkovému pulsu odpovídá funkce sinc, gaussovce gaussovka, atd. Impuls / konstanta (viz slide komprese/expanze komprese na puls, expanze na konstantu)
Funkce sinc / Obdélníkový puls clear all t = linspace(-10,10); y = sinc(t); subplot(2,2,1) plot(t,y); axis tight xlabel('cas (sec)');ylabel('amplituda'); title('funkce sinc') Y = fft(y); subplot(2,2,2) Ym = abs(y(1:length(y)/2)); f = linspace(0,0.5,length(ym)); plot(f,ym); axis tight xlabel('frekvence (Hz)');ylabel('Amplituda'); title('spektrum funkce sinc') from = -100; to = 100; points = 1500; t = linspace(from,to,points); y = sinc(t); subplot(2,2,3) plot(t,y); axis tight xlabel('cas (sec)');ylabel('amplituda'); title('funkce sinc') Y = fft(y); subplot(2,2,4) Tvz = (to-from)/points; fvz = 1/Tvz; Ym = abs(y(1:length(y)/2)); f = linspace(0,0.5*fvz,length(ym)); plot(f,ym); axis tight xlabel('frekvence (Hz)');ylabel('Amplituda'); title('spektrum funkce sinc') sinc( a) = sin ( π a) π a
Obdélníkový puls / funkce sinc Cvičení: pořádně prozkoumejte funkci sinc, bude se nám hodit do budoucna (proč asi?) vyzkoušejte další dvojice (trojúhelník, gaussovka,, využijte matlabovské funkce tripuls apod. viz help)
Chirp signál Chrip signál je užitečná věcička v aplikacích jako je radar. Jeho frekvenční odezva vypadá následovně: 2 Magnituda je konstantní, fáze klesá podle vztahu Faze() i = αi + βi. Z toho jsme schopni vygenerovat příslušné ReX a ImX složky (potřebujeme PolarToRect funkci) a následně pomocí IDFT i impulsní odezvu: IDFT Když tedy do systému s takovou odezvou pustíme jednu delta funkci, dostaneme divoký signál který začíná na nízkých frekvencích, které se postupně zvyšují. K čemu je to dobré?
Chirp signál je reverzibilní, když pustíme chirp signál do antichirp systému, dostaneme zpátky jediný puls. Antichirp signál bude mít opět magnitudu konstantní a fázi obrácenou. Docílíme toho tak, že převrátíme zleva doprava impulsní odezvu. DFT Převrácená impulsní odezva ReX a ImX vypadají podobně, co ta fáze??? A k čemu to teda je????
Aplikace chirp signálu Radar: vezmu směrovou anténu a vypustím z ní krátký impuls rádiových vln. Ta letí a letí, až narazí na nepřátelské letadlo a vrátí se. Vlna letí rychle, čím je impuls delší, tím je horší rozlišení (1 mikrosekunda je cca 300 m), takže potřebuji co nejkratší impuls. Aby vlna doletěla (a detekovatelná část se odrazila), potřebuji do ní nacpat určité množství energie. Čím víc, tím líp. Co nejvíc energie co nejkratší puls shoří mi to Řešení: využiji chirp signál! Napřed mám impuls, než odletí z antény tak ho přehodím na chirp, dostanu zpátky chirp, ten převedu zpátky na impuls a můžu nepřítele sejmout raz dva. Cvičení: prozkoumejte chirp signál Vygenerujte podobné obrázky jako v přednáškových slidech