keskiviikko 25. huhtikuuta 2012

Z-muunnos, siirtofunktio ja taajuusvaste

Tänään käsiteltiin kappaletta 4. Tämän ja viime viikon tavoite oli siis oppia analysoimaan annetun FIR-suotimen toiminta. Ensi viikolla tutkitaan IIR-suotimia sekä käännetään ongelma toisin päin ja siirrytään suotimen synteesiin: kuinka suunnitellaan suotimen impulssivaste niin että se täyttää annetut taajuusvaatimukset.

Kaikki lähtee liikkeelle konvoluution ja z-muunnoksen yhteydestä: konvoluutio muuttuu kertolaskuksi z-muunnoksessa. Jos siis suodatus noudattaa yhtälöä

y(n) = h(n) * x(n),

on sama yhtälö voimassa myös z-tasossa:

Y(z) = H(z) X(z)

Tällöin impulssivasteen h(n) muunnoksen tuloksesta käytetään nimeä siirtofunktio. Siirtofunktio on rationaalifunktio, jonka osoittajassa ja nimittäjässä on polynomi. Kun tämä lauseke tiedetään, saadaan Fourier-muunnos sijoittamalla z = exp(iw). Tulos H(exp(iw)) on nimeltään taajuusvaste, ja siihen menee sisään reaaliluku w (taajuus josta ollaan kiinnostuneita), ja ulos tulee kompleksiluku. Tämän kompleksiluvun itseisarvo kertoo kuinka suuri vahvistus suotimella on kyseisellä taajuudella.

Suotimen analyysi käytiin läpi kaavan (4.3) suotimella. Ensin siitä selvitetään impulssivaste, sitten siirtofunktio ja lopuksi taajuusvaste. Taajuusvaste on kompleksifunktio, joten sitä ei voida sellaisenaan piirtää 2-ulotteiseen koordinaatistoon. Näin ollen piirretään kaksi kuvaajaa: funktion itseisarvon kuvaaja sekä sen vaihekulman kuvaaja. Näistä edellinen kertoo kuinka paljon eri taajuuksien amplitudit muuttuvat suodatuksessa ja jälkimmäinen paljonko ne viivästyvät suodatuksessa. Amplitudivaste on näistä mielenkiintoisempi, koska sen avulla taajuuksia saadaan esim. poistettua yksinkertaisesti huolehtimalla että amplitudivaste ko. taajuudella on nolla. Vaihevasteessakin on oma mielenkiintonsa, ja siihen tutustutaan lähemmin ensi viikolla.

Lineaarista asteikkoa kätevämpi on käyttää desibeliasteikkoa, joka on logaritminen. Logaritmi tekee kertolaskusta yhteenlaskua, ja korostaa lähellä nollaa olevia eroja, jotka molemmat ovat meille käteviä ominaisuuksia.

keskiviikko 18. huhtikuuta 2012

DFT:n sovelluksia ja FFT

Tänään käsiteltiin Fourier-muunnos (kappale 3) loppuun ja vilkaistiin seuraavan kappaleen alkua
pikaisesti.

