keskiviikko 8. heinäkuuta 2009

Luento 8.7

Viimeisen luennon aiheina olivat signaaliprosessorit sekä epälineaarinen suodatus. Aivan lopuksi esiteltiin varovasti kurssin SGN-2606 aihepiiriä.

Signaaliprosessoreiden yhteydessä on tavallisesti ollut viikkoharjoitus (prujun tehtävät 9.1 ja 9.2), jossa toteutetaan Matlabilla suunniteltu ylipäästösuodin C-kielellä prosessorille. Nyt tähän ei ollut aikaa, joten sen sijaan toteutusta demottiin luennolla. Olennaisimmat vaiheet olivat:
  1. Suodin suunniteltiin Matlabin fir1-rutiinilla.
  2. Kertoimet kopioitiin C-koodiin.
  3. C-kieliseen pohjaan kirjoitettiin for-silmukka, jossa kertoimet käydään läpi.
  4. Ulostulonäyte kirjoitetaan D/A-muuntimelle.
Vaiheessa 3 on kiinnitettävä huomiota circular buffering-tekniikkaan, jotta viitataan oikeisiin aiemmin sisään tulleisiin alkioihin.

Signaaliprosessoreiden loppupuoli esiteltiin syitä niiden olemassaoloon. Tärkeimmät syyt ovat niiden yksinkertaisuus, halvempi hinta sekä pienempi virrankulutus. Kuitenkin niistä saa riittävästi tehoa signaalinkäsittelyn tarpeisiin, koska alan tarvitsemat operaatiot ovat nopeita (kertolasku, yhteenlasku). Esimerkiksi FIR-suodatuksen tarvitsemat kertolaskut ja yhteenlaskut voidaan suurelta osin laskea rinnakkain ns. MAC-operaation avulla. Vastaavia operaatioita on nykyisin myös tavallisissa prosessoreissa, ja ensimmäinen tällainen laajennus oli Intelin MMX-käskykanta vuodelta 1997.

Epälineaarista suodatusta tarkasteltiin lähinnä esimerkein. Ne saattavat tarjota vaihtoehdon lineaarisille suotimille (FIR ja IIR) silloin kun häiriö ja signaali sijaitsevat samalla taajuusalueella. Klassisin epälineaarinen suodin on mediaanisuodin, jonka ulostulo on suuruusjärjestyksessä keskimmäinen ikkunan sisällä olevista arvoista. Tätä vertailtiin demossa lineaarisen suotimen kanssa sekä äänen että kuvan suodatuksessa. Lopuksi tarkasteltiin vielä suotimen robustisuusmittoja, ja erityisesti murtumapistettä.

Viimeisen 15 minuutin aikana luotiin katsaus tilastolliseen signaalinkäsittelyyn ja erityisesti parametrien estimointiin. Ideana on luoda malli signaalista, joka riippuu tietyistä parametreista. Ongelmana on tämän jälkeen kehittää menetelmä näiden parametrien valintaan mitatun datan perusteella. Esimerkkinä voisi olla signaali, jonka tiedetään olevan sinimuotoinen, mutta amplitudi, vaihe sekä taajuus eivät ole tiedossa. Tähän ongelmaan on olemassa estimaattori, joka arvioi optimaalisesti kohinaisesta datasta näitä kolmea parametria.

Viimeisen 15 minuutin tavoitteena oli osin antaa rehellinen kuva signaalinkäsittelyn oppiaineesta: aihe vaatii matematiikan osaamista (tai ainakaan kaavoja ei saa pelätä). Toisaalta matematiikkaa pelkäämättömälle aihe tarjoaa hienon mahdollisuuden toteuttaa itseään mielenkiintoisten sovellusten parissa. Kriittisiä taitoja signaalinkäsittelijälle on mm. ohjelmointitaito, koska menetelmät miltei aina tullaan toteuttamaan ohjelmiston osana. Näin ollen ilman ohjelmointitaitoa ei kannata valmistua signaalinkäsittely pääaineenaan.

Ei kommentteja:

Lähetä kommentti