Signaalinkäsittelyn sovellukset (syksy 2008)
Matlab harjoituksen 4 ohje:
Tausta ja tavoite
Tutustutaan konvoluution ominaisuuksiin ja Viterbi dekooderin Matlab toteutukseen.
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(n)
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 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.
5. Talleta opettajan kotisivulta seuraavat Matlab funktiot:
Kooderi.m
Kanava.m
Ilmaisin.m
Viterbi_dekooderi.m
Palauta mieleen kooderin toteutus ja tutustu viterbi_dekooderi toteutukseen. Koodaa bittijono 1111000011001111 kooderilla ja yritä dekoodata se viterbi dekooderilla. Kuinka käy?