Ennen itse asiaa tehtiin pikainen ekskursio kahteen signaalinkäsittelyn alan koneoppimiskilpailuun. Luennoijanne osallistui viime vuonna tänne (Huttunen et al.) ja tänne (Team #251), joista molemmissa tulos oli "best performer". Nyt kehitteillä on osallistuminen tähän kilpailuun. Aiheet ovat nimenomaan signaalinkäsittelyyn liittyviä, koska kaikissa datan määrä on suuri. Esimerkkinä mainittiin että viimeisimmän kilpailun datan pystyy kyllä lataamaan Matlabiin, mutta esimerkiksi matriisin transponointi saa koneen jumiin.

Tämän jälkeen siirryttiin tarkastelemaan Fourier-muunnoksen ominaisuuksia. Ominaisuuksista tutustuttiin lähemmin siirtoon ajassa (esim. laske signaalin x(n+20) muunnos, kun tiedetään x(n):n muunnos) sekä konvoluution muunnokseen (DFT muuntaa konvoluution kertolaskuksi, eli x(n)*y(n) -> X(n)Y(n)). Tämä on perustana mm. dekonvoluutiolle joka on konvoluutiolle käänteinen operaatio. Menetelmää käytettiin mm. Hubble-teleskoopin alkuaikoina, jolloin yhdessä peilissä olleen hiontavirheen vuoksikuvat olivat sumuisia. Kuvantamisprosessia voidaan nimittäin mallintaa (kaksilulotteisella) konvoluutiolla

y(n,m) = h(n,m) * x(n,m),

missä x on todellinen näkymä, y on havaittu sumuinen kuva, ja h on linssin impulssivaste (nk. point spread function; PSF). Yhtälössä y ja h ovat tunnettuja, ja tehtävänä on ratkaista x? Ratkaisu löytyy taajuustasossa, koska

Y(n,m) = H(n,m) X(n,m),

joten (Matlabin syntaksilla ilmaistuna):

x(n,m) = ifft (Y(n,m) ./ H(n,m)).

Toisena esimerkkinä tarkasteltiin kappaleen 6 esimerkkiä kameran liikkeen aiheuttamasta epäterävyydestä, ja havaittiin terävyyden paranevan yksinkertaisellakin dekonvoluutiolla (arvaamalla h).

Dekonvoluutiosta on hyötyä yleisemminkin lineaarisen kanavan aiheuttaman häiriön poistossa. Jos tiedetään signaalin x kulkeneen kanavan h läpi, voidaan vastaanotetusta mittaustuloksesta y päätellä x, jos meillä on joku käsitys kanavasta h. Esimerkkinä tästä mainittiin langattoman tiedonsiirtokanavan estimointi ja sen aiheuttaman vääristymän kompensointi.

Toinen menetelmän tuottama etu on että Fourier-muunnoksen (käytännössä FFT:n) avulla voidaan laskea konvoluutio kaavasta (Matlabin syntaksilla ilmaistuna):

conv(x,y) = ifft(fft(x) .* fft(y))

Luennon lopuksi käsiteltiin nopeaa Fourier-muunnosta eli FFT:tä, joka on vain nopeampi tapa toteuttaa diskreetti Fourier-muunnos (DFT). FFT perustuu signaalin jakamiseen lyhyempiin pätkiin, jotka muunnetaan jakamalla ne edelleen rekursiivisesti kahtia. Rekursio päättyy, kun muunnoksen pituus on 1, jolloin muunnosta ei tarvitse enää tehdä. 1-ulotteisen vektorin tapauksessa muunnosmatriisi on yksinkertaisesti F = [1], joka tarkoittaa pelkkää ykkösellä kertomista eikä sitä tarvitse tehdä. Lyhyemmistä vektoreista saadaan koostettua pidemmät vektorit kaavoilla (3.3) ja (3.4).

Tunnin lopulla vilkaistiin Z-muunnosta, joka on puuttuva linkki suodatuksen ja Fourier-muunnoksen välillä.

keskiviikko 4. huhtikuuta 2012

Fourier-muunnoksia

Tänään käsiteltiin loput Fourier-muunnostyypit sekä vilkaistiin FFT-algoritmia kappaleen lopussa. Ennen itse asiaa demottiin oskilloskooppia, jossa oli myös spektrianalysaattoritoiminto, ja laite laski taajuusjakaumaa Fourier-muunnoksen avulla reaaliajassa.

Taululla oli jälleen oikealla olevan piirroksen kaltainen kuva, koska se kuvaa nimenomaan toista neljästä muunnostyypistä eli Fourier-sarjaa. Kuvan "yhtälössä" vasemmalla oleva signaalin pätkä jaetaan eri taajuuksiin kysymällä paljonko tarvitaan vakiotaajuutta (0.3 kpl), paljonko kerran värähtävää siniä (0.6 kpl), jne.

Kolmantena muunnostyyppinä tarkasteltiin diskreettiaikaista Fourier-muunnosta (DTFT), jonka laskennasta on esimerkki sivun 39 ylälaidan kahdessa kuvassa. Ylempi kuva esittää Fourier-muunnoksen itseisarvoa, ja alempi sen vaihekulmaa. Itseisarvo kertoo millä voimakkuudella kyseinen taajuus on mukana ja vaihekulma kertoo missä vaiheessa taajuuden täytyy olla. Molemmissa kuvaajissa olennainen väli on [0,pii], missä pii vastaa Nyquistin rajataajuutta (Fs/2), ja nolla on nollataajuus.

Käsin laskettavien kolmen ensimmäisen muunnostyypin jälkeen tutustuttiin lopuksi diskreettiin Fourier-muunnokseen, joka voidaan esittää matriisimuunnoksena. Muunnosmatriisi muodostetaan lisäämällä rivi kerrallaan ykkösen n:nnen juuren eri potensseja. Ensimmäisellä rivillä potenssit hyppivät nollan askeleen välein, toisella yhden askeleen, kolmannella kahden, jne. Idea käy ehkä ilmi parhaiten sivun 41 alimman matriisin kautta. Matriisissa olevien lukujen päättelyssä auttaa graafinen tulkinta: wN on yksikköympyrällä kulmassa 1/N oleva luku, ja sen potenssit saadaan vaihekulman monikertoina. Alla oleva kuva esittää kuinka tapauksen N = 4 muunnosmatriisi päätellään yksikköympyrältä.