Signaalien tilastollinen mallinnus T-61.3040 (5 op) Syksy 2006 Harjoitustyö
Harjoitustyön sekä kurssin suorittaminen Kurssin suorittaminen edellyttää sekä tentin että harjoitustyön hyväksyttyä suoritusta. Tenttiin ei voi osallistua ennenkuin harjoitustyö on suoritettu hyväksytysti: tästä säännöstä poikkeuksena ovat tentit, jotka järjestetään ennen työn deadlinea 12.1.2007. Merkinnän näistä tenteistä saa, mikäli harjoitustyö palautetaan deadlineen mennessä ja tulee hyväksyttyä. Muihin tentteihin voi osallistua vasta harjoitustyön hyväksytyn suorituksen jälkeen. Harjoitustyö palautetaan informaatiotekniikan laboratorioon ilmoitustaulun vieressä olevaan laatikkoon (kolmesta laatikosta vasemmanpuoleisimpaan). Palautetulta työltä edellytetään 1. opiskelijanumero täydellisenä 2. sähköpostiosoite 3. vastaukset kaikkiin esitettyihin kysymyksiin 4. selkeyttä: työn tarkoituksena on myös harjoitella selkeää raportointia. Lukijan on löydettävä kaikki tarvittava tieto helposti. Selostuksen lopussa voit halutessasi kommentoida työtä ja esittää parannusehdotuksia. Työn voi palauttaa halutessaan sähköpostitse yhtenä tiedostona (postscript tai PDF) osoitteeseen Ville.Viitaniemi@hut.fi. Nimeä tiedosto niin, että nimi sisältää opiskelijanumerosi. Tällöin palautus hyväksytään, mikäli se tulostuu ongelmitta. Työn ehdoton deadline on 12.1.2007. Jos myöhästyt deadlinesta, keskustele kurssin suorittamisesta luennoitsijan kanssa, mielellään hyvissä ajoin ennen deadlinea. Myöhästyneet joutuvat tekemään eri harjoitustyön joka pyritään laatimaan niin, ettei työmäärä ylitä normaalia harjoitustyötä Työn sisällöstä Tarkoituksena on ratkaista joitakin kurssin sisältöön liittyviä ongelmia käytännössä. Työn tekemiseen suositellaan käytettäväksi MATLAB-ohjelmistoa, mutta tämä ei ole pakollista. Tarvittava havaintoaineisto on kuitenkin 2
saatavilla MATLAB-muodossa. MATLAB on käytettävissä useimmissa ATKkeskuksen opiskelijoiden käytössä olevissa koneissa. Työn hyväksyminen Kaikkiin työssä esitettyihin kysymyksiin tulee vastata, jotta työ hyväksyttäisiin. Mikäli harjoitustyön ratkaisussa on huomautettavaa, työ palautetaan tekijälle korjattavaksi. Aikaa korjauksiin annetaan noin kolme viikkoa. Korjaukset on tehtävä kerralla kunnolla eli niin hyvin, että työ voidaan niiden jälkeen hyväksyä sellaisenaan. Palaute Jos työohjeessa tai muussa materiaalissa on puutteita tai epäselvyyksiä tai on muuta kysyttävää, kysy ensisijaisesti sähköpostitse (t613040@mail.cis.hut.fi). Jos on tarpeen, kurssin kotisivulle päivitetään korjauksia ja täydennyksiä työohjeeseen sekä mahdollisesti vihjeitä hankalien kohtien ratkaisemiseksi. Työn laajuudesta Tehtävä 1 ratkeaa melko suoraviivaisesti soveltamalla kurssilla opittuja menetelmiä. Tehtävässä 2 joutuu soveltamaan kurssin tietoja huomattavasti laajemmin: suurin osa tarvittavista tiedoista opitaan vasta kurssin loppupuolella. Tämän tehtävän työmäärä voi olla selvästi suurempi kuin ensimmäisessä tehtävässä: siksi ajankäytön suunnittelussa kannattaa ottaa huomioon 2. tehtävän vaativuus. 1 Autoregressiiviset satunnaisprosessit ja valkoinen kohina Tässä tehtävässä kehitetään valkoista kohinaa ja autoregressiivisen (AR) mallin mukainen satunnaisprosessi sekä tutkitaan joitakin niiden ominaisuuksia. 3
Valkoisella kohinalla tarkoitetaan seuraavassa sellaista diskreettiä satunnaisprosessia v(n), n = 1, 2,..., jonka näytteet v(i) ovat toisistaan riippumattomia, nollakeskiarvoisia ja samalla tavoin jakautuneita satunnaislukuja. Määritellään p:nnen asteen (kertaluvun) autoregressiivinen satunnaisprosessi x(n), n = 1, 2,..., aikatasossa seuraavasti: x(n) + p a p (k)x(n k) = v(n). k=1 Tässä vakiokertoimet a p (1),..., a p (p) määräävät prosessin luonteen, ja jono valkoisen kohinan arvoja (syöte) v(i) virittää sen. AR-prosessissa kohina v(n) voidaan olettaa normaalijakautuneeksi. AR-prosessit voivat kuvata mm. kohinaisia, vaimennettuja sinisignaaleja. Vaimennus on sitä suurempi, mitä enemmän AR-prosessin siirtofunktion navat sijaitsevat yksikköympyrän sisällä. Jos navat ovat yksikköympyrällä, prosessi kuvaa vaimentamattomia sinisignaaleja kohinassa. Astelukua p olevalla AR-prosessi voi mallintaa prosesseja, jotka sisältävät p/2 reaalista (tai p kompleksista) sinisignaalia. AR-prosessien tehospektrissä esiintyy tyypillisesti huippu sinisignaalien taajuuksien kohdilla. Tätä voidaan hyödyntää siten, että analysoitavaa prosessia mallinnetaan sopivalla AR-prosessilla, ratkaistaan mallin kertoimet ja lasketaan vastaava tehospektri. Tehospektrin huippukohdista saadaan sitten selville signaalissa esiintyvät taajuudet. a) Kehitä 256 näytettä varianssilla 1 normaalijakautunutta valkoista kohinaa. Piirrä näytölle kuva esim. 100 ensimmäisestä arvosta. Liitä ohjelmakoodi selostukseen. b) Estimoi a)-kohdassa kehitetyn kohinajonon tehospektri ja piirrä kuva tuloksesta. Esitä selostuksessa paperille tulostettu kuva (1 tulostettu kuva riittää). Onko tulos teorian mukainen? Jos on, niin kerro selostuksessa, mikä on teorian mukainen tulos ja tarkista vielä, onko estimoitu tehospektri todella teorian mukainen. Jos ei ole, niin perustele miksi ei ole. Ohje: Käytä signal processing toolboxista löytyvää komentoa pwelch. Kokeile pwelch-komentoa eri parametrin nfft arvoilla (esim. nfft=256, 4
nfft=64). Komennon laskemassa Fourier-pohjaisessa Welchin spektriestimaatissa saadaan suurella nfft:n arvolla hyvä taajuusresoluutio, mutta spektriestimaatin varianssi on suuri. Pienemmällä nfft:n arvolla tehospektrin arvoja lasketaan vähemmän (nfft/2 kpl), mutta ne ovat vastaavasti luotettavampia. c) Valitse 4 kerrointa a 4 (1), a 4 (2), a 4 (3), a 4 (4) siten että ne tuottavat tulokseksi stabiilin 4. asteen autoregressiivisen satunnaisprosessin. Miten varmistat prosessin stabiilisuuden? Listaa selostuksessa MATLABkomennot, joilla varmistit oman AR-prosessisi stabiilisuuden. Tulosta myös systeemin napa/nollakuvio (esim. MATLAB:in zplane-komennolla). d) Kehitä 1024 näytettä c)-kohdan mukaisesta AR-prosessista. Alkuarvot x(i), i < 0, voit valita esim. nolliksi. Talleta tulos, tarvitset sitä myöhemmin. Liitä ohjelmakoodi selostukseen. e) Piirrä kuva d)-kohdassa kehitetystä AR-prosessista (esim. 256 ensimmäistä näytettä). Esitä selostuksessa paperille tulostettu kuva. f) Estimoi d)-kohdassa kehittämäsi AR-prosessin autokorrelaatiofunktio. Piirrä kuva esim. 100 ensimmäisestä arvosta ˆr x (0),..., ˆr x (99). Liitä ohjelmakoodi selostukseen. Ohje: Voit käyttää tässä apuna MATLABin komentoa xcorr. Esim. komento rx = xcorr(x) tuottaa tulokseksi (2N 1)-dimensioisen vektorin rx, jos x on N-dimensioinen vektori. Vektorin rx alkioina ovat autokorrelaatioestimaatit ˆr x ( N +1),..., ˆr x (N 1) kerrottuina skaalausvakiolla N. g) Estimoi d)-kohdassa kehitetyn AR-prosessin tehospektri Welchin menetelmällä ja piirrä kuva tuloksesta. Käytä signal processing toolboxista löytyvää komentoa pwelch. Esitä selostuksessa paperille tulostettu kuva. Merkitse kohdassa c) lasketut siirtofunktion navat tehospektriin vastaaville taajuuksille. 5
2 Taajuuksien estimointi parametrisilla menetelmillä Tässä tehtävässä tarkastellaan tehospektrin estimointia ja eri menetelmien resoluutiota. Havaintoaineisto on saatavissa sivulta http://www.cis.hut.fi/opinnot/t-61.3040/data/ mistä pitää hakea tiedosto dxxxxx.mat, missä tulee korvata xxxxx omalla opintokirjan numerolla. Jos tiedostoa ei löydy niin luultavasti et ole ilmoittautunut kurssille. Ilmoittaudu kurssille Webtopin kautta ja ilmoita kurssin assistentille, että tarvitset havainnot harjoitustyötä varten. Tiedosto ladataan MATLAB:iin komennolla load dxxxxx. Nyt MATLAB:in ympäristössä pitäisi olla määriteltynä vektori data1 sekä muuttuja sum1. Tarkista asia komennolla size(data1) jonka pitäisi antaa tulokseksi ans = 1 1024 Havaitusta signaalista tiedetään, että se sisältää sinisignaaleja taajuuksilla f + k f, k = 2, 1, 0, 1, 2. Valitettavasti taajuus f ei pysy mittauksen ajan aivan vakiona vaan se vaihtelee jonkin verran. Kuitenkin lyhyellä aikavälillä f pysyy suunnilleen vakiona. Sensijaan f pysyy vakiona koko havainnon ajan. Lisäksi tiedetään, että sinisignaalien amplitudit ovat kokonaislukuja ja niiden summa on muuttujassa sum1. a) Estimoi havaintojonon periodogrammi ja tulosta se taajuusvälillä ω [0, π]. Esitä saamasi kuva selostuksessa. Ohje: Teho kannattaa esittää logaritmisella asteikolla kuvissa eli tulosta log P x (exp(jω)). Huom! Jos myöhemmissä kohdissa estimoit esim. amplitudeja tehospektristä käyttäen log P x :ää, niin muista että logaritmi vaikuttaa amplitudeihin. 6
b) Estimoi sinisignaalien amplitudit soveltaen valitsemaasi epäparametrista menetelmää (esim. periodogrammi tai Welchin menetelmä). Ota huomioon estimoinnissa kaikki seikat, mitä havainnoista tiedetään (taajuuden f vaihtelu, amplitudit ovat kokonaislukuja, amplitudien summa tunnetaan, f on vakio). Muista skaalata kaikki estimaatit oikein! Huomaa, että voi olla hankalaa kehittää täsmällistä estimaattoria joka antaa optimaalisen tuloksen. Voit käyttää tervettä järkeä ja esim. amplitudeja estimoidessasi ensin hakea karkeasti oikeat taajuudet vaikkapa tehospektrin paikallisten maksimikohtien avulla. Selosta miten sovelsit menetelmää ja esitä saadut tulokset. Liitä ohjelmakoodi selostukseen. Huom! Tämä kohta, kuten seuraavatkin, ei ratkea estimoimalla suoraan koko havainnosta esim. periodogrammi ja käyttämällä sitä amplitudien estimointiin. Tämä johtuu siitä, että havaittu signaali tiedetään epästationääriseksi. Em. tunnetut asiat tulee ottaa sopivasti huomioon jotta päästään soveltamaan epäparametrista menetelmää riittävän stationääriseen signaaliin. Tämänkin voi tehdä karkeasti esimerkiksi estimoimalla tehospektrin havaitun signaalin eri osista ja yhdistämällä tulokset sopivasti. c) Estimoi taajuus f käyttäen jotakin parametrista menetelmää (esim. MU- SIC tai jokin muu aliavaruusmenetelmä). Muista edelleen ottaa huomioon, että f muuttuu havaitun aikasarjan data1 aikana! Selosta menetelmän soveltaminen ja esitä saadut tulokset. Liitä MATLAB-komennot selostukseen. d) Kun olet estimoinut taajuuden f, niin käytä tätä hyväksesi ja estimoi amplitudit käyttäen hyväksi sinisignaalimallia, ts. mallintaen havainnot taajuuksilla f + k f esiintyvien sinisignaalien avulla. Koska taajuus f muuttuu, niin tässäkään kohdassa et voi suoraan ratkaista amplitudeja koko aikasarjasta. Kerro, kuinka estimoit amplitudit ja taajuuden f. Vertaa saatuja amplitudiarvoja b)-kohdassa ratkaistuihin. Ohje: Havaittu signaali on reaaliarvoinen, eli sen sisältämät sinisignaalit ovat reaalisia. Kuten luennolla on esitetty, niin tunnettujen 7
taajuksien avulla voidaan estimoida kompleksisten sinisignaalien amplitudit ja vaiheet. Tässä tehtävässä täytyy siis kirjoittaa reaaliset sinisignaalit kompleksisten sinisignaalien avulla: 2 cos(ω) = exp(jω) + exp( jω). Jokaista reaalista sinisignaalia sin(ω + φ) kohti mallissa on siis kaksi kompleksista sinisignaalia taajuuksilla ω ja ω. Kun tunnet taajuuden ω niin luonnollisesti tunnet myös taajuuden ω. Ratkaistavaksi jää kompleksiluku A exp(jφ) mistä voit ratkaista erikseen amplitudit ja vaiheet. Luennolla on esitetty lineaarinen yhtälöryhmä, jonka ratkaisemiseksi riittää tuntea taajuudet ω. Käytä sitä amplitudien ja vaiheiden ratkaisemiseksi. e) Lopputulos: mitkä ovat sinisignaalien amplitudit? Ota huomioon, että amplitudit ovat kokonaislukuja ja niiden summa on tiedossa. Kirjoita amplitudit A i jonoon muodossa A i 1 alkaen pienimmästä taajuudesta. 8