Prozorske funkcije

Digitalna obrada signala, Vladimir Petrović

Ovaj notebook će predstaviti neke često korišćene prozorske funkcije. Demonstriraće njihove osobine i analiziraće primenu različitih prozorskih funkcija u frekvencijskoj analizi signala.

Razdvajanje dve frekvencijske komponente u spektru

Ranije smo videli da frekvencijska rezolucija diskretne Furijeove transformacije zavisi od broja tačaka u kojima smo odabirali signal. Time se tačno određuje sa kojim korakom možemo detektovati frekvencijske komponente u spektru signala. Dodatno smo videli da dopunjavanje nulama u opštem slučaju, a i najčešće, ne može doprineti boljoj frekvencijskoj rezoluciji.

Dodatno, videli smo da u većini slučajeva spektar curi, tj. javljaju se nenulti koeficijenti DFT-a na učestanostima daleko od učestanosti signala koji analiziramo. Ovo je posledica diskontinuiteta u periodičnom produženju signala.

Kako bismo dalje uočili probleme koji mogu nastati pri frekvencijskoj analizi signala DFT-om nacrtaćemo DFT i DTFT signala koji je zbir dve kompleksne sinusoide i analiziraćemo kada te dve kompleksne sinusoide možemo razlikovati u spektru. Evo prvog primera:

Primećujemo da se signali mogu razlikovati u spektru ako je razmak između njihovih relativnih učestanosti $\Delta F = 1/N$, tj. ako je veći od rezolucije DFT-a. Međutim, šta ako su im amplitude različite?

Primetimo da signal male amplitude ne možemo uopšte ni vidieti u spektru za mnoge učestanosti. Ovo je posledica curenja spektra signala velike amplitude. Praktično, koeficijenti DFT-a i DTFT-a komponente koja ima veliku amplitudu su toliko veliki na svim učestanostima da su zamaskirali sve druge frekvencijske komponente male amplitude. Dodatno, primetimo da je ovaj efekat više izražen kada spektar više curi:

Primena prozorske funkcije na signal

Ranije smo videli da je curenje spektra posledica diskontinuiteta u periodičnom produženju signala i to ovde ponovo naglašavamo. Što su ti diskontinutieti veći, to je curenje spektra izraženije, tj. postoje veće frekvencijske komponente na svim učestanostima $\Omega_k$. Te komponente smetaju pri detekciji signala male amplitude. Ako bi se one nekako mogle smanjiti, postoji mogućnost da bi se sporedne komponente ponovo mogle detektovati. Dakle, treba smanjiti diskontinuitete u periodičnom produženju signala. Ovo je jednostavno uraditi množenjem signala drugim signalom kod koga vrednosti opadaju od sredine ka krajevima. Ovaj signal može biti različitog oblika: trougaonog, sinusoidalnog i slično. Primer množenja trougaonim prozorom je prikazan u sledećem programu:

Kao što smo videli, odbirke trougaone prozorske funkcije možemo lako dobiti iz paketa scipy.signal na sledeći način:

import scipy.signal as signal
w = signal.triang(N, sym = False)

Parametar sym se pri frekvencijskoj analizi signala postavlja na False. Ako se funkcija koristi za projektovanje filtara o čemu će biti reči pri kraju kursa, onda se on postavlja na True. Isto važi i za druge prozorske funkcije. Jednačine date u knjizi daju isti rezultat kao prozorske funkcije iz Scipy paketa kod kojih je sym = True.

Sada da vidimo šta se dešava sa istim signalom od ranije ako na njega primenimo trougaonu prozorsku funkciju.

Lako primećujemo da je curenje spektralne komponente velike amplitude smanjeno i da sada gotovo uvek možemo primetiti manju frekvencijsku komponentu. Međutim, u spektru možemo primetiti da ove dve frekvencijske komponente, iako daju manje vrednosti koeficijenata daleko od njih, uzrokuju da koeficijenti u njihovoj neposrednoj blizini budu veći. Ovo je posledica toga što je množenje u vremenskom domenu konvolucija u frekvencijskom, pa u spektru praktično dobijamo konvoluciju spektra originalnog signala (dva jedinična impulsa) i spektra prozorske funkcije. Ranije je to bila pravougaona prozorska funkcija, sada je to trougaona. Spektar trougaone prozorske funkcije je širi oko nule i zbog toga dobijamo ovo "širenje" pojedinačnih komponenti u rezultujućem spektru. Nacrtajmo spektar trougaone prozorske funkcije i nekih drugih prozorskih funkcija:

Primenimo prozorske funkcije na neki primer signala.

Važno je da primetimo da neke prozorske funkcije imaju toliko širok glavni luk da značajno pogoršavaju frekvencijsku rezoluciju pa se tada bliske frekvencijske komponente ne mogu razlikovati, iako je slabljenje bočnih lukova veliko.

Kajzerova prozorska funkcija

Ostaje još da pomenemo Kajzerovu prozorsku funkciju koja je praktična jer ima parametar kojim se može podešavati slabljenje bočnih lukova. Naravno, ako se slabljenje bočnih lukova poveća, onda se i širina glavnog luka poveća, što kvari frekvencijsku rezoluciju. Kao i ranije, frekvencijsku rezoluciju ćemo poboljšati odabiranjem signala u većem broju tačaka.

Literatura