TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen
TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja SPDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan vastaukset kursiivilla merkittyihin tehtäviin ja kysymyksiin. Merkitse pöytäkirjaan opintojakson koodi ja nimi, laboraation otsikko, suorituspäivämäärä sekä työryhmän jäsenten nimet ja luokkatunnukset. Palauta mittauspöytäkirja opettajalle laboraatiovuoron päättyessä. Hyödynnä tehtävien toteutuksessa ohjetta Lyhyt johdatus Matlab-ohjelmiston käyttöön laboraatio-opintojaksolla 1. Alustus Perusta käyttöösi työhakemisto D:\Temp, johon tallennat kaikki tekemäsi välitulokset, tarvittavat datatiedostot, yms. Tuhoa laboraatiovuoron päättyessä työhakemisto ja sen sisältämät tiedostot. Signaalit Kopioi sivulta http://www.tekniikka.oamk.fi/~jyrkila/tl5503.k2005.html (opintojakson webbisivu) tiedostot viulu ja kitara työhakemistoosi. Tiedostot sisältävät ääninäytteitä wav-formaatissa. Lataa tiedostot Matlabiin wavreadkomennolla. Määritä viulusignaalin nimeksi x0 ja kitarasignaalin nimeksi y0. 1.1 Selvitä näytetaajuus fs sekä koodauksessa käytetty bittimäärä ja kuuntele signaalit x0 ja y0 soundsc-komennolla. Esitä mittauspöytäkirjassa näytetaajuus fs ja bittimäärä/näytearvo. Teoriaa Näytetaajuuden muunnoksissa käytetään desimointia ja interpolointia. Desimoinnissa näytetaajuutta pudotetaan valitulla tekijällä M. Interpoloinnissa näytetaajuutta puolestaan kasvatetaan valitulla tekijällä L. Desimointia ja inetrpolointia yhdistelemällä voidaan näytetaajuutta muuttaa rationaalilukutekijällä. (Rationaaliluku on kahden kokonaisluvun muodostama murto- tai kokonaisluku.) Kvantisoinnissa näytearvot pyöristetään valittuun tarkkuuteen. Tarkkuutta huonontamalla voidaan signaalia pakata, mutta samalla signaalikohinasuhde huononee, koska pyöristysvirheiden teho kasvaa, jolloin signaalikohinasuhde pienenee. 1 http://www.tekniikka.oamk.fi/~jyrkila/tl5503/johdanto.pdf
TL5503 DSK, laboraatiot (1.5 op), K2005 2 2.1 Selvitä yleisesti desimoinnin vaiheet sekä tarvittavien suotimien tyyppi ja rajataajuuden määräytyminen. Esitä selvityksesi tulos lohkokaaviona. 2.2 Selvitä yleisesti interpoloinnin vaiheet sekä tarvittavien suotimien tyyppi ja rajataajuuden määräytyminen. Esitä selvityksesi tulos lohkokaaviona. 2.3 Selvitä signaalikvantisointikohinasuhteen (SQNR) laskentakaava. Esitä laskentakaava mittauspöytäkirjassa. Audiosignaalin desimointi Olkoon seuraavassa desimointitekijä M = 5. 3.1 Toteuta signaalin x0 desimointi ilman suodatusta lukemalla suoraan muuttujaan x1 joka viides näyte signaalista x0. Kuuntele x1. Arvioi desimointitulosta. Säilyykö signaalin laatu? Mistä mahdolliset ongelmat johtuvat? 3.2 Toteuta signaalin x0 desimointi Matlabin resample-komennolla. Määritä resample-komennolla saadun signaalin nimeksi x2. Kuuntele signaali x2. Eroaako signaalin x2 laatu signaalin x1 laadusta? Miten? Mistä ero voi johtua? Miten eroa voitaisiin mitata? Audiosignaalin interpolointi Olkoon seuraavassa interpolointitekijä L = 5. 4.1 Toteuta signaalin x2 interpolointi ilman suodatusta lisäämällä jokaiseen näyteväliin neljä nollaa. Olkoon näin saatu signaali x3. 2 Kuuntele x3. 2 Muodosta ensin signaali x3, jonka pituus on viisinkertainen verrattuna signaaliin x2. Signaalin pituuden voit määrittää length-komennolla. Sijoita tämän jälkeen ensimmäisestä alkaen joka viidennen signaalin x3 näytteen paikalle `x3(1:5:length(x3)) signaalin x2-arvo.
TL5503 DSK, laboraatiot (1.5 op), K2005 3 Arvioi interpolointitulosta. Säilyykö signaalin laatu? Mistä mahdolliset ongelmat johtuvat? 4.2 Toteuta signaalin x2 interpolointi Matlabin resample-komennolla. Määritä resample-komennolla saadun signaalin nimeksi x4. Kuuntele signaali x4. Eroaako signaalin x4 laatu signaalin x3 laadusta? Miten? Mistä ero voi johtua? Kvantisointi Muodosta resample-komennolla signaalista x0 signaali w0, jonka näytetaajuus on 8000 Hz. Kvantisoi signaali komennolla >>[i,q0] = quantiz(w0,0:1,-1:2:1); 5.1 Selvitä käyttämäsi kvantisointikomennon sisältö. Kuinka monella bitillä kvantisointi toteutettiin? Mikä oli kvantisointitasojen lukumäärä? 5.2 Kuuntele kvantisoitu signaali. Määritä laskentakaavalla signaalikvantisointikohinasuhde SQNR. Kuinka moninkertainen pakkaus tässä toteutetussa kvantisoinnissa tapahtuu? Spektrogrammi Spektrogrammi esittää signaalin amplitudispektrin ajan funktiona. 6.1 Muodosta signaalien w0 ja q0 spektrogrammit. Mikä on merkittävin ero spektrogrammien välillä? Mistä ero johtuu? 6.2 Muodosta alkuperäisten viulu- ja kitarasignaalien x0 ja y0 spektrogrammit. Millaisia piirteitä voit erottaa viulusignaalin x0 spektrogrammista? Mainitse ainakin kolme eri piirrettä.
TL5503 DSK, laboraatiot (1.5 op), K2005 4 Millaisia eroja havaitset viulun ja kitaran spektrogrammeissa? Voiko spektrogrammin perusteella päätellä kummasta soittimesta on kyse? Miten? Mistä erot voivat johtua? SPDemo Käynnistä SPDemo-ohjelma. Lataa ohjelmaan viulu- ja kitarasignaalit. Tutustu ohjelman eri piirteisiin. 7.1 Tutki viulu- ja kitarasignaaleilla PCM-koodausta. Käytä kvantiosointiin eri bittimääriä. Määritä kummallakin testisignaalilla se bittimäärä, jolla juuri havaitset kvantisoinnissa syntyvän kohinan. Märitä laskentakaavalla tätä vastaava signaalikvantisointikohinasuhde. 7.2 Tutki kohinan vaikutusta signaalikohinasuhdetta muunnellen lisäämällä tasaista kohinaa (uniform, vastaa kvantisointikohinaa) viulu- ja kitarasignaaleihin. Määritä kummallakin testisignaalilla se signaalikohinasuhteen taso, jolla juuri havaitset normaalijakautuneen kohinan. Määritä edelleen signaalikvantisointikohinasuhteen kaavalla mittaamaasi kohinatasoa vastaava bittimäärä. Onko tulos odotetun kaltainen? Millainen oli odottamasi tulos? 7.3 Tutki kohinan vaikutusta signaalikohinasuhdetta muunnellen lisäämällä normaalijakautunutta (Gaussian) kohinaa viulu- ja kitarasignaaleihin. Määritä kummallakin testisignaalilla se signaalikohinasuhteen taso, jolla juuri havaitset normaalijakautuneen kohinan. Määritä edelleen signaalikvantisointikohinasuhteen kaavalla mittaamaasi kohinatasoa vastaava bittimäärä.