8003203 Digitaalinen audio - Harjoitustyö
Kurssin kotisivu
Harjoitukset
Kevät 2005


Sivu päivitetty 7.1.2005.

Harjoitustyöt

Yleistä
Ohjelmointikieli ja ohjelman käyttöympäristö
Ohjelmien toiminta
Ohjelmointityyli
Tehtävänannot
Palautukset
Määräajat
Assistentti

Yleistä

Kurssiin sisältyy pakollinen harjoitustyö, jonka aiheena on äänisignaalin mallintaminen sini- ja kohinakomponenteilla. Harjoitustyö toteutetaan Matlabilla ja se koostuu kahdesta osasta:

  1. Vaihe: Sinianalyysin ja -synteesin toteuttaminen.
  2. Vaihe: Kohina-analyysin ja -synteesin toteuttaminen.

Harjoitustyöt suoritetaan kahden hengen ryhmissä. Pareja ei erikseen tarvitse ilmoittaa mihinkään, vaan ne rekisteröidään ensimmäisen palautuksen yhteydessä. Harjoitustyön molemmat vaiheet tulee suorittaa saman parin kanssa.

Harjoitustyösuoritukset ovat voimassa kevään 2005 luentoihin liittyvissä kolmessa tentissä, jonka jälkeen ne vanhenevat. Harjoitustyö tulee suorittaa hyväksytysti kurssisuorituksen saamiseksi.

Ohjelmointikieli ja ohjelman käyttöympäristö

Ohjelmat toteutetaan Matlab ympäristössä. Työn saa tehdä millä tahansa Matlabin versioista 5.3, 6.x tai 7.0, mutta käytetty versio tulee mainita palautuksen yhteydessä. Harjoitustöiden toteutuksessa saa käyttää kaikkia Lintulaan asennetun Matlabin vakiofunktioita sekä Toolboxeista löytyviä apufunktiota. Matlabin ulkopuolisten toimintojen (esim. käyttöjärjestelmäkomennot) käyttäminen on kiellettyä.

Ohjelmien tulee toimia vaaditulla tavalla ilman varoituksia ja virheitä Lintulan (cs.tut.fi) SUN/UNIX koneille asennetulla Matlabin versiolla 5.3 tai lintulan Linux-koneille asennetuilla Matlabin versiolla 6.5.

Tulkattavana ohjelmontikielenä Matlab-ohjelmien suoritus on melko hidasta. Tämän vuoksi kannattaa (yleensä) välttää turhaa silmukoiden (for, while) käyttöä ja pyrkiä tekemään sama asia matriisioperaationa, mikäli mahdollista. Toisaalta muistin käyttö kannattaa pitää järkevissä rajoissa, eli esim. buffer-komentoa ei kannata käyttää. Ohjelman nopeus ei itsessään vaikuta työn hyväksymiseen/hylkäämiseen.

Jos Matlab on täysin uusi tuttavuus (ja ehkäpä muutenkin), saattaa olla hyvä vilkaista hieman apua Matlab Primerista.

Työssä tarvittu pickpeak-funktio löytyy HOSA-toolboxista. Jos haluat asentaa sen omalle tietokoneellesi, niin se on saatavilla Mathworksilta. Lintulassa se on asennettu hakemistoon /share/matlab-home/matlab53/toolbox/hosa/hosa, joka näkyy Linux-koneille ja Suneille. Saat sen käyttöön lisäämällä hakemiston Matlabin hakupolkuun komennolla addpath('/share/matlab-home/matlab53/toolbox/hosa/hosa'). Jos pickpeak ei kuitenkaan toimi, kopioi sen tiedosto pickpeak.m aikaisemmin mainitusta hakemistosta omaan työhakemistoosi.

Ohjelmien toiminta

Ohjelmien yksityiskohtaiset toiminnalliset vaatimukset on annettu molemmille työvaiheelle erikseen.

Ohjelmien on toimittava kaikissa tilanteissa määrittelyn mukaisesti (pl. virheellinen syöte). Ohjelmille on annettu testauksen helpottamiseksi muutamia testitiedostoja, mutta vastuu ohjelman testauksesta on työparilla. Palautettuja ohjelmia tarkistettaessa käytetään näiden lisäksi muita testitiedostoja. Mikäli ohjelma toimii virheellisesti testiaineistolla, se hylätään. Ennen palautusta ohjelmaa tulee testata myös muilla kuin näillä sivuilla annetuilla testitiedostoilla.

Ohjelman tulee käynnistyä Matlabissa, kun käyttäjä siirtyy ohjelmakoodin sisältävään hakemistoon ja antaa tehtävännanossa määritellyn komennon. Esimerkiksi 1. vaiheen palautuksen tulee käynnistyä komennolla

[F,A,P]=vaihe1('tiedosto.wav',2,24)

kunhan käyttäjä on siirtynyt ohjelmakoodin sisältävään hakemistoon.

Ohjelmointityyli

Harjoitustöiden tulee noudattaa hyvää ohjelmointityyliä, johon kuuluvat esimerkiksi:

Palautettavasta ohjelmakoodista tulee poistaa "ylimääräiset" kommentit, jotka eivät liity ohjelman suoritukseen. Esimerkiksi testausvaiheesta peräisin olevat (kommentoidut) komennot yms. tulee poistaa palautettavasta versiosta.

Tehtävänannot

Lue ensin harjoitustöiden yleiset ohjeet kokonaisuudessaan, ennen kuin siirryt työkohtaisiin ohjeisiin. Molempien vaiheiden yksityiskohtaiset ohjeet on annettu työohjeessa.

Testisignaalit löytyvät täältä.

Palautukset

Harjoitustöistä palautetaan Matlab-koodi sähköpostin liitteenä osoitteeseen

digaudio @ cs tut fi
Mikäli ohjelmakoodi on yhdessä m-tiedostossa, palautetaan kyseinen tiedosto. Mikäli ohjelma on hajautettu modulaarisesti useaan tiedostoon, palautetaan kaikki tiedostot yhtenä zip-pakettina. Palautetuista ohjelmakoodeista tulee löytyä "pääohjelman" sisältävä tiedosto vaiheX.m ja funktio vaiheX(), missä X on palautettavan työvaiheen numero. Esimerkiksi 1. vaiheen palautuksesta pitää löytyä tiedosto vaihe1.m, jossa on ensimmäisenä funktio vaihe1().

Palautettavien kooditiedostojen (kaikkien) alusta tulee löytyä kommentit, joissa kerrotaan mihin harjoitustyön vaiheeseen tiedosto liittyy, käytetty Matlabin version, harjoitustyön tekijät sekä tekijöiden opiskelijanumerot ja sähköpostiosoitteet. Palaute ja tieto työn hyväksymisestä lähetetään näihin osoitteisiin, joten varmistakaa niiden toimivuus.

Ennen kuin palautat ohjelmasi, lue vielä kerran ohjeet läpi varmistaaksesi että olet huomioinut kaikki vaatimukset. Näin vältyt ohjelmasi hylkäämiseltä esim. jonkin muotoseikan vuoksi. Käy lä vielä läpi annettu tarkistuslista.

Määräajat

Töille annetaan tiukat määräajat, joiden jälkeen mitään palautuksia kyseisestä työvaiheesta ei hyväksytä. Työparin vastuulla on palauttaa työt riittävän aikaisin mahdollisen korjauspalautteen saamiseksi. Palautuksen jälkeen työpari saa assistentilta palautetta työstään viimeistään 7 vuorokauden kuluessa palautuksesta. Assistent(ti/it) ilmoittavat työn hyväksymisestä tai hylkäämisestä sähköpostitse koodin alkukommenteissa mainittuihin sähköpostiosoitteisiin.

Mikäli työ on palautettu siten, että se ehditään tarkistaa ennen lopullista määräaikaa (7 vrk aikaisemmin), saa hylätyn työn korjata ja palauttaa uudestaan. Bumerangi tulee korjata ja palauttaa ennen lopullista määräaikaa. Tehdyt korjaukset tulee merkitä koodin sekaan korjattuihin kohtiin kommentein, sekä kooditiedoston alussa olevaan kommenttikenttään. Bumerangien määrää ei aikarajojen puitteissa ole erikseen rajoitettu. Viime hetkellä palautetut työt tarkastetaan vasta määräajan jälkeen, joten silloin hylättävää työtä ei voi myöhemmin korjata ja harjoitustyösuoritus hylätään.

Palautukset tarkastetaan saapumisjärjestyksessä. Mikäli työpari löytää palautetusta työstä virheen ennen tarkistusta, voi työn palauttaa uudestaan. Tällöin tarkastetaan vain viimeisin palautus.

Työvaiheilla on seuraavat määräajat (määräpäivinä klo 23.59)

2. vaiheen palautuksia otetaan vastaan aikaisintaan vasta 1. vaiheen viimeisen määräpäivän jälkeen (eli alkaen ma 14.3.).

Assistentti

Jouni Paulus
jouni paulus @ tut fi
Subject: digaudio

Ensisijainen paikka harjoitustöihin liittyvälle neuvonnalle ovat viikottaiset laskuharjoitukset. Jos et pääse laskuharjoituksiin, voit kysyä neuvoja uutisryhmässä tut.skl.audio. ärimmäisessä tapauksessa voit ottaa yhteyttä suoraan assistentteihin sähköpostitse. Mikäli haluat tavata assistentin muulloin kuin harjoituksissa, sovi aika sähköpostilla etukäteen.