Johdatus signaalinkäsittelyyn (syksy 2008)
Matlab harjoituksen 2 ohje:
Tausta ja tavoite
Kerrataan matlabin käyttötaitoa ja tutustutaan konvoluution ominaisuuksiin.
Tehtävät
1. Tee yksikkönäyte näytejono ja tulosta se stem –komennolla (help stem). Tulosta yksikkönäytteen arvot välillä -11 < n < 11, kun n saa vain kokonaislukuarvoja. Palauta siis mieleesi, miten Matlabissa alustetaan vektori.
2. Hae opettajan kotisivulta mustalaatikko1.m tiedosto ja tallenna se vaikka d:/data hakemistoon.
Muuta Matlab ohjelman Current Directory = d:/data, jotta Matlab “näkee” tiedoston.
Mustalaatikko1 on Matlab funktio (out = mustalaatikko1(in)), joka ottaa sisäänsä input
parametrinaan vektorin ja tulostaa funktion laskentatuloksen toiseen vektoriin. Mittaa mustan laatikon impulssivaste h (luentomoniste kappale 2.3.1)
3. Muodosta yksikköaskel näytejono, kun n = 0, 1, 2, ..15 (help ones). Anna muodostamallesi näytejonovektorille nimeksi yksikko. Laske mustanlaatikon vaste ajamalla muodostamasi vektori yksikko mustanlaatikon läpi ja laskemalla vaste edellisessä tehtävässä mittaamasi impulssivasteen avulla. Konvoluution voi Matlabissa laskea helposti conv –komennolla.
4. Tutkitaan mustanlaatikon ominaisuuksia. Päättele määrittelemäsi impulssivasteen perusteella. Onko mustalaatikko stabiili? Onko se kausaalinen järjestelmä? (luentomoniste, kappale 2.3.2)
5. Tutkitaan konvoluution ominaisuuksia. ”Mittaa” yksikköaskel näytejonoa käyttämällä mustan laatikon kaskadikytkennän vaste (eli kun ajat yksikköaskel input signaalin järjestelmään, joka koostuu kahdesta peräkkäisestä mustalaatikko järjestelmästä). Todista kokeilemalla, että kaskadikytkennälle on voimassa h = conv(h1,h2), missä h1 on ensimmäisen järjestelmän impulssivaste ja h2 on
kaskadikytkennän toisen järjestelmän impulssivaste.
Lisätehtäviä nopeille:
6. Muodosta Matlabin työtilassa ensin signaalit t=(1:100) ja y=sin(2*pi/50*t)+sin(2*pi/10*t). Kirjoita sen jälkeen funktio keskiarvosuodatus, joka toteuttaa liukuvasti keskiarvoistavan suodattimen (keskiarvon voit laskea mean -komennolla ja signaalin pituuden saat selville length –komennolla).
Suodattimelle annetaan parametreina suodatettava signaali ja ikkunan pituus. Tuloksena funktio
palauttaa suodatetun signaalin. Testaa suodatintasi signaalilla y pyrkien suodattamaan pois nopeammin vaihtelevan sini komponentin. Millä ikkunan pituudella suodatus toimii parhaiten?
7. Muodosta vektori b = ones(1,ikkunan_pituus), missä ikkunan pituus on edellisessä tehtävässä löydetty paras arvo. Vertaile oman suodattimesi ja Matlabin filter –komennolla saatavaa tulosta plot(filter(b,1,y)). Mistä johtuu suodatetun signaalin siirtyminen = viivästyminen? Kuinka pitkä viive on alkuperäiseen y signaaliin verrattuna (= montako näytettä)?