keskiviikko 25. helmikuuta 2009

Kappaleet 5 ja 6

Tämänpäiväisellä luennolla käsiteltiin suodinsuunnittelu loppuun sekä alkuosa kuvankäsittelystä.

Ensimmäisellä tunnilla kerrattiin ikkunoinnin tarvetta: ideaalisen suotimen pituus on ääretön, eikä sitä voi käytännössä toteuttaa. Näin ollen impulssivaste on katkaistava, mistä seuraa vääristymä amplitudivasteeseen. Tätä ei voi kompensoida esim. kertoimia lisäämällä, vaan on käytettävä ikkunaa joka pehmentää katkaisun vaikutusta. Ikkunoita on lueteltu esim. sivun 84 taulukossa, ja mitä paremmat vaimennusominaisuudet niillä on, sitä leveämpi siirtymakaistasta tulee. Onneksi tätä voidaan kuitenkin kompensoida kertoimia lisäämällä.

Tunnin lopuksi käytiin taululla esimerkki ikkunamenetelmän käytöstä vuoden 2007 maaliskuun tenttitehtävässä 4.

Toisella tunnilla käsiteltiin kuvankäsittelykappaletta 6. Alkuosa koostuu enimmäkseen yksiulotteisten lineaaristen järjestelmien yleistyksestä kahteen ulottuvuuteen. Fourier-muunnoksen yhteydessä todettiin, että kaksiulotteinen tapaus voidaan toteuttaa kahden yksiulotteisen FFT:n avulla, mikä mahdollistaa nopean laskennan.

Lopuksi tarkasteltiin dekonvoluutiota, eli konvoluution käänteistä operaatiota. Monisteen esimerkin lisäksi esimerkkinä mainittiin Hubble-avaruusteleskoopin varhainen ongelma, joka aiheutti kuvaan jonkin verran epätarkkuutta. Ennen kuin kiertoradalle päästiin korjaamaan linssi kuntoon, täytyi linssin virhe mallintaa konvoluution avulla. Varhaisia kuvia myös korjattiin dekonvoloimalla virheelliset kuvat. Linssi kuitenkin lopulta vaihdettiin, koska dekonvoluutio ei voi tuottaa yhtä täydellistä tulosta kuin fyysinen korjaus. Tämä johtuu siitä, että PSF ei koskaan ole täysin oikea, vaan siinä on numeerista epätarkkuutta. Lisäksi informaatiota saattaa kadota konvoluution yhteydessä, jos taajuustason funktiossa H(n,m) on nollia kertoimina.

keskiviikko 18. helmikuuta 2009

Suodinsuunnittelua

Tämänpäiväisen luennon alussa oli ilmoitusasia: kakkosharkkojen rastilistat ovat kahden harkkaryhmän kohdalta kateissa. Pisteitä puuttuu siis noin kahdeltakymmeneltä opiskelijalta. Odottelemme ensi viikkoon josko listat löytyisivät, ja jos ei löydy, niin kaikille listalla oleville tulee automaattisesti täydet viisi pistettä kakkosharkoista. Tämä ei siis ole vielä lupaus varmoista pisteistä, sillä listat saattavat vielä putkahtaa jostain esiin. Lisää aiheesta ensi viikon luentojen alussa.

Varsinaisen luennon aluksi käytiin vielä toistamiseen läpi edellisviikon Matlab-demo, jossa hiirellä voidaan sijoitella napoja ja nollia napa-nollakuvioon, ja Matlab laskee syntyneen suotimen taajuusvasteen. Uutena ominaisuutena oli testi, jossa Matlab samalla suodattaa Handel-testisignaalin kyseisellä suotimella ja näin paljastaa onko suodin stabiili. Havaittiin, että heti kun yksikin napa oli yksikköympyrän ulkopuolella, ulostulo muuttui järjettömäksi, ja näytearvot olivat suuruusluokkaa 10^50.

Kappaleessa 5 tarkastellaan kappaleen 4 ongelmaa toisin päin. Kappaleessa 4 tavoite oli selvittää annetun suotimen taajuusominaisuudet, ja kappaleessa 5 pitäisi ratkaista mikä suodin toteuttaa annetun taajuuskäyttäytymisen. Suunnittelukriteerit ovat kahtalaiset: suotimen taajuusvasteen määräämiseksi pitää tietää millainen vaihevaste halutaan ja millainen amplitudivaste halutaan.

Vaihevasteen osalta vaaditaan että kaikkien taajuuksien tulee viivästyä yhtä paljon. Tämä toteutuu jos vaihevaste on lineaarinen. Yksinkertaisimmissa tapauksissa vaihevasteen lauseke voi olla siis esimerkiksi muotoa -2w, joka taatusti on lineaarinen. Havaittiin kuitenkin, että vaihevasteessa tapaa olla 180 asteen hyppäyksiä, ja silti vaihevaste voi olla lineaarinen. Tällainen hyppäys tulee tilanteessa jossa taajuusvastefunktio menee kompleksitason origon läpi. Matlabissa tällainen kuvaaja saadaan esim. komennoilla:

>> [H,W] = freqz([1, 1, 1]);
>> plot(H);
>> grid on

Freqz-funktiosta saa siis ulos taajuusvastefunktion arvoja vektorissa H. Vektorissa on lueteltu taajuusvasteen kompleksiset lukuarvon 512:ssa pisteessä taajuusakselilla. Kun kuvaaja plotataan ruudulle, on tuloksessa yksi nollakohta, jossa kompleksifunktion vaihe hyppää 180 astetta (ts. funktio vaihtaa merkkiä). Näistä nollakohdista huolimatta suodin voi olla lineaarivaiheinen, ja näin ollen lineaarisuus kannattaakin määritellä näin: Suodin on lineaarinen, jos sen vaihevasteen derivaatta on vakio aina kun se on määritelty. Derivaatasta käyteään nimeä ryhmäviive, ja se ilmaisee suoraan eri taajuuksille tulevan viiveen näytteinä (miinusmerkkisenä). Lopuksi todettiin, että vaihevaste on aina lineaarinen, jos impulssivasteen termit ovat symmetrisesti keskipisteen suhteen.

Amplitudivaste täytyisi saada päästökaistalla ykköseksi ja estokaistalla nollaksi. Käytännössä tämä ei ole mahdollista, vaan suotimelle täytyy antaa hieman toleranssia ja sallia tietty määrä värähtelyä molemmilla kaistoilla. Lisäksi kaistojen väliin täytyy sallia "don't care" -alue, jossa amplitudivaste saa olla mitä vain.

Prujussa ratkaistaan mikä impulssivaste toteuttaisi ideaalisen amplitudivasteen (arvot vain nollaa tai ykköstä). Osoittautuu että impulssivasteen muoto on tuttu sinc-funktio, mutta sen pituus on ääretön. Tämän vuoksi suotimesta ei saataisi ainuttakaan vastearvoa koskaan, vaan laskentaa tarvittaisiin äärettömän paljon.

Tästä ongelmasta päästään katkaisemalla impulssivaste, mutta tämä luonnollisesti vaikuttaa amplitudivasteeseen. Todettiin, että suoralla katkaisulla ei estokaistan värähtelyä saada millään alle n. 21 desibelin, ja päästökaistallakin suurin heitto on luokkaa 0.7 dB. Ratkaisu tähän on käyttää ikkunointia, eli kertoa katkaistu impulssivaste jollain ikkunafunktiolla. Näin voidaan päästä parempiin vaimennusominaisuuksiin. Tämä kuitenkin kostautuu siirtymäkaistan levenemisenä: esim. Hamming-ikkunan siirtymäkaista on aina n. 3,5-kertainen suoraan katkaisuun verrattuna. Tämä voidaan kuitenkin kompensoida nostamalla kertoimien määrää.

maanantai 16. helmikuuta 2009

Pruju löytynyt

Kurssin pruju on löytynyt harkkaluokasta, ja omistaja saa sen tuntomerkkejä vastaan osoitteesta

kasperi.summanen@tut.fi

keskiviikko 11. helmikuuta 2009

Siirtofunktio

Tänään käsiteltiin kappaleen 2 loppuosa, ja pohdittiin siirtofunktion merkitystä suotimen analyysissä. Tämän ja viime viikon tavoite oli siis oppia analysoimaan annetun suotimen toiminta. Ensi viikolla käännetään ongelma toisin päin ja siirrytään suotimen synteesiin: kuinka suunnitellaan suotimen impulssivaste niin että se täyttää annetut taajuusvaatimukset.

Aluksi kerrattiin sivulla 60 olevan kaavan (4.3) suotimen analyysi. Ensin siitä selvitetään impulssivaste, sitten siirtofunktio ja lopuksi taajuusvaste. Taajuusvaste on kompleksifunktio, joten sitä ei voida sellaisenaan piirtää 2-ulotteiseen koordinaatistoon. Näin ollen piirretään kaksi kuvaajaa: funktion itseisarvon kuvaaja sekä sen vaihekulman kuvaaja. Näistä edellinen kertoo kuinka paljon eri taajuuksien amplitudit muuttuvat suodatuksessa ja jälkimmäinen paljonko ne viivästyvät suodatuksessa. Amplitudivaste on näistä mielenkiintoisempi, koska sen avulla taajuuksia saadaan esim. poistettua yksinkertaisesti huolehtimalla että amplitudivaste ko. taajuudella on nolla. Vaihevasteessakin on oma mielenkiintonsa, ja siihen tutustutaan lähemmin ensi viikolla.

Lineaarista asteikkoa kätevämpi on käyttää desibeliasteikkoa, joka on logaritminen. Logaritmi tekee kertolaskusta yhteenlaskua, ja korostaa lähellä nollaa olevia eroja, jotka molemmat ovat meille käteviä ominaisuuksia.

Seuraavaksi perehdyttiin suotimen siirtofunktion käytännön laskentaan kappaleessa 4.5.4. Tällä menetelmällä saadaan kätevästi sekä IIR-, että FIR-suotimen siirtofunktiot laskettua. Siirtofunktion navoista ja nollista voi päätellä yllättävän paljon suotimen stabiilisuudesta sekä amplitudivasteesta. Jokainen suotimen nolla ja napa nimittäin vaikuttaa suoraan taajuusvasteeseen sitä enemmän mitä lähellä ne ovat yksikköympyrän kehää. Tätä demottiin Matlab-skriptillä, jossa kompleksitasoon voitiin sijoitella napoja ja nollia hiirellä. Ohjelma laski syntyvän suotimen taajuusvasteen saman tien, mikä havainnollisti sijoiteltujen juurien merkitystä. Jos lataat yo. skriptin, niin vasen nappi lisää nolla(parin), oikea napa(parin), ja keskimmäinen nappi lopettaa.

Lopuksi käytiin läpi toukokuun 2008 tentin kolmostehtävä taululla. Myös kyseisen tentin 2a-tehtävä liittyy aiheeseen, samoin kuin esim. kurssin SGN-1250 viimeisimmän tentin 2a-kohta.

tiistai 10. helmikuuta 2009

Välikokeen kaikki tehtävät tarkastettu

Välikoe on nyt tarkastettu loppuun, ja tulokset tulevat nettiin viimeistään keskiviikkona. Nelostehtävässä täytyi laskea suotimen impulssivaste lähtien liikkeelle sen yhtälöstä

y(n) = 0.75 y(n-1) + x(n)

Tästä tehtävästä annettiin pääsääntöisesti joko 0p tai 3p, eli se joko osattiin tai sitten ei.

B-kohdassa täytyi laskea impulssivaste lähtien liikkeelle askelvasteesta. Tästäkin annettiin 0p tai 3p aivan paria tapausta lukuunottamatta, eli sekin joko osattiin tai sitten ei.

Täydet pisteet ekasta välikokeesta on kahdella. Yli 27 pistettä on 15:lla (ja 27 pistettä on tenteissä ollut viitosen raja). Tässä täytyy huomioida, että harkkabonuksia tulee useimmille vielä lisää.

keskiviikko 4. helmikuuta 2009

FFT ja Z-muunnos

Tänään luennolla käsiteltiin FFT:n loppu ja Z-muunnoksen alku sivulle 62 asti.

FFT:n yhteydessä mainittiin kurssin SGN-1600 harjoitus signaaliprosessorien käytöstä. Yhtenä osana sitä on DTMF-taajuuksien automaattinen tunnistus. Tehtävänannon menetelmä pohjautuu Fourier-muunnokseen, joskin se on toteutettu sineillä ja kosineilla. Samalla korostettiin muunnoksen tulkintaa korrelaation kautta: jokainen F-muunnoksen matriisin rivi laskee korrelaation eritaajuisen signaalin kanssa. Laajemmin ajateltuna tätä menetelmää voidaan käyttää tiedonsiirtoon; jokaisen bitin kohdalla nolla koodataan taajuudeksi x ja ykkönen taajuudeksi y. Wikipediasta löytyy lisätietoa tästä ns. FSK-koodauksesta, jolla päästään jopa huimaan 300 bitin sekuntinopeuteen.

FFT:stä käytiin läpi pelkästään monisteen kaavat (3.2) ja (3.3), sekä niiden toteutus sivulla 48.

Z-muunnos on diskreettiaikaisen Fourier-muunnoksen (DTFT; s. 38) yleistys, ja muuntaa signaalin kompleksifunktioksi. Määritelmissä on eroa vain summan sisällä olevassa lausekkeessa, joka Z-muunnoksen tapauksessa on z, ja DTFT:n tapauksessa exp(iw). Jos siis tiedetään signaalin Z-muunnos, saadaan DTFT yksinkertaisesti sijoittamalla z = exp(iw).

Erityisen mielenkiintoinen Z-muunnos on silloin kun muunnettavana on suotimen impulssivaste (joka on signaali siinä kuin mikä tahansa muukin). Tällöin muunnoksen tuloksesta käytetään nimeä siirtofunktio. Siirtofunktio on rationaalifunktio, jonka osoittajassa ja nimittäjässä on polynomi. Kun tämä lauseke tiedetään, saadaan Fourier-muunnos em. sijoituksella. Tulos H(exp(iw)) on nimeltään taajuusvaste, ja siihen menee sisään reaaliluku w (taajuus josta ollaan kiinnostuneita), ja ulos tulee kompleksiluku. Tämän kompleksiluvun itseisarvo kertoo kuinka suuri vahvistus suotimella on kyseisellä taajuudella.

Kaiken kaikkiaan asia oli tänään varsin matemaattista. Jos tämä ahdistaa sinua, niin ensi viikolla helpottaa.

tiistai 3. helmikuuta 2009

4 tehtävää tarkastettu

Neljä tehtävää on nyt tarkastettu, ja keskiarvot tehtävistä 1, 2, 3, ja 5 ovat 3,7, 3,4, 3,9 ja 4,6. Viidellä yhä täydet pisteet ja yli sadalla vähintään 3 pistettä per tehtävä (30 pistettä on kahden välikokeen yhteispisteiden läpipääsyraja). Hyvinhän nämä välikokeet taisivatkin mennä.

maanantai 2. helmikuuta 2009

3 tehtävää tarkastettu

Välikokeen tehtävät 1, 2 ja 5 on tarkastettu. Pistemäärien keskiarvot ovat 3,7, 3,4 ja 4,6. Täydet 18 pistettä löytyy viideltä.