keskiviikko 30. syyskuuta 2009

Tänään luennoilla käsiteltiin kappaleen 3 alku noin sivulle 36 asti. 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.

Desimoinnissa tapahtuva näytteenottotaajuuden pieneminen toteutetaan yksinkertaisesti jättämällä näytteitä pois tasaisin väliajoin. Esimerkiksi kertoimella kolme jätetään vain joka kolmas näyte jäljelle. Tämä kuitenkin aiheuttaa laskostumista, koska signaalin sisältämät taajuudet pysyvät samoina mutta näytteenottotaajuus pienenee. Tämä saadaan luonnollisesti estettyä suodattamalla signaali ennen alinäytteistämistä sopivalla alipäästösuotimella.

Interpolointi puolestaan koostuu nollien lisäämisestä sekä tämän operaation tuottamien roskien poistamisesta. Nollien lisääminenhän tuottaa kopioita ja peilikuvia alkuperäisestä spektristä, jotka voidaan myös poistaa kätevästi alipäästösuodatuksella.

Kappaleessa 3.4 luodaan katsaus interpoloinnin ja desimoinnin yhdistämiseen, jolloin päästään s. 34 alalaidan rakenteeseen. Tässä huomataan olevan kaksi suodatinta peräkkäin, jotka molemmat poistavat tietyn kaistan ylätaajuuksilta. Näin ollen vain toinen niistä on tarpeellinen. Piirtämällä kuva näiden suodinten amplitudivasteista voidaan päätellä kumpi on tarpeeton (aina se, jota vastaava muunnoskerroin on isompi).

Luennon loppupuolella vilkaistiin lyhyesti ekskursiota D/A-muunnoksen toteutuksessa. Tarkasteltavana oli kaksi ratkaisua, joista kappaleen 3.5.1 versio on vanhempi, ja oli käytössä esim. ensimmäisissä CD-soittimissa (etupaneelissa saattoi olla teksti 4 times oversampling tms.). Tällöin D/A-muunnos tehdään ns. nollannen asteen pitopiirillä, joka tuo signaaliin häiriöitä korkeille taajuuksille. Nämä voidaan poistaa analogisella alipäästösuotimella, mutta ongelmaksi tulee kapea siirtymäkaista (20kHz - 22,05 kHz). Analogiapuolta voidaan yksinkertaistaa siirtämällä osa toiminnallisuudesta digitaaliseksi, eli interpoloimalla signaali digitaalisesti ennen D/A-muunnosta.

Tästä jatketaan jo ensi perjantaina, 2.10 klo 12 salissa TB104.

keskiviikko 16. syyskuuta 2009

Äärellinen sananpituus

Tämän päivän luennolla käsiteltiin kappale 2, jossa tarkastellaan äärellisen sananpituuden vaikutuksia. Meidän tarkastelussamme nämä 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.

Seuraavaksi tätä yksinkertaista virhemallia käytettiin 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ä.

Kappaleessa 2.1 johdettiin siis A/D-muunnoksen kvantisointikohinan varianssille kaava. Tässä yhteydessä luotiin silmäys Wikipedian artikkeliin eri kohinatyypeistä (sekä kevennyksenä maininta urbaanilegendasta nimeltä brown note). 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 (vanhalla) Ä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ä).

Lopuksi alustettiin tehtävän 2.10 tavoitteita. IIR-suotimilla voidaan nimittäin päätyä ns. rajasykliin. Tällöin vaste jää värähtelemään alimmille kvantisointitasoille ikuisesti, koska pyöristys kumoaa IIR-suotimen normaalin vaimenemisen.

keskiviikko 9. syyskuuta 2009

Luento 9.9.2009

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, eikä niitä ollutkaan myynnissä tänään. Myynnistä huolehtiva tele-kilta on tilannut monisteita lisää, ja niitä saapuu loppuviikosta ja myydään seuraavalla luennolla (16.9). Siihen asti on selvittävä pdf-version varassa.

Luennolla käytiin läpi kappale 1 kokonaan. Kappaleen 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, koska vektorin b ensimmäinen kerroin on aina yksi ja varattu termille y(n). 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.

Alku aina hankalaa: olin vahingossa merkinnyt ensimmäisen luennon POP:issa harjoitustyöksi, jolloin se ei näkynyt luentojen listalla. Toivottavasti tästä ei tullut kenellekään kohtuutonta haittaa. Myös pe 2.10 luento on merkitty siellä pakolliseksi (mitä se ei tietenkään ole), enkä tiedä kuinka sen saisi muutettua. Lisäksi unohdin mainita, että kurssin voi suorittaa joko tentillä tai välikokeilla, kuten kurssin SGN-1200:kin viime keväänä. Ensimmäinen välikoe on ensimmäisellä tenttiviikolla ja toinen samaan aikaan kuin kurssin tentti. Tenttitilaisuudessa on vielä vapaus valita tekeekö tentin vai toisen välikokeen.

Kurssiblogi 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 viikossa luentojen jälkeen.

Jostain syystä POP ei näytä ensimmäistä luentoa oppimistapahtumien näkymässä. Ensimmäinen luento on silti 9.9 klo 14:15 salissa TB103.