keskiviikko 28. lokakuuta 2009

28.10: Spektrin estimointia

Tämän päivän luennon aiheena oli signaalin taajuusjakauman laskenta mahdollisimman tarkasti. Tarkkuutta tarvitaan eritoten signaalianalyysissä, jossa taajuussisällön perusteella tehdään johtopäätöksiä esimerkiksi potilaan taudin laadusta. Jakauman laskenta eli spektrin estimointi onnistuu toki normaalilla diskreetillä Fourier-muunnoksella, mutta ei tuota täysin oikeaa tulosta, jos signaalin taajuuskomponenttien jaksot eivät ole samat kuin tarkasteluikkunan pituus. Sivun 66 alimmassa kuvassa on tilanne, jossa signaalin taajuus osuu juuri kahden muunnoskomponentin väliin, jolloin energia jakautuu lähellä oleville taajuuskomponenteille.

Ongelmaa voidaan lähestyä kahdesta suunnasta: ensimmäinen ratkaisu on käyttää pidempää ikkunaa, jolloin kaytettävissä olevien taajuuskomponenttien määräkin kasvaa. Joissain tilanteissa pituutta ei kuitenkaan voida määrättömästi kasvattaa esim. seuraavista syistä:
  • Mittaus on hidasta tai kallista. Esimerkiksi laitoksen systeemibiologian ryhmä tarkastelee eri organismien geenien aktiivisuutta ns. microarraymenetelmällä. Vaikka mittausten hinta onkin laskenut rajusti viime vuosina, saattaa jokainen aikasarjan näyte maksaa edelleenkin tuhansia euroja. Tutkittaessa esimerkiksi eri geenien toiminnan jaksollisuutta solusyklin aikana täytyy jaksollisuuden eli taajuuksien analyysin toimia luotettavasti hyvinkin pienellä näytemäärällä.
  • Sovellus ei salli viivettä spektrin estimoinnissa. Esimerkiksi moottorin tai työkoneen toiminnan optimaalisuuden tarkastelu saattaa vaatia jaksollisuuden tarkastelua vaikkapa käynnin tasaisuuden arvioinnissa. Jotta saatua tietoa voitaisiin käyttää tehokkaasti säädön apuna, täytyy viiveen olla melko lyhyt.
  • Laskenta-aikaa on vain rajallinen määrä. Reaaliaikaisissa sovelluksissa, joissa laskentakapasiteettia ei voida lisätä rajatta, täytyy ottaa huomioon menetelmän laskennallinen kompleksisuus. Fourier-muunnoksen laskenta on kompleksisuudeltaan O(n2), eli pituuden tuplaus nostaa laskennan määrän nelinkertaiseksi. Vaikka käytettäisiinkin alempana mainittua nollien lisäystä, voidaan näistä aiheutuva pituuden lisäys optimoida osin pois laskennasta.
Spektriin saadaan lisää taajuuskomponentteja lisäämällä näytteitä keinotekoisesti. Pienimmät sivuvaikutukset saadaan kun lisätään signaalin loppuun nollia. Tämä auttaa esimerkiksi sivujen 67-68 kuvien mukaisesti löytämään voimakkaimman taajuuden, joka 16 pisteellä suoraan ei löytyisi.

Sivuvaikutuksena nollien lisäämisellä on spektriin ilmestyvät komponentit jota ei todellisuudessa ole. Luennolla todettiin, että yksittäisen taajuuden tapauksessa Fourier-muunnos näyttääkin ikkunan Fourier-muunnoksen siirrettynä oikeaan paikkaan. Käytettävät ikkunat ovat samoja kuin suodinsuunnittelun yhteydessäkin, ja niiden avulla voidaan poistaa spektrin sivukeiloja (lisää ikkunoita harrisin artikkelista). Sivukeilojen poistumisen sivuvaikutuksena pääkeila kuitenkin leviää, joten ikkunan valinta on aina kompromissi samalla lailla kuin suodinsuunnittelussakin. Ikkunoiden vertailun helpottamiseksi niille voidaan laskea kuvaavia tunnuslukuja, joita esitellään kappaleissa 5.2.1-5.2.4.

