keskiviikko 8. huhtikuuta 2009

R10 Matlab #5 - kommentteja

Tällä kierroksella kaksi demoa: puhesignaalin piirteistä ja kuvankäsittelystä. Molempien Matlab-koodi valmiina kurssin www-laskarisivulla.

Tehtävä 1. Kannattaa palauttaa mieliin ma 6.4. Mikko Kurimon luento automaattisesta puheentunnistuksesta. Tässä tehtävässä (a) lasketaan pienistä aika-ikkunoista signaalin energiaa, (b) lasketaan ikkunoista spektrit ja piirretään ne spektrogrammina, (c) ryhmitellään aikaikkunoita vastaavat spektrit kolmeen ryhmään automaattisesti k-means-algoritmilla. Matlab-koodin lopussa eri ryhmiä voi kuunnella. HUOM! koodin lopussa on pause-komento, joka odottaa käyttäjältä enter-lyöntiä.

Breakpoint 1: size(x), size(E), E.

Breakpoint 2: size(S): 17 taajuuskaistan energia-arvo eli 17-ulotteinen vektori, näitä 28 kpl.

Breakpoint 3: .. Kokeile eri arvoja k eli ryhmien lkm. /s/ näyttää erottuvan aina.



Tehtävä 2. Ideaalinen alipäästösuodatus valokuvalle.

Tässä luetaan cameraman.tif, joka on 256 pikseliä korkea ja 256 pikseliä leveä harmaasävykuva. class(I) antaa luokaksi uint8 eli "unsigned integer 8" eli etumerkitön kokonaisluku 0 .. (2^8 -1) eli 0 .. 255. Nolla vastaa mustaa ja 1 valkoista. Voi syöttää riville I ja lyödä enter, niin näkee kaikki numerolukuarvot. Katsotaan alla minimi- ja maksimiarvot sekä "leikataan" pieni pala uuteen kuvaajaan!



Kaikki muunnokset, konvoluutiot, spektrit yms. voidaan ajatella 2D-kuvalle yhtälailla kuin 1D-äänisignaalille. Alla olevissa kahdessa kuvassa (taulu ja Matlab-koodin tuottamat kuvaajat 1..5):

Ylärivissä "aikataso" ("spatiaalitaso"), vasemmalla alkuperäinen, keskeltä puuttuu 2D-suotimen impulssivaste (maski) ja oikealla konvoluution avulla saatu ulostulo.

Alarivissä alkuperäisen 2D-signaalin 2D-spektri, suotimen spektri ja oikealla näiden tulo.

Ylä- ja alarivi välillä liikutaan kaksiulotteisen diskreetin Fourier-muunnoksen fft2 avulla. Huomaa, että kun nyt taajuustasossa ideaalinen alipäästösuodin,
niin aikatasossa siitä tulisi jonkun sortin 2D-sinc.



Ideaalisen suodatuksen lopputulos: alipäästösuodatus pehmentää nopeita vaihteluita (reunoja). Kuvankäsittelysoftissa komentoja "blur", "smoothen" ,"unsharpen", "average". Lisäksi syntyy ihmisen silmään ikävän näköistä reunojen aaltoilua. Kun palauttaa mieliin, että konvoluutiossa suotimen 2D-impulssivaste on "sinc", niin sieltähän ne aaltoiluthan ovat peräisin.



Voit kokeilla pehmentää taajuuspuolen suodinta. Tai vaihtoehtoisesti ajattele, että taajuuspuolella LP-suodin olisi sinc-tyyppinen, jolloin aikatason suodin on puhdas NxN-pisteen keskiarvoistava suodin (muista äänisignaalin esimerkki MA-2).

Ei kommentteja:

Lähetä kommentti