keskiviikko 19. helmikuuta 2014

Suodinsuunnittelua

Tänään käsiteltiin kappale 4 loppuun ja aloitettiin kappaletta 5.

Kappaleen 4 kaksi viimeistä lukua käytiin läpi ratkaisemalla monisteen harjoitustehtävä 4.9. Tässä tehtävässä on annettu suotimen siirtofunktio H(z), josta täytyy ratkaista differenssiyhtälö. Ratkaisu on tässä tapauksessa

y(n) = 4x(n) + 4x(n-1) + 4x(n-2) - 4y(n-2)

Lisäksi piirrettiin kyseisen suotimen napa-nollakuvio, josta kävi ilmi ettei suodin ollut stabiili (miksi?).

Yleisöstä tuli kysymys, pitääkö napojen olla yksikköympyrän sisällä vai saako olla kehällä. Vastaus on että stabiilin suotimen navat eivät saa olla kehälläkään. Jos napoja on kehällä, sanotaan suodinta marginaalisesti stabiiliksi, mikä tarkoittaa että vain yksittäisillä taajuuksilla on ääretön vahvistus. Jos siis signaalista on ensin poistettu vaaralliset taajuudet, toimii suodin tällöin stabiilisti.

Esimerkki marginaalisesti stabiilin suotimen hyötykäytöstä löytyy esim. SGN-työkurssin signaaliprosessorityön neljännen tehtävän Goertzel-algoritmista.

Toisella tunnilla tutustuttiin suotimen suunnitteluun. Yksinkertainen tapa suunnitella taajuusselektiivisiä suotimia on sijoitella napoja ja nollia sopivasti yksikköympyrälle. Menetelmästä käytetään nimeä pole zero placement method, jonka ongelmana on epätarkkuus. Esimerkkinä oli demo, jossa napoja ja nollia sijoiteltiin hiirellä yksikköympyrälle.

Toisella tunnilla tarkasteltiin suotimen suunnittelua annetuista kriteereistä lähtien. 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. Matlabissa tällainen kuvaaja saadaan esim. komennoilla:

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

Freqz-funktiosta saa siis ulos taajuusvastefunktion arvoja vektorissa H. Vektorissa on lueteltu taajuusvasteen kompleksiset lukuarvon 512:ssa pisteessä taajuusakselilla. 

Vaihevasteen 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.

Ei kommentteja:

Lähetä kommentti