Varsinaisen prujun asian lisäksi demottiin oskilloskooppia, jossa on myös spektriestimointi-toiminto. Havaittiin, että käytetyssä mallissa on mahdollista valita joko suorakulmainen ikkuna tai Hanning-ikkuna. Lisäksi nähtiin, että tietokoneen äänikortin epäideaalisuudet löytyivät spektristä vain Hanning-ikkunan avulla; ei pelkällä suorakulmaisella ikkunalla. Riittävän kovalla äänenvoimakkuudella tietokone nimittäin leikkaa sinisignaalin huiput tasaisiksi. Tämän säröefektin Fourier-sarja olisi mahdollista laskea analyyttisestikin, ja sen avulla voidaan ääni saada kuulostamaan voimakkaammalta keinotekoisesti---temppu jota käytetään esimerkiksi tekemään mainoksista kovaäänisempiä.

keskiviikko 14. lokakuuta 2009

Akustinen paikannus ja adaptiivinen signaalinkäsittely

Ensimmäisellä tunnilla Pasi Pertilä laitokselta esitteli tutkimuskohdettaan: akustista paikannusta. Akustinen paikannus käyttää useaa mikrofonia, ja arvioi eroja näihin saapuvan äänen viiveissä; tästä menetelmästä käytetään englanninkielistä nimeä Time Difference of Arrival (TDOA). Samaa ideaa käyttävät myös ihmiset sekä luultavasti muutkin kaksikorvaiset olennot: alitajuisesti aivosi arvioivat viivettä sekä taajuusvastetta, ja voit päätellä mistä suunnasta ääni tulee vaikka silmät kiinni. Jos puhuja on oikealla puolellasi, kuulet äänen muutaman millisekunnin aikaisemmin oikealla korvallasi. Lisäksi osaat myös silmät kiinni päätellä onko puhuja takanasi vai edessäsi äänen vaimentumien perusteella (keskiäänet läpäisevät korvalehden keskimääräistä paremmin, joten takaa tulevassa äänessä matalat ja korkeat taajuudet ovat vaimentuneet).

Tietokoneella tehtävä ääneen perustuva paikannus perustuu suurelta osin todennäköisyyslaskentaan. Kunkin mikrofonin kohdalta voidaan laskea tiheysfunktio siitä mistä suunnasta ääni sen mielestä tulee. Yhdistämällä eri mikrofonien tiheysfunktiot (todennäköisyyslaskennan kertolaskusäännöllä) saadaan todennäköisin alue mistä ääni tulee. Sen lisäksi voidaan arvioida paikan estimoinniin tarkkuutta ns. Dilution of Precision (DOP) -menetelmällä. Muita esillä olleita matemaattisia termejä olivat mm. tilastollisesta signaalinkäsittelystä tutut pienimmän neliösumman sovitus, Bayesin kaava sekä Cramer-Rao-alaraja. Kaavarykelmän tarkoitus ei ollut pelotella, vaan paremminkin näyttää ettei joissakin sovelluksissa selvitä ilman syvällisempää matematiikkaa. Samoja asioita tutkitaan myös matematiikan laitoksella mutta hieman eri sovelluksen yhteydessä.

(Tästä tuli mieleeni tarina, jonka mukaan teekkarisaunalla fukseilta oli kysytty vuoronperään minkä ovat ajatelleet pääaineekseen. Kun kymmenen ohjelmistofuksin jälkeen yksi oli maininnut signaalinkäsittelyn, oli seurauksena ollut naurunrämäkkä. Signaalinkäsittely on kuulemma niin vaikeaa ja irti tästä maailmasta ettei siellä voi pärjätä. Tästä on jo 10 v aikaa, ja sen jälkeen opetusta on pyritty tekemään ymmärrettävämmäksi ja sovellukset ovat vallanneet tietokoneiden työpöydät ja ihmisten taskut, joten epäilen että ei enää naurata.)

Toisella tunnilla käytiin kappale 4 loppuun. Tarkastelimme vielä LMS-algoritmia ja sen toimintaa. Lisäksi mietittiin mitä tapahtuu jos parametri mu on liian iso: ratkaisu alkaa heittelehtiä kauemmas ja kauemmas optimista, poukkoillen sen molemmin puolin. Tämähän on luonnollinen seuraus kaavasta

w := w - mu * grad (c(w)),

missä grad (c(w)) on kustannusfunktion gradientti. Kustannusfunktio on paraboloidin muotoinen, joten kauempana optimista myös gradientti kasvaa. Näin värähtely optimin molemmin puolin vahvistuu ja vahvistaa itseään. Ensi maanantaina on ensimmäinen välikoe. Ilmoittautuminen tähän päättyi jo, mutta poikkeuksellisesti tällä kertaa jälki-ilmoittautuminen on mahdollista. Syynä että en tarpeeksi mainostanut asiaa, ja POP:in bugi on estänyt ilmoittautumisen joiltakin. Jos et ole ilmoittautunut vielä, lähetä sähköposti otsikolla Jälki-ilmoittautuminen välikokeeseen osoitteeseen heikki.huttunen@tut.fi keskiviikkoiltaan 14.10 klo 21:00 mennessä. Liitä viestiin nimesi ja opiskelijanumerosi. Välikokeen 19.10 koealue on monisteen sivut 1-63. Siis myös kappaleen 4 harjoitustehtäviin (ainakin ei-matlab-tehtäviin) kannattaa perehtyä.

keskiviikko 7. lokakuuta 2009

Adaptiivinen suodatus

Tänään käsiteltiin monisteen kappale 4: adaptiivinen suodatus. Adaptiivisten suodinten ideana on oppia suotimen kertoimet tilanteen mukaan. Perusrakenne vaatii aina kaksi signaalia: referenssisignaalin sekä kohdesignaalin, ja kokonaisuudesta on kuva sivulla 47. Adaptiivinen suodin pyrkii saamaan referenssin ja suodatetun kohdesignaalin mahdollisimman lähelle toisiaan. Termi mahdollisimman lähelle määritellään täsmällisesti kustannusfunktion avulla, joka on erotuksen neliön odotusarvo. Tällöinhän täytyy enää löytää adaptiiviselle suotimelle ne kertoimet, jotka minimoivat kustannusfunktion.

Adaptiivisen suodatuksen toinen puoli on keksiä mikä olisi referenssisignaali ja mikä kohdesignaali. Toimintaperiaatteensa mukaan AS pyrkii suodattamaan kohdesignaalin niin, että se on mahdollisimman identtinen kopio referenssisignaalista (tai jostain sen osasta). Kohinanpoiston yhteydessä tilanne on yleensä sellainen, että kohdesignaali sisältää pelkkää häiriötä ja referenssi häiriön sekä etsittävän hyötysignaalin. Yksinkertaistettuna AS siis tekee vähennyslaskun:

tulos = referenssi - kohde

eli

tulos = (häiriö + hyöty) - häiriö

Koska y.o. kaavan termi häiriö ei ole sama referenssissä ja kohteessa (esim. viiveet, vaimennukset jne.), täytyy väliin heittää suodatin F:

tulos = (häiriö + hyöty) - F(häiriö),

joka muuntaa kaksi häiriökomponenttia identtisiksi.

Häiriönpoiston ja muiden sovellusesimerkkien lisäksi esiteltiin mm. esimerkki kaiunkumouksesta, sikiön sydänäänten tunnistuksesta sekä yleisestä häiriönpoistosta jotka voi ratkaista adaptiivisilla suotimilla.

Kappaleessa 4.5 etsitään optimiratkaisu w, joka saadaan kun kohde ja referenssi on kiinnitetty. Tulos esitetään autokorrelaatiomatriisin R ja ristikorrelaatiovektorin p avulla. Käytännön tilanteissa näiden estimointi on kuitenkin hankalaa, joten optimiratkaisun sijaan käytetään iteratiivista algoritmia, joka parantaa painokertoimia sitä mukaan kun uutta dataa tulee. LMS-algoritmi etenee aina kustannusfunktion hetkellisen gradientin suuntaan (miinusmerkkisenä). Hyppäyksen pituus määräytyy parametrin mu mukaan, jonka suuruusluokan valitsemista tarkasteltiin luennon lopuksi.

Seuraavalla kerralla luennon aluksi vanhempi tutkija Pasi Pertilä kertoo ja demoaa äänen tulosuunnan estimoinnista. Aihepiiristä tuli kysymyksiä, joihin en oikein osannut vastata, joten Pasi saa kertoa koko tarinan.

perjantai 2. lokakuuta 2009

D/A-muunnos ja näytteenottotaajuuden muuntelu

Tänään käytiin kappale 3 loppuun. Aloitimme kappaleen 3.5.1 menetelmällä, jota käytettiin jo ensimmäisissä CD-soittimissa 1980-luvun alussa. Menetelmän tarkastelu aloitettiin jo keskiviikkona, ja ideana oli tehostaa nollannen asteen pitopiirin toimintaa nostamalla näytteenottotaajuus korkeammaksi ennen pitopiiriä. Tämä näkyy aikatasossa s. 36 porraskuvion hienontumisena ja tätä kautta pitopiirin virheen pienenemisenä jä siirtymisenä korkeammille taajuuksille. Taajuustasossa yli 22,05 hertsin taajuuksille tulee vastaavia heijastuksia kuin interpoloinnin yhteydessäkin. Erona on, että nyt heijastumat vaimenevat sitä enemmän mitä korkeammalle mennään. Digitaalinen interpolointi helpottaa näiden heijastusten poistamista: ilman digitaalista interpolointia tarvittavan analogisen suotimen siirtymäkaistan leveys olisi 2,05 kHz, kun esim. nelinkertaisella interpoloinnilla se saadaan yli 130 kHz:n levyiseksi.

Toinen, nykyisin yleisempi ratkaisu yksinkertaistaa analogiapuolta edelleen kvantisoimalla D/A-muunnettavan signaalin 1-bittiseksi (etupaneelissa saattaa lukea 1 bit D/A conversion, tms.). Ratkaisusta käytetään nimeä kohinanmuokkaus, englanniksi noise shaping tai sigma delta modulation. Kvantisointi onnistuu äänenlaatua heikentämättä, kun nostetaan näytteenottotaajuus ensin riittävän suureksi. Tällöin näytteiden suuri määrä kompensoi niiden heikkoa tarkkuutta. Pelkkä ylinäytteistys ei kuitenkaan vielä riitä: ilman muita temppuja näytteenottotaajuus pitäisi nostaa jopa miljardikertaiseksi, mikä ei käytännössä ole mahdollista. Siksi täytyy ottaa käyttöön sivun 39 lohkokaavion mukainen takaisinkytkentä, joka aiheuttaa kvantisointivirheen siirtymisen korkeammille taajuuksille. Siellähän kohina ei haittaa, koska se voidaan erottaa hyötysignaalista analogisella alipäästösuodatuksella D/A-muunnoksen jälkeen. Jäljelle jäävän kvantisointikohinan määrä voidaan laskea, ja havaitaan että suuruusluokassa 1500 oleva muunnoskerroin riittää (miljardien sijaan). Ratkaisua voidaan edelleen tehostaa tarkastelemalla korkeampiasteisia kohinanmuokkaimia, jotka siirtävät vieläkin tehokkaammin kvantisointikohinaa korkeammalle.

Jotkin audioformaatit kuten Super Audio CD tallentavat äänen suoraan yksibittisenä. Tästä on etuna se, että kohinanmuokkaus täytyy tehdä vain kerran äänitysstudiossa eikä jokaisessa kuluttajalaitteessa erikseen.

Molemmat D/A-muunnosratkaisut ovat hienoja esimerkkejä viime vuosikymmenten trendistä siirtää elektronisten laitteiden toiminnallisuutta analogisesta maailmasta digitaaliseen maailmaan. Tästä on (ainakin) kaksi merkittävää etua:
  1. "Digitaalinen toiminnallisuus" tarkoittaa suomeksi softaa, jonka ainutkertainen ominaisuus on että saman tuotteen voi myydä useaan kertaan. Tästä syystä myös Bill Gates on maailman rikkain ihminen. Jos myyntimäärät ovat riittävän suuria, monimutkaisenkin softan toteutuksen hinta on mitätön suhteessa siitä saatavaan hyötyyn. Kannattaa siis hyvinkin palkata 10 DI:tä tekemään softalla ratkaisu, joka laskee lopputuotteen tuotantokustannusta esim. vain 10 senttiä, jos tuotetta myydään miljoonia kappaleita.
  2. Digitaalisuunnittelu on usein helpompaa kuin analogiasuunnittelu. SDSU:n kuuluisa professori frederick j. harris [sic] vertasi puheessaan työskentelyä digitaalisessa maailmassa työskentelyyn San Diegossa ja työtä analogisella puolella työhön Minnesotassa. San Diegossa on suunnilleen Välimeren ilmasto ja Minnesotassa suunnilleen Suomen ilmasto.