tiistai 30. kesäkuuta 2009

Luento 30.6

Tänään käsiteltiin kappale 2 loppuun ja kappaletta 3 noin sivulle 32 asti. Kappaleessa 2.1 johdettiin A/D-muunnoksen kvantisointikohinan varianssille kaava 2^(-2b) / 12. Tässä yhteydessä luotiin silmäys Wikipedian artikkeliin eri kohinatyypeistä (sekä kevennyksenä maininta South-Park-piirretyn sekaannuksesta termien Brown noise ja Brown note välillä). Lisäksi todettiin, etteivät sivun 19 yläreunan ehdot ole voimassa esim. silloin jos signaalin amplitudi on hyvin pieni.

Jos ehtojen oletetaan olevan voimassa, voidaan osoittaa kohinan odotusarvon olevan nolla ja varianssin yhtä kuin 2^(-2b) / 12. Varianssin laskennassa hyödynnettiin alaviitteen kaavaa, jota havainnollistettiin Ässä-arpa-esimerkillä, ja laskettiin vastaavalla kaavalla arpavoiton odotusarvoksi 1,59 euroa.

Yllä olevaa kaavaa voidaan edelleen jalostaa signaali-kohinasuhteen käsitteeksi (SNR), joka kertoo signaalin tehon suhteessa kohinan tehoon. Kun kaavaa pyöriteltiin, havaittiin jokaisen ylimääräisen bitin (per näyte) nostavan SNR:ää kuudella bitillä.

Kappaleessa 2 johdettiin kaava varianssille suodatuksen jälkeen ja kappaleessa 2.3 tutkittiin suotimen kertoimien pyöristämisen vaikutusta. Tämähän täytyy tehdä aina kun suodin toteutetaan huonomman tarkkuuden alustalla kuin Matlab (esim. tällä 17-bitin DSP:llä).

Kappale 3 tarkastelee menetelmiä, joilla voidaan muuntaa näytteenottotaajuus näytteistämisen jälkeen toiseksi. Perusoperaatiot ovat desimointi ja interpolointi, jotka toimivat kokonaislukukertoimilla. Näitä yhdistelemällä saadaan kaikki rationaalikertoimet. Molemmat operaatiot tarvitsevat alipäästösuodattimen, joka on yleensä FIR, ja suunnitellaan normaaleilla menetelmillä. Suotimen siirtymäkaistasta todettiin, että se laitetaan aina rajataajuuden alapuolelle. Näin signaaliin tulee vähemmän virhettä kuin jos laskostumista pääsisi tapahtumaan.

maanantai 29. kesäkuuta 2009

Luento ma 29.6

Ensimmäisen luennon aluksi esiteltiin kurssin sisältö, läpäisyvaatimukset ym. normaalin käytännön mukaiset asiat. Lisäksi kävi ilmi, että kurssin pruju on loppuunmyyty. Prujujen monistamisesta vastaavan tele-killan kanssa totesimme, ettei liene järkeä monistaa niitä lisää, koska prosessissa voisi helposti mennä useita päiviä ja menekki ei välttämättä olisi enää kovin suuri siinä vaiheessa (8 nosti kätensä kun kysyttiin ketkä haluaisivat monisteen). Ilman jääneiden on siis tulostettava moniste itse kurssin sivuilta, ostettava käytetty moniste kurssin suorittaneilta tai selvittävä pdf-version varassa.

Luennolla käytiin läpi kappale 1 kokonaan sekä kappaletta 2 sivun 18 loppuun asti. Kappaleen 1 aihe on IIR-suodinten suunnittelu, joka käytiin melko yleisellä Matlab-komentojen osaamisen tasolla. Kappaleen ydin on koottu sivun 11 taulukkoon, jossa suodintyyppejä vertaillaan amplitudivasteen ominaisuuksien ja kertoimien määrän suhteen. Taulukossa on virhe: kertoimia tarvitaan 29+28, 13+12 ja 8+7 kappaletta. Siirtofunktion nimittäjän kertoimista ensimmäinen on nimittäin aina 1, eikä sitä tarvita. Vertailun vuoksi FIR-suotimen kertoimien määrä vastaavilla vaatimuksilla olisi N = [5.5/0.035] = 159 käytettäessä Blackman-ikkunaa.

Muita luennolla esiin tulleita seikkoja olivat mm.
  • Matlabin kerroinvektorit a ja b eivät ole suoraan käytettävissä ulostulon y(n) laskennassa, ks. sivun 2 loppu.
  • Elliptisellä suotimella on aina vähemmän kertoimia kuin muilla. Lisäksi tasavärähtely-ominaisuus on yleensä hyvä asia.
  • Napojen ja nollien sijoittelua demottiin ja napa-nollakuvion ja amplitudivasteen yhteyttä käsiteltiin.
IIR-suotimen etuna on siis pienempi kertoimien tarve. Haittapuolina mahdollinen epästabiilisuus sekä numeeriset ongelmat toteutuksessa. Tästä esimerkkinä mainittiin kurssin SGN-1600 signaaliprosessorityö, jossa täytyy toteuttaa IIR-suodin. Käytännössä yli toisen asteen IIR-suodinta ei voi toteuttaa numeeristen ongelmien vuoksi. Sen sijaan suodin täytyy jakaa peräkkäisiin toisen asteen lohkoihin esim. Matlabin TF2SOS-funktiolla.

Kappaleessa 2 tarkastellaan äärellisen sananpituuden vaikutuksia, jotka ilmenevät A/D-muunnoksen yhteydessä sekä suodatettaessa äärellisellä laskentatarkkuudella. Pääpaino on ensimmäisessä tyypissä. Luennolla käsiteltiin näytteistyksessä käytettävät kvantisointitasot: esimerkiksi (1+7) bitin esityksessä käytettävissä ovat seuraavat 256 tasoa:

-128/128, -127/128, ..., 0, ..., 126/128, 127/128.

Pyöristettäessä lähimpään lukuun syntyvä kvantisointivirhe on aina välillä -1/256...1/256. Yleisesti pyöristys (1+b) bittiin aiheuttaa enintään virheen 2^(-b) / 2 suuntaan tai toiseen.

Seuraavalla kerralla tätä yksinkertaista virhemallia käytetään johdettaessa arvio virheen varianssille, joka on suoraan verrannollinen syntyvän kvantisointivirheen tehoon. Tätä kautta määritellään SNR, eli signaali-kohinasuhde, eli häiriöetäisyys. Tämä suure kertoo jotain äänenlaadusta, ja saatavia tuloksia tullaan tarvitsemaan kappaleessa 6, kun päätellään montako bittiä signaalista uskalletaan poistaa kompressiossa ilman äänenlaadun havaittavaa heikkenemistä.

Blogi perustettu

Pidän kurssin etenemisestä päiväkirjaa, koska luentojen jälkeen ja sähköpostitse tulee hyviä kysymyksiä joihin olisi kiva vastata. Lisäksi luennon asioiden lyhyt kirjaaminen päiväkirjaan helpottaa elämää niiden osalta, jotka eivät pääse luennolle. Kolmantena syynä on jatkuvasti pudonnut kurssipalautteen määrä. Toivottavasti tämä menettely lisää kommunikaatiota. Merkintöjen kommentointi on siis tervetullutta ja se onnistuu anonyymisti. Pyrin päivittämään blogin kerran päivässä luentojen jälkeen.