: Johdatus signaalinkäsittelyyn 1
|
|
|
- Heli Halonen
- 10 vuotta sitten
- Katselukertoja:
Transkriptio
1 TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan osasto Signaalinkäsittelyn laitos TAMPERE UNIVERSITY OF TECHNOLOGY Department of Information Technology Institute of Signal Processing Opetusmoniste -23 Heikki Huttunen 823: Johdatus signaalinkäsittelyyn Tampere 23 ISSN ISBN
2
3 Opetusmoniste : Johdatus signaalinkäsittelyyn Heikki Huttunen Tampereen teknillinen yliopisto Signaalinkäsittelyn laitos PL Tampere ISSN ISBN Tampereen teknillinen yliopisto Signaalinkäsittelyn laitos PL Tampere Tampere 23
4
5 Esipuhe Käsillä oleva moniste on tarkoitettu opetusmateriaaliksi Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kurssille "823: Johdatus signaalinkäsittelyyn ". Materiaali on kehittynyt nykyiseen muotoonsa luennoidessani aiheesta Jyväskylän yliopistossa lukuvuonna , Tampereen yliopistossa lukuvuonna sekä Tampereen teknillisessä yliopistossa lukuvuosina TTY:ssa luennoimani kurssi "823: Johdatus signaalinkäsittelyyn " koostuu kahdesta osasta. Lineaariset järjestelmät: diskreetit signaalit, niiden ominaisuudet ja generointi Matlabilla, lineaariset järjestelmät, diskreetti Fourier-muunnos, FFT, z-muunnos. (7 9 luentoa) Sovellutukset: tavallisimpia signaalinkäsittelyn sovelluksia, esimerkiksi puheenkäsittely, kuvankäsittely ja -koodaus, digitaalinen video (MPEG-standardit), lääketieteellinen signaalinkäsittely, hermoverkot ja tutkasignaalit (sonar/radar). (3 5 luentoa) Vierailevat luennoitsijat laitokselta ja teollisuudesta hoitavat osan sovellutusten esittelystä. Koska vierailijat vaihtuvat vuosittain, ei vierailuluentojen materiaalia voida liittää mukaan. Poikkeuksen tähän muodostavat aina luennoitavat kappaleet 8 ja 9. Kurssin tavoitteena on selvittää lineaaristen järjestelmien ja digitaalisen signaalinkäsittelyn peruskäsitteet sekä luoda kuva sovelluskohteista. Kurssin käytyään opiskelijan tulisi ymmärtää millaista signaalinkäsittelyn parissa työskentely on ja minkä tyyppisiin ongelmiin sitä voidaan soveltaa. Keväisin luennoidaan kurssi 8253: Johdatus signaalinkäsittelyyn 2, joka jatkaa siitä, mihin tällä kurssilla jäädään. Kesällä 2 monisteen laatimisessa oli apuna filosofian ylioppilas Jari Niemi Tampereen yliopistosta. Kiitän häntä hyvin tehdystä työstä. Lisäinformaatiota löytyy kurssin kotisivulta, jonka osoite on Monistetta on käytetty opetusmateriaalina vastaavilla kursseilla TAMK:issa, Kuopion yliopistossa sekä TTY:n koordinoimassa DI-muuntokoulutuksessa Kuopiossa. Pyynnöstä materiaalin käytölle voidaan myöntää lupa myös muualla. Tällöin voin tarvittaessa toimittaa myös luentokalvot sekä harjoituksissa käytettäviä Matlab-skriptejä. Tampereella, 9. toukokuuta 23, Heikki Huttunen [email protected]
6 ii 823 JOHDATUS SIGNAALINKÄSITTELYYN
7 Sisältö Esipuhe i Digitaalinen signaalinkäsittely. Mitä signaalinkäsittelyllä tarkoitetaan Näytteenottoteoreema Digitaalisen signaalinkäsittelyn etuja jatkuva-aikaisiin suodattimiin nähden 3.4 Digitaalisten menetelmien haittoja jatkuva-aikaisiin suodattimiin nähden. 4.5 Sovelluskohteita Diskreettiaikaiset digitaaliset signaalit 9 2. Usein tarvittavia signaaleita Diskreettien järjestelmien ominaisuuksia 5 4 Lineaariset siirtoinvariantit (LTI) järjestelmät 2 4. Konvoluutio Konvoluution ominaisuuksia Fourier-muunnos 3 5. Fourier-muunnos (ei-jaksollinen jatkuva-aikainen signaali) Fourier-sarja (jaksollinen jatkuva-aikainen signaali) Diskreettiaikainen Fourier-muunnos (diskreettiaikainen ei-jaksollinen signaali) Diskreetti Fourier-muunnos (diskreettiaikainen jaksollinen signaali) Diskreetin Fourier-muunnoksen ominaisuuksia Nopea Fourier-muunnos (FFT) Z-muunnos Z-muunnoksen määritelmä Tavallisimpien jonojen z-muunnokset Käänteinen z-muunnos Z-muunnoksen ominaisuuksia Siirtofunktio Siirtofunktion laskeminen Siirtofunktio ja stabiilisuus
8 iv 823 JOHDATUS SIGNAALINKÄSITTELYYN 7 Suotimen suunnittelu taajuustasossa FIR-suodinten suunnittelu: suunnittelukriteerit Suunnittelu ikkunamenetelmällä Yhteenveto ikkunamenetelmän käytöstä Kuvan ja videon pakkaaminen Televisiokuvan pakkaus Pakkausmenetelmien kaksi tyyppiä Informaatioteoriaa Huffman-koodaus Virheetön kuvakoodaus Häviöllinen koodaus Videokuvan koodaus Digitaalinen kuvankäsittely Kaksiulotteiset järjestelmät Dekonvoluutio Piste-ehostus Gammakorjaus Histogrammin ekvalisointi Histogrammin paikallinen ekvalisointi
9 Luku Digitaalinen signaalinkäsittely Digitaalisesta signaalinkäsittelystä on tullut yksi nykytekniikan avainaloista, ja se tukee läheisesti ainakin tietoliikennetekniikkaa, mittaustekniikkaa ja tietotekniikkaa. Digitaalisen signaalinkäsittelyn (Digital signal processing, DSP) voidaan katsoa syntyneen luvuilla, jolloin tietokoneet alkoivat olla riittävän yleisesti käytettävissä. Tämän jälkeen sitä on menestyksekkäästi sovellettu lukuisilla alueilla; lääketieteellisestä PET-kuvantamisesta CD-soittimeen ja GSM-puhelimeen. Sovellukset ovat varsin lukuisat, joten kaikkea DSP:stä on mahdotonta hallita (eikä niitä ole mielekästä opettaa korkeakoulussa). Tärkeimmät perusmenetelmät ovat kuitenkin pysyneet vuosien varrella samoina. Tällä kurssilla on tarkoitus käsitellä tärkeimmät peruskäsitteet, osa tärkeimmistä menetelmistä, esimerkkisovelluksia. Kun lineaaristen järjestelmien perusasiat on käsitelty, perehdytään tyypilliseen signaalinkäsittelyn ongelmaan: kuinka poistaa tietyt taajuudet annetusta signaalista. Tulevilla kursseilla perehdytään tarkemmin signaalinkäsittelyn menetelmiin sekä tarkastellaan sovelluskohteita lähemmin.. Mitä signaalinkäsittelyllä tarkoitetaan Tyypillinen DSP-sovellus sisältää seuraavat vaiheet:. Niin sanottu A/D-muunnin (analog/digital) muuntaa vastaanotetun (jatkuva-aikaisen) analogisen signaalin digitaaliseksi ja diskreettiaikaiseksi. 2. Tämän jälkeen diskreettiaikaista digitaalista signaalia muokataan jollain järjestelmällä (esim. tietokoneella). Tätä vaihetta kutsutaan suodattamiseksi. Suodatuksen tavoite on muuntaa järjestelmään saapuva signaali sovellutuksen kannalta hyödyllisempään muotoon. Tämä saattaa tarkoittaa esimerkiksi: Signaalissa olevan kohinan poistamista siten, että varsinainen signaali säilyy mahdollisimman hyvin.
10 2 823 JOHDATUS SIGNAALINKÄSITTELYYN Signaalissa olevien mielenkiintoisten piirteiden erottelua muun signaalin joukosta. Perinteisesti suotimet ovat olleet lineaarisia niiden helpomman toteuttamisen ja analysoinnin vuoksi, mutta myös epälineaarisia suotimia on tutkittu. x(n) Digitaalinen suodatin y(n) 3. Suodatuksen jälkeen signaali muunnetaan takaisin analogiseksi D/A-muuntimella. Tyypillisesti signaalinkäsittelyn kursseilla keskitytään vaiheeseen 2, suotimen suunnitteluun..2 Näytteenottoteoreema Näytteenottotaajuuden yläraja on nykyisin MHz, joten hyvin suuria taajuuksia sisältäviä signaaleja ei voida käsitellä diskreetin systeemin avulla. Radioiden ja televisioiden suurtaajuusosat toteutetaan jatkuva-aikaisten suodattimien avulla. Mistä siis tiedetään, milloin saapuvan signaalin taajuus on liian suuri diskreettiaikaiselle järjestelmälle ja mitä näytteenottotaajuutta on syytä käyttää (suurempi taajuus vaatii tehokkaammat ja kalliimmat komponentit)? Jatkuva-aikaista signaalia näytteistettäessä siitä otetaan näytteitä ajanhetkillä, T, 2T, 3T,... ja vain signaalin näillä hetkillä saamat arvot talletetaan (mustat ympyrät alla olevassa kuvassa). Jos siis jatkuvasta signaalista käytetään merkintää x c (t), missä t R, niin näytteistyksen tuloksena saadaan lukujono x(n), jolle on voimassa ehto x(n) = x c (nt) (n =,,2,...)..5.5 T 2T 3T 4T 5T 6T Vakio T ilmoittaa siis kuinka monta sekuntia on kahden peräkkäisen näytteen väli. Useimmiten sama asia ilmaistaan sanomalla montako kertaa sekunnissa näytteitä otetaan. Tämän suureen nimi on näytteenottotaajuus (sampling frequency) ja se on vakion T käänteisluku, F s =. Jos näytteenottotaajuus on liian pieni (ja siis näytteiden väli T liian suuri), T tapahtuu laskostumista eli alinäytteistymistä (aliasing). Esimerkki: Kuvan kahdella sinisignaalilla on samat näytearvot, koska näytteitä otetaan liian harvoin. Alkuperäisellä signaalilla (katkoviiva) on siis suurempi taajuus f + F s. Järjestelmä tulkitsee saapuvan signaalin kuitenkin sinisignaaliksi, jonka taajuus on vain f (yhtenäinen viiva).
11 . DIGITAALINEN SIGNAALINKÄSITTELY T 2T 3T 4T 5T 6T Lause: Jatkuva-aikainen signaali voidaan muodostaa uudelleen näytearvoistaan, jos näytteenottotaajuus F s on vähintään kaksi kertaa niin suuri kuin signaalin sisältämä suurin taajuuskomponentti. Jos edellinen ehto ei ole voimassa, täytyy taajuutta F s /2 suuremmat taajuudet leikata pois jollain analogisella järjestelmällä laskostumisen estämiseksi. Taajuudesta F s /2 käytetään nimitystä Nyquistin taajuus (Nyquist frequency, Nyquist rate) ja yo. lause on nimeltään näytteenottoteoreema (Nyquist 928, Shannon 949). Näin ollen enintään 5 khz taajuuksia sisältävä signaali vaatii järjestelmän, jonka näytteenottotaajuus on vähintään khz. Jos näin ei ole käy kuten alla olevassa kuvassa. Kuvat esittävät eräiden signaalien spektrejä, jotka kertovat, kuinka paljon kutakin taajuutta on mukana signaalissa. Kuvan alkuperäisessä jatkuvassa signaalissa on taajuuksia 3 khz asti (vasemmalla), jolloin khz taajuudella näytteistettäessä yli 5 khz taajuudet summautuvat alemmille taajuuksille laskostuneen x-akselin mukaisesti (oikealla) Digitaalisen signaalinkäsittelyn etuja jatkuva-aikaisiin suodattimiin nähden Analogisia suotimia on elektroniikan alalla tutkittu jo kauan. Nämä kootaan elektronisista komponenteista ja ne poimivat tyypillisesti tietyt taajuudet signaalista ja poistavat muut. Mitä hyötyä on tehdä sama digitaalisesti? Suodattimen kertoimien arvot pysyvät vakiona. Suodattimen toiminta ei muutu ajan mukana tai esimerkiksi lämpötilan vaihdellessa. Tarkkuus on parempi. Voidaan helposti toteuttaa monimutkaisiakin suodattimia, mm. HIFI-suodattimia.
12 4 823 JOHDATUS SIGNAALINKÄSITTELYYN Samaa suodatinta voidaan käyttää samanaikaisesti useiden signaalien käsittelyyn (multipleksointi). Voidaan toteuttaa pienellä sirupinta-alalla, helppo monistettavuus. Samaa DSP-prosessoria voidaan käyttää moniin tehtäviin suuret tuotantoerät halpa hinta. On mahdollista toteuttaa täysin lineaarivaiheisia suodattimia, jolloin signaaliin ei synny vaihevirhettä. Voidaan toteuttaa hyvin monimutkaisia algoritmeja, joita ei voida toteuttaa järkevästi analogisilla suodattimilla. Rajana on vain prosessoreiden teho ja mahdolliset aikavaatimukset..4 Digitaalisten menetelmien haittoja jatkuva-aikaisiin suodattimiin nähden Kuten aiemmin mainittiin, näytteenottotaajuuden yläraja on nykyisin MHz, joten hyvin suuria taajuuksia sisältäviä signaaleja ei voida käsitellä diskreetin systeemin avulla. Radioiden ja televisioiden suurtaajuusosat toteutetaan jatkuva-aikaisten suodattimien avulla. Nopea DSP on kallista. Lisäksi A/D ja D/A-muuntimia tarvitaan yksinkertaisissakin sovelluksissa..5 Sovelluskohteita Seuraavaksi tarkastellaan muutamia tyypillisiä sovelluskohteita melko pintapuolisesti. Telekommunikaatio: multipleksaus (multiplexing): Maailmassa arvioidaan olevan miljardi lankapuhelinta. 96-luvulle saakka yhtä puhelinyhteyttä kohti tarvittiin yksi puhelinjohto. Digitaalisen signaalinkäsittelyn avulla johtojen määrää voidaan vähentää lähettämällä useita signaaleja yhdessä johdossa. Niin sanottu T-carrier-järjestelmä välittää 24 signaalia yhdessä johdossa. Jokainen signaali muunnetaan digitaaliseksi (8 näytettä/s) käyttäen 8-bittistä esitystä. Kukin linja kuluttaa siis 64 bittiä sekunnissa, ja kaikki 24 kanavaa kuluttavat.536 megabittiä sekunnissa. Tämä määrä voidaan helposti välittää puhelinkeskusten välisillä linjoilla. Kompressio: Edellisen esimerkin bittimäärää voidaan edelleen vähentää käyttämällä pakkausta (kompressiota). Kompressioalgoritmit pyrkivät poistamaan näytteiden välillä olevaa redundanssia, ja saamaan näin tarvittavien bittien määrää vähennetyksi. Erilaisia pakkausmenetelmiä on lukuisia. Menetelmä saattaa olla suunniteltu pakkaamaan tehokkaasti esimerkiksi äänisignaalia, digitaalista kuvaa tai videota tai vaikkapa lääketieteessä tavattavia kolmiulotteisia tomografiakuvia. Menetelmät käyttävät hyväkseen kunkin sovelluksen ominaispiirteitä. Esimerkiksi standardisointijärjestö ISO:n pakkausstandardit MPEG-, MPEG-2, MPEG-4 ja MPEG-7 ovat olleet runsaan huomion kohteena viime aikoina.
13 . DIGITAALINEN SIGNAALINKÄSITTELY 5 Kaiunkumous: Koska puhelinliikenteen signaalit kulkevat kahteen suuntaan, ongelmaksi saattaa muodostua käyttäjälle ärsyttävä kaiku. Jokainen puhuttu sana palaa pienellä viiveellä linjaa pitkin takaisin ja saa aikaan kaikua vastaavan efektin. Erityisenä ongelmana tämä on kaiutinpuhelinta käytettäessä, mutta myös tavallisissa puhelimissa. Ongelma voidaan poistaa riittävän tehokkaasti adaptiivisen signaalinkäsittelyn menetelmin. CD-soitin: Viime aikoina musiikkiteollisuus on siirtynyt käyttämään digitaalista CD-levyä perinteisten vinyylilevyjen asemesta. Alla oleva yksinkertaistettu kaavio tyypillisestä CD-soittimesta sisältää lukuisia kohteita, joissa käytetään DSP:tä. Laser Demodulaatio Virheenkorjaus 4-kertainen ylinäytteistys 4-bittinen D/A-muunnin 4-bittinen D/A-muunnin Alipäästösuodatus Alipäästösuodatus Puheentunnistus: Puheentunnistukselle voidaan helposti keksiä lukuisia sovelluksia, mutta valitettavasti nykyinen teknologia ei kykene tehtävään täysin aukottomasti. Yleisimmät lähestymistavat jakavat ongelman kahteen osaan: piirteiden erotteluun (feature extraction) ja piirteiden vertailuun (feature matching). Erotteluvaiheessa puhe jaetaan erillisiin sanoihin (tai vaikkapa äänteisiin) ja verrataan näitä aiemmin kuultuihin sanoihin. Vertailuvaiheessa saattaa tulla ongelmia jos puhuja ei ole sama kuin opetusvaiheessa. Tietokonetomografia: Röntgenkuvissa tavallinen ongelma on, että kaksiulotteisesta kuvista ei voida tunnistaa päällekkäisiä elimiä. Lisäksi röntgenkuvista käy ilmi potilaan anatomia, ei fysiologia. Toisin sanoen, ainoastaan kehon rakenne on nähtävissä, ei sen toimintaa. Näin ollen kuolleen ihmisen röntgenkuva vastaa miltei täysin elävän ihmisen röntgenkuvaa. Näitä ongelmia on ratkaistu 97-luvulta alkaen tietokonetomografian keinoin. Perinteisessä tietokonetomografiassa otetaan röntgenkuvia useista suunnista ja saadaan kolmiulotteinen malli. Röntgensäteiden vaarallisuudesta johtuen myöhemmin on kehitelty muita menetelmiä, kuten PET (positron emission tomography) sekä MRI (magnetic resonance imaging). Näistä edellinen käyttää positronisädettä kuvan muodostamiseen ja jälkimmäinen muodostaa kuvan voimakkaiden sähkömagneettien avulla. Signaalinkäsittelyä käytetään pääasiassa kuvan kokoamisessa yksittäisten säteiden muodostamasta datasta. Harjoitustehtäviä.. (Matlab) Käy läpi Matlabin aloittelijoille tarkoitettu demo, joka käynnistyy Matlabin komennolla intro.
14 6 823 JOHDATUS SIGNAALINKÄSITTELYYN.2. (Matlab) (a) Luo vektori t, joka sisältää arvot.,.,.2,.3,...,.98,.99,2.. Vihje: help colon (b) Luo vektori x, joka sisältää funktion x(t) =cos(2πt) +2 sin(4πt) evaluoituna vektorin t määräämissä pisteissä. (c) Tulosta edellisen kohdan funktion mukainen käyrä välillä [, 2]. Vihje: help plot (d) Tulosta edellisen kohdan funktion itseisarvon mukainen käyrä välillä [, 2]. Vihje: help abs (e) Tulosta molemmat käyrät samaan kuvaan. Vihje: help subplot. Nimeä kuva. Vihje: help title..3. (Matlab) (a) Luo matriisi: A = Vihje: help reshape, help transpose (b) Korota matriisin A jokainen alkio kolmanteen potenssiin Vihje: help power (c) Laske matriisin A kolmas potenssi A 3 Vihje: help mpower (d) Laske kohdan (b) matriisin käänteismatriisi. Vihje: help inv.4. (Matlab) (a) Luo 5-alkioinen normaalisti jakautunut satunnaisvektori (help randn) ja tulosta sen itseisarvojen (help abs) kuvaaja diskreetisti komennolla stem. (b) Luo funktio nimeltä summaus (tiedostoon nimeltä summaus.m), joka saa syötteenä vektorin x ja palauttaa x:n alkioiden summan ja niiden neliösumman Vihje: help function, help sum. (c) Testaa funktiota (a)-kohdan vektorilla..5. Analoginen signaali koostuu yksittäisestä siniaallosta, jonka taajuus on Hz. Signaalista otetaan näytteitä.6 sekunnin välein. (a) Tapahtuuko laskostumista? (b) Jos vastauksesi on myönteinen, miksi taajuudeksi em. sinisignaali tulkitaan, ts. mille taajuudelle se laskostuu? (c) Mikä olisi riittävä näytteenottotaajuus laskostumisen estämiseksi?
15 . DIGITAALINEN SIGNAALINKÄSITTELY 7.6. Analoginen (jatkuva-aikainen) signaali on muotoa x(t) =2 cos(2πt).7sin(3πt)+ cos(2πt) +cos(8πt), missä t on aikaa kuvaava muuttuja (sekunteina). Kuinka usein signaalista pitää ottaa näytteitä, ettei laskostumista tapahdu? Vihje: tutki kuinka monta kertaa kukin signaalin termi värähtää ylös-alas sekunnin aikana. Näistä saat signaalin suurimman taajuuden ja edelleen näytteenottotaajuuden..7. Tarkkaan ottaen Nyquistin rajataajuus ei riitä aivan kaikissa tapauksissa. Tarkastellaan tällaista poikkeusta tässä tehtävässä. (a) Signaalista x(t) =sin(2πt) otetaan näytteitä.5:n sekunnin välein alkaen hetkestä t = s. Määritä viiden ensimmäisen näytteen arvo. Voidaanko alkuperäinen signaali rekonstruoida näistä näytearvoista? (b) Millaiset näytteet saadaan jos näytteenotto aloitetaan hetkellä t =.25 s? Voidaanko alkuperäinen signaali rekonstruoida näistä näytearvoista?.8. (Matlab) Kopioi itsellesi Lataa se Matlabin editorissa (help load). Editori käynnistyy komennolla edit. Tallenna ja aja ohjelma. Kuuntele signaali (,joka on muuttujassa x (help whos),) käskyllä soundsc(x). Pudota sitten näytteenottotaajuus puoleen (Aseta editorissa uudeksi signaaliksi y=x(:2:length(x));). Tallenna taas, aja ohjelma ja kuuntele signaali y. Tee alipäästösuodin b, jonka aste on 2 ja rajataajuus /2 (help fir). Suodata signaali x käskyllä z=filter(b,,x). Pudota näytteenottotaajuus jälleen puoleen ja kuuntele. Mikä kuuntelemistasi signaaleista kuulostaa virheettömimmältä? Mistä erot johtuvat? Huom: Suodinsuunnitteluun liittyvää teoriaa käsitellään täsmällisemmin luvussa (Matlab) Sun-työasemien äänikortit ovat yksinkertaisia ja toimivat vain näytteenottotaajuudella 892 Hz. Generoi yhden sekunnin mittainen signaali, jonka taajuus on Hz. Yleisesti signaali saadaan kaavasta ( ) 2πnf x(n) =sin, missä f on haluttu taajuus Hertseinä ja F s on näytteenottotaajuus Hertseinä. Muuttuja n on Matlabissa vektori, joka sisältää halutut pisteet ajassa, t.s., (,2,3,...,892). Generoi myös signaalit, joiden taajuudet ovat 2 Hz ja 3 Hz, ja kuuntele kaikki tulokset. Mitä tapahtuu, kun ylität Nyquistin rajan, eli generoit signaaleja, joiden taajuudet ovat 6, 7 ja 8 Hz? (Volume-säätö onnistuu komennolla audiocontrol Sunin konsolilla.).. (Matlab) Simuloidaan Matlabilla laskostumista. SUNin äänikortti aiheuttaa hieman ylimääräisiä hankaluuksia, koska se tukee ainoastaan 892 Hz:n näytteenottotaajuutta ulostulossa. Kopioi itsellesi tiedosto (tai Lintulassa tiedosto ~hehu/public_html/seiska.mat) ja lataa se Matlabiin komennolla load. Signaalin näytteenottotaajuus on 6384 Hz. Pudota näytteenottotaajuus ensin puoleen alkuperäisestä komennolla x=y(:2:length(y)); Tällöin jäljelle F s
16 8 823 JOHDATUS SIGNAALINKÄSITTELYYN jää vain joka toinen näyte, eli sama tulos oltaisiin saatu otettaessa alun perin näytteitä taajuudella 892 Hz. Nyt korkeat taajuudet laskostuvat matalien päälle. Kuuntele tulos komennolla soundsc. Vertaa kuulemaasi tulokseen, joka saadaan poistamalla liian suuret taajuudet ennen näytteenottotaajuuden pienentämistä (komento decimate)... (Matlab) Edellisessä tehtävässä laskostuminen ei ollut vielä kovin merkittävää, koska miesääni ei sisällä korkeita taajuuksia juurikaan muualla kuin joidenkin konsonanttien kohdalla (erityisesti s-kirjaimen). Tee edellisen tehtävän testi signaalilla (Lintulassa voit käyttää myös tiedostoa ~hehu/public_html/lintu.mat). Näytteenottotaajuus on nyt 892 Hz. Kuuntele alkuperäinen näyte, joka on muuttujassa y. Pudota näytteenottotaajuus sitten puoleen alkuperäisestä komennolla z=y(:2:length(y)) ja kuuntele tulos komennolla soundsc(interp(z),2)). Kiinnitä huomiota loppuosaan: alkuperäisessä näytteessä on laskeva ääni, laskostuneessa nouseva. Tulosta ruudulle molempien signaalien spektrogrammit (komento specgram). Komento interp nostaa näytteenottotaajuuden takaisin 892:n Hertsiin, jotta äänikortti osaa soittaa sen.
17 Luku 2 Diskreettiaikaiset digitaaliset signaalit Analoginen signaali on määritelty jokaisella ajanhetkellä ja se voi saada äärettömän määrän eri arvoja (esim. väliltä [, ], kuten alla). Jatkuva aikainen signaali Digitaalinen signaali saa vain äärellisen määrän eri arvoja. Jatkuva aikainen digitaalinen signaali Diskreettiaikainen signaali saa arvoja vain tietyillä ajanhetkillä. Diskreettiaikainen digitaalinen signaali
18 823 JOHDATUS SIGNAALINKÄSITTELYYN Jos esim. näytteitä otetaan taajuudella Hz, signaali on määritelty ajanhetkillä s, 2 s, 3 s,... Esimerkiksi CD-soittimen signaali on 6-bittinen, eli se voi saada 26 erilaista arvoa. Näytteenottotaajuus on 44 Hz, jolloin T = s s. Matemaattisen käsittelyn helpottamiseksi lukujonoja käytetään usein diskreettiaikaisen signaalin mallina. Toisin kuin reaalimaailman signaali, lukujono on äärettömän pitkä, mutta tämä ei ole mallinnuksen kannalta ongelma. 2. Usein tarvittavia signaaleita Yksikkönäyte (unit sample) eli impulssi δ(n) määritellään seuraavasti: δ(n) = {, kun n =,, kun n..2 Yksikkönäyte Matlab: delta = [zeros(,7),,zeros(,7)]; Yksikköaskel (unit step) u(n) määritellään seuraavasti: u(n) = {, kun n,, kun n<..2 Yksikköaskel Matlab: u = [zeros(,7),ones(,8)]; Nämä jonot voidaan esittää toistensa avulla seuraavasti: δ(n) = u(n) u(n )
19 2. DISKREETTIAIKAISET DIGITAALISET SIGNAALIT ja u(n) = n k= δ(k). Mikä tahansa jono voidaan esittää siirrettyjen ja painotettujen yksikkönäytteiden avulla seuraavasti: x(n) = x(k)δ(n k). k= Kyseisen muodon nimi on konvoluutio ja siitä käytetään merkintää x(n) δ(n). Ramppisignaali (ramp signal) määritellään seuraavasti: { n, kun n, r(n) =nu(n) =, kun n<. 8 Ramppisignaali Matlab: r = [zeros(,7),:7]; Eksponenttijono määritellään seuraavasti: x(n) =Aα n. 8 Eksponenttijono Matlab: x = -7:7; e =.5.^x; Erikoistapaus eksponenttijonosta saadaan kun α on ei-reaalinen. Silloin x(n) voidaan esittää muodossa (yksinkertaisuuden vuoksi A = ) x(n) =α n = α n e iωn = α n cos(ωn) + α n i sin(ωn).
20 2 823 JOHDATUS SIGNAALINKÄSITTELYYN Viimeisimmästä muodosta nähdään, että eksponenttijono on näin ollen kosinijonon ja sinijonon summa. Tällä on merkitystä jatkossa, koska eksponenttijonojen algebralliset operaatiot (esim. kertolasku) ovat yksinkertaisia, mutta sini- ja kosinijonojen operaatiot ovat usein hankalia. Diskreettiaikainen signaali on jaksollinen, jos on olemassa sellainen N N, että x(n) =x(n + N), kaikilla indeksin n arvoilla. Lukua N sanotaan jakson pituudeksi. Esimerkiksi kompleksinen eksponenttijono on jaksollinen, jos α =. Samoin sinijono x(n) =sin(ωn) on jaksollinen. Molempien jakson pituus on N = 2π ω. Jonot ovat tosin määritelmän tiukassa mielessä jaksollisia vain jos näin saatu N on kokonaisluku. Jos S on kaikkien signaalien joukko, niin kuvausta F : S S sanotaan diskreetiksi järjestelmäksi tai suotimeksi. Kuvauksen F argumenttia kutsutaan sisäänmenojonoksi tai herätteeksi ja sen palauttamaa jonoa kutsutaan ulostulojonoksi tai vasteeksi. Esimerkiksi yhtälö y(n) = x(n ) määrittelee suotimen, joka viivästää signaalia askelta. Toinen esimerkki laskee keskiarvon: tai yleisemmin: y(n) = (x(n)+x(n )+x(n 2)+x(n 3)+x(n 4)) 5 y(n) = x(n k). 2K + k= Perusoperaatiot lukujonoille (signaaleille) on esitetty seuraavassa. Mukana ovat myös operaatioille lohkokaavioissa käytettävät symbolit. Yhteenlasku: z(n) =x(n)+y(n) 2K x(n) z(n) y(n) Kertolasku: z(n) =x(n) y(n) x(n) z(n) y(n)
21 2. DISKREETTIAIKAISET DIGITAALISET SIGNAALIT 3 Vakiolla kertominen: z(n) =ax(n) x(n) a z(n) Viive: z(n) =x(n d) x(n) z d z(n) Edellä olleita operaatioita voidaan yhdistellä ja muodostaa näin monimutkaisempia järjestelmiä. Yksi esimerkki on järjestelmä jonka lohkokaavio on alla. y(n) = 3 h(k)x(n k), k= x(n) z z z h() h() h(2) h(3) y(n) Harjoitustehtäviä 2.. (a) Mikä differenssiyhtälö on herätteen x(n) ja vasteen y(n) välillä kun järjestelmän lohkokaavio on alla olevan kuvan mukainen? x(n) z z z z (b) (Matlab) Lataa Matlabin äänitiedosto gong.mat muuttujaan y komennolla load gong. Tutustu konvoluution toteuttavaan komentoon (help conv) ja laske signaalin y ja (a)-kohdan kertoimista muodostetun vektorin konvoluutio. Sijoita tulos muuttujaan z. Kuuntele alkuperäinen signaali ja vertaa sitä suodatustulokseen. Kertoimet oli valittu siten, että konvoluutiossa osa taajuuksista poistuu. Arvioi mitkä taajuudet poistettiin? y(n)
22 4 823 JOHDATUS SIGNAALINKÄSITTELYYN
23 Luku 3 Diskreettien järjestelmien ominaisuuksia Edellä olleen määritelmän mukaan kaikki operaatiot signaalien joukolla ovat suotimia. Suotimia on siis erittäin paljon, ja suurin osa niistä on käytännön kannalta tarpeettomia. Seuraavassa käydään läpi ominaisuuksia, joita suotimilla voi olla. Näin suotimia voidaan luokitella käyttötarpeen mukaan. Muistittomuus: Järjestelmä on muistiton, jos sen ulostulo y(n) riippuu vain samanaikaisesti sisääntulevasta näytteestä x(n). Esimerkiksi y(n) =e x(n) ja y(n) =x(n) 2 ovat muistittomia, mutta y(n) =x(n ) ei ole. Lineaarisuus: Järjestelmä F( ) on lineaarinen, jos F[ax (n)+bx 2 (n)] = af[x (n)] + bf[x 2 (n)], kaikilla signaaleilla x (n),x 2 (n) ja kaikilla kertoimilla a, b. Sanallisesti sama asia voidaan ilmaista esimerkiksi seuraavasti: Vasteiden summa on summan vaste. Vaste herätteellä ax(n) saadaan kertomalla herätteen x(n) vaste F[x(n)] skalaarilla a. Toisaalta ehto tarkoittaa myös, että: Skalaarilla kertominen voidaan suorittaa ennen tai jälkeen suodatuksen. Yhteenlasku voidaan suorittaa ennen tai jälkeen suodatuksen. Tarkastellaan järjestelmää F[x(n)] = 2K + 2K k= x(n k).
24 6 823 JOHDATUS SIGNAALINKÄSITTELYYN Olkoot nyt a ja b mitkä tahansa reaaliluvut (yleisemmin: skalaarit) ja x (n) sekä x 2 (n) mitkä tahansa kaksi lukujonoa. Tällöin = F[ax (n)+bx 2 (n)] 2K + 2K k= 2K (ax (n k)+bx 2 (n k)) = a x (n k)+b 2K + 2K + k= = af[x (n)] + bf[x 2 (n)]. Näin ollen järjestelmä on lineaarinen. Toisaalta esimerkiksi järjestelmä F[x(n)] = x(n) 2 2K k= x 2 (n k) ei ole lineaarinen. Tämä nähdään esimerkiksi seuraavasti: olkoon x (n) yksikköaskel (eli x (n) =u(n) =, kun n ja nolla muulloin) ja x 2 (n) nollasignaali. Asetetaan a = 2 sekä b =. Valitaan vielä n =, jolloin F[ax (n)+bx 2 (n)] = F[2 ] =2 2 = 4, ja af[x (n)] + bf[x 2 (n)] = 2 2 = 2. Koska nämä kaksi lauseketta saavat erisuuret arvot, järjestelmä ei ole lineaarinen. Siirtoinvarianssi: Merkitään y(n) =F[x(n)]. Järjestelmä F( ) on tällöin siirtoinvariantti (shift-invariant) eli aikainvariantti (time-invariant), jos y(n k) =F[x(n k)] aina, kun k Z. Tämä tarkoittaa toisin sanoen sitä, ettei järjestelmä ole riippuvainen ajasta, vaan siirto voidaan tehdä suodatusta ennen tai sen jälkeen. Esimerkki: Tarkastellaan järjestelmää F[x(n)] = nx(n). Olkoon x(n) yksikkönäyte (eli x(n) =δ(n) =, kun n =, ja nolla muulloin). Määritellään x (n) =x(n ). Olkoon sitten y(n) järjestelmän vaste herätteellä x(n), eli y(n) = F[x(n)] = nx(n). Nyt siis y(n ) =(n )x(n ). Toisaalta F[x(n )] = F[x (n)] = nx (n) =nx(n ). Selvästikään jokaisella indeksillä n ei päde y(n ) =F[x(n )], sillä jos n =, niin y(n ) =(n )x(n ) = = = = nx(n ) =F[x(n )]. Siten järjestelmä F ei ole siirtoinvariantti. Toisena esimerkkinä olkoon järjestelmä F[x(n)] = e x(n). Osoitetaan, että F on siirtoinvariantti. Olkoon y(n) =F[x(n)] jokaisella indeksillä n Z ja olkoon k Z mielivaltainen. Määritellään lisäksi x (n) =x(n k). Tällöin y(n k) =e x(n k), joka on sama kuin F[x(n k)] = F[x (n)] = e x(n) = e x(n k). Näin ollen F siis on siirtoinvariantti. Siirtoinvarianssia voidaan tarkastella myös seuraavan kaavion avulla:
25 3. DISKREETTIEN JÄRJESTELMIEN OMINAISUUKSIA 7 x(n) siirto x(n k) suodatus suodatus F[x(n)] siirto? Jos signaali y(n) on sama molempia kaavion reittejä pitkin, on kyseinen järjestelmä siirtoinvariantti. Jos sen sijaan saadaan eri signaalit, niin järjestelmä ei ole siirtoinvariantti. Kausaalisuus: Järjestelmän F( ) sanotaan olevan kausaalinen, jos vaste y(n) riippuu pelkästään herätteen arvoista x(n),x(n ),x(n 2),... eikä arvoista x(n + ),x(n + 2),x(n + 3),...Kausaalisuus siis tarkoittaa sitä, ettei järjestelmän tarvitse tietää etukäteen, mitä arvoja heräte tulee jatkossa saamaan. Esimerkki: F[x(n)] = (x(n)+x(n )+x(n 2)+x(n 3)+x(n 4)). 5 Vasteen laskemiseen kohdassa n tarvitaan selvästi ainoastaan herätteen arvoja x(n), x(n ),x(n 2),x(n 3) ja x(n 4), joten järjestelmä on kausaalinen. Jos sen sijaan tarkasteltavana on järjestelmä F[x(n)] = (x(n + 2)+x(n + )+x(n)+x(n )+x(n 2)), 5 niin vasteen laskemiseen kohdassa n tarvitaan herätteen arvoja x(n + 2) ja x(n + ), joten järjestelmä ei ole kausaalinen. Stabiilisuus: Lukujonon x(n) sanotaan olevan rajoitettu, jos on olemassa sellainen yläraja M R, että x(n) M, jokaisella indeksillä n. Diskreetti järjestelmä F( ) on stabiili, jos jokainen rajoitettu heräte aiheuttaa rajoitetun ulostulon. Toisin sanoen missä y(n) =F[x(n)]. Esimerkki: Tarkastellaan järjestelmää ( M R : n Z : x(n) M ) ( M 2 R : n Z : y(n) M 2 ), y(n) =F[x(n)] = (x(n)+x(n )+x(n 2)+x(n 3)+x(n 4)), 5
26 8 823 JOHDATUS SIGNAALINKÄSITTELYYN ja osoitetaan sen olevan stabiili. Oletetaan, että x(n) on rajoitettu. Silloin on olemassa sellainen reaaliluku M, että x(n) M jokaisella indeksillä n. Stabiilisuuden osoittamiseksi on näytettävä, että on olemassa sellainen M 2 R, että y(n) M 2 aina, kun n Z. Voidaan helposti todistaa, että viiden sisäänmenonäytteen keskiarvo on aina näytteistä suurimman ja pienimmän välillä. Siis M min x(k) y(n) max x(k) M. n 4 k n n 4 k n Näin ollen vaste y(n) on rajoitettu aina, kun n Z, joten systeemi F on stabiili. Sen sijaan järjestelmä y(n) =F[x(n)] = nx(n) on epästabiili, sillä esimerkiksi yksikköaskeljonolla u(n) (joka on rajoitettu) saadaan vasteeksi jono y(n) = joka ei selvästikään ole rajoitettu. {, kun n<, n, kun n, Myöskään järjestelmä y(n) =.y(n )+x(n) ei ole stabiili, sillä syötteellä u(n) vaste kasvaa rajatta. Seuraavissa kappaleissa nähdään, että tämän tyyppisten järjestelmien stabiilisuustarkastelu voidaan tehdä yksinkertaisesti tarkastelemalla järjestelmästä laskettavaa ns. napa-nollakuviota. Harjoitustehtäviä 3.. Osoita, ettei järjestelmä F[x(n)] = e x(n) ole lineaarinen Onko järjestelmä F[x(n)] = toiseksi suurin luvuista x(n),x(n ) ja x(n 2) lineaarinen? Miksi / miksi ei? 3.3. Osoita, että järjestelmä F[x(n)] = x(n)+ 2 x(n )+ x(n 2) 4 on siirtoinvariantti Osoita, että järjestelmä F[x(n)] = n 2 x(n) ei ole siirtoinvariantti.
27 3. DISKREETTIEN JÄRJESTELMIEN OMINAISUUKSIA Osoita, että järjestelmä ei ole stabiili Osoita, että järjestelmä on stabiili Osoita, että järjestelmä on stabiili. F[x(n)] = x(n) F[x(n)] = sin(x(n)) y(n) = x(n).9y(n ) 3.8. Tekstissä mainitaan, ettei järjestelmä y(n) =.y(n ) + x(n) ole stabiili koska syötteellä u(n) vaste kasvaa rajatta. Kokeile tätä Matlabilla seuraavasti. Luo ensin pätkä signaalista u(n) kappaleen 2. esimerkin mukaisesti (tee kuitenkin ykkösten osuudesta hieman pidempi). Tutustu komentoon filter ja suodata u(n) mainitulla järjestelmällä. Tulosta vaste ruudulle komennolla stem.
28 2 823 JOHDATUS SIGNAALINKÄSITTELYYN
29 Luku 4 Lineaariset siirtoinvariantit (LTI) järjestelmät 4. Konvoluutio Tämä kurssi keskittyy lineaarisiin siirtoinvariantteihin (Linear Time-Invariant; LTI) järjestelmiin. Tarkastellaan tärkeimpiä ominaisuuksia näille järjestelmille, jotka ovat siis lineaarisia sekä siirtoinvariantteja. Lineaarisuusominaisuus tarkoitti, että ) kertolasku voidaan suorittaa ennen suodatusta tai sen jälkeen. 2) yhteenlasku voidaan suorittaa ennen suodatusta tai sen jälkeen. Siirtoinvarianssi puolestaan tarkoitti, että 3) siirto ajassa voidaan tehdä ennen suodatusta tai sen jälkeen. Siispä LTI-järjestelmän tapauksessa on yhdentekevää, suoritetaanko kertolasku, yhteenlasku tai siirto ajassa ennen suodatusta vai sen jälkeen. Olkoon F( ) lineaarinen siirtoinvariantti järjestelmä. Silloin sen impulssivaste (eli järjestelmän vaste impulssille) on F[δ(n)] ja siitä käytetään merkintää h(n) =F[δ(n)]. Jos järjestelmä F( ) on lineaarinen ja aikainvariantti, niin silloin sen vaste herätteellä x(n) = k= x(k)δ(n k) voidaan esittää muodossa y(n) = F[ x(k)δ(n k)] = = = k= k= k= k= F[x(k)δ(n k)] x(k)f[δ(n k)] x(k)h(n k) (Lineaarisuus) (Lineaarisuus) (Siirtoinvarianssi)
30 JOHDATUS SIGNAALINKÄSITTELYYN Tällaisen järjestelmän vaste mille tahansa herätteelle voidaan siis esittää yksikäsitteisesti siirrettyjen yksikkönäytteiden δ(n k) vasteiden h(n k) =F[δ(n k)] avulla. Kyseistä esitysmuotoa kutsutaan jonojen x(n) ja h(n) konvoluutioksi tai konvoluutiosummaksi, ja konvoluution käsitteeseen tutustutaan seuraavassa tarkemmin. Tarkastellaan kahta lukujonoa x(n) ja h(n). Lukujonojen x(n) ja h(n) konvoluutiosta käytetään merkintää x(n) h(n) ja se määritellään seuraavasti: y(n) =x(n) h(n) = x(k)h(n k). k= Seuraavassa kappaleessa osoitetaan, että konvoluutio on kommutatiivinen. Näin ollen yllä olevan määritelmän sijasta voidaan käyttää seuraavaa yhtäpitävää muotoa: y(n) =h(n) x(n) = h(k)x(n k). k= Jälkimmäinen muoto on useimmissa tapauksissa havainnollisempi. Esimerkki: Olkoon lineaarisen systeemin F( ) impulssivaste 2, kun n =, h(n) =, kun n =, 2, muulloin. Määritetään vaste y(n) =F[x(n)], kun {, kun n =,, 2, x(n) =. muulloin. Nyt y(n) =h(n) x(n) = k= h(k)x(n k). Koska h(k) vain, kun k =,, 2, niin y(n) saa muodon Siis y(n) = 2 h(k)x(n k) k= = h()x(n)+ h()x(n )+ h(2)x(n 2) = x(n)+2x(n )+x(n 2). y() = x() =, y() = x()+2x() = + 2 = 3, y(2) = x(2)+2x()+x() = = 4, y(3) = 2x(2)+x() =2 + = 3 ja y(4) = x(2) =.
31 4. LINEAARISET SIIRTOINVARIANTIT (LTI) JÄRJESTELMÄT 23 Muulloin y(n) =. Alla ensimmäisessä kuvassa on signaali x(n), toisessa signaali h(n) ja kolmannessa signaali y(n) x(n) h(n) y(n) Konvoluution ominaisuuksia Seuraavassa esitetään lyhyesti tärkeimpiä konvoluution ja siten myös LTI-järjestelmien ominaisuuksia. Kommutatiivisuus (vaihdantalaki): x(n) h(n) =h(n) x(n). Distributiivisuus (osittelulaki): x(n) (h (n)+h 2 (n)) = x(n) h (n)+x(n) h 2 (n). Kaskadi: Jos sellaiset järjestelmät F ( ) ja F 2 ( ), joiden impulssivasteet ovat h (n) ja h 2 (n), kytketään sarjaan, niin kokonaisuuden eli järjestelmän F (F 2 ( )) impulssivaste on h (n) h 2 (n). Kausaalisuus: Järjestelmä on kausaalinen tarkalleen silloin, kun sen impulssivaste h(n) toteuttaa ehdon: n< h(n) =. Stabiilisuus: Järjestelmä on stabiili tarkalleen silloin, kun sen impulssivaste h(n) toteuttaa ehdon h(k) <, k= eli jonon h(k) kaikkien alkioiden itseisarvojen summa on äärellinen.
32 JOHDATUS SIGNAALINKÄSITTELYYN Järjestelmää F (F 2 ( )) sanotaan siis järjestelmien F ( ) ja F 2 ( ) kaskadiksi (cascade) ja siitä käytetään merkintää F F 2 ( ) =F (F 2 ( )). Osoitetaan seuraavassa muutamia edellisistä kohdista. Vaihdantalaki (x(n) h(n) =h(n) x(n)): x(n) h(n) = k=n t = = k= t= t= x(k)h(n k) x(n t)h(t) h(t)x(n t) = h(n) x(n). Stabiilisuusehto: Oletetaan, että järjestelmä, jonka impulssivaste on h(n), on stabiili. Silloin esimerkiksi rajoitetulla herätteellä {, kun h( n) < x(n) =sgn[h( n)] =, kun h( n) saadaan rajoitettu vaste, joten erityisesti F[x(n)] on äärellinen. Tarkastellaan nyt n= kyseistä lauseketta lähemmin. F[x(n)] = h(k)x( k) n= = = = = k= k= k= k= k= h(k)x( k) h(k)sgn[h( ( k))] h(k)sgn[h(k)] h(k). Näin ollen viimeinen summa on äärellinen. Oletetaan seuraavaksi, että h(k) = M <, k=
33 4. LINEAARISET SIIRTOINVARIANTIT (LTI) JÄRJESTELMÄT 25 ja olkoon x(n) mielivaltaisesti valittu rajoitettu lukujono (merkitään x(n) M 2 ). Silloin järjestelmän vasteen itseisarvo herätteellä x(n) on h(n) x(n) = h(k)x(n k) k= h(k)x(n k) ey = k= k= k= = M 2 h(k) x(n k) h(k) M 2 k= = M 2 M. h(k) Näin ollen jokainen rajoitettu heräte tuottaa kyseisellä järjestelmällä rajoitetun vasteen, ja järjestelmä on stabiili. Konvoluution avulla on tapana esittää lineaarisia järjestelmiä. Konvoluutio käsittelee sisääntulevan signaalin x(n) lukujonon h(n) kertoimien määrittämällä tavalla. Lineaariset järjestelmät jaetaan kahteen luokkaan impulssivasteen mukaan. FIR-suodin: Niin sanotun FIR-suotimen (finite impulse response) impulssivaste on äärellisen mittainen (eli tietyn rajan jälkeen impulssivaste on aina nolla). Alla oleva kuva esittää Matlabilla suunnitellun FIR-suotimen impulssivastetta. Konvoluutio kyseisen impulssivasteen kanssa poistaa signaalista tiettyä rajataajuutta suuremmat taajuudet. Impulssivasteen pituus on nyt 3. Kaikki muut impulssivasteen arvot ajatellaan nolliksi Kun lasketaan vastetta hetkellä n, kerrotaan herätteen x uusin näyte x(n) impulssivasteen nollannella termillä h(), toiseksi uusin näyte x(n ) ensimmäisellä termillä h(), näyte x(n 2) termillä h(2), jne. Lopuksi näin saadut tulot lasketaan yhteen. Kaavana tämä ilmaistaan muodossa 3 y(n) = h(k)x(n k). k= Tentissä tyypillinen vastaus on, että impulssivaste on äärellinen. Tämä ei riitä, vaan pitää sanoa sen olevan äärellisen mittainen.
34 JOHDATUS SIGNAALINKÄSITTELYYN IIR-suodin: Niin sanotun IIR-suotimen (infinite impulse response) impulssivaste on äärettömän pitkä (eli ei ole rajaa, jonka jälkeen impulssivaste olisi aina nolla). Esimerkiksi impulssivaste: h(n) =u(n)(.9) n. Kuvassa on vasteen 32 ensimmäistä termiä. Impulssivasteessa on kuitenkin äärettömän paljon nollasta poikkeavia arvoja IIR-suotimia saadaan yleensä differenssiyhtälöiden avulla. IIR-suodatin on operaatio, joka toteuttaa seuraavan differenssiyhtälön ulostulojonon y(n) ja sisäänmenojonon x(n) välillä: K M y(n) = a k x(n k)+ b m y(n m). k= Suodin määritellään kertoimien a k,k =,,...,K ja b m,m =,2,...,M avulla. Seuraavassa on tämä differenssiyhtälö vielä kaaviomuodossa. m= x(n) y(n) a z z x(n ) z a b z y(n ) x(n 2) a 2 b 2 y(n 2) z z x(n K+) z a K b M z y(n M+) x(n K) a K b M y(n M) Esimerkiksi aiemmin ollut impulssivaste h(n) =u(n)(.9) n saadaan differenssiyhtälöstä y(n) =.9y(n )+x(n),
35 4. LINEAARISET SIIRTOINVARIANTIT (LTI) JÄRJESTELMÄT 27 kun herätteenä on impulssi δ(n). Kuva järjestelmästä on alla. x(n) y(n) z.9 y(n ) Esimerkki: Lasketaan differenssiyhtälön y(n) =.9y(n )+x(n) määräämän systeemin impulssivaste. Olkoon siis heräte x(n) yksikkönäyte. Tällaisessa tehtävässä oletetaan, että y(n) =, kun n<eli että vaste on kausaalinen. Aletaan laskea vastetta indeksistä n = alkaen: y() =.9 y( ) + x() =. } {{ } }{{} = = Seuraavaksi asetetaan indeksiksi n =, sitten n = 2 ja niin edelleen: y() =.9 y( ) } {{ } = y(2) =.9 y(2 ) } {{ } =.9 + x() =.9 }{{} = + x(2) }{{} = =(.9) 2 y(3) =.9 y(3 ) + x(3) =(.9) 3 } {{ } }{{} =(.9) 2 = y(4) =.9 y(4 ) + x(4) =(.9) 4 } {{ } }{{} =(.9) 3 = Tässä vaiheessa havaitaan 2, että vasteen yleinen muoto on eli. y(n) =(.9) n, kun n y(n) =u(n)(.9) n, joka on tietenkin sama kuin edellisen esimerkin h(n). 2 Haluttaessa perustella täsmällisesti lausekkeen y(n) yleinen muoto on käytettävä matemaattista induktiota luvun n suhteen: väitteenä on y(n) =(.9) n. Induktion perusaskel (y() =.9) on voimassa. Olkoon n. Tehdään induktio-oletus: y(n) =(.9) n. Induktioväite y(n + ) =(.9) n+ nähdään seuraavasti: y(n + ) =(.9)y(n) +x(n) =(.9) (.9) n + =(.9) n+. Induktioperiaatteen nojalla on y(n) =(.9) n aina, kun n. Lisäksi tapaus n = on jo käsitelty, joten n N : y(n) =(.9) n.
36 JOHDATUS SIGNAALINKÄSITTELYYN Harjoitustehtäviä 4.. Määritellään signaali x(n) ja impulssivaste h(n) seuraavasti: x(n) = δ(n)+2δ(n ) δ(n 3) h(n) = 2δ(n + )+2δ(n ) Piirrä signaalit x(n) ja h(n). Laske signaali h(n) x(n) ja piirrä myös se (kynällä ja paperilla) (Matlab) Olkoot jonot x(n) ja h(n) kuten edellä. Laske konvoluutiot h(n) x(n) sekä h(n) h(n) x(n) Matlabilla ja tulosta ne ruudulle (komentoja: conv, stem) (a) Laske konvoluutio h(n) x(n), missä h(n) = ( ) n u(n), 3 x(n) = u(n ). Vihje: tarvitset geometrisen sarjan summakaavaa. (b) Onko impulssivasteen h(n) määräämä järjestelmä kausaalinen? Entä stabiili? 4.4. (a) Mitä differenssiyhtälöä alla oleva järjestelmä kuvaa? x(n) y(n) z.2 z z.5.6 z.8 (b) Piirrä lohkokaavio järjestelmästä.3 y(n) =x(n)+ 2 x(n ) 4 x(n 2)+ 6 y(n )+ y(n 2) LTI-järjestelmän F[x(n)] impulssivaste on 2, kun n =, h(n) =, kun n =, 2, muulloin. Mikä on kaskadin F Fimpulssivaste? 4.6. LTI-järjestelmän herätteen x(n) ja vasteen y(n) välillä on voimassa yhtälö Määritä järjestelmän impulssivaste. y(n) =.75y(n )+.5x(n)+.5x(n ).
37 4. LINEAARISET SIIRTOINVARIANTIT (LTI) JÄRJESTELMÄT Merkitään LTI-järjestelmän vastetta yksikköaskeleelle seuraavasti: z(n) =F[u(n)]. Määritä impulssivaste h(n), kun askelvaste (step response) z(n) tiedetään (Matlab) Matlab suodattaa vektorissa x olevan signaalin komennolla y=filter(a,b,x); missä vektori a sisältää herätteen kertoimet (a,a,...,a K ) ja vektori b sisältää vasteen aikaisemmin laskettujen termien kertoimet (, b,b 2,...,b M ). Huomaa, että ensimmäisen kertoimen tulee olla. Yllä olevilla kertoimilla tuleva differenssiyhtälö on K M y(n) = a k x(n k) b m y(n m). k= (Huomaa miinusmerkki jälkimmäisen summan edessä. Matlabissa signaalin y kertoimet ovat monisteessa olevien kertoimien vastalukuja.) (a) Muodosta impulssisignaali δ(n) seuraavasti: delta=[,zeros(,27)]; Suodata tämä suotimella, jonka differenssiyhtälö on m= y(n) =.9y(n )+x(n) ja tulosta tulossignaali ruudulle. (b) Suodata impulssi myös tehtävän 4.4 a-kohdan järjestelmällä ja tulosta tulossignaali ruudulle. (c) Suodata impulssi järjestelmällä y(n) =x(n)+.5x(n )+.25x(n 2)+.5y(n )+.6y(n 2) ja tulosta tulossignaali ruudulle. Yksi edellämainituista järjestelmistä ei ole stabiili. Osaatko sanoa impulssivasteiden perusteella mikä? 4.9. (Matlab) Yritä saada edellisessä tehtävässä saamasi impulssivasteet Matlabin valmiilla impz-komennolla. Parametreina annetaan vektorit a ja b. 3 Näennäisestä esoteerisuudestaan huolimatta tällä lauseella on joskus käyttöä. Generoimalla herätteeksi yksikköaskel saadaan vastetta tarkastelemalla selville myös impulssivaste. Yksikköaskel on lisäksi usein helpompi generoida kuin impulssi.
38 3 823 JOHDATUS SIGNAALINKÄSITTELYYN
39 Luku 5 Fourier-muunnos Fourier-muunnosta käytetään yleisesti signaalin sisältämien taajuuksien analysointiin. Fourier-muunnos voidaan tehdä jatkuvalle tai diskreetille signaalille. Riippuen signaalin jaksollisuudesta tuloksena on äärellinen, numeroituvasti ääretön tai ylinumeroituvasti ääretön määrä muunnoskertoimia, jotka kuvaavat signaalin sisältämiä taajuuksia. Alla oleva taulukko esittää neljää eri muunnostyyppiä. Muunnettavan signaalin tyyppi Ei-jaksollinen Jaksollinen Jatkuva-aikainen Tuloksena on ei-jaksollinen jatkuva-aikainen signaali. Käytetään nimitystä Fourier-muunnos. (jatkuva jatkuva) Tuloksena on ei-jaksollinen diskreettiaikainen signaali. Käytetään nimitystä Fourier-sarja. (jatkuva diskreetti) Diskreettiaikainen Tuloksena on jaksollinen jatkuva-aikainen signaali. Käytetään nimitystä diskreettiaikainen Fourier-muunnos (DTFT). (diskreetti jatkuva) Tuloksena on jaksollinen diskreettiaikainen signaali. Käytetään nimitystä diskreetti Fourier-muunnos (DFT). (diskreetti diskreetti) Seuraavassa tullaan tarvitsemaan Fourier-analyysin perinteisesti käyttämää eksponenttifunktioiden joukkoa, ja signaalien esitystä niiden avulla. Kompleksinen eksponenttifunktio on muotoa f(t) =e ikt, missä k on kokonaislukukerroin ja i =. Eulerin kaavan mukaan e ikt = cos(kt)+i sin(kt). Näin ollen kompleksinen eksponenttifunktio koostuu sinin ja kosinin värähtelyistä, missä k määrää taajuuden. Kumpi tahansa muoto on käyttökelpoinen, mutta käytännössä eksponettifunktion kanssa on paljon helpompi työskennellä (esim. kahden kompleksisen eksponettifunktion tulo: e ikt e imt on helpompi sieventää kuin (cos(kt)+i sin(kt))(cos(mt)+ i sin(mt))). Fourier-analyysin ideana on selvittää voidaanko tietty signaali (funktio, lukujono) esittää kompleksisten eksponenttifunktioiden painotettuna summana (eli lineaarikombinaationa). Jos tämä on mahdollista, täytyy vielä ratkaista kunkin eksponenttifunktion painokerroin. Tästä painokertoimesta voidaan sitten päätellä kuinka paljon signaalissa on kyseistä taajuutta. Lisäksi siitä käy ilmi missä vaiheessa kyseinen taajuuskomponentti on.
40 JOHDATUS SIGNAALINKÄSITTELYYN Digitaalisen signaalinkäsittelyn sovelluksissa käytetään pääasiassa diskreettiä Fouriermuunnosta signaalin taajuussisältöä analysoitaessa. Syynä on se, että laskenta on tällöin puettavissa matriisikertolaskun muotoon ja laskut ovat näin ollen äärellisiä. Muut muunnostyypit ovat teoreettisia työkaluja joita käytetään esimerkiksi suodinsuunnittelussa. Näiden laskukaavat sisältävät äärettömiä summia sekä integraaleja, jotka ovat tietokoneella laskettaessa hankalia käsiteltäviä. Näin ollen ne soveltuvat huonommin taajuuksien automaattiseen analyysiin. Sen sijaan ne ovat korvaamaton työkalu suunnitteluvaiheessa. Tämän kurssin tentin kannalta opeteltavaa asiaa on vain diskreetti Fourier-muunnos ja sen toteuttava nopea algoritmi FFT. Muun muassa ikkunamenetelmän yhteydessä tarvitaan kuitenkin diskreettiaikaista Fourier-muunnosta, joten siihenkin on syytä tutustua lyhyesti. Täydellisyyden vuoksi mainitaan myös jatkuva-aikaisten signaalien muunnokset, vaikka niitä tarvitaankin varsinaisesti vasta myöhemmillä kursseilla (jatkuvia signaaleja käsiteltäessä, esimerkiksi tietoliikennetekniikassa). 5. Fourier-muunnos (ei-jaksollinen jatkuva-aikainen signaali) Ensimmäinen muunnostyyppi muuntaa jatkuva-aikaisen signaalin jatkuva-aikaiseksi signaaliksi. Jos muunnettavana on ei-jaksollinen jatkuva-aikainen signaali x(t) (t R), määritellään sen Fourier-muunnos integraalina X(e iω )= x(t)e iωt dt. Tuloksena saadaan muuttujan ω R funktio. Fourier-muunnoksesta päästään takaisin alkuperäiseen signaaliin käänteisellä Fourier-muunnoksella: x(t) = 2π X(e iω )e iωt dω. Merkintä X(e iω ) saattaa näyttää hankalalta, mutta kuvastaa myöhemmin tarkasteltavaa Fourier-muunnoksen ja z-muunnoksen yhteyttä. Funktio X(e iω ) on nyt siis reaalimuuttujan ω funktio. Periaatteessa voitaisiin siis käyttää merkintää X(ω), mutta se saattaisi aiheuttaa sekaannuksia jatkossa. Esimerkiksi signaalin {, kun t x(t) =, muulloin Fourier-muunnos on X(e iω )= { 2sin(ω) ω kun ω 2, kun ω =. Yleisesti Fourier-muunnos on kompleksiarvoinen funktio, mutta tässä esimerkissä tulosfunktio oli reaalinen. Kuvaajat ovat alla olevissa kuvissa; ylemmässä on x(t) ja alemmassa Taajuusmuuttujasta on tapana käyttää kreikkalaista omega-kirjainta ω. Jos kreikkalaiset aakkoset hämäävät, tilalle voi ajatella vaikkapa muuttujan u tai w. Muuttujasta ω käytetään nimeä kulmataajuus.
41 5. FOURIER-MUUNNOS 33 X(e iω ). Sattumoisin Fourier-muunnos on reaalinen signaali. Näin käy aina kun muunnettava signaali on symmetrinen y-akselin suhteen. Useimmiten lopputuloksessa on myös kompleksiosa π 5π 2π 9π 6π 3π 3π 6π 9π 2π 5π 8π 5.2 Fourier-sarja (jaksollinen jatkuva-aikainen signaali) Toinen muunnostyyppi muuntaa jatkuva-aikaisen signaalin diskreettiaikaiseksi. Jaksollisen signaalin tapauksessahan ei voida käyttää edellisen kappaleen Fourier-muunnosta, koska jaksollisen signaalin tapauksessa Fourier-muunnoksen määräävä integraali ei suppene 2. Jaksollisen signaalin tapauksessa informaation määrä on siinä mielessä pienempi, että yksi jakso signaalista määrää sen käyttäytymisen täysin. Osoittautuukin, että jaksollisen signaalin esittämiseen riittää diskreetti määrä taajuuksia. Tuloksena on siis kokonaislukuarvoilla määritelty lukujono. Olkoon x(t) 2π-jaksollinen jatkuva-aikainen signaali (siis x(t) =x(t+2π)). Sen Fouriersarja on diskreettiaikainen signaali X(n) = 2π π π x(t)e int dt, missä n Z. Jos tiedetään Fourier-sarja X(n), päästään takaisin alkuperäiseen signaaliin kaavalla x(t) = n= X(n)e int. Tarkastellaan esimerkkiä jatkuvan jaksollisen signaalin Fourier-sarjaesityksestä. Määritellään funktio x(t) seuraavasti: {, kun π 4 x(t) = t π, 4, muissa välin [ π, π] pisteissä. 2 Ainoa poikkeus on nollasignaali x(t).
42 JOHDATUS SIGNAALINKÄSITTELYYN Funktio x(t) on nimeltään kanttiaalto. Välin [ π, π] ulkopuolella f on periodinen: x(t) = x(t + 2π). Tämän funktion Fourier-sarjaesitys on sin(nπ/4), kun n, 4 nπ/4 X(n) ={, kun n =. 4 Kuvaajat ovat alla; ensin on signaalin x(t) ja sitten sen Fourier-sarjakehitelmän kertoimien kuvaaja. Tässäkin tapauksessa tulos on reaalinen, koska muunnettava signaali on symmetrinen y-akselin suhteen π 3π 2π π π 2π 3π 4π Kukin kerroin ilmoittaa nyt kuinka paljon alkuperäisessä signaalissa on kutakin taajuutta: termi X(n) ilmaisee millä kertoimella signaali e int on mukana muodostamassa signaalia x(t). Toisin sanoen, kuinka alkuperäinen signaali voidaan esittää eritaajuisten sinien ja kosinien summana. Funktion jako eri taajuuksiin onkin Fourier-analyysin tärkeimpiä käyttökohteita. Fourier-sarjaa voidaan käyttää hyväksi mm. generoitaessa sinien ja kosinien avulla monimutkaisempia aaltomuotoja. Sähköteknisissä laitteissa eritaajuuksiset siniaallot ovat generoitavissa melko luontevasti, mutta esimerkiksi edellämainittu jaksollinen kanttiaalto täytyy muodostaa sinien ja kosinien avulla. Tämä onnistuu käyttäen pientä osaa edellä lasketun Fourier-sarjan kertoimista. Seuraavassa vasemmalla ylhäällä oleva kuva esittää funktiota x(t) ja sen Fourier-sarjaa, jossa on käytetty kertoimia X( 5),X( 4),...,X(5) (kaikkiaan kpl). Näin saadaan approksimaatio kanttiaallolle: ^x(t) =X( 5)e 5it + X( 4)e 4it + X( 3)e 3it + + X(4)e 4it + X(5)e 5it. Valitsemalla kertoimet symmetrisesti nollan molemmin puolin, supistuvat kaikki lausekkeessa olevat imaginaariosat pois, ja lopputulos on reaalinen funktio. Yhdentoista kertoimen avulla saatava approksimaatio ei ole vielä kovin tarkka, mutta kertoimia lisäämällä saadaan funktio lähemmäs todellista kanttiaaltoa. Yläoikealla on käytetty 2 kerrointa, alhaalla vasemmalla 4 kerrointa ja vihdoin alaoikealla kerrointa. Kuvista havaitaan, että approksimaatio muuttuu tarkemmaksi kun kertoimien määrää lisätään. Pystyakselille jää kuitenkin aina noin kymmenen prosentin heitto reunan molemmille puolille. On havaittu, ettei tätä maksimipoikkeamaa voida pienentää kertoimien
43 5. FOURIER-MUUNNOS 35 määrää kasvattamalla. Kertoimien lisääminen kyllä kaventaa korkeinta huippua, mutta sen korkeus pysyy suunnilleen vakiona. Tästä Fourier-sarjalle tyypillisestä käyttäytymisestä käytetään nimeä Gibbsin ilmiö (engl. Gibbs phenomenon) Diskreettiaikainen Fourier-muunnos (diskreettiaikainen ei-jaksollinen signaali) Myös lukujonoille voidaan määrittää Fourier-sarjan kertoimet. Diskreettiaikaisen ei-jaksollisen signaalin x(n) Fourier-muunnos on signaali X(e iω )= n= x(n)e iωn. Tuloksena on siis reaalimuuttujan ω funktio X. Jos tämä funktio tiedetään, päästään takaisin alkuperäiseen signaaliin kaavalla x(n) = π X(e iω )e iωn dω. 2π π Kaavoista havaitaan, että itse asiassa tämä muunnos määritellään melkein samoilla kaavoilla kuin edellisen kappaleen Fourier-sarja.
44 JOHDATUS SIGNAALINKÄSITTELYYN Esimerkki: Määrätään signaalin x(n) =.5 n u(n) Fourier-muunnos. Nyt X(e iω ) = = = = n= n= x(n)e iωn.5 n e iωn u(n).5 n e iωn n= (.5e iω ) n (Geom. sarja,.5e iω =.5 < ) n= =.5e iω. Alla ovat alkuperäisen signaalin ja sen Fourier-muunnoksen kuvaajat; ensimmäisessä kuvassa on alkuperäisen signaalin x(n) kuvaaja, toisessa sen Fourier-muunnoksen itseisarvon X(e iω ) kuvaaja ja viimeisessä on esitetty Fourier-muunnoksen vaihekulman kuvaaja kulmataajuuden ω funktiona π π π 2π.5.5 2π π π 2π Diskreettiaikainen Fourier-muunnos X(e iω ) ilmaisee millä kertoimella eri kompleksiset eksponenttifunktiot tulee ottaa mukaan muodostettaessa tarkasteltavan signaalin esitystä taajuuksien avulla. Jos halutaan tietää kuinka suurella kertoimella taajuus f Hertseinä on mukana annetussa lukujonossa, jaetaan f ensin näytteenottotaajuudella F s ja näin saatu normalisoitu taajuus f F s muunnetaan kulmataajuudeksi ω kertomalla luvulla 2π. Oletetaan esimerkiksi, että edellisen esimerkin signaali x(n) =.5 n u(n) on saatu aikaan järjestelmällä, jonka näytteenottotaajuus on 8 Hz. Nyt Hertsin taajuus on signaalissa mukana
45 5. FOURIER-MUUNNOS 37 kertoimella X(e i 2π f Fs )=X(e i 2π πi 8 )=X(e 4 )= =.9.65i..5e πi 4 Vastaavasti 2 Hertsin taajuus on signaalissa mukana kertoimella X(e i 2π f Fs )=X(e i 2π 2 πi 8 )=X(e 2 )= =.8.4i..5e πi 2 Koska tuhannen Hertsin kerroin on itseisarvoltaan.36 ja kahdentuhannen Hertsin kerroin.89, on signaalissa enemmän tuhannen Hertsin taajuutta kuin kahdentuhannen Hertsin taajuutta. Kaikkien signaalin sisältämien taajuuksien jakauma voidaan lukea yllä olevasta funktion X(e iω ) kuvaajasta. Nollataajuus on luonnollisesti nollan kohdalla ja signaalin sisältämä suurin taajuus (eli Nyquistin rajataajuus) on kulmataajuuden ω = 2π (.5F s )/F s = π kohdalla. 5.4 Diskreetti Fourier-muunnos (diskreettiaikainen jaksollinen signaali) Tämän kurssin kannalta tärkein mainituista neljästä muunnostyypistä on diskreetti Fouriermuunnos joka muuntaa diskreettiaikaisen jaksollisen signaalin diskreettiaikaiseksi jaksolliseksi signaaliksi. Muunnoksen lopputulos sisältää tiedon alkuperäisen signaalin sisältämistä taajuuksista, joita on äärellinen määrä. Jakson pituutta kasvatettaessa kohti ääretöntä on lopputuloksena diskreettiaikainen Fourier-muunnos, eli taajuusakseli muuttuu tällöin jatkuvaksi. Koska jaksollisesta signaalista tarvitsee tietää vain yksi jakso, voidaan koko operaatio esittää vektoreiden avulla. Tällöin itse operaatio on matriisikertolasku. Tähän muotoon palataan määritelmien jälkeen. Otetaan käyttöön muutama merkintä. Määritellään jono e k (n) =e 2πikn/N. Merkitään lisäksi w N = e 2πi/N, jolloin e k (n) =w kn N. On syytä huomata, että joskus kirjallisuudessa käytetään merkintää w N = e 2πi/N, jolloin tuloksissa saattaa merkki vaihtua silloin tällöin. Luku w N = e 2πi/N on nimeltään ykkösen N:s juuri (N th root of unity), koska korotettaessa se potenssiin N saadaan tulokseksi Toisaalta Eulerin kaavan mukaan w N N =(e 2πi/N ) N = e 2πi =. w N = e 2πi/N = cos(2π/n)+i sin(2π/n). Trigonometriasta tiedetään, että kyseinen lauseke sijaitsee kompleksitason yksikköympyrällä kulmassa 2π/N. Kulma on koko ympyrästä, ks. kuva. N
46 JOHDATUS SIGNAALINKÄSITTELYYN Im w 8 sin(2 π /8) 2π 8 Re cos(2 π /8) Diskreettiaikaisen jaksollisen signaalin x(n) (jakso N) Fourier-muunnos määritellään kaavalla N X(n) = x(k)w kn N. k= Signaalin X(n) käänteinen diskreetti Fourier-muunnos on x(n) = N N X(k)w kn N. k= Diskreetti Fourier-muunnos (DFT) ja käänteinen diskreetti Fourier-muunnos (IDFT) on mahdollista esittää myös matriisimuodossa. Tämä onkin yleensä kaikkein kätevin esitysmuoto. Olkoon x(n) muunnettava signaali, ja vektori x =(x(),x(),...,x(n )) T sen yksi jakso 3. Tällöin sen diskreetti Fourier-muunnos saadaan kertomalla vektori x matriisilla w N w N w N... w N w N w N w 2 N... w (N ) N w N w 2 N w 4 N... w 2(N ) N w N w (N ) N w 2(N ) N... w (N )2 N Esimerkiksi perusjaksolla N = 4 DFT saadaan laskettua kertomalla vektori matriisilla w 4 w 4 w 4 w 4 w 4 w 4 w 2 4 w 3 4 w 4 w 2 4 w 4 4 w 6 = i i 4. w 4 w 3 4 w 6 4 w 9 4 i i Matriisi on generoitavissa kompleksitason yksikköympyrän avulla. Tapauksessa N = 4 kaikki termit ovat luvun w 4 ei-positiivisia potensseja. Luku w 4 sijaitsee yksikköympyrällä kulmassa 2π, joka on neljäsosa koko ympyrästä. Negatiiviset potenssit saadaan kuten 4 positiivisetkin, paitsi että kiertosuunta vaihtuu. 3 Vektori x on pystyvektori. Transpoosia käytetään tilan säästämiseksi.
47 5. FOURIER-MUUNNOS 39 Im -3 w 4-2 w 4 w 4 Re - w 4 Esimerkki: Lasketaan lukujonon x(n): (,, 2, 3) T diskreetti Fourier-muunnos. Muunnos tapahtuu matriisikertolaskulla: 6 i i 2 = 2 + 2i 2 i i 3 2 2i Perusjakson N = 4 tapauksessa muunnosmatriisi on yksinkertainen. Tilanne saattaa olla toinen muilla perusjaksoilla. Esimerkki: Lasketaan lukujonon x(n): (,, 2) T diskreetti Fourier-muunnos. Nyt perusjakso on N = 3, jolloin tarvittava muunnosmatriisi on w 3 w 3 w 3 w. w 3 w 3 3 w 2 3 w 2 3 w 4 3 Nyt luvut w k 3,k =,, 2, 4, saadaan laskettua Eulerin kaavan avulla, jolloin muunnosmatriisiksi tulee i 3 + i i 3 i Muunnosmatriisin laskemista voidaan havainnollistaa yksikköympyrän avulla:
48 4 823 JOHDATUS SIGNAALINKÄSITTELYYN -2 w 3 Im -½ Re -3 w 3 w 3 = = - w 3 = -4 w 3 Haluttu diskreetti Fourier-muunnos on nyt siis X = i 3 + i 3 3 = 3 + i i 3 i i Vastaavasti vektorin X käänteismuunnos saadaan kertomalla vektori matriisilla w N w N w N... w N w N w N w 2 N... w N N w N N w2 N w 4 N... w 2(N ) N, w N wn N w 2(N ) N... w (N )2 N eli aiemmin olleen matriisin käänteismatriisilla. Tapauksessa N = 4 matriisi saa muodon w 4 w 4 w 4 w 4 w 4 w 4 w 2 4 w3 4 4 w 4 w2 4 w4 4 w6 = i i 4 4. w 4 w3 4 w6 4 w9 4 i i 3i+, 6i Esimerkki: Olkoon erään signaalin diskreetti Fourier-muunnos X(n): ( 3, 3i ) T. Määrätään alkuperäinen signaali x(n) eli signaalin X(n) käänteinen Fourier-muunnos. Yllä on jo laskettu perusjaksoa N = 3 vastaava muunnosmatriisi. Vastaavasti saadaan käänteismuunnoksen matriisi: Nyt 3 joten x(n): (,, 4) T. 3 + i 3 i i 3 + i i 3 i i 3 + i i+9 3 3i+ 3 6i = 4,
49 5. FOURIER-MUUNNOS Diskreetin Fourier-muunnoksen ominaisuuksia Seuraavassa tarkastellaan diskreetin Fourier-muunnoksen tärkeimpiä ominaisuuksia. Lukujono Diskreetti Fourier-muunnos x(n) X(n) y(n) Y(n) ax(n)+by(n) ax(n)+by(n) x(n + m) w nm N X(n) w nm N x(n) X(n + m) x(n) y(n) (konvoluutio) X(n)Y(n) x(n)y(n) X(n) Y(n) N x(n) (kompleksikonjugaatti) X( n) Lisäksi seuraavat ominaisuudet pitävät paikkansa jos lukujono x(n) on reaalinen. X(n) =X( n) Re [X(n)] =Re [X( n)] Im [X(n)] = Im [X( n)] X(n) = X( n) (DFT on siis symmetrinen origon suhteen.) arg[x(n)] = arg[x( n)]. Osoitetaan seuraavaksi, että jonon y(n) = x(n + m) diskreetti Fourier-muunnos on w nm N X(n), kun jonon x(n) diskreetti Fourier-muunnos on X(n). Tarkastellaan jonon y(n) diskreettiä Fourier-muunnosta: N y(k)w nk N k= N = w nm N k= y(k)w n(k+m) N N = w nm N x(k + m)w n(k+m) N. k= Koska jono x(n) on periodinen jaksolla N, niin voidaan viimeisessä summassa vaihtaa muuttujaa r = k + m. Silloin saadaan lauseke N w nm N r= x(r)w nr N.
50 JOHDATUS SIGNAALINKÄSITTELYYN Tutkitaan toisena esimerkkinä vielä erittäin tärkeää konvoluution diskreettiä Fouriermuunnosta 4. Olkoot x(n) ja y(n) jaksollisia lukujonoja (jakso = N) jax(n) ja Y(n) niiden Fourier-muunnokset. Tarkastellaan jonon X(n)Y(n) käänteistä Fourier-muunnosta: = N = N = N N [X(k)Y(k)]w nk N N k= [ N N k= r= N N r= m= N N r= m= x(r)w kr N ][ N N x(r)y(m) k= N x(r)y(m) k= m= w kr N y(m)w km N w km N wnk N w k(n r m) N } {{ } ( ). ] w nk N Nyt lauseke ( ) saa arvon N silloin kun n r m =, eli m = n r ja arvon muulloin. Näin ollen koko summalauseke saa muodon N x(r)y(n r) N = x(n) y(n). N r= Konvoluution Fourier-muunnoksen tärkeys seuraa sen käytöstä konvoluution toteuttamisessa. Ensi näkemältä tämä vaikuttaa hankalalta, sillä lyhyen tarkastelun jälkeen havaitaan, että konvoluution suora laskenta kahdelle signaalille (joiden jakso on N) vaatii O(N 2 ) yhteen- ja kertolaskuoperaatiota, joka on sama määrä kuin Fourier-muunnoksen laskentaan tarvittavilla operaatioilla. Kuitenkin niin sanotulla nopealla Fourier-muunnoksella voidaan Fourier-muunnos toteuttaa kompleksisuudella O(N log N). Seuraavassa tarkastellaan nopeaa Fourier-muunnosta. 4 Tässä yhteydessä kyseessä on ns. jaksollinen konvoluutio (engl. circular convolution), joka saadaan lausekkeesta x(n) y(n) = eikä tavallinen konvoluutio, joka saadaan lausekkeesta x(n) y(n) = N k= k= x(k)y(n k) x(k)y(n k). Tavallinen konvoluutiohan ei jaksollisten jonojen tapauksessa edes suppene, ja diskreetin Fourier-muunnoksen yhteydessä jonot oletetaan jaksollisiksi. Jaksollisesta konvoluutiosta käytetään joissain yhteyksissä merkintää x(n) y(n).
51 5. FOURIER-MUUNNOS Nopea Fourier-muunnos (FFT) Vektoreiden Fourier-muunnosten laskeminen suoraan määritelmän perusteella on käytännössä melko vaivalloista. Vektorin, jonka dimensio on n, kertominen n n-matriisilla vaatii n 2 kertolaskua ja yhtä monta yhteenlaskua. n-dimensioisen Fourier-muunnoksen ajantarve on siis suoraan verrannollinen dimension neliöön. Näin suuri aikavaatimus rajoittaisi huomattavasti Fourier-muunnoksen käyttökelpoisuutta. Vuonna 965 julkaistussa artikkelissaan Cooley ja Tukey esittelivät nopeamman tavan suorittaa diskreetti Fourier-muunnos, ja tämä tulos antoikin Fourier-analyysille aivan uusia ulottuvuuksia ja käytännön sovelluksia. Vaikka nopean Fourier-muunnoksen periaate olikin jo Gaussin keksimä, vasta Cooley ja Tukey havaitsivat sen käyttökelpoisuuden tietokoneilla suoritettavassa laskennassa. Tämä Cooleyn ja Tukeyn nopea Fourier-muunnos perustuu niin sanottuun hajoita ja hallitse -algoritmien suunnittelumenetelmään, jossa annettu tehtävä muunnetaan ensin pienemmiksi osaongelmiksi, jotka sitten voidaan ratkaista huomattavasti helpommin kuin alkuperäinen ongelma. On olemassa myös useita muita mahdollisia menetelmiä diskreetin Fourier-muunnoksen nopeuttamiseksi. Fourier-muunnoksista riippumattomien nopeiden konvoluutioalgoritmien avulla voidaan laskea konvoluutioita tehokkaasti. Tarkastellaan lukuja w k ja w 2k, missä w N = e 2πi N kuten aiemminkin. Silloin w 2 2k = e 2 2πi 2k = e 2πi k = w k. Siis esimerkiksi w 2 4 = w 2 ja w 2 = w 5. Tästä huomiosta on hyötyä seuraavassa Fouriermuunnoksen algoritmin johtamisessa. Olkoon x(n) jaksollinen lukujono, jonka jakso on N = 2 k (k N). Sen diskreetti Fourier-muunnos on määritelmän mukaan N X(n) = x(k)w nk N. Tarkastellaan erikseen parillis- ja paritonindeksisiä komponentteja: Koska w 2 N = w N/2, niin N 2 X(n) = k= N 2 X(n) = k= k= x(2k)w n(2k) N + N 2 k= x(2k)w nk N/2 + w n N x(2k + )w n(2k+) N. N 2 k= x(2k + )w nk N/2. Jos merkitään x (k) =x(2k) ja x (k) =x(2k + ) (ja Fourier-muunnoksia vastaavasti X (n) ja X (n)), niin saadaan yhtälö kun n =,,2,...,N/2 ja X(n) =X (n)+w n N X (n), (5.) X(n) =X (n N/2)+w n N X (n N/2), (5.2)
52 JOHDATUS SIGNAALINKÄSITTELYYN kun n = N/2, N/2 +,...,N. Näin ollen Fourier-muunnos periodiselle jonolle, jonka jakso on N saadaan laskemalla kaksi Fourier-muunnosta, joiden pituudet ovat N/2. Nämä kaksi edelleen saadaan rekursiivisesti laskemalla yhteensä neljä Fourier-muunnosta, joiden pituudet ovat N/4. Näin saatiin nopean Fourier-muunnoksen algoritmi. Nopean Fourier-muunnoksen algoritmi. Jos muunnettavan vektorin dimensio on N =, palauta se sellaisenaan. 2. Jaetaan muunnettava lukujono x(n) kahdeksi lukujonoksi x (n) ja x (n), joista x (n) koostuu parillisindeksisistä ja x (n) paritonindeksisistä komponenteista. 3. Lasketaan lukujonojen x (n) ja x (n) Fourier-muunnokset rekursiivisesti tällä algoritmilla. 4. Lopputulos saadaan yhdistämällä jonot X (n) ja X (n) kaavojen (5.) ja (5.2) mukaisesti. Esimerkki: Tarkastellaan jaksollista lukujonoa (,, 2, 3) T, jonka jakso on 4 ja suoritetaan sille nopea Fourier-muunnos. Ensin muodostetaan lukujonot x (n): (, 2) T ja x (n): (, 3) T, joille suoritetaan Fourier-muunnokset. Jonojen Fourier-muunnokset ovat X (n): (2, 2) T ja X (n): (4, 2) T. Kaavoista (5.) ja (5.2) saadaan X() = X () + w 4 X } {{ } }{{} () = 6 } {{ } =2 = =4 X() = X () } {{ } + w 4 X }{{} () = 2 + 2i } {{ } = 2 = 2 X(2) = X (2 2) } {{ } =2 X(3) = X (3 2) } {{ } = 2 = i + w 2 4 }{{} = + w 3 4 }{{} =i X (2 2) = 2 } {{ } =4 X (3 2) = 2 2i } {{ } = 2 Vastaavasti voidaan alkuperäinen Fourier-muunnoksen määräävä summa jakaa neljään eri osaan, jolloin saadaan niin sanottu radix-4 FFT-algoritmi. Kahdeksaan osaan jakaminen tuottaa vastaavasti Radix-8-algoritmin, jne. Tällöin lukujonojen pituuden pitää olla joku neljän tai kahdeksan potenssi. Seuraavassa on Fourier-muunnoksen laskentaa kuvaava diagrammi ja laskennan suorittava C-kielinen ohjelmakoodi. Ohjelmasta puuttuvat kompleksilukujen kerto- ja yhteenlaskut toteuttavat rutiinit tulo_w sekä summa. Kääntyvä ohjelma, jossa nämä ovat mukana, löytyy osoitteesta
53 5. FOURIER-MUUNNOS 45 x() x(2) x(4) N/2 pisteen DFT X () X () X (2) - w N - w Ṉ 2 X() X() X(2) w N x(6) X (3) -3 w N X(3) x() x(3) x(5) x(7) N/2 pisteen DFT X () X () X (2) X (3) -4 w N -5 w N -6 w N -7 w N X(4) X(5) X(6) X(7) /* RADIX-2 FFT , , , Heikki Huttunen */ void lfft (complex **input, int n) { int i; complex **even; /* Parillisindeksisille termeille */ complex **odd; /* Paritonindeksisille termeille */ void lfft(complex**, int); void tulo_w(complex *, int, int, complex *); /* Kompleksiluku kerrotaan */ /* luvulla w_n^(-k) */ void summa(complex *, complex *, complex *); /* Kahden kompleksiluvun summa */ void tulosta_vektori(complex **, int); /* Kompleksivektorin tulostus */ /* Jos N ==, niin rekursio päättyy */ if (n==) return; /* Kompleksitaulukoiden alustus */ even = (complex **) malloc (sizeof (complex *) * n/2); odd = (complex **) malloc (sizeof (complex *) * n/2); for (i=; i<n/2;i++) { even [i] = (complex *) malloc (sizeof (complex)); odd [i] = (complex *) malloc (sizeof (complex)); even [i] -> re = input [2*i] -> re; even [i] -> im = input [2*i] -> im; odd [i] -> re = input [2*i+] -> re; odd [i] -> im = input [2*i+] -> im; } /* Lasketaan rekursiivisesti n/2 pisteen FFT:t */ lfft (even, n/2); lfft (odd, n/2); /* Kerrotaan paritonindeksisinen taulukko luvulla w_n^j */
54 JOHDATUS SIGNAALINKÄSITTELYYN } for (i=; i<n/2; i++) { tulo_w (odd[i], i, n, input[i]); /* input[i] = odd[i]*w_n^-i */ summa (input[i], even[i], input[i]); /* input[i] += even[i] */ } for (i=; i<n/2; i++) { tulo_w (odd[i], (i+n/2), n, input[n/2+i]); summa (input[n/2+i], even[i], input[n/2+i]); } /* Vapautetaan taulukot */ for (i=; i<n/2; i++) { free (odd[i]); free (even[i]); } free (odd); free (even); Harjoitustehtäviä 5.. Laske käsin lukujonon x(n) =(, 2, 3, ) diskreetti Fourier-muunnos ja piirrä sen itseisarvojen kuvaaja. (Tässä x(n) tarkoittaa lukujonoa, jonka jakso N = 4 ja termit...,, 2, 3,,, 2, 3,,, 2, 3,....) 5.2. Laske lukujonon x(n) =(,,,,,,, ) diskreetti Fourier-muunnos Laske nopean Fourier-muunnoksen algoritmia jäljitellen jonon x(n) =(4,, 2, ) diskreetti Fourier-muunnos. Voit käyttää hyväksi tietoa, että lukujonon (4, 2) DFT on (6, 2) ja lukujonon (, ) DFT on (, ) Laske nopean Fourier-muunnoksen algoritmia jäljitellen jonon x(n) =( 7,, 4, 9, 5, 9, 8, 8) diskreetti Fourier-muunnos. Voit käyttää hyväksi tietoa, että lukujonon ( 7, 4, 5, 8) DFT on (2, 2+2i, 6, 2 2i) ja lukujonon (, 9, 9, 8) DFT on (8, 9+ 7i,, 9 7i) (Matlab) Tutkitaan kolmea jaksollista signaalia, joiden yksi jakso on { x (n) =, {, kun n 7 kun 8 n 3 x 2 (n) =, {, kun n 7 kun 8 n 6 x 3 (n) =, kun n 7, kun 8 n 2 Laske näiden diskreetit Fourier-muunnokset Matlabilla ja tulosta niiden itseisarvojen kuvaajat samaan ikkunaan (komentoja: fft, abs, plot, stem, subplot).
55 5. FOURIER-MUUNNOS Osoita konvoluution Fourier-muunnoksen johtamisessa tarvittu tulos N k= w kn N = { N, kun n =,, kun n =,2,...,N (Matlab) Generoi yhden sekunnin mittainen signaali, jonka taajuus on Hz, kun näytteenottotaajuus on 892 Hz. Laske signaalin DFT Matlabin komennolla fft ja tulosta ruudulle sen itseisarvojen kuvaaja. (help fft, help plot, help abs). Kuviossa pitäisi erottua selvä piikki vaaka-akselin kahdessa kohdassa. Piikki vastaa taajuutta Hz (Matlab) Luentomonisteessa laskettiin lukujonon x(n) =.5 n u(n) diskreettiaikaiseksi Fourier-muunnokseksi X(e iω )=/(.5e iω ). Tulosta tämän kuvaaja luomalla ensin taajuusvektori omega=:.:2*pi; ja evaluoimalla funktio X(e iω ) näissä pisteissä: X=abs(./(-.5*exp(-i*omega)));. Tulosta kuvaaja ruudulle: plot(omega,x); Tuloskuvaajaa voidaan approksimoida FFT:n avulla. Ota lukujonon 64 ensimmäistä termiä (x=.5.^(:63);), laske sen FFT ja tulosta itseisarvot komennolla stem ruudulle. Vertaa tuloksia (Matlab) Fourier-muunnoksen matriisin (jakso N = 8) voi luoda komennolla N=8; F=exp(-2*pi*i*(:N-) *(:N-)/N); Tällöinhän satunnaisvektorin rand(n,) Fourier-muunnos saadaan komennolla X= F*rand(N,). Vertaillaan laskennan tehokkuutta suhteessa FFT-algoritmiin. Matlab antaa käytetyn CPU-ajan komennoilla tic; X=F*rand(N,); toc Vertaa tätä FFT:n nopeuteen, jonka saat komennoilla tic; X=fft(rand(N,)); toc Tee kokeet ensin tapauksessa N = 8. Tee sitten samat kokeet kun N = 6, 32, 64, 28, 256, 52 ja 24. Tee kokeet muutamaan kertaan, koska ajat vaihtelevat jonkin verran. Tulosta ruudulle laskenta-aikoja kuvaavat käyrät. Jos käyttämäsi kone on kovin nopea, tulokset voivat pyöristyä nollaan. Selvitä silloin esim. sadan DFT:n ja FFT:n vaatimat laskenta-ajat sijoittamalla laskenta for-silmukan sisään; esim. tic; for k=:, X=fft(rand(N,)); end; toc 5.. (Matlab)
56 JOHDATUS SIGNAALINKÄSITTELYYN (a) Luo satunnaissignaali (=vektori), jonka pituus on 892 näytettä (help rand). Laske sen (jaksollinen) konvoluutio signaalin h=.5*[ones(,2),zeros (,892-2)]; kanssa käyttäen fft:tä ja ifft:tä. 5 Sijoita tulos vektoriin y. Laske suoralla konvoluutiolla (Matlabissa komento conv) vastaava tulos ja sijoita tulos vektoriin y2. Tulosta ruudulle molempien tulossignaalien 2 ensimmäistä näytettä: plot((:2),real(y(:2)),(:2),y2(:2)) Muuttujasta y täytyy ottaa reaaliosa, koska imaginääriosa ei ole laskentatarkkuudesta johtuen tarkalleen nolla (tyypillisesti luokkaa 5 ). Kuviossa eroa pitäisi olla ainoastaan kahdessakymmenessä ensimmäisessä näytteessä, jotka FFT:llä saatava jaksollinen konvoluutio laskee eri tavalla. (b) Vertaile menetelmien laskenta-aikoja samalla tavalla kuin tehtävässä (Matlab) Tiedostossa /home/hehu/public_html/858/corrupt.mat tai selaimella osoitteessa on vääristynyt versio Matlabin handel-testisignaalista. Tehtävänäsi on selvittää vääristymisprosessin impulssivaste. Lataa tätä varten molemmat edellämainitut tiedostot, jolloin alkuperäinen handel on muuttujassa y ja vääristynyt muuttujassa z. Katkaise vielä molemmat lyhyemmiksi laskennan nopeuttamiseksi: y=y(:2^6); z=z(: 2^6); Jos oletetaan, että vääristyminen on lineaarinen prosessi (tässä tapauksessa tämä pitää paikkansa), on voimassa yhtälö z(n) =h(n) y(n), missä h(n) on vääristymisen aiheuttaneen kanavan impulssivaste. Ottamalla Fouriermuunnokset yhtälön molemmista puolista, saadaan yhtälö Z(n) =H(n)Y(n). Koska DFT muunsi konvoluution kertolaskuksi, voidaan impulssivasteen DFT ratkaista jakolaskulla, H(n) =Z(n)/Y(n), josta saadaan ratkaistua impulssivaste h(n) käänteisellä DFT:llä, eli komennolla ifft. Tulosta h(n):n impulssivasteen ensimmäistä termiä ruudulle. 5 Tarvitset kahden vektorin pisteittäistä kertolaskua; Matlab kertoo vektorit a ja b keskenään pisteittäin komennolla c=a.*b, jolloin tulos menee vektoriin c.
57 Luku 6 Z-muunnos Diskreettiaikaisten systeemien tarkastelussa on tärkeäksi työkaluksi osoittautunut z-muunnos, jota voidaan pitää diskreetin Fourier-muunnoksen yleistyksenä. Z-muunnos on läheistä sukua jatkuva-aikaisten systeemien tarkastelussa käytetylle Laplace-muunnokselle. 6. Z-muunnoksen määritelmä Olkoon x(n) lukujono. Sen z-muunnos on sarja X(z) =...+ x( 3)z 3 + x( 2)z 2 + x( )z + x()+x()z + x(2)z 2 + x(3)z Jatkossa tästä käytetään lyhyempää merkintää X(z) = n= x(n)z n. Äärettömänä sarjana z-muunnoksen suppeneminen riippuu sekä lukujonon x(n) arvoista, että pisteestä z C, jossa X(z) lasketaan. Sarjan suppenemisalue on se kompleksitason alue, jossa sarja x(n)z n suppenee itseisesti, eli n= n= x(n)z n <. Sarjan X(z) suppenemisalue on aina renkaan muotoinen alue r < z <r +. Mahdollisesti suppenemisalueeseen kuuluu myös renkaan reunapisteitä eli pisteitä, jotka toteuttavat ehdon z = r tai z = r +. Lisäksi on syytä huomata, että r + saattaa olla myös ääretön.
58 5 823 JOHDATUS SIGNAALINKÄSITTELYYN Jatkossa jonoja merkitään pienillä kirjaimilla ja niiden z-muunnoksia vastaavilla isoilla kirjaimilla ilman eri mainintaa, esimerkiksi x(n) X(z) y(n) Y(z) w(n) W(z) Signaalinkäsittelyn ongelmissa tullaan usein käsittelemään lukujonoja, joiden z-muunnos on rationaalifunktio, eli muotoa X(z) = N(z) M D(z) = m= a mz m M K k= b kz = α m= (z z m) k K k= (z p k). Tällaisten funktioiden nimittäjän D(z) nollakohtia p k kutsutaan navoiksi ja osoittajan N(z) nollakohtia z m nolliksi. Esimerkki: Lasketaan navat ja nollat, kun X(z) = z2 3z. z + Selvästi nimittäjän ainoa nollakohta on z =, joka on siis napa. Nollat puolestaan ovat z = 2 ja z = 5, sillä z 2 3z = (z + 2)(z 5) = z = 2 z = 5. Funktio X(z) määrää yhdessä suppenemisalueen kanssa signaalin x(n) yksikäsitteisesti. Jos suppenemisalue ei ole tiedossa, saattaa X(z) esittää useiden funktioiden z-muunnosta. Tällä kurssilla tarkastellaan lähes yksinomaan kausaalisia signaaleja x(n), joille siis x(n) =, kun n<. Tällöin z-muunnos saa muodon X(z) = x(n)z n. n= 6.2 Tavallisimpien jonojen z-muunnokset Seuraavassa esitetään muutamia esimerkkejä joidenkin signaalien z-muunnoksista. Signaalin x(n) =δ(n) z-muunnos on X(z) = ja suppenemisalue on koko kompleksitaso C. Olkoon jono x(n) =δ(n d) (d {,2,3,...}). Silloin X(z) = ja suppenemisalue on C \{}. n= x(n)z n = δ(n d) } {{ } n= =,kun n d z n = z d,
59 6. Z-MUUNNOS 5 Signaalin x(n) =u(n) z-muunnos on X(z) = = = = n= n= n= z n x(n)z n u(n)z n ( ) z n n= = z = z z, ja suppenemisalue z >(vrt. geometrisen sarjan suppeneminen). Lisäksi lausekkeesta havaitaan, että funktiolla X(z) on nolla pisteessä z = ja napa pisteessä z =. Edellisessä esimerkissä tuli vastaan tilanne, jossa siirtofunktion ensimmäisessä muodossa on muuttujan z negatiivisia potensseja. Napojen ja nollien laskemista varten lauseke täytyy laventaa sellaiseksi, että kaikki eksponentit ovat positiivisia. Esimerkiksi siirtofunktion X(z) =.9z + z 2.9z 3 +.5z.25z 2 pienin eksponentti on -3, joten se lavennetaan termillä z 3. Tällöin saadaan tulokseksi X(z) = z3.9z 2 + z.9 z 3 +.5z 2.25z. Nyt navat ovat p =.89, p 2 = ja p 3 =.39. Nollat puolestaan ovat pisteissä z =.9, z 2 = i ja z 3 = i. Signaalin x(n) =a n u(n) z-muunnos on X(z) = = = n= n= x(n)z n a n u(n)z n ( ) az n n= = az = z z a, ja suppenemisalue z > a (kts. geometrisen sarjan suppeneminen). Lisäksi z-muunnoksella on napa pisteessä z = a ja nolla pisteessä z =. Signaalin x(n) = { a n, kun n<, kun n
60 JOHDATUS SIGNAALINKÄSITTELYYN z-muunnos on X(n) = = = n= a n z n ( a z ) n n= ( a z ) n n= = a z = + a z a = z z a, ja sarjan suppenemisalue on z <, eli z < a. Tällä ja edellisen esimerkin sarjalla on sama z-muunnoksen lauseke, mutta eri suppenemisalue. Näin ollen suppenemisalue liittyy a olennaisesti z-muunnokseen. 6.3 Käänteinen z-muunnos Osoitetaan seuraavaksi, että z-muunnoksella on olemassa käänteismuunnos. Tämä tulos on teoreettinen, eikä esitettävää menetelmää tulla käytännössä tarvitsemaan juuri koskaan. (Todistusta ei kysytä tentissä.) Olkoon X(z) signaalin x(n) z-muunnos. Siis X(z) = x(n)z n. n= Ratkaistaan tästä yhtälöstä lähtien termi x(k),k Z. Kertomalla yhtälön molemmat puolet lausekkeella z k (k Z), saadaan yhtälö X(z)z k = x(n)z n+k. n= Integroidaan tämä yhtälö yli suppenemisalueella sijaitsevan r-säteisen ympyrän C : z = r, r <r<r +, ja kerrotaan molemmat puolet luvulla /(2πi). X(z)z k dz = ( ) x(n)z n+k dz. 2πi 2πi C C n= Yhtälön oikea puoli on nyt muotoa ( ) x(n)z n+k dz. 2πi C n= = x(n) z n+k dz. 2πi n= C } {{ } ( )
61 6. Z-MUUNNOS 53 Kompleksianalyysistä saadaan sellainen tulos, jonka mukaan integraali ( ) saa arvon, kun n = k ja muulloin. Näin ollen alkuperäisen yhtälön oikeasta puolesta jää jäljelle lauseke x(k). Siis mikä tahansa signaalin x(n) arvo on mahdollista selvittää sen z-muunnoksen avulla. Funktion X(z) käänteismuunnos on x(n) = X(z)z n dz. 2πi C Käytännössä x(n) saadaan kuitenkin kätevämmin jakolaskulla tai osamurtojen avulla. Esimerkki: Olkoon signaalin x(n) z-muunnos X(z) = z 2 + 2z + 2. z + Selvitä x(n), kun suppenemisalue on z >. Yritetään muokata lauseke sellaiseen muotoon, että se koostuu tutuista z-muunnoksista. z 2 + 2z + 2 z + = z (z + )+(z + )+ z + = z + + z + = z + + ( z ) Nyt havaitaan, että X(z) koostuu signaalien δ(n ), δ(n) ja ( ) n u(n) z-muunnosten summasta. Siis, kun n< x(n) =δ(n )+δ(n)+( ) n 2, kun n = u(n) =, kun n = ( ) n, kun n> Edellä käytetty rationaalilausekkeen hajottaminen ei välttämättä onnistu aina näin helposti. Yleispätevä menetelmä on käyttää polynomien jakolaskua. Esimerkki: Tarkastellaan signaalia x(n), jonka z-muunnos on X(z) = z3 2z z 3 z 2 z suppenemisalueenaan z. Suoritetaan polynomien jakolasku jakokulmassa: z 3 -z 2 -z +z - z 3-2 z z z z z 2 -z - +z z + -
62 JOHDATUS SIGNAALINKÄSITTELYYN Siis X(z) koostuu signaalien δ(n ) ja δ(n) z-muunnosten summasta, joten {, kun n =, x(n) = δ(n )+δ(n) =, muulloin. Taulukossa on yleisimpien signaalien z-muunnokset. Jono Z-muunnos Suppenemisalue δ(n) kaikilla z u(n) z > z δ(n m) z m kaikilla z paitsi z = (jos m>) α n u(n) αz z > α 6.4 Z-muunnoksen ominaisuuksia Z-muunnos on lineaarinen: Olkoot X(z) ja Y(z) jonojen x(n) ja y(n) z-muunnokset. Silloin jonon ax(n) +by(n) z-muunnos on ax(z) +by(z). Jos X(z) suppenee alueessa R x ja Y(z) alueessa R y, niin ax(z)+by(z) suppenee ainakin alueessa R x R y. Jonon viivästys: Jos jonon x(n) z-muunnos on X(z) ja jono w(n) = x(n d) (d N) niin jonon w(n) z-muunnos on W(z) =z d X(z). Vastaava tulos on voimassa myös jonon edistämiselle, mutta se on vähemmän käytetty. Se muotoillaan seuraavasti: aina kun d N. w(n) =x(n + d) W(z) =z d X(z), Konvoluution z-muunnos: Merkitään w(n) =x(n) y(n). Silloin W(z) =X(z)Y(z), ja funktion W(z) suppenemisalue sisältyy funktioiden X(z) ja Y(z) suppenemisalueiden leikkaukseen. Jonojen komponenteittainen tulo: Merkitään w(n) = x(n)y(n). Silloin jonon w(n) z- muunnos on W(z) = ( z Y X(v)v 2πi C v) dv, missä C on origon kiertävä ympyrä joka on sekä funktion X(z) että funktion Y(z) suppenemisalueessa. Kompleksikonjugaatti: Jos y(n) =x(n), niin Y(z) =X(z). Parsevalin lause: n= x (n)x 2 (n) = ( ) X (v)x 2 v dv. 2πi C v Funktion X(z) derivointi: Lukujonon nx(n) z-muunnos on zx (z).
63 6. Z-MUUNNOS 55 Ajan kääntäminen: Jonon x( n) z-muunnos on X(z ). Alkuarvolause: Jos jono x(n) on kausaalinen (eli x(n) =, kun n<), niin x() = lim X(z). z Tässä siis riittää, että z lähestyy ääretöntä mitä reittiä hyvänsä. Osoitetaan seuraavassa konvoluution laskenta z-muunnoksen avulla. Oletetaan, että w(n) =x(n) y(n). Silloin W(z) = = = = = n= n= w(n)z n ( k= n= k= k= ( k= = X(z)Y(z). ( x(k)z k x(k)y(n k) ) z n x(k)y(n k)z k z (n k) n= x(k)z k )( y(n k)z (n k) ) n= y(n)z n ) 6.5 Siirtofunktio Aiemmin todettiin, että lineaarinen aikainvariantti järjestelmä on täysin määrätty, kun sen impulssivaste h(n) on tiedossa. Yleisempi tapa on kuitenkin käyttää impulssivasteen z muunnosta H(z). Impulssivasteen avulla esitettynä herätteen x(n) ja vasteen y(n) välinen relaatio on muotoa y(n) =h(n) x(n). Ottamalla z muunnokset yhtälön molemmista puolista saadaan yhtälö Y(z) =H(z)X(z). (6.) Impulssivasteen h(n) z muunnoksesta H(z) käytetään nimeä siirtofunktio tai systeemifunktio (transfer function). Esimerkki. Tarkastellaan järjestelmää, joka määritellään herätteen x(n) ja vasteen y(n) välisenä differenssiyhtälönä y(n) =.349x(n)+.432x(n ).5698x(n 2)+.432x(n 3)+.349x(n 4). (6.2)
64 JOHDATUS SIGNAALINKÄSITTELYYN Järjestelmän impulssivaste on.349, kun n = tai n = 4,.432, kun n = tai n = 3, h(n) =.5698, kun n = 2,, muulloin. Siirtofunktio on impulssivasteen z-muunnos: H(z) = k= h(k)z k = z.5698z z z 4. Siirtofunktion avulla määritellään myös muita tärkeitä käsitteitä. Sijoittamalla z = e iω yhtälöön (6.) saadaan sen erikoistapaus Y(e iω )=H(e iω )X(e iω ). (6.3) Tämä tarkoittaa, että signaalia suodatettaessa sen taajuudet (eli signaalin diskreettiaikainen Fourier-muunnos X(e iω )) kerrotaan järjestelmän taajuusvasteella H(e iω ). Näin ollen järjestelmän taajuuskäyttäytyminen riippuu täysin funktiosta H(e iω ). Tästä funktiosta käytetään nimitystä taajuusvaste (frequency response). Taajuusvaste on siis reaalimuuttujan ω kompleksiarvoinen funktio, joka saadaan evaluoimalla siirtofunktio kuljettaessa kompleksitason yksikköympyrä ympäri vastapäivään. Tämä johtuu siitä, että lauseke e iω käy läpi kaikki yksikköympyrän pisteet kun muuttuja ω [ π, π]. Sijoittamalla z = e iω z-muunnoksen määritelmään saadaan taajuusvasteen laskentakaava: H(e iω )= h(n)e iωn. n= Itse asiassa kyseessä on impulssivasteen h(n) diskreettiaikainen Fourier-muunnos. Esimerkki. Edellisen esimerkin järjestelmän taajuusvaste on H(e iω )= e iω.5698e 2iω +.432e 3iω +.349e 4iω. Taajuusvasteen itseisarvoa H(e iω ) kutsutaan nimellä amplitudivaste (amplitude response, magnitude response tai gain) ja sen vaihekulmaa arg(h(e iω )) nimellä vaihevaste (phase response, phase shift). Amplitudivasteen merkitys käy ilmi kun otetaan yhtälöstä (6.3) itseisarvot molemmilta puolilta: Y(e iω ) = H(e iω ) X(e iω ). Amplitudivaste kertoo siis kuinka paljon signaalin eri taajuudet vaimenevat tai vahvistuvat suodatuksessa. Jos esimerkiksi suotimen amplitudivaste saa arvon.6 Nyquistin Edelleen diskreetti Fourier-muunnos perusjaksolla N saadaan diskreettiaikaisen Fourier-muunnoksen avulla laskemalla se tasavälisissä pisteissä ω = 2πk N, kun k =,,2,...,N.
65 6. Z-MUUNNOS 57 rajataajuudella (eli H(e iπ ) =.6), muuttuu tuolla taajuudella olevan signaalin amplitudi.6-kertaiseksi. Jos amplitudivaste on yksi, kyseinen taajuus ei muutu suodatuksessa lainkaan (viivästymistä lukuunottamatta) ja jos amplitudivaste on nolla, taajuus häviää suodatuksessa täysin. Vaihevasteen merkitys tulee ilmi tarkasteltaessa yhtälön (6.3) molempien puolten vaihekulmia. Kompleksilukujen kertolaskussa vaihekulmat lasketaan yhteen, joten saadaan yhtälö arg(y(e iω )) = arg(h(e iω )) + arg(x(e iω )). Vaihevasteesta voidaan siis päätellä kuinka paljon kukin taajuus viivästyy suodatettaessa. Jos suotimen vaihevaste on esimerkiksi arg(h(e iω )) = π/2 jollain taajuudella ω, muuntaa suodin signaalin sin(ω n) signaaliksi sin(ω n π/2) (ja mahdollisesti vaimentaa tai vahvistaa sitä). Esimerkki. Edellisen esimerkin järjestelmän taajuusvaste taajuudella ω =.5 2π on Amplitudivaste tällä taajuudella on ja vaihevaste H(e.5 2πi )= i i = (.793) 2 =.35 arg( i) = arctan(.793/.2467) = Jos järjestelmän herätteenä on nyt kyseisellä taajuudella värähtelevä signaali x(n) =u(n) sin(.5 2πn), vaste on samantaajuinen signaali, jonka amplitudi on.35-kertainen ja vaihe viivästynyt.6283 radiaania. Kaavamuodossa tämä signaali on y(n) =.35u(n) sin(.5 2πn.6283). Todellinen suodatustulos poikkeaa tästä arviosta hieman suodatuksen alkuvaiheessa. Tehtävässä 6.4 havaitaan kuitenkin, että muualla arvio on tarkalleen sama kuin todellinen suodatustulos. On syytä muistaa, että amplitudi- ja vaihevasteet ovat funktioita, joiden arvot riippuvat taajuusmuuttujasta ω. Edellisessä esimerkissä amplitudivasteen kaava on H(e iω ) = e iω.5698e 2iω +.432e 3iω +.349e 4iω. Tämän funktion kuvaaja on alla..5 Amplitudivaste.5 π 3π/4 π/2 π/4 π/4 π/2 3π/4 π ω
66 JOHDATUS SIGNAALINKÄSITTELYYN Vaihevasteen kuvaaja puolestaan on seuraavan näköinen. π/2 Vaihevaste (rad) π/4 π/4 π/2 Esimerkki: Tarkastellaan siirtofunktiota π 3π/4 π/2 π/4 π/4 π/2 3π/4 π ω H(z) = z2 +.5z + 2z 2 + z +.5. Järjestelmän taajuusvaste saadaan sijoittamalla muuttujan z paikalle lauseke e iω, H(e iω ) = (eiω ) 2 +.5e iω + 2(e iω ) 2 + e iω +.5 = e2iω +.5e iω + 2e 2iω + e iω +.5. Amplitudivaste on nyt tämän lausekkeen itseisarvo, H(e iω ) = e2iω +.5e iω + 2e 2iω + e iω +.5, joka ei enää sievene. Sen kuvaaja (alla) voidaan kuitenkin piirtää Matlabilla π 3π/4 π/2 π/4 π/4 π/2 3π/4 π ω Esimerkki: Olkoon h(n) =.9 n u(n). Silloin H(z) = Siirtofunktion H(z) taajuusvaste on jolloin amplitudivaste on ja vaihevaste.9z, z >.9. H(e iω )= H(e iω ) = ( arg(h(e iω )) = arg.9e iω,.9e iω,.9e iω Seuraavassa kuvassa on esitetty amplitudivasteen kuvaaja. ).
67 6. Z-MUUNNOS π 3π/4 π/2 π/4 π/4 π/2 3π/4 π ω Jos impulssivaste koostuu reaaliluvuista (kuten yleensä on), amplitudivaste on symmetrinen pystyakselin suhteen. Näin ollen tavallisesti kuvataan vain oikeanpuoleinen haara π/4 π/2 3π/4 π Kuten aiemmin mainittiin, amplitudivasteen merkitys on, että siitä nähdään, kuinka järjestelmä toimii saadessaan eritaajuisia signaaleja syötteeksi. Oletetaan, että edellisen esimerkin järjestelmä saa syötteekseen signaalin, jonka näytteenottotaajuus on Hz. Tällöin edellisen kuvaajan asteikon nollataajuus vastaa signaalia, jonka taajuus on Hz, ja taajuus ω = π (äärimmäisenä oikealla) vastaa Nyquistin rajataajuutta 5 Hz. Kuvaaja on siis seuraavan näköinen Taajuus/Hz Nyt nähdään suoraan, että esimerkiksi taajuudella 25 Hz soiva signaali pienenee amplitudiltaan noin.8-kertaiseksi. Vastaavasti pienet taajuudet voimistuvat. Signaalinkäsittelyssä on usein tapana esittää amplitudivasteen kuvaajat desibeleinä (db). Koska desibeliasteikko on logaritminen, käyrien kuvaajat tuovat esiin tarkemmin pieniä eroja pienillä funktion arvoilla. Desibeliasteikko määritellään seuraavasti. Jos järjestelmän herätesignaalin teho on P ja vasteen teho on P, vahvistus beleissä on P log B. P Yleensä saatavat arvot ovat luokkaa - B. Pyöristysvirheistä johtuen yleisemmässä käytössä on pienempi yksikkö, desibeli, joka on kymmenesosa belistä. Desibeleissä vahvistus on log P P db.
68 6 823 JOHDATUS SIGNAALINKÄSITTELYYN Usein signaalinkäsittelyssä työskennellään amplitudin muutoksen kanssa. Teho on suhteessa amplitudin neliöön. Jos siis herätteen amplitudi on A ja vasteen A, vahvistus desibeleissä on A 2 A log = 2 log A 2 db. A Jos suhde A A on ykköstä pienempi, puhutaan vaimennuksesta. Jos järjestelmä vaimentaa signaalin amplitudin puoleen (.5-kertaiseksi), on vaimennus desibeleinä 2 log.5 = 6.2 db. Jos taas teho vaimenee puoleen, on muutos desibeleissä log.5 = 3. db. Seuraavassa kuvassa on edellisen esimerkin amplitudivasteen kuvaaja desibeleinä. Huomaa, että taajuusakseli on nyt normalisoitu näytteenottotaajuudella. Tämä on yleisin tapa taajuuksien esittämisessä. Matlab tekee vastaavan kuvan automaattisesti komennolla freqz([],[,-.9]);. Tässä [] viittaa osoittajan kertoimiin ja [,.9] nimittäjän. Amplitudivaste (db) Normalisoitu taajuus 6.6 Siirtofunktion laskeminen Varsin käyttökelpoinen z-muunnos on IIR-suodinten suunnittelussa. Yleisesti IIR-suodin esitetään differenssiyhtälönä y(n) = K M a k x(n k)+ b m y(n m). k= m= Käyttämällä hyväksi z-muunnoksen lineaarisuutta ja viivästetyn signaalin z-muunnoksen kaavaa, voidaan soveltaa z-muunnosta tämän differenssiyhtälön molempiin puoliin. Y(z) = K M a k X(z)z k + b m Y(z)z m. k= m= Siirtämällä jälkimmäinen summa vasemmalle puolelle ja ottamalla X(z) ja Y(z) tekijäksi saadaan yhtälö ( ) M K Y(z) b m z m = X(z) a k z k, m= k=
69 6. Z-MUUNNOS 6 josta voidaan ratkaista ulostulon z-muunnos: K k= Y(z) = a kz k M m= b mz mx(z). Kaikkien IIR-suodinten siirtofunktiot ovat näin ollen muotoa H(z) = K k= a kz k M m= b mz m. Esimerkki: Tarkastellaan suodinta, jonka määrittelee differenssiyhtälö y(n) =.5x(n) x(n )+2x(n 2) y(n )+y(n 2). Ottamalla z-muunnokset puolittain saadaan yhtälö Y(z) =.5X(z) X(z)z + 2X(z)z 2 Y(z)z + Y(z)z 2. Edelleen ryhmittelemällä saadaan: Siis siirtofunktio H(z) on Y(z)( + z z 2 )=X(z)(.5 z + 2z 2 ). H(z) = Y(z) X(z) =.5 z + 2z 2 + z z 2 =.5z2 z + 2 z 2 + z. Etsitään tämän funktion navat ja nollat. Navat ovat nimittäjän nollakohtia, eli p = 5 2 p 2 = Nollat puolestaan ovat osoittajan nollakohtia, eli z = + 3i z 2 = 3i Seuraavassa napa-nollakuvio kompleksitason yksikköympyrällä (x=napa ja o=nolla) ja amplitudivaste. Amplitudivasteesta voidaan taas suoraan päätellä vaikkapa järjestelmän vahvistavan Nyquistin rajataajuutta noin kymmenellä desibelillä. Tämä tarkoittaa, että tuolla taajuudella amplitudin muutos a saadaan yhtälöstä db = 2 log a eli 2 = log a.
70 JOHDATUS SIGNAALINKÄSITTELYYN Korottamalla molemmat puolet kymmenen potenssiin saadaan yhtälö 2 = a eli a = 3.6. Signaalin amplitudi kasvaa siis 3.6-kertaiseksi. Jos halutaan tehon muutos P, se saadaan kaavasta db = log P, josta voidaan ratkaista P =. Teho kasvaa näin ollen kymmenkertaiseksi..5.5 Imaginary Part Real Part (Matlab: zplane([.5,-,2],[,,-]);) 5 Amplitudivaste (db) Normalisoitu taajuus Toinen tavallinen tilanne on se, jossa tiedetään siirtofunktio ja halutaan differenssiyhtälö. Olkoon H(z) =.5z2 + z +.25 z 3 z +.5. Ensin täytyy supistaa muuttujan z potenssit negatiivisiksi eli kertoa osoittaja ja nimittäjä luvulla z 3. H(z) =.5z + z z 3 z 2 +.5z 3.
71 6. Z-MUUNNOS 63 Sitten sijoitetaan Y(z) X(z) = H(z) : Kerrotaan ristiin nimittäjät pois: eli Y(z) X(z) =.5z + z z 3 z 2 +.5z 3. Y(z)( z 2 +.5z 3 )=X(z)(.5z + z z 3 ) Y(z) Y(z)z 2 +.5Y(z)z 3 =.5X(z)z + X(z)z X(z)z 3. Jokaista termiä vastaava signaali tiedetään: y(n) y(n 2)+.5y(n 3) =.5x(n )+x(n 2)+.25x(n 3). Tämä saadaan helposti muotoon, joka voidaan jo toteuttaa algoritmisesti: y(n) =.5x(n )+x(n 2)+.25x(n 3)+y(n 2).5y(n 3). 6.7 Siirtofunktio ja stabiilisuus IIR-suotimen stabiilisuus voidaan helposti tutkia napa-nollakuvion avulla. Voidaan nimittäin osoittaa 2, että (kausaalinen) IIR-suodin on stabiili, jos ja vain jos kaikki sen siirtofunktion navat ovat yksikköympyrän sisäpuolella. Esimerkiksi aiemmin esillä ollut suodin y(n) =.5x(n) x(n )+2x(n 2) y(n )+y(n 2) 2 Stabiilisuusehdon mukaan LTI-järjestelmä on stabiili jos ja vain jos Siirtofunktion k= H(z) = h(k) <. k= suppenemisalueen muodostavat ne pisteet z C, joissa k= h(k)z k h(k)z k <. Tästä seuraa rationaalisen siirtofunktion tapauksessa, että järjestelmä on stabiili, jos ja vain jos yksikään siirtofunktion napa ei ole yksikköympyrän kehällä. Lisäksi kausaaliselle järjestelmälle h(n) =, kun n<, jolloin siirtofunktion z-muunnos koostuu ainoastaan muuttujan z ei-positiivisista potensseista. Siis kun muuttujan z itseisarvo kasvaa, niin z-muunnoksen itseisarvo pienenee. Näin ollen, jos kausaalisella järjestelmällä ylipäätään on suppenemisalue, on se origosta kaukaisimman navan ulkopuolella. Nämä ehdot yhdistämällä saadaan väite.
72 JOHDATUS SIGNAALINKÄSITTELYYN ei ole stabiili, koska navat ovat p,2 = ± 5, 2 joista toinen on yksikköympyrän ulkopuolella ( 5 2 >). Otetaan vielä yksi esimerkki. Suotimen y(n) =x(n) 2x(n )+2x(n 2)+ 2 y(n ) y(n 2) 8 siirtofunktio on y(n) 2 y(n )+ y(n 2) =x(n) 2x(n )+2x(n 2) 8 Y(z) 2 Y(z)z + 8 Y(z)z 2 = X(z) 2X(z)z + 2X(z)z 2 Y(z)( 2 z + 8 z 2 )=X(z)( 2z + 2z 2 ) Y(z) X(z) = 2z + 2z 2 2 z + 8 z 2 = z2 2z + 2 z 2 2 z + 8 (= H(z)). Navat ovat polynomin z 2 2 z + 8 nollakohdat, eli p,2 = ± = 2 ± 4 2 = ± i = 2 ± i 2 2 = 4 ± i 4. Molemmat ovat yksikköympyrän sisällä ( p,2 <), joten suodin on stabiili. Järjestelmän napa-nollakuvio on alla olevassa kuvassa Imaginary Part Real Part
73 6. Z-MUUNNOS 65 Harjoitustehtäviä 6.. (a) Laske lukujonon, kun n = 5 3, kun n = 4 5, kun n = 3 x(n) = 3, kun n = 2, kun n =, muulloin z-muunnos. Mikä on suppenemisalue? (b) Laske lukujonon, kun n = 3, kun n = 2 5, kun n = 3 x(n) = 3, kun n = 4, kun n = 5, muulloin z-muunnos. Mikä on suppenemisalue? 6.2. (a) Olkoon kausaalinen LTI-järjestelmä määritelty yhtälöllä y(n) =x(n) 2x(n 2)+x(n 3). Onko järjestelmä FIR vai IIR? (b) Olkoon kausaalinen LTI-järjestelmä määritelty yhtälöllä y(n) + 2y(n ) = x(n)+x(n ). Onko järjestelmä FIR vai IIR? 6.3. Olkoon N jokin positiivinen kokonaisluku. Laske lukujonon, kun n<, x(n) = n, kun n N, N, kun n>n z-muunnos. Vihje: käytä z-muunnoksen derivaatan kaavaa tai muodosta differenssiyhtälö, jonka ratkaisu x(n) on ja ota z-muunnokset puolittain (Matlab) Suodata signaali x(n) =sin(.5 2πn) kaavan (6.2) suotimella. Vertaa tulosta arvioituun vasteeseen y(n) =.35 sin(.5 2πn.6283). Tulosta samaan ikkunaan alkuperäinen signaali ja arvioitu sekä todellinen vaste Signaali x(n) =.7u(n) sin(.2 2πn) suodatetaan järjestelmällä, jonka impulssivaste on, kun n = tai n = 2, 4 h(n) =, kun n =, 2, muulloin. Vaste on muotoa y(n) =Au(n) sin(.2 2πn + φ). Määritä reaaliluvut A ja φ.
74 JOHDATUS SIGNAALINKÄSITTELYYN 6.6. Oletetaan, että kausaalisen LTI-järjestelmän heräte x(n) ja vaste y(n) toteuttavat seuraavan differenssiyhtälön: y(n 2) 3 y(n )+y(n) =x(n) 2 x(n )+ x(n 2). 4 (a) Määritä järjestelmän siirtofunktio H(z). (b) Piirrä napa-nollakuvio. (c) Onko suodin stabiili? 6.7. Oletetaan, että kausaalisen järjestelmän heräte x(n) ja vaste y(n) toteuttavat differenssiyhtälön y(n) =x(n) 2x(n )+ 5 4 x(n 2)+y(n ) 5 y(n 2). 6 (a) Määritä siirtofunktio. (b) Piirrä napa-nollakuvio. (c) Onko järjestelmä stabiili? 6.8. Olkoon kausaalisen LTI-järjestelmän siirtofunktio H(z) = z 2 + z +. z Määritä sitä vastaava differenssiyhtälö Erään järjestelmän siirtofunktion navat ovat p =.9, p 2 =.7+.7i ja p 3 =.7.7i. Nollat ovat z =, z 2 = i ja z 3 = i. Lisäksi tiedetään, että nollataajuudella (ω = ) järjestelmän taajuusvaste H(e iω )=. Mikä on siirtofunktion H(z) lauseke? 6.. (Matlab) Erään LTI-järjestelmän siirtofunktio on H(z) = z +.298z z z 4..97z +.54z 2.24z z 4 Sijoita kertoimet vektoreihin a ja b ja piirrä Matlabilla järjestelmän napa-nollakuvio (help zplane), amplitudi- ja vaihevasteet (help freqz) sekä impulssivaste (help impz). Vertaa näitä käänteisen järjestelmän H (z) =.97z +.54z 2.24z z z +.298z z z 4 vastaaviin. Huomaa että voit käyttää alkuperäistä järjestelmää hyväksesi käänteistä järjestelmää tutkiessasi. Älä siis kirjoita kaikkia kertoimia uudelleen. 6.. (Matlab) Lataa signaali "laughter" komennolla load laughter. Signaali on tämän jälkeen muuttujassa y. Kuuntele signaali komennolla sound(y). Suodata signaali edellisen tehtävän suotimella H(z) (help filter). Kuuntele tulos. Sovella edellisen tehtävän käänteissuodinta H (z) tulossignaaliin. Vertaa tulosta alkuperäiseen "laughter"-signaaliin.
75 6. Z-MUUNNOS a) Signaalin amplitudi (jännite) muuttuu seuraavilla kertoimilla 3. Muunna arvot desibeleiksi..5,.2,.,.,., 2. b) Signaalin vaimennus on seuraavien desibeliarvojen mukainen. Miten amplitudi muuttuu? 25 db, 3 db, 6 db, 2 db, 3 db, 6 db a) Signaalin teho muuttuu seuraavilla kertoimilla. Muunna arvot desibeleiksi..5,.2,.,.,., 2. b) Signaalin vaimennus on seuraavien desibeliarvojen mukainen. Miten teho muuttuu? 25 db, 3 db, 6 db, 2 db, 3 db, 6 db (Matlab) Eräs LTI-järjestelmä toteutetaan differenssiyhtälöllä y(n) =.43y(n ).428y(n 2)+.675x(n)+.349x(n ) +.675x(n 2) järjestelmässä, jossa näytteenottotaajuus on 2 Hz. Kuinka suuri vaimennus (desibeleinä) on taajuudella 5 Hz värähtelevällä signaalilla kun se syötetään järjestelmään? 6.5. (Matlab) Luo signaali y, jonka taajuus nousee tasaisesti komennoilla t=:/892:4; y=chirp(t,,,); Kuuntele tulos (mahdollisuuksien mukaan) komennolla soundsc(y). Vaihtoehtoisesti voit tutkia signaalia komennolla specgram, joka näyttää aika-taajuus-akseleilla kuvan. Suodata signaali tehtävän 6.4. suotimella. Kuuntele tulos ja/tai katso sen spektrogrammi. Vertaa tulosta suotimen amplitudivasteeseen. 3 Esimerkiksi kerroin.2 tarkoittaa, että amplitudi muuttuu.2-kertaiseksi alkuperäiseen nähden.
76 JOHDATUS SIGNAALINKÄSITTELYYN
77 Luku 7 Suotimen suunnittelu taajuustasossa Tyypillisessä suodatustilanteessa halutaan poistaa tietyt taajuudet, ja vastaavasti säilyttää tietyt toiset taajuudet. Esimerkiksi puheen- tai äänenkäsittelyssä taajuuksilla on ratkaiseva osa siinä, kuinka ääniaallot havaitaan. Korkeat taajuudet kuullaan korkeampina ääninä ja matalammat taajuudet matalampina. Lisäksi useissa signaaleissa häiritsevä kohina esiintyy korkeina taajuuksina, jolloin ne voidaan poistaa signaalista poistamalla korkeat taajuudet ja vastaavasti mahdollisesti vahvistamalla heikompia taajuuksia. Kuten z-muunnosta tarkasteltaessa havaittiin, konvoluutio aikatasossa vastaa kertolaskua z- tai taajuustasossa. Kääntäen voidaan ilmaista, että taajuustason kertolasku on mahdollista toteuttaa aikatason konvoluutiona. Kun lisäksi huomataan, että taajuustason kertolasku toteuttaa taajuustason suodatuksen, voidaan alkaa suunnitella sopivia suotimia taajuusvasteista lähtien. Ei-jaksollisen digitaalisen signaalin x(n) sisältämät taajuudet käyvät nimittäin teoriassa ilmi sen diskreettiaikaisesta Fourier-muunnoksesta X(e iω ). Kun signaali suodatetaan suotimella, jonka taajuusvaste on H(e iω ), saadaan tuloksen y(n) taajuussisältö yhtälöstä Y(e iω )=H(e iω )X(e iω ). Tarkastellaan esimerkkinä alla olevaa signaalia, joka on ylemmässä kuvassa aikatasossa ja alemmassa taajuustasossa:.5 Signaali x(n) aikatasossa Signaalin x(n) spektri Taajuus (Hz)
78 7 823 JOHDATUS SIGNAALINKÄSITTELYYN Suodatetaan x(n) suotimella, joka poistaa korkeat taajuudet ja säilyttää matalat. Sen impulssivaste h(n) on ylemmässä kuvassa ja amplitudivaste alemmassa. Suodattimen impulssivaste Suodattimen amplitudivaste Taajuus (Hz) Vaste saadaan laskemalla signaalin x(n) ja impulssivasteen h(n) konvoluutio. Tuloksen spektri on tällöin funktioiden X(e iω ) ja H(e iω ) tulo. Tulossignaali y(n) on ylemmässä kuvassa ja sen spektri Y(e iω ) alemmassa kuvassa.. Alipäästösuodatettu signaali y(n) Alipäästösuodatetun signaalin y(n) spektri Taajuus (Hz) Näin havaittiin, että signaalin korkeat taajuudet poistuivat, koska niitä vastaava amplitudivaste on lähellä nollaa. Vastaavasti matalat taajuudet säilyivät, koska niitä vastaava amplitudivaste on lähellä ykköstä. 7. FIR-suodinten suunnittelu: suunnittelukriteerit FIR-suodinten suunnitteluvaatimukset esitetään tavallisesti taajuustasossa. Tämä tarkoittaa, että sekä amplitudi- että vaihevasteelle on esitetty tiettyjä vaatimuksia, jotka suunniteltavan suotimen pitäisi täyttää. Vaihevasteelle asetettavat vaatimukset ovat useimmiten
79 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 7 yksinkertaisempia ja tyypillinen vaatimus onkin lineaarinen vaihevaste. Jos vaihevaste on lineaarinen, kaikki taajuudet viivästyvät saman verran. Tämä vaatimus on helppo toteuttaa tarkastelemalla ainoastaan sellaisten FIR-suodinten luokkaa, joiden impulssivaste on negatiivisesti tai positiivisesti symmetrinen (s.o. h(n) = ±h(n n )). Näin saadaan neljä eri tapausta. Näitä tapauksia vastaavat kuvat ovat alla. pariton määrä kertoimia, positiivinen symmetria 4 3 h(n) parillinen määrä kertoimia, positiivinen symmetria 2 h(n) pariton määrä kertoimia, negatiivinen symmetria.5 h(n) parillinen määrä kertoimia, negatiivinen symmetria.5 h(n) Kun yllä mainittu ehto impulssivasteelle on voimassa, on vaihevaste lineaarinen, eli muotoa arg(h(e iω )) = β αω,
80 JOHDATUS SIGNAALINKÄSITTELYYN missä β ja α ovat reaalisia vakioita. Esimerkiksi yllä olleessa kuvassa on suodin, jonka impulssivaste on, kun n = tai 4, 2, kun n = tai 3, h(n) = 4, kun n = 2,, muulloin. Tämän suotimen taajuusvaste on H(e iω ) = + 2e iω + 4e 2iω + 2e 3iω + e 4iω = ( + e 4iω )+2(e iω + e 3iω )+4e 2iω = e [ 2iω (e 2iω + e 2iω )+2(e iω + e iω )+4 ] = e 2iω [2 cos(2ω)+4 cos(ω)+4]. Hakasulkeiden sisällä oleva lauseke on reaalinen ja positiivinen, joten vaihevaste on sama kuin kompleksitermin e 2iω vaihekulma, eli 2ω. Näin ollen vaihevaste on lineaarinen. Vastaavalla ryhmittelyllä voidaan osoittaa myös muiden suodintyyppien vaihevasteen lineaarisuus. Amplitudivasteelle vaatimukset keskittyvat yleensä päästö-, esto- ja siirtymäkaistan (passband, stopband, transition band) sijaintiin ja siirtymäkaistan leveyteen. Tarkastellaan oheista kuvaa. +δ p δ p δ s f f p s.5 Päästökaista Siirtymäkaista Estokaista Kuvassa siis vaaka-akselilla on taajuudet, tässä tapauksessa esitettynä normalisoituina näytteenottotaajuuden suhteen. Siis esimerkiksi luku.5 tarkoittaa puolta näytteenottotaajuudesta. Pystyakseli puolestaan esittää suotimen amplitudivastetta. Tässä tapauksessa suodin on määritelty seuraavien parametrien avulla. δ p Päästökaistan maksimipoikkeama Tässä vaiheessa lukijalla saattaa herätä kysymys, eikö vaihevasteen tulisi olla vakio, jotta kaikki taajuudet viivästyisivät yhtä paljon. Vastaus on kuitenkin kielteinen, sillä vaihevaste ilmaisee montako astetta tai radiaania kyseinen taajuuskomponentti viivästyy. Esimerkiksi neljännesjakson (9 ) viive matalalla taajuudella on ajassa paljon enemmän kuin sama viive korkealla taajuudella. Vaihevasteen kulmakerroin kertoo montako näytettä viive on. Tästä käytetään nimitystä ryhmäviive ja se määritellään kaavalla τ(ω) = dθ(ω) dω, missä θ(ω) on vaihevaste taajuudella ω.
81 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 73 δ s f p f s Estokaistan maksimipoikkeama Päästökaistan rajataajuus Estokaistan rajataajuus Päästökaista muodostuu siis tässä tapauksissa taajuuksista f [, f p ], estokaista taajuuksista f [f s,.5] ja siirtymäkaista taajuuksista f (f p,f s ). Päästökaistalla sallitaan, että amplitudivasteen arvot poikkeavat ideaaliarvosta (= ) enintään luvun δ p verran, ja estokaistalla enintään luvun δ s verran ideaaliarvosta. Tyypilliset määrittelyt saattaisivat olla esimerkiksi seuraavat: δ p δ s f p f s Näytteenottotaajuus.26 db 3 db Hz 2 Hz 256 Hz Muuntaminen normalisoiduiksi taajuuksiksi tapahtuu jakamalla taajuudet f p ja f s näytteenottotaajuudella. Normalisoituina vaatimukset ovat: f p /256 =.39 f s 2/256 =.78 Tästä esitysmuodosta päästään edelleen taajuusvasteeseen skaalaamalla lukuarvot välille [, 2π], ts. kertomalla luvulla 2π. ω p ω s 2π /256 =.25 rad 2π 2/256 =.49 rad 7.2 Suunnittelu ikkunamenetelmällä Ensimmäinen mieleen tuleva tapa on ensin keksiä sellainen amplitudivasteen kuvaaja, että se toteuttaa annetut ehdot. Tämä kuitenkin tuottaa ongelmia, kuten kohta tulemme näkemään. Tarkastellaan esimerkiksi edellä annettuja ehtoja: δ p δ s ω p ω s.26 db 3 db 2π /256 =.25 rad 2π 2/256 =.49 rad Nämä ehdot toteuttaa esimerkiksi taajuusvaste: { H(e iω, ω <.3 )=, ω.3,
82 JOHDATUS SIGNAALINKÄSITTELYYN koska.25 <.3 <.49. Kuvassa nähdään tämän taajuusvasteen kuvaaja, jossa on huomioitu myös vasteen periodisuus ja konjugaattisymmetrisyys välillä [, 2π] (huom. ω c =.3). 2π.3.3 2π Voidaan osoittaa 2 yleisesti, että taajuusvaste { H(e iω, kun ω<ω c, )=, kun ω ω c löytyy suotimelta, jonka impulssivaste on { 2f c sinc (ω c n), kun n, h(n) = 2f c, kun n =. Tässä funktio sinc(x) =sin(x)/x. Ongelmana tämän suotimen toteuttamisessa on impulssivasteen ääretön pituus. Käytännössä se täytyy aina katkaista, mikä puolestaan aiheuttaa ongelmia taajuusvasteessa. Siitä tarkemmin jatkossa. Seuraavassa taulukossa on esitetty vastaavat ideaaliset impulssivasteet erityyppisille suotimille: alipäästösuotimille (taajuudet välillä [, f c ] päästetään läpi), ylipäästösuotimille (taajuudet välillä [f c,.5] päästetään läpi), kaistanpäästösuotimille (taajuudet välillä [f,f 2 ] päästetään läpi) ja kaistanestosuotimille (taajuudet välillä [f,f 2 ] poistetaan). Suodintyyppi Impulssivaste kun n n = Alipäästö 2f c sinc(n 2πf c ) 2f c Ylipäästö 2f c sinc(n 2πf c ) 2f c Kaistanpäästö 2f 2 sinc(n 2πf 2 ) 2f sinc(n 2πf ) 2(f 2 f ) Kaistanesto 2f sinc(n 2πf ) 2f 2 sinc(n 2πf 2 ) 2(f 2 f ) Näitä suodintyyppejä vastaavat ideaaliset taajuusvasteen kuvaajat ovat seuraavassa kuvassa. 2 Todistus tapahtuu ottamalla taajuusvasteen käänteinen diskreettiaikainen Fourier-muunnos: π H(e iω )e iωn dω = ωc e iωn dω, 2π π 2π ω c joka voidaan melko helposti saada muotoon { 2f c sinc (ω c n), kun n, h(n) = 2f c, kun n =.
83 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 75 H(.) H(.) H(.) f.5 f.5 c H(.) c f f.5 2 f f.5 2 Ideaalisen taajuussuotimen impulssivasteen suoraviivainen katkaiseminen on luonnollisin menetelmä pyrkiä lähelle ideaalisen alipäästösuotimen ominaisuuksia. Näin saatu impulssivaste vastaa ideaalista impulssivastetta kerrottuna ikkunasignaalilla w(n) = {, kun M<n<M,, muulloin. Kyseisestä ikkunafunktiosta käytetään nimeä suorakulmainen ikkuna (engl. rectangular window). Ikkunan kertoimien kokonaismäärästä käytetään merkintää N, ja se riippuu rajasta M kaavan N = 2M + mukaan. Toisaalta raja M saadaan jakamalla N kahdella ja alaspäin pyöristämällä, t.s. M = N 2. Katkaistun impulssivasteen h t (n) =w(n)h(n) käyttäytymistä taajuustasossa voidaan approksimoida sen diskreetin Fourier-muunnoksen avulla. Tulomuodossa olevan signaalin DFT voidaan ilmaista konvoluution avulla: H t (n) = W(n) H(n). N Suoran katkaisun vaikutus taajuustasossa on siis konvoluutio ikkunafunktion w(n) diskreetin Fourier-muunnoksen kanssa. Toisaalta W(n) on vastaavaa muotoa kuin h(n), siinä on nimittäin tärkeällä sijalla sinc-funktio. Konvoluutio tällaisen signaalin kanssa aiheuttaa alkuperäiseen taajuusvasteeseen värähtelyä ja Gibbsin ilmiön, missä värähtelyä on erityisesti taajuuskaistojen reunoilla. Gibbsin ilmiö oli esillä jo Fourier-sarjan yhteydessä. Alla olevassa kuvassa on ideaalisen ylipäästösuotimen (rajataajuus f c =.25) amplitudivaste impulssivasteen katkaisun jälkeen. Impulssivasteeseen on otettu mukaan N = 5 termiä, eli ideaalinen impulssivaste pisteissä 25, 24, 23,...,23,24,25.
84 JOHDATUS SIGNAALINKÄSITTELYYN Suorakulmainen ikkuna: kumulatiivinen amplitudivaste (ylipäästösuodin) Amplitudivaste / db Normalisoitu taajuus (Nyquist =.5) Kokeilemalla eri mittaisia impulssivasteita havaitaan, ettei pituuden N kasvattaminen paranna vaimennusominaisuuksia lainkaan: amplitudivasteen korkein huippu estokaistalla pysyy 2:ssä desibelissä. Myöskään päästökaistan värähtelyyn ei voida näin vaikuttaa, vaan sitäkin on aina vakiomäärä, noin.74 db. Sen sijaan suurempi N kaventaa siirtymäkaistaa, ja siirtymäkaistan leveyden f ja kertoimien määrän välillä onkin voimassa suorakulmaisen ikkunan tapauksessa kaava f =.9 N. Suotimen vaimennusominaisuuksiin ei siis voida vaikuttaa kertoimia lisäämällä, mutta niitä voidaan parantaa käyttämällä jotain pehmeämmin laskevaa ikkunafunktiota suoran katkaisun asemesta. Yksi usein käytetyistä ikkunafunktioista on Hamming-ikkuna (Hamming window), joka määritellään seuraavasti: { cos( 2πn w(n) = kun M<n<M, ), N, muulloin. Alla olevassa kuvassa on Hamming-ikkunan kertoimien kuvaaja tapauksessa N = Hamming-ikkunaa käytetään siis niin, että yllä olevalla lausekkeella w(n) kerrotaan vastaava ideaalisen impulssivasteen termi. Alla olevassa kuvassa on näin saatava amplitudivaste suunniteltaessa vastaavaa ylipäästösuodinta kuin aikaisemmassakin esimerkissä. Hamming: kumulatiivinen amplitudivaste (ylipäästösuodin) Amplitudivaste / db Normalisoitu taajuus (Nyquist =.5)
85 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 77 Amplitudivasteen kuvaajasta havaitaan Hamming-ikkunan parantavan vaimennusominaisuuksia. Nyt suodin vaimentaa kaikkia estokaistan taajuuksia vähintään 53 db. Lisäksi päästökaistan värähtely ei ole enää paljaalla silmällä havaittavissa. Kokeilemalla eri kertoimien määriä havaitaan korkeimman estokaistalla olevan huipun pysyvän 53 db:ssä sekä päästökaistan värähtelyn pysyvän noin.9 desibelissä. Lisäksi siirtymäkaistan leveys näyttäisi nytkin olevan kääntäen verrannollinen kertoimien määrään nähden. Siirtymäkaista on selvästi leveämpi kuin vastaava suorakulmaista ikkunaa käyttäen saatu siirtymäkaista ja osoittautuukin, että leveys riippuu kertoimien määrästä kaavan f = 3.3 N mukaisesti. Ikkunan valinta on näin ollen aina kompromissi vaimennusominaisuuksien ja kertoimien määrän välillä. Hamming-ikkuna tarvitsee nimittäin aina suuremman määrän kertoimia (tarkalleen -kertaisen määrän) suorakulmaiseen ikkunaan verrattuna, jotta 3 siirtymäkaistat olisivat yhtä leveät. Muita tavallisesti käytettyjä ikkunafunktioita on lueteltu alla. Taulukosta voidaan ratkaista myös tarvittavien kertoimien määrä, kun halutaan jokin tietty normalisoitu siirtymäkaistan leveys. Mitä paremmat ikkunalla saatavat vaimennus- ja värähtelyominaisuudet ovat, sitä suurempi kerroin siirtymäkaistan leveyden kaavassa on ja sitä enemmän kertoimia tarvitaan saman siirtymäkaistan saamiseksi. Ikkuna- Siirtymäkaistan Päästökaistan Estokaistan Ikkunan lauseke funktion leveys värähtely minimi- w(n), kun nimi (normalisoitu) (db) vaimennus (db) n (N )/2 Suorakulmainen.9/N Bartlett 3.5/N n N ( ) Hanning 3./N cos 2πn ( N ) Hamming 3.3/N cos 2πn ( N ) Blackman 5.5/N cos 2πn ( N ) +.8 cos 4πn N Taulukon ikkunoista Bartlett-ikkuna on harvemmin suodinsuunnittelussa käytetty, kolmionmuotoinen ikkunafunktio. Alla on Bartlett-ikkunan kuvaaja ja sitä käyttäen suunnitellun ylipäästösuotimen amplitudivaste Bartlett: kumulatiivinen amplitudivaste (ylipäästösuodin) Amplitudivaste / db Normalisoitu taajuus (Nyquist =.5)
86 JOHDATUS SIGNAALINKÄSITTELYYN Hanning- eli Hann-ikkuna on melko lähellä Hamming-ikkunaa. Kuitenkin sen vaimennus- ja värähtelyominaisuudet ovat hieman huonommat ja kertoimien määrä on toisaalta pienempi. Alla on Hanning-ikkunan kuvaaja ja sitä käyttäen suunnitellun ylipäästösuotimen amplitudivaste Hanning: kumulatiivinen amplitudivaste (ylipäästösuodin) Amplitudivaste / db Normalisoitu taajuus (Nyquist =.5) Taulukossa alimpana on Blackman-ikkuna, jonka lauseke koostuu kahdesta kosinitermistä. Näin saadaan aikaan erittäin hyvä minimivaimennus sekä päästökaistan värähtely, mutta vastaavasti tarvittavien kertoimien määrä on suurempi. Alla on Blackman-ikkunan kuvaaja ja sitä käyttäen suunnitellun ylipäästösuotimen amplitudivaste Blackman: kumulatiivinen amplitudivaste (ylipäästösuodin) Amplitudivaste / db Normalisoitu taajuus (Nyquist =.5) 7.3 Yhteenveto ikkunamenetelmän käytöstä Määritä ideaalinen taajuusvaste suotimelle.
87 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 79 Laske tätä taajuusvastetta vastaava ideaalinen impulssivaste käänteisen Fourier-muunnoksen avulla. Tavallisimmat impulssivasteet on lueteltu edellä olleessa taulukossa. Taulukko on käytössä tentissä. Valitse sellainen ikkunafunktio, joka täyttää halutut vaatimukset päästökaistalla ja estokaistalla. Selvitä myös tarvittavien kertoimien määrä (N) normalisoidusta siirtymäkaistan leveydestä f lähtien. Suunnitellun suotimen impulssivaste on h t (n) =w(n)h(n), Missä h(n) on ideaalinen impulssivaste ja w(n) on valittu ikkunafunktio. Esimerkki. Edellisessä kappaleessa oli esitetty alipäästösuotimelle seuraavat vaatimukset: δ p δ s f p f s Näytteenottotaajuus.26 db 3 db Hz 2 Hz 256 Hz Koska δ p =.26 db, ainoat mahdolliset ikkunat ovat Hamming-ikkuna (δ p =.94 db) ja Blackman-ikkuna (δ p =.7 db). Näistä on valitsemme Hamming-ikkunan, sillä sitä käytettäessä tarvittavien kertoimien määrä on Blackman-ikkunaa pienempi: N = { 3.3, f 5.5, f Hamming-ikkunalle Blackman-ikkunalle. Taulukosta nähdään lisäksi, että Hamming-ikkunaa käyttäen on mahdollista täyttää myös annetut estokaistan vaatimukset. Sarakkeesta Estokaistan minimivaimennus nähdään nimittäin, että minimivaimennus on 53 db, kun vaatimuksena oli ainoastaan δ s = 3 db (-53 db < -3 db). Seuraavaksi täytyy selvittää suotimen kertoimien määrä. Se saadaan siirtymäkaistan leveydestä. Meidän tapauksessamme siirtymäkaistan tulee olla välillä -2 Hz. Näytteenottotaajuudella normalisoituina tämä on väli [/256, 2/256] =[.39,.78], joten siirtymäkaistan normalisoitu leveys on f = 2/256 /256 = /256. Koska Hamming-ikkunaa käytettäessä f = 3.3 N, niin tarvittavien kertoimien määrä N on tarkoilla arvoilla N = 3.3 f = = = /256 Tämä pyöristetään 3 ylöspäin lukuun N = Tällä kurssilla pyöristys tehdään aina suurempaan parittomaan kokonaislukuun. Alipäästö- ja kaistanpäästösuotimilla myös parillinen kertoimien määrä on mahdollinen.
88 8 823 JOHDATUS SIGNAALINKÄSITTELYYN Ideaalinen impulssivaste on alipäästösuotimen tapauksessa eli meidän tapauksessamme h(n) = h(n) = { 2f c sinc (n 2πf c ), n 2f c, n =, { 2 5/256 sinc (2π 5/256 n), n 2 5/256, n =, Tässä luku f c = 5 on valittu siirtymäkaistan puolivälistä. Todellinen impulssivaste saadaan nyt kertomalla tämä h(n) 256 Hamming-ikkunalla joka sievenee muotoon ( cos(2πn/85)) 2 5/256 sinc (2π 5/256 n), < n 42 h t (n) = 2 5/256, n =,, muulloin, ( cos(2πn/85)) 5/28 sinc (5π/28 n), < n 42 h t (n) = 5/28, n =,, muulloin. Saadaksemme kausaalisen suotimen, meidän on siirrettävä tätä impulssivastetta vielä 42 askelta oikealle (viivästys). Tämä ei vaikuta tulokseen muuten kuin 42 askeleen viivästymisenä, taajuustason käyttäytyminen pysyy ennallaan. Näin saatavan impulssivasteen kuvaaja on alla Tämän suotimen amplitudivasteen kuvaaja on seuraavanlainen. 5 Amplitudivaste (db) Normalisoitu taajuus Vaihevaste on alla. Huomaa lineaarisuus päästökaistalla.
89 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 8 2 Vaihesiirto (asteina) Lopuksi vielä nollakuvio: Normalisoitu taajuus Imaginary Part Real Part Toisena esimerkkinä suunnitellaan ylipäästösuodin, kun vaaditaan, että δ p δ s f s f p Näytteenottotaajuus.6 db 28 db 9 khz khz 48 khz Taulukosta nähdään, että suorakulmainen ja Bartlett-ikkuna eivät käy, ja Hanning-ikkuna on ensimmäinen, joka toteuttaa päästökaistan (.546 <.6) ja estokaistan ( 44 db < 28 db) vaatimukset. Koska Hanning-ikkunalle tarvitaan vähemmän kertoimia kuin muilla sopivilla, käytetään sitä. Tällöin siis f = 3. N. Näytteenottotaajuudella normalisoitu siirtymäkaistan leveys on khz f = 48 khz 9 khz 48 khz = 48. Nyt tarvittavien kertoimien määrä on N = 3. f = 3. /48 = 48.8,
90 JOHDATUS SIGNAALINKÄSITTELYYN joka pyöristetään lukuun N = 49. Valitaan luku f c normalisoidun siirtymäkaistan [9/48, /48] puolivälistä eli luku f c = 9.5/48. Silloin saadaan h(n) = { sinc(2π n), n, 2 9.5, 48 n =. Tämä lauseke on vielä kerrottava Hanning-ikkunan lausekkeella, jolloin todelliseksi impulssivasteeksi saadaan sievennettynä ( cos( 2πn 9 9 ))( sinc( πn)), < n h t (n) = 48, n =,, muulloin. Jälleen on siirrettävä tätä impulssivastetta 74 askelta oikealle, jotta saadaan kausaalinen suodin. Tämän impulssivasteen ja amplitudivasteen kuvaajat ovat alla, ja lopuksi nollakuvio Amplitudivaste (db) Normalisoitu taajuus.5 Imaginary Part Real Part
91 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA # Taulukko 7.: DTMF-taajuudet (dual tone multiple frequency) näppäinpuhelimelle kun näytteistystaajuus on 892 Hz. Esimerkiksi näppäintä 5 vastaava signaali on x(n) = sin(.88πn)+sin(.3262πn). Harjoitustehtäviä 7.. Osoita, että impulssivasteen, kun n =, 2, kun n =,, kun n = 2, h(n) = 2, kun n = 3,, kun n = 4,, muulloin. mukaisella suotimella on lineaarinen vaihevaste Osoita, että impulssivasteen, kun n = tai n = 5, 2, kun n = tai n = 4, h(n) = 3, kun n = 2 tai n = 3, muulloin. mukaisella suotimella on lineaarinen vaihevaste (Matlab) Kopioi tiedosto ~hehu/public_html/858/numero.mat itsellesi hakemistoon, josta käynnistät Matlabin; esim. kotihakemistoosi: cp ~hehu/public_html/858/numero.mat ~ Tiedosto sisältää näppäinpuhelimen valintaäänen (seitsemän numeroa). Tehtäväsi on selvittää mikä puhelinnumero on kyseessä. Lataa signaali Matlabiin komennolla load numero.mat. Signaali on tämän jälkeen vektorissa nimeltä salainen. Voit kuunnella sen komennolla sound(salainen). Valintaäänet koostuvat aina kahden eritaajuisen komponentin summasta (taulukko 7.). Tunnista nämä komponentit Matlabin specgram-komennon avulla. Jos tunnistus on hankalaa, voit muuttaa skaalaa axis-komennon avulla (esim. axis([,3884,.5,.37])) tai piirtää apuviivoja (esim. taajuudelle.3262 komennolla line([,3884],[.3262,.3262])).
92 JOHDATUS SIGNAALINKÄSITTELYYN 7.4. (Matlab) Erotellaan edellisen tehtävän taajuuskomponentit toisistaan suodattamalla. Suunnittele suodin käyttäen ns. Remez-menetelmää. Itse menetelmä on myöhempien kurssien asiaa, mutta komentoa on helppo käyttää; komento f=remez(n, [a,b,c,d], [,,, ]); suunnittelee suotimen, jossa on N + kerrointa, ja jossa välillä [a, b] olevat taajuudet poistetaan (viimeisen vektorin 2 ensimmäistä kerrointa nollia) ja välillä [c, d] olevat taajuudet säilytetään (viimeisen vektorin 2 jälkimmäistä kerrointa ykkösiä). Kertoimet sijoitetaan vektoriin f. Suunnittele suodin, joka poistaa taajuutta.33 pienemmät taajuudet ja säilyttää taajuutta.36 suuremmat taajuudet ( tarkoittaa Nyquistin rajataajuutta). Kertoimien lukumäärä N voi olla vaikkapa sata (=riittävästi). Katso amplitudivasteesta, onnistuiko suunnittelu (help freqz). Suodata signaali salainen em. suotimella ja kuuntele tulos (help filter) (Matlab) Luo Matlabissa vektori, joka sisältää ideaalisen alipäästösuotimen impulssivasteen katkaistuna välille 2 n 2 (4 kerrointa) kun rajataajuus f c =.3 (Nyquist =.5). Tulosta ruudulle sen amplitudivaste. (help sinc). Konversio Matlab-esitykseen kannattaa tehdä huolella. Lopputuloksessa päästökaistan pitäisi olla nollan desibelin kohdalla. (a) Mikä on estokaistan ensimmäisen (vasemmanpuolimmaisen) värähtelyhuipun vaimennus (suunnilleen)? (b) Tee em. testi kun kertoimet otetaan väliltä 3 n 3. Mitä ensimmäiselle värähtelyhuipulle tapahtuu? (c) Mitä tapahtuu kun kertoimien määrää edelleen lisätään? Voidaanko estokaistan vaimennusta parantaa lisäämällä kertoimia? 7.6. Tavoitteena on suunnitella FIR-suodin ikkunamenetelmällä. Järjestelmän näytteenottotaajuus on 44 Hz, ja tarkoituksena on päästää läpi Hz pienemmät taajuudet ja poistaa 2 Hz suuremmat taajuudet. (a) Laske näytteenottotaajuudella normalisoidut taajuudet sekä siirtymäkaistan normalisoitu leveys. (b) Kuinka monta kerrointa (N) tarvitaan käytettäessä i. suorakulmaista (rectangular), ii. Hanning-, iii. Hamming-, iv. Blackmanikkunaa? 7.7. Minkä ikkunan valitset kun suotimelta vaaditaan, että (a) päästökaistalla saa värähtelyä olla enintään. db ja estokaistan vaimennus on vähintään 3 db, (b) päästökaistalla saa värähtelyä olla enintään.2 db ja estokaistan vaimennus on vähintään 4 db,
93 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 85 (c) päästökaistalla saa värähtelyä olla enintään.5 db ja estokaistan vaimennus on vähintään 28 db, (d) päästökaistalla saa värähtelyä olla enintään. db ja estokaistan vaimennus on vähintään 5 db? Valitse aina se ikkuna, jota käyttäen tarvitaan mahdollisimman vähän kertoimia Suunnittele ikkunamenetelmällä ylipäästösuodin (selvitä käsin impulssivasteen lauseke), jonka vaatimukset ovat seuraavat: Päästökaista Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [8 khz, 22.5 khz] [ khz,5khz]. db 3 db 44. khz 7.9. (Matlab) Suunnittele Matlabin avulla edellisen tehtävän vaatimukset toteuttava ylipäästösuodin. Tulosta ruudulle impulssivaste (help impz), amplitudi- ja vaihevasteet (help freqz) sekä napa-nollakuvio (help zplane). Ohje: Matlabissa komento d = fir (N-, 2*fc, tyyppi, ikkuna) antaa vektorina määrittelyn mukaisen FIR-suotimen: sisältää N kerrointa siirtymäkaista on keskitetty taajuuteen fc. fc voi olla myös vektori, jossa on kaksi arvoa. Ne ilmoittavat kaistanpäästö- ja pysäytyssuodinten tapauksessa tarkasteltavan kaistan alun ja lopun. suodintyyppi saadaan muuttujasta tyyppi, joka voi saada arvot (hipsut mukaanlukien): high, jolloin tuloksena on ylipäästösuodin stop, jolloin tuloksena on kaistanpysäytyssuodin Tätä ja edellistä yhdistelemällä saadaan aikaan kaikki tarkastellut suodintyypit ikkuna määrää suunnittelussa käytettävän ikkunan tyypin (pituus N), sallittuja tyyppejä ovat bartlett(n) - Bartlett-ikkuna blackman(n) - Blackman-ikkuna. boxcar(n) - Suorakulmainen ikkuna. chebwin(n) - Chebyshev-ikkuna. hamming(n) - Hamming-ikkuna. hanning(n) - Hanning-ikkuna. kaiser(n) - Kaiser-ikkuna. triang(n) - Kolmioikkuna. Myös mikä tahansa muu vektori kelpaa ikkunaksi.
94 JOHDATUS SIGNAALINKÄSITTELYYN 7.. (Matlab) Lataa signaali handel muuttujaan y komennolla load handel. Signaalin näytteenottotaajuus on 892 Hz. Suunnittele ikkunamenetelmällä suotimet, joiden aste on 5, ja joiden päästö- ja estokaistat ovat seuraavat. (a) Päästökaista Hz Hz ja estokaista 2 Hz 496 Hz (alipäästösuodin). (b) Päästökaista 8 Hz 496 Hz ja estokaista Hz 5 Hz (ylipäästösuodin). (c) Päästökaista 2 Hz 3 Hz ja estokaistat Hz 5 Hz ja 35 Hz 496 Hz (kaistanpäästösuodin, ohjeita: help remez). (d) Päästökaistat Hz 5 Hz ja 3 Hz 496 Hz ja estokaista 75 Hz 25 Hz. Suodata signaali em. suotimilla ja kuuntele tulokset. Jos äänentoisto ei toimi katso tulos specgram-komennolla. Huomaa, että todellisessa tilanteessa täytyy huomioida myös vaimennusvaatimukset. Tässä tehtävässä niistä ei yksinkertaisuuden vuoksi välitetä. 7.. Täydennä luentomonisteessa ollut ideaalisen alipäästösuotimen taajuusvasteen lasku. Osoita siis, että ωc e iωn dω = 2f c sinc(ω c n), 2π ω c missä ω c = 2πf c ja sinc(x) =sin x/x, kun x ja sinc(x) =, kun x = Suunnittele ikkunamenetelmällä alipäästösuodin (selvitä käsin impulssivasteen lauseke), jonka vaatimukset ovat seuraavat: Päästökaista Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [ khz,2khz] [3.5 khz,6khz].2 db 4 db 32 khz 7.3. (Matlab) Suunnittele Matlabin avulla kaistanestosuodin, joka toteuttaa seuraavat vaatimukset. Päästökaistat Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [ Hz, 5 Hz] ja [35 Hz, 496 Hz] [ Hz, 3 Hz]. db 3 db 892 Hz Lataa signaali handel muuttujaan y ja suodata se suunnittelemallasi suotimella. Kuuntele tulos (Matlab) Suunnittele ylipäästösuodin seuraavilla vaatimuksilla. Päästökaista Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [24 Hz, 496 Hz] [ khz, 82 Hz]. db 3 db 892 khz
95 7. SUOTIMEN SUUNNITTELU TAAJUUSTASOSSA 87 Lataa signaali handel muuttujaan y komennolla load handel. Suodata signaali edellisen tehtävän suotimella ja kuuntele tulos. Komentoja: filter, soundsc.
96 JOHDATUS SIGNAALINKÄSITTELYYN
97 Luku 8 Kuvan ja videon pakkaaminen Datan pakkaaminen mahdollistaa lukuisissa sovelluksissa suurien datamäärien käsittelyn. Huolimatta laitteistojen kasvavista tallennus- ja siirtokapasiteeteista pakkaamisesta on tullut viime vuosina entistä tärkeämpi sovelluskohde. Syynä tähän on luultavasti tehokkaammat prosessorit, joita käyttäen voidaan toteuttaa aiempaa tehokkaampia pakkausalgoritmeja. Tässä kappaleessa tutustutaan lyhyesti alan perusmenetelmiin. 8. Televisiokuvan pakkaus Videosignaali muunnetaan tavallisesti digitaaliseen muotoon seuraavien määritysten mukaisesti: Koodattavat analogiset signaalit ovat YUV-väriformaatissa. Jokaisessa kentässä (frame) on 288 juovaa. Jokaisessa luminanssijuovassa (Y) on 72 kuvapistettä. Jokaisessa U- ja V-juovassa on 36 kuvapistettä. Jokainen kuvapiste koodataan kahdeksan bitin tarkkuudella. Tästä voidaan laskea tarvittava bittimäärä kutakin kenttää kohti: 288 ( ) 8 = bittiä. Kenttiä lähetetään 5 kappaletta sekunnissa, joten bittinopeudeksi tulee bit/s = miljoonaa bittiä/s. Televisiokanavan kaistanleveydelle voidaan tyypillisesti koodata 32 miljoonaa bittiä sekunnissa (UHF-kanava: kaista 8 MHz, koodaustehokkuus 4 bit/hz), joten ilman kompressiota yhden kanavan digitaaliseen esittämiseen tarvitaan yli viisi analogista TV-kanavaa. Kompressiota käyttäen yksi UHF-kanava voi välittää neljä digitaalista kanavaa.
98 9 823 JOHDATUS SIGNAALINKÄSITTELYYN 8.2 Pakkausmenetelmien kaksi tyyppiä Pakkausmenetelmät jaetaan kahteen luokkaan: häviöttömiin (lossless) ja häviöllisiin (lossy) menetelmiin. Häviöttömät menetelmät ovat yleiskäyttöisiä ja perustuvat datan tilastollisiin ominaisuuksiin. Esimerkiksi englanninkielisen tekstin (7 bittiä/kirjain) pakkaaminen häviöttömästi yleisesti käytetyllä Huffman-algoritmilla säästää tilaa n. 23%. Häviöttömiä menetelmiä käytetään yleensä kun datan luonnetta ei ole määritelty (voi siis olla tekstiä, kuvaa, ääntä, jne.). Yleisimmin käytettyjä menetelmiä ovat Lempel-Ziv-koodaus, Huffman-koodaus sekä aritmeettinen koodaus. Häviöllisiä menetelmiä käytetään kun pakattavan datan tyyppi tiedetään. Tällöin voidaan hyödyntää sovelluksen ominaispiirteitä valitsemaan poistettavat piirteet. Esimerkiksi puheen pakkauksessa voidaan jättää monia taajuuksia kokonaan pois. Häviöllisten menetelmien tuloksena oleva pakattu koodi on usein tapana pakata lisäksi häviöttömillä koodausmenetelmillä. 8.3 Informaatioteoriaa Häviötön koodaus pohjautuu informaatioteoriaan, jonka peruskäsitteet ovat informaatio ja entropia. Oletetaan, että datalähde tuottaa sanomia r,r 2,...,r L, joiden todennäköisyydet ovat p,p 2,...,p L. Tällöin sanoman r k sisältämä informaatio on I k = log 2 p k bittiä. Jos jonkin sanoman todennäköisyys on suuri (p k ), on sen informaatio lähellä nollaa. Toisaalta hyvin epätodennäköisen sanoman sisältämä informaatio on hyvin suuri. Epätodennäköinen sanoma: "luennot on peruttu". Todennäköisyys on melko pieni ja sanoman sisältämä informaatio on näin ollen melko suuri. Todennäköinen sanoma: "luennot pidetään normaalisti". Todennäköisyys on suuri ja sanoman sisältämä informaatio on pieni (tiedetään muutenkin). Jos jonkin sanoman todennäköisyys on nolla, ei informaatiota ole määritelty. Toisaalta tällaista sanomaa ei myöskään esiinny koskaan, joten sen voi jättää pois tarkasteluista ja olettaa että kaikki todennäköisyydet ovat nollaa suurempia. Lähteen entropia on lähteen tuottama keskimääräinen informaatio: H = L p k log 2 p k bittiä. k= Entropia antaa alarajan häviöttömien pakkausmenetelmien tehokkuudelle: mikään (pelkkiin tilastollisiin ominaisuuksiin perustuva) häviötön pakkausmenetelmä ei voi päästä entropiaa pienempään bittimäärään. Oletetaan että lähde tuottaa binääridataa siten, että nollan todennäköisyys on p ja ykkösen p, missä <p<. Lähteen entropia on tällöin H = p log 2 p ( p) log 2 ( p). Tämän lausekkeen kuvaaja todennäköisyyden p funktiona on alla olevassa kuvassa.
99 8. KUVAN JA VIDEON PAKKAAMINEN Kuvasta nähdään, että entropia on suurimmillaan kun nollan ja ykkösen todennäköisyydet ovat samat. Yleensäkin entropia saa suurimman arvonsa kun sanomien todennäköisyydet ovat yhtä suuria. Tällöin tarvittava bittimäärä on suurin. 8.4 Huffman-koodaus Huffman-koodaus on yleisesti käytetty häviötön koodausmenetelmä. Menetelmä arvioi symbolien todennäköisyyksiä ja esittää usein esiintyvät symbolit lyhyin bittijonoin ja harvemmin esiintyvät pidemmin merkkijonoin. Alla oleva taulukko kuvaa erästä Huffmankoodia. r k p k Suora koodaus Huffman-koodi r.2343 r.2296 r r r r r r 7.3 Keskimääräinen Huffman-koodatun sanan pituus saadaan kertomalla sanojen pituudet niiden todennäköisyyksillä ja tulos on bittiä/symboli (parannus n. 2%). Todennäköisyyksistä laskettu lähteen entropia H = bittiä/symboli (teoreettinen maksimipakkaus n. 4%). Kooditaulukko generoidaan alla olevan kuvan mukaisella menettelyllä. Ensin todennäköisyydet asetetaan suuruusjärjestykseen, minkä jälkeen aletaan muodostaa puurakennetta. Jokaisella iteraatiokierroksella valitaan kaksi pienintä todennäköisyyttä ja yhdistetään ne saman puun haaraan summaten ne samalla. Kun puu on valmis, merkitään jokainen alas lähtevä haara nollalla ja ylös lähtevä ykkösellä. Tämän jälkeen kutakin symbolia vastaava Huffman-koodi saadaan etenemällä juuresta kyseiseen symboliin. r.2343 r.2296 r r r r r r
100 JOHDATUS SIGNAALINKÄSITTELYYN 8.5 Virheetön kuvakoodaus Digitaalisia kuvia pakattaessa voidaan pakkaustulosta parantaa pelkkään Huffman-koodaukseen verrattuna. Saavutettava parannus perustuu suurelta osin vierekkäisten kuvapisteiden suureen korrelaatioon. Yksinkertaisimmin tätä voidaan hyödyntää koodaamalla peräkkäisten pikseleiden erotus absoluuttisten pikseliarvojen asemesta. Alla oleva kuva esittää erään kuvan histogrammia (harmaasävyjakaumaa) sekä peräkkäisten pisteiden erotusten jakaumaa. Erotuskuvan histogrammi on kapeampi, josta seuraa pienempi entropia. Alkuperäisen kuvan entropia on 7.59 bittiä/pikseli ja erotuskuvan entropia on 5.79 bittiä/pikseli. Näin ollen erotuskuva on mahdollista koodata häviöttömästi pienempään tilaan kuin alkuperäinen kuva. Käytännön häviöttömässä koodauksessa käytetään hienostuneempia ennustusmenetelmiä kuin vertailu viereiseen pikseliin. Jos ennustus toimii paremmin, histogrammista tulee vieläkin kapeampi ja entropia pienenee edelleen. 5 x Erotuskuvan histogrammi Alkuperäinen histogrammi Häviöllinen koodaus Häviöllisessä pakkauksessa sallitaan vähäisten yksityiskohtien häviäminen. Näin päästään paljon parempiin pakkaustuloksiin, on helposti mahdollista pakata kuva jopa kymmenenteen osaansa alkuperäisestä ilman että laatu merkittävästi heikkenee. Viime aikoina merkittävimmät standardit ovat perustuneet ns. muunnoskoodaukseen, jossa kuva muunnetaan toiseksi lineaarisella kääntyvällä operaatiolla ja ainoastaan osa tuloksen kertoimista säilytetään (ja koodataan häviöttömästi). Kyseinen operaatio tulee valita niin, että mahdollisimman suuri osa alkuperäisen kuvan energiasta on mahdollisimman pienessä määrässä muunnoskuvan kertoimia. Esimerkiksi diskreetti kosinimuunnos (DCT) toimii näin. Alla olevassa kuvassa on alkuperäinen kuva ja sen kosinimuunnos. Kosinimuunnoksessa suurin osa energiasta on keskittynyt vasemmassa yläkulmassa oleviin
101 8. KUVAN JA VIDEON PAKKAAMINEN 93 kertoimiin. Yksinkertaisin menetelmä bittien säästämiseksi on tallentaa ainoastaan vasemman yläkulman kertoimet ja laittaa muut nolliksi Seuraavissa kuvissa on tulos kun alkuperäisistä kertoimista on jäljellä /4 (vasemmalla) ja /6 (oikealla) vasemmasta yläkulmasta. Todellisuudessa poistettavat kertoimet valitaan hienostuneemmin menetelmin, mutta perusidea on sama Kosinimuunnoksen lisäksi käyttökelpoisia muunnoksia ovat Fourier-muunnos (DFT), sinimuunnos (DST), Hadamard-muunnos sekä Karhunen-Loeve-muunnos (KLT). Näistä Karhunen-Loeve-muunnos on erityisasemassa, koska se on optimaalinen (pakkaa energian pienimmälle mahdolliselle alueelle). Tämä tarkoittaa, että KLT riippuu kuvasta. Siksi kompressoitaessa täytyy ensin laskea muunnosmatriisi ja tämän jälkeen tallettaa myös se. Koska tämä vie ylimääräistä tilaa ja laskenta-aikaa, halutaan käytännössä käyttää kiinteitä muunnoksia. Käytännössä on osoittautunut, että DCT on usein hyvin lähellä optimaalista tulosta (KLT:tä). Siitä onkin muodostunut käytännön standardi muunnoskoodauksessa. Kuvan x(i, j) (i =,,..., M ja j =,,..., N ) diskreetti kosinimuunnos y(k, l) (k =,,...,M ja l =,,...,N ) määritellään kaavalla y(k, l) = c(k)c(l) 4 M i= j= N ( (2i + )kπ x(i, j) cos 2M ) cos ( (2j + )lπ 2N ),
102 JOHDATUS SIGNAALINKÄSITTELYYN missä c(k) = { 2, kun k =,, muulloin. Käänteismuunnos on vastaavaa muotoa: x(i, j) = M N k= l= y(k, l) c(k)c(l) 4 ( (2i + )kπ cos 2M ) cos ( (2j + )lπ Kosinimuunnos voidaan toteuttaa kahdella matriisikertolaskulla (matriisien koot N N ja M M), joten laskennan kompleksisuus on kertaluokkaa O(max{N, M} 2 ). On olemassa nopeita algoritmeja, joilla laskennan kompleksisuus on vain O(max{N, M} log(max{n, M})) (itse asiassa FFT:n avulla voidaan laskea DCT). Kuitenkin on toivottavaa, että N ja M ovat mahdollisimman pieniä. Siksi pakattava kuva jaetaan yleensä pienempiin lohkoihin, jotka kompressoidaan yksitellen. Tyypillinen lohkon koko on 8 8. Muunnoskoodauksen perusidea on siis seuraava:. Jaa kuva 8 8-lohkoihin. 2. Laske kunkin lohkon kosinimuunnos. 3. Poista (tai kvantisoi) muunnoskertoimia siten, että suurimmat (yleensä vasemman yläkulman) kertoimet säilyvät. 4. Koodaa jäljelle jääneet kertoimet häviöttömästi esimerkiksi Huffman-koodauksella. 2N ). 8.7 Videokuvan koodaus Videokuvaa koodattaessa käytetään suureksi osin samoja periaatteita kuin yksittäisten kuvien koodauksessa. Pakkaus on häviöllistä ja perustuu kosinimuunnoksen tiettyjen kertoimien unohtamiseen. Kuitenkin liikkuvan kuvan pakkauksessa on mahdollista päästä huomattavasti parempiin pakkaustuloksiin ottamalla huomioon kolmas dimensio: aika. Videokuvassa kuvien taajuus on tavallisesti 25 Hz. Toisin sanoen kuva vaihtuu 25 kertaa sekunnissa. Useimmissa tilanteissa kaksi peräkkäistä kuvaa eroavat toisistaan hyvin vähän. Näin ollen tuntuu turhalta koodata kaksi miltei samanlaista kuvaa peräkkäin. Tämän aikaredundanssin (temporal redundancy) poistamiseksi tarvitaan liikkeen kompensointia. Pakkaustulosta voitaisiin yksinkertaisimmin parantaa tallentamalla aina kahden peräkkäisen kuvan erotus. Erotuskuvassa olisi paljon nollia, jolloin sen entropiakin olisi pienempi. Kuitenkin tätäkin pakkaustulosta voidaan edelleen parantaa liikkeen kompensoinnin avulla. Silloin kustakin DCT-koodattavasta 8 8-lohkosta arvioidaan sen vastinkohta edellisessä kuvassa. Tämän jälkeen koodataan tämän vastinkohdan koordinaatit liikevektorin muodossa sekä lohkojen erotuksen DCT. Tästä DCT:stä poistetaan jälleen osa kertoimista ja jäljelle jääneet talletetaan.
103 8. KUVAN JA VIDEON PAKKAAMINEN 95 Harjoitustehtäviä 8.. (Matlab) Lataa kuva gatlin muuttujaan X komennolla load gatlin. Kuvan näet komennolla imagesc(x). Ota kuvan kaksiulotteinen diskreetti Fourier-muunnos komennolla y=fft2(x);. Katso kuva komennolla imagesc(abs(y),[,5]). Jälkimmäiset parametrit ilmoittavat kuinka kuva skaalataan harmaasävyasteikolle. Tuloskuvassa vaalea piste vastaa suurta arvoa. Yleensä FFT-kuvan origo siirretään kuvan keskelle. Tätä varten on Matlabissa komento fftshift. Aja siis FFT-kuva tuon komennon läpi ennen katsomista (Matlab) Kun sinulla on edellisen tehtävän siirretty FFT (ilman itseisarvoa) sanokaamme muuttujassa z, voit tutkia taajuuden käsitettä poistamalla matalia tai korkeita taajuuksia. Matalat taajuudet ovat kuvan keskellä (fftshiftin jälkeen). Muodosta seuraavaksi nollakuva: w=zeros(size(z)); ja sijoita sen keskelle vastaava kohta aiemmin lasketusta FFT:stä: w(2:28,22:42)=z(2:28,22:42);. Tulos koostuu siis pelkästään matalista taajuuksista muunnoksen keskeltä. Katso tuloskuva ja totea, että näin todellakin on. Siirrä tämän jälkeen kuva alkuperäiselle paikalleen (ifftshift) ja ota käänteinen FFT (ifft2). Katso saamasi kuvan reaaliosa (real). Kuvan pitäisi koostua pääosin matalista taajuuksista. Katso myös korkeat taajuudet, jotka löydät Fourier-muunnoksen lineaarisuuden vuoksi alkuperäisen ja matalataajuisen kuvan erotuksena Eräs datalähde tuottaa symboleita r, r, r 2 ja r 3 todennäköisyyksillä p =.8, p =.469, p 2 =.286 ja p 3 =.659. Mikä on lähteen entropia? Montako prosenttia pienempään tilaan data voidaan parhaimmillaan pakata häviöttömästi verrattuna pakkaamattomaan tilantarpeeseen? 8.4. Etsi Huffman-koodi kun lähde tuottaa symboleita r,r,...,r 9 todennäköisyyksillä.37,.378,.78,.83,.869,.979,.253,.562,.577, Laske edellisen tehtävän lähteen entropia sekä keskimääräinen koodisanan pituus (Matlab) Kopioi kuva lenna.mat osoitteesta (Lintulassa ~hehu/public_html/858/lenna.mat) itsellesi ja lataa se Matlabiin muuttujaan X komennolla load. Matlabin valmis kaksiulotteinen DCT ei toimi kaikissa Matlabin versioissa, joten käytetään yksiulotteista versiota (dct). Sen avulla voidaan tehdä kaksiulotteinen muunnos muuntamalla ensin kukin pystyrivi (dct(x) tekee tämän), transponoimalla (transpose) tulosmatriisi ja muuntamalla näin saatu matriisi (jolloin X:n vaakarivit muunnetaan). Katso kuva komennolla imagesc 2. Muodosta seuraavaksi nollakuva: w=zeros(size(y)); ja sijoita sen vasempaan yläkulmaan vastaava kohta aiemmin lasketusta DCT:stä: w(:52,:52) Teorian mukaan kuvan pitäisi olla reaalinen jo valmiiksi, mutta pyöristysvirheistä johtuen näin ei ole. 2 Jos värit ovat oudot anna komento colormap( gray ).
104 JOHDATUS SIGNAALINKÄSITTELYYN =y(:52,:52);. Tulos koostuu siis pelkästään muunnoksen vasemman yläkulman komponenteista, joiden lukumäärä on noin yksi sadasosa kaikista komponenteista. Katso tuloskuva ja totea, että näin todellakin on. Ota seuraavaksi saadun kuvan käänteinen DCT vastaavasti kuin DCT aiemmin. Tuloksen pitäisi muistuttaa läheisesti alkuperäistä kuvaa (Matlab) Tee edellisen tehtävän koe suuremmilla määrillä DCT-komponentteja komennossa w(:52,:52)=y(:52,:52); ja arvioi riittävää lukumäärää, jotta eroa alkuperäiseen ei huomaa (Matlab) Lasketaan tässä tehtävässä kuvan lenna entropia. Ensin pitää saada selville todennäköisyysjakauma, joka saadaan histogrammista h=hist(x(:),(:255)); normalisoimalla: p=h/sum(h);. Katso jakauman kuvaaja ruudulla. Entropia löytyy nyt kaavalla 256 H = p k log 2 p k, k= missä luvut p k, k =,2,...,256ovat vektorin p komponentit. Osa todennäköisyyksistä on nollia, jolloin Matlab antaa virheilmoituksen laskettaessa logaritmia. Tästä selvitään esimerkiksi sijoittamalla Matlabissa logaritmin sisällä olevan vektorin p paikalle viritys p+(p==). Laske kuvan entropia (Matlab) Tallentamalla peräkkäisten pikseleiden erotus voidaan lähellä toisiaan olevien pikseleiden korrelaatiota käyttää hyväksi entropian pienentämisessä. Vierekkäisten pikseleiden erotuksista koostuva kuva saadaan komennolla d=(x(:52, 2:52)-X(:52,:5)); Katso saatu kuva. Piirrä histogrammi ruudulle komennolla h2=hist(d(:),(-3:6)); plot((-3:6),h2). Ala- ja ylärajat ovat erotuskuvan suurin (6) ja pienin arvo ( 3). Laske tästä histogrammista erotuskuvan entropia. 8.. (Matlab) Diskreetti kosinimuunnos voidaan toteuttaa nopeasti käyttäen FFT:tä. Toteuta funktio function X=dct_oma(x) seuraavasti. Muunnettavan vektorin (x(),x(),x(2)...x(n )) T termit pitää järjestää uudelleen ennen FFT:n laskentaa. Esimerkiksi vektorista (, 2, 3, 4, 5, 6, 7, 8, 9, ) T tulee vektori (, 3, 5, 7, 9,, 8, 6, 4, 2) T, eli ensin joka toinen luku vasemmalta oikealle ja sen jälkeen loput käänteisessä järjestyksessä. Kaavoina uusi järjestys on seuraavaa muotoa. x 2 (n) = x(2n), kun n N/2, x 2 (N n ) = x(2n + ), kun n N/2. Matlabilla järjestäminen tehdään esimerkiksi komennoilla (olettaen, että N on parillinen).
105 8. KUVAN JA VIDEON PAKKAAMINEN 97 x2=zeros(size(x)); x2(:n/2)=x(:2:n-); x2(n:-:n/2+)=x(2:2:n); Tämän jälkeen vektorista x2 lasketaan FFT (X=fft(x2);), kerrotaan tuloksen k:s termi luvulla e πik/2n (X=X.*exp(-i*pi*(:N-) /(2*N));) ja otetaan tuloksesta reaaliosa (X=real(X);). Vektorin X ensimmäinen termi täytyy vielä kertoa luvulla /N ja muut termit luvulla 2/N, minkä jälkeen vektorissa X on vektorin x diskreetti kosinimuunnos. Vertaa rutiiniasi Matlabin dct-rutiiniin. Komentojen dct((:) ) ja dct_oma((:) ) pitäisi tuottaa sama tulos.
106 JOHDATUS SIGNAALINKÄSITTELYYN
107 Luku 9 Digitaalinen kuvankäsittely Tässä kappaleessa luodaan lyhyt katsaus digitaaliseen kuvankäsittelyyn ja joihinkin sen sovelluksiin. Yksinkertaisimmillaan kuvankäsittelyä voidaan pitää perusmenetelmien laajennuksena kahteen ulottuvuuteen. Koska kuvien rakenne sekä havaitsemismekanismi kuitenkin poikkeavat selvästi esimerkiksi äänisignaalien vastaavista, ovat kuvankäsittelyn menetelmät usein selvästi poikkeavia tähän mennessä opituista yksiulotteisten signaalien käsittelymenetelmistä. Arkikielessä kuvankäsittely viittaa usein käsin tapahtuvaan kuvien sisällön tai ulkoasun muokkaamiseen; kuvamanipulaatioon. Tässä kappaleessa tarkasteltavat menetelmät ovat kuitenkin pääosin automaattisia tietokoneella toteutettavia algoritmeja, joiden pääasiallinen käyttökohde on kuvan ulkoasun muokkaaminen käyttötarkoituksen mukaan. Kuvankäsittelymenetelmät voidaan jakaa päämäärän mukaan eri luokkiin. Näitä luokkia ovat mm. seuraavat. Kuvan ehostus (engl. image enhancement) tarkoittaa kuvan tiettyjen piirteiden korostamista joko ihmissilmälle tai myöhemmille operaatioille sopivammaksi. Esimerkiksi alivalottuneen valokuvan kontrastia parantamalla saadaan kohde paremmin esille. Usein ehostaminen tapahtuu interaktiivisesti, eli ohjelman käyttäjä kokeilee eri menetelmiä ja valitsee niistä parhaan näköaistinsa avulla. Ehostuksessa ei ole yleensä yhtä oikeaa lopputulosta vaan tavoite riippuu käyttötarkoituksesta. Ihmisen katseltavaksi tarkoitetulla kuvalla on erilaiset ulkoasuvaatimukset kuin konenäköä varten ehostettavalla kuvalla. Kuvan restaurointi (engl. image restoration) tarkoittaa kuvassa olevien häiriöiden poistamista. Esimerkiksi tärähtänyttä valokuvaa voidaan jonkin verran tarkentaa, jos tärähtämisen suunnasta ja määrästä tiedetään jotain. Monet restaurointimenetelmät ovat tuttuja yksiulotteisesta signaalinkäsittelystä, ja käyttävät muun muassa kaksiulotteisia FIR-suotimia. Ehostuksesta poiketen restauroinnissa ajatellaan usein, että ideaalinen ratkaisu on olemassa. Ideaalinen ratkaisu voi olla esimerkiksi kuva josta tietyn tyyppinen häiriö on poistettu. Kuva-analyysi (engl. image analysis) pyrkii analysoimaan kuvan sisältöä. Tämä saattaa tarkoittaa esimerkiksi kuvassa olevien kirjainten tunnistamista, ihmisen automaattista tunnistamista sormenjälkikuvan avulla tai tehtaassa tapahtuvaa laaduntarkkailua liukuhihnalta otettujen kuvien avulla. Ennen kuva-analyysivaihetta ku-
108 823 JOHDATUS SIGNAALINKÄSITTELYYN vaa pyritään usein restauroimaan ja ehostamaan parhaan mahdollisen tuloksen saamiseksi. 9. Kaksiulotteiset järjestelmät Monet restaurointityökalut perustuvat kaksiulotteisiin lineaarisiin järjestelmiin sekä kaksiulotteisen Fourier-muunnoksen käyttöön. Seuraavaksi määritellään kaksiulotteisten lineaaristen järjestelmien peruskäsitteet. Kaksiulotteisesta diskreettiaikaisesta signaalista käytetään merkintää x(m, n), missä m, n Z. Kuva on kaksiulotteinen signaali, joka on määritelty vain tietyissä pisteissä (esim. m {,,...,M } ja n {,,...,N }). Indeksi m kertoo kuvapisteen (pikselin) pystykoordinaatin ja indeksi n kuvapisteen vaakakoordinaatin kuvan vasemmasta ylälaidasta lukien. Äärimmäisenä vasemmassa yläkulmassa oleva pikseli on x(, ). Kaksiulotteinen impulssi δ(m, n) määritellään seuraavasti {, kun m = ja n =, δ(m, n) =, muulloin. Kaksiulotteinen järjestelmä muuntaa kaksiulotteisen signaalin toiseksi vastaavaksi signaaliksi. Jos järjestelmä on lineaarinen ja aikainvariantti, sen impulssivaste h(m, n) määrää järjestelmän täydellisesti (aivan kuten yksiulotteisessa tapauksessakin). Tällöin vaste y(m, n) on herätteen x(m, n) ja impulssivasteen h(m, n) kaksiulotteinen konvoluutio y(m, n) =h(m, n) x(m, n) = h(j, k)x(m j, n k). j= k= Kaksiulotteisesta impulssivasteesta h(m, n) käytetään usein englanninkielistä nimeä point spread function; PSF, koska se kertoo kuinka yksittäinen valkoinen piste (eli esimerkiksi impulssi δ(m, n)) leviää kulkiessaan järjestelmän läpi. Kaksiulotteinen diskreetti Fourier-muunnos muuntaa kuvan x(m, n) (m {,,...,M } ja n {,,...,N }) toiseksi kuvaksi X(m, n) (m {,,...,M } ja n {,,...,N }) kaavalla X(m, n) = M j= N k= x(j, k)w jm M w kn N, missä w N on ykkösen N:s juuri (w N = e 2πi/N ). Käänteismuunnos määritellään kaavalla x(m, n) = M N X(j, k)w jm M MN wkn N, j= Vastaavalla tavalla voidaan määritellä Fourier-muunnoksen, Fourier-sarjan ja diskreettiaikaisen Fourier-muunnoksen kaksiulotteiset yleistykset. k=
109 9. DIGITAALINEN KUVANKÄSITTELY Kaksiulotteinen DFT on separoituva, eli se voidaan laskea kahden yksiulotteisen DFT:n avulla. Tämä nähdään muokkaamalla kaksiulotteisen DFT:n kaavaa seuraavasti. X(m, n) = = M j= M j= N k= w jm M x(j, k)w jm M w kn N ( N k= x(j, k)w kn N ) Nyt havaitaan, että sulkujen sisällä oleva lauseke on kuvan j:nnen vaakarivin DFT. Jos tästä käytetään merkintää N X j (n) = x(j, k)w kn N, saa X(m, n) muodon k= N X(m, n) = X j (n)w jm N, j= mikä on jonon X j (n) yksiulotteinen DFT. Kaksiulotteinen DFT saadaan siis muuntamalla kuvan jokainen vaakarivi yksiulotteisella DFT:llä (käytännössä tietysti FFT:llä) ja muuntamalla tuloksen jokainen pystyrivi yksiulotteisella DFT:llä. Alla vasemmalla olevan kuvan jokainen vaakarivi on muunnettu ja tulos on nähtävissä oikealla olevassa kuvassa. Vaaleammat pisteet kuvaavat suuria arvoja. Muunnoksesta nähdään selvästi mm. alkuperäisen kuvan yläosassa olevan taivaan vaikutus muunnokseen. Yläosan harmaasävy on miltei vakio, ja näinollen kyseiset vaakarivit sisältävät pääosin matalia taajuuksia. Matalat taajuudet on kuvattu kuvan vasemmassa laidassa (ja symmetrisyyden vuoksi myös oikeassa), mihin yläosan energia selvästi keskittyykin Vaakarivimuunnosten jälkeen muunnetaan jokainen pystyrivi. Tulos on alla vasemmalla. Nyt nollataajuus on vasemmassa yläkulmassa ja korkein taajuus aivan kuvan keskellä. Muunnoksen itseisarvo on vaaka- ja pystysuunnassa symmetrinen, kuten yksiulotteisen
110 2 823 JOHDATUS SIGNAALINKÄSITTELYYN DFT:n yhteydessä opittiin. Muunnoskuvan havainnollisuuden lisäämiseksi on yleensä tapana siirtää nollataajuus kuvan keskelle, kuten oikeanpuoleisessa kuvassa on tehty Muunnoskuvasta nähdään, että nollataajuus ja sen lähellä olevat matalat taajuudet ovat voimakkaimpia. Siirryttäessä nollataajuuden kohdalta vaakasuoraan oikealle nähdään kuinka paljon kuvassa on eritaajuisia vaakasuoria värähtelyjä. Toisaalta nollataajuudesta ylöspäin löytyvät pystysuorat värähtelyt. Tämä näkyy selvästi alla vasemmalla olevan keinotekoisen testikuvan Fourier-muunnoksesta. Kuva muodostuu pelkästään vaakasuorasta värähtelystä, joten oikealla olevassa DFT:ssä nähdään ainoastaan yksi taajuus nollataajuuden oikealla puolella. Fourier-muunnoksen itseisarvon symmetrisyydestä johtuen kuvassa on myös toinen piste vastaavan negatiivisen taajuuden kohdalla
111 9. DIGITAALINEN KUVANKÄSITTELY 3 Kaksiulotteinen DFT voidaan esittää myös matriisien avulla. Aiemmin määriteltiin Fouriermuunnoksen muunnosmatriisi N:n mittaiselle signaalille w N w N w N... w N w N w N w 2 N... w (N ) N F N = w N w 2 N w 4 N... w 2(N ) N w N w (N ) N w 2(N ) N... w (N )2 N Jos kuvan pikseliarvot muodostavat matriisin X: x(, ) x(, ) x(, N ) x(, ) x(, ) x(, N ) X =......, x(m, ) x(m, ) x(m, N ) saadaan vaakarivit muunnettua kertomalla kuva X muunnosmatriisilla F N oikealta, s.o., XF N. Tämän jälkeen saadaan pystyrivit muunnettua kertomalla matriisi XF N muunnosmatriisilla F M vasemmalta. Näin ollen kuvan X kaksiulotteinen DFT on matriisien avulla esitettynä yksinkertaisesti F M XF N. Esimerkiksi 4 4-kuvan X = DFT saadaan matriisikertolaskulla F 4 XF 4 = i i i i i i i i i i = 442 2i i i 4 4i i i i 4 + 4i i 69 56i 9.2 Dekonvoluutio Kuvassa olevien häiriöiden syntyä mallinnetaan usein kaksiulotteisella LTI-järjestelmällä. Tällöin siis havaittu kuva y(m, n) on kulkenut jonkin lineaarisen järjestelmän läpi ja samalla sen laatu on heikentynyt. Tällöin siis ajatellaan, että on olemassa ns. ideaalikuva Itse asiassa kertolasku tehdään muunnosmatriisin transpoosilla, mutta symmetrian vuoksi transpoosi voidaan jättää pois.
112 4 823 JOHDATUS SIGNAALINKÄSITTELYYN x(m, n), jonka laatu on täydellinen. Jos mainitun lineaarisen järjestelmän impulssivaste on h(m, n), on voimassa relaatio y(m, n) =h(m, n) x(m, n). Yksiulotteisessa tapauksessa lineaarisen järjestelmän aiheuttamaa vääristymää korjattiin Fourier-muunnosten avulla. Samaa menetelmää voidaan käyttää myös nyt. Ottamalla Fourier-muunnos yllä olevan yhtälön molemmista puolista, muuttuu konvoluutio kertolaskuksi ja saadaan yhtälö Y(m, n) =H(m, n)x(m, n). Näin ollen ideaalikuvan DFT saadaan teoriassa yhtälöstä X(m, n) = Y(m, n) H(m, n). Ongelmaksi tässä jakolaskussa tulee kuitenkin mahdolliset nollalla jakamiset. Kirjallisuudessa esitetään useita ratkaisuja tähän ongelmaan. Yksi mahdollisuus on lisätä pieni positiivinen luku impulssivasteen DFT:hen, eli arvoida ideaalikuvan DFT:tä kaavasta X(m, n) = Y(m, n) H(m, n)+ɛ, missä ɛ on pieni positiivinen reaaliluku. Tällöinkin nimittäjässä voi toki teoriassa olla nolla, mutta käytännössä se on hyvin epätodennäköistä. Toinen ratkaisu on tehdä jakolasku normaalisti nollasta poikkeaville funktion H(m, n) arvoille ja nolla-arvojen tapauksessa sijoittaa funktion X(m, n) arvoksi nolla. Kaavamuodossa tämä esitetään seuraavasti: X(m, n) = { Y(m,n), H(m,n) jos H(m, n),, jos H(m, n) =. Tästä menetelmästä käytetään nimitystä pseudoinverssi tai yleistetty käänteissuodin. Yleisimmin käytetty menetelmä on ns. Wiener-suodin, jossa käänteissuotimen DFT:tä arvioidaan tieteellisemmin; havaitun kuvan ja siinä olevan kohinan tilastollisiin ominaisuuksiin perustuen. Aihepiiri käsitellään kuvankäsittelyn kursseilla. Konvoluutiolla on menestyksekkäästi mallinnettu esimerkiksi väärin tarkennetun linssin ja kameran tärähtämisen vaikutusta. Alla vasemmalla on digitaalikameralla otettu kuva, jossa kamera on liikkunut vasemmalle kuvaa otettaessa. Kameran nopeutta voidaan arvioida kuvassa olevien terävien reunojen kohdille piirtyneistä varjokuvista; varjot näyttäisivät olevan noin 3 pikseliä pitkiä.
113 9. DIGITAALINEN KUVANKÄSITTELY Tällöin havaittu kuva on muotoa y(m, n) =h(m, n) x(m, n), missä x(m, n) on tärähtämätön kuva ja h(m, n) on liikkuvan kameran vaste impulssille. Jos liikkuvalla kameralla otetaan kuva yksittäisestä kirkkaasta pisteestä mustalla taustalla, lopputuloksena on yksittäinen viiva, tässä tapauksessa vaakasuora viiva, jonka pituus on noin 3 pikseliä. Siis {, kun n = ja m =,,...,29, 3 h(m, n) =, muilla arvoilla m {,,...,479} ja n {,,...,639}. Huomaa, että impulssivastekuvasta tehdään samankokoinen kuin havaitusta kuvasta, jotta Fourier-tasossa tapahtuva jakolasku olisi mahdollinen. Vakioarvon sijasta voidaan 3 käyttää kasvavia tai laskevia arvoja, jos kameran liike on kiihtyvää tai hidastuvaa. Tässä tapauksessa paras tulos saavutettiin laskevilla arvoilla. Seuraavaksi sekä impulssivasteesta h(m, n) että havaitusta kuvasta y(m, n) otetaan kaksiulotteinen DFT. Tämän jälkeen kuvan DFT:n Y(m, n) jokainen piste jaetaan impulssivasteen DFT:n H(m, n) vastaavalla pisteellä. Nollalla jakamiselta vältyttiin tässä esimerkissä lisäämällä vakio.5 impulssivasteen DFT:hen: X(m, n) = Y(m, n) H(m, n)+.5. Kun tuloksesta otetaan vielä käänteinen kaksiulotteinen DFT, lopputulos on alla olevan näköinen. Vaikka liikkeen vaikutusta ei aivan täysin voitukaan eliminoida, on tulos silti selvästi alkuperäistä parempi. Erityisesti kuvassa olevat pienet yksityiskohdat (esimerkiksi kirjojen selkämysten teksti) tulivat selvemmiksi.
114 6 823 JOHDATUS SIGNAALINKÄSITTELYYN Piste-ehostus Kaksiulotteisia muistittomia järjestelmiä kutsutaan pisteoperaatioiksi (engl. point operation) tai piste-ehostukseksi. Näiden järjestelmien vaste riippuu ainoastaan yhdestä herätteen arvosta, eli ne soveltavat samaa funktiota yhteen kuvan pisteeseen kerrallaan. Useimmiten piste-ehostus lasketaan nimensä mukaisesti kuuluvaksi kuvaa ehostavien operaatioiden joukkoon. Yleisesti käytettyjä pisteoperaatioita ovat mm. gammakorjaus (engl. gamma correction) ja histogrammin ekvalisointi (engl. histogram equalization) Gammakorjaus Tietokoneen monitoreilla ja televisioilla on tapana vääristää kirkkautta siten, etteivät kuvat näytä ruudulla luonnollisilta. Tätä efektiä kompensoidaan ns. gammakorjauksella. Useimmiten kuvaputkella näkyvän pisteen intensiteetti riippuu kuvattavan kohteen kirkkaudesta epälineaarisesti noudattamalla jotain potenssifunktiota. Jos siis videosignaalin jännite on u, ruudulla havaittu intensiteetti I on suunnilleen muotoa I = u γ. Eri järjestelmissä (PAL, NTSC, jne.) eksponentti gamma vaihtelee ja lisäksi mittauksilla saatu funktio voi olla hieman yllä olevaa monimutkaisempi. Radioalan standardointijärjestö ITU-R esittää suosituksessaan BT.79: "Basic parameter values for the HDTV standard for the studio and for international programme exchange"
115 9. DIGITAALINEN KUVANKÄSITTELY 7 funktion I = { u 4.5 ( u+.99 ).99, kun u.8,.45, kun u >.8. Tämän funktion kuvaaja on esitetty alla olevassa kuvassa..8 Intensiteetti Jännite Jotta kuvat näyttäisivät luonnollisilta, tehdään tallennettavaan tai lähetettävään videosignaaliin gammakorjaus. Gammakorjaus korjaa monitorin aiheuttaman vääristymän soveltamalla havaittuun kuvaan yllä olevan funktion käänteisfunktiota, joka on f(x) = { 4.5x, kun x.8,.99x.45.99, kun x >.8. Gammakorjaus on mahdollista useimmissa kuvankäsittelyohjelmissa. Toteutuksesta riippuen ohjelmalle annetaan joko monitorin gamma (yo. esimerkissä ) tai käänteisfunktion gamma (yo. esimerkissä.45). Yleensä funktion kuvaajaa on mahdollistä vielä.45 muokata hiirellä. Mahdollisuus muokata gammakäyrää käsin avaa luonnollisesti uusia mahdollisuuksia käyttää gammakorjausta kuvan ulkoasun parantamiseen. Kuvankäsittelyohjelmissa operaation käyttötarkoitus ei yleensä liity lainkaan menetelmän alkuperäiseen ideaan eli monitorin vääristymien kompensoimiseen. Alla vasemmalla on kuva sellaisena kuin se näkyisi ruudulla ilman gammakorjausta, kun monitorin gamma on γ = = Oikealla on gammakorjattu kuva. Gammakorjauksesta löytyy tarkempaa tietoa osoitteesta GammaFAQ.html
116 8 823 JOHDATUS SIGNAALINKÄSITTELYYN Histogrammin ekvalisointi Histogrammi on käyrä, joka esittää kuvan eri harmaasävyjen määrää. Histogrammin ekvalisoinnilla pyritään saamaan histogrammi mahdollisimman tasaiseksi siten, että se levittäytyy mahdollisimman laajalle harmaasävyalueelle. Tällöinhän kuvan kontrasti paranee, koska vaaleat ja tummat pisteet erottuvat toisistaan paremmin. Esimerkki kuvasta, joka on ekvalisoinnin tarpeessa löytyy alta. Vasemmalla on ekvalisoimaton kuva ja sen histogrammi, josta nähdään valtaosan pikseleistä olevan harmaasävyalueella. Näin ollen koko harmaasävyalue ei tule tehokkaasti käytetyksi ja kuvan kontrasti on huono Pisteiden lukumäärä Pisteiden lukumäärä Harmaasävy Harmaasävy Oikealla olevan kuvan histogrammi on ekvalisoitu, eli se on muunnettu lähemmäksi tasaista histogrammia, jolloin kuvan kontrasti on parantunut. Ekvalisointi tapahtuu muuntamalla kuvan jokaisen pisteen harmaasävy n uudeksi harmaasävyksi n kaavalla n n k= =(L ) H(k) L (9.) k= H(k), missä H(k), k =,,2,...,L, on kuvan histogrammi ja L on kuvan harmaasävyjen lukumäärä (yllä olevassa esimerkissä L = 256). Luonnollisesti tuloksena saatavat arvot on pyöristettävä lähimpään kokonaislukuun. Menettely tasoittaa histogrammin, koska uusi harmaasävyarvo riippuu nykyistä harmaasävyä tummempien pisteiden määrästä. Tarkastellaan esimerkiksi yllä olevan ekvalisoimattoman kuvan histogrammia. Nyt vaikkapa harmaasävyn 5 vasemmalla puolella on 5868 pistettä, eli näin monta pistettä kuvassa on harmaasävyä 5 tummempia. Kuvassa on kaikkiaan pistettä, joten 89.5 prosenttia pisteistä on harmaasävyarvon 5 vasemmalla puolella. Jotta histogrammista tulisi tasainen, täytyisi myös 89.5 prosenttia har-
117 9. DIGITAALINEN KUVANKÄSITTELY 9 maasävyistä jäädä vasemmalle puolelle. Tämä onnistuu muuntamalla harmaasävy 5 harmaasävyksi Tekemällä sama operaatio kaikille 256:lle harmaasävyarvolle saadaan seuraava kuvaus vanhan ja uuden harmaasävyarvon välille. Uusi harmaasävy n Alkuperäinen harmaasävy n Vaaka-akselilla on alkuperäisen kuvan harmaasävyarvo ja pystyakselilla on ekvalisoidun kuvan harmaasävyarvo. Kuvan ekvalisoinnin viimeinen vaihe on muuntaa harmaasävyt piste kerrallaan yllä olevan kuvauksen avulla. Koska kaikkia tietyn harmaasävyn pisteitä käsitellään samalla tavalla, ei histogrammista tule aivan tasainen vaan siinä on erillisiä piikkejä. Tästä voitaisiin päästä eroon satunnaistamalla harmaasävyjen muunnos, eli esimerkiksi arpomalla kussakin pisteessä vanhan harmaasävyn 5 tilalle jokin harmaasävy väliltä 227,...,23 kiinteän arvon 229 asemesta. Koska histogrammin piikikkyys ei kuitenkaan heikennä kuvan visuaalista laatua, näin ei yleensä tehdä Histogrammin paikallinen ekvalisointi Toisinaan valotus kuvan eri osissa vaihtelee, ja jotkut kohdat ovat liian vaaleita ja toiset liian tummia. Tällöin kontrastin parantaminen tavallisella histogrammin ekvalisoinnilla ei auta, koska kirkkaat kohdat tulevat entistäkin kirkkaammiksi ja tummat entistäkin tummemmiksi. Tällaisissa tilanteissa voidaan käyttää histogrammin paikallista ekvalisointia, jossa ekvalisointi tehdään koko kuvan sijasta sen pienemmille osille erikseen. Kuvan suoraviivainen jako erikseen ekvalisoitaviin erillisiin lohkoihin olisi helppo ratkaisu, mutta johtaa käytännössä lohkorakenteen näkymiseen tuloskuvassa. Parempaan tulokseen päästään käymällä pisteet läpi yksi kerrallaan ja laskemalla paikallinen histogrammi ekvalisoitavan pisteen ympärillä olevista pisteistä. Tätä histogrammia käytetään sitten kaavassa (9.) muuntamaan käsiteltävän pisteen harmaasävy. Koska nyt ekvalisoinnissa käytettävä histogrammi lasketaan vain lähellä olevista pisteistä, ei samassa histogrammissa yleensä ole sekä liian vaaleita että liian tummia alueita. Lähellä olevien pisteiden (eli ikkunan) valinnassa on useita vaihtoehtoja. Helpoin vaihtoehto lienee valita neliön muotoinen alue pisteen ympäriltä, mutta teoreettisesti parhaaseen tulokseen päästään valitsemalla ympyrän muotoinen alue. Alla vasemmalla on kuva, jossa on käytetty paikallista ekvalisointia neliön muotoisella 4 4-ikkunalla. Oikealla on käytetty 2 2-ikkunaa. Tavalliseen ekvalisointiin verrattuna vasemman yläkulman ylivalottunut ja oikean alakulman alivalottunut alue ovat paremmin tasapainossa. Kuvista nähdään lisäksi, että mitä pienempi käytettävä ikkuna on, sitä selvemmin kuvan pienet yksityiskohdat tulevat esiin ja sitä jyrkempi kontrasti kuvassa on. Suuremmilla ikkunoilla tulos on pehmeämpi. Jos ikkunan koko kasvatetaan samaksi kuin kuvan koko, tulos on sama kuin tavallisella ekvalisoinnilla.
118 823 JOHDATUS SIGNAALINKÄSITTELYYN Pisteiden lukumäärä 3 2 Pisteiden lukumäärä Harmaasävy Harmaasävy Harjoitustehtäviä 9.. (Matlab) Laadi Matlab-rutiini joka ekvalisoi annetun kuvan histogrammin. Jos kuva on muuttujassa X, niin ekvalisointi tapahtuu komennolla Y=heq(X); Kuvan X histogrammin voi laskea komennolla H=hist(double(X(:)),:255); Vertaa lopuksi tulosta valmiin histeq-komennon tulokseen. Käytä kuvaa, jonka saat osoitteesta Saat ladattua kuvan Matlabiin imread-komennolla.
Signaalinkäsittelyn menetelmät
Signaalinkäsittelyn laitos. Opetusmoniste 25: Institute of Signal Processing. Lecture Notes 25: Heikki Huttunen Signaalinkäsittelyn menetelmät Tampere 25 Opetusmoniste 25: Signaalinkäsittelyn menetelmät
Heikki Huttunen Signaalinkäsittelyn perusteet
Tampereen teknillinen yliopisto. Signaalinkäsittelyn laitos. Opetusmoniste 24: Tampere University of Technology. Department of Signal Processing. Lecture Notes 24: Heikki Huttunen Signaalinkäsittelyn perusteet
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SG-1200 Signaalinkäsittelyn menetelmät, Tentti 30.1.2006 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti 18.3.2008 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SG-00 Signaalinkäsittelyn menetelmät, Tentti..005 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle ja sen
Kompleksiluvut signaalin taajuusjakauman arvioinnissa
Kompleksiluvut signaalin taajuusjakauman arvioinnissa Vierailuluento IMA-kurssilla Heikki Huttunen Lehtori, TkT Signaalinkäsittely, TTY [email protected] Department of Signal Processing Fourier-muunnos
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SG-1200 Signaalinkäsittelyn menetelmät, Tentti 21.3.2006 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti 5.5.2008 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle
SGN-1200 Signaalinkäsittelyn menetelmät Välikoe
SGN-100 Signaalinkäsittelyn menetelmät Välikoe 6.4.010 Sivuilla 1- on. Älä vastaa siihen, jos et ollut ensimmäisessä välikokeessa. Tentin kysymykset ovat sivuilla 3-4. Vastaa vain jompaan kumpaan kokeeseen,
SGN-1200 Signaalinkäsittelyn menetelmät Välikoe
SGN-00 Signaalinkäsittelyn menetelmät Välikoe 9.3.009 Sivuilla - on. Älä vastaa siihen, jos et ollut ensimmäisessä välikokeessa. Tentin kysymykset ovat sivuilla 3-4. Vastaa vain jompaan kumpaan kokeeseen,
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti
SG-1200 Signaalinkäsittelyn menetelmät, Tentti 24.4.2006 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle
Digitaalinen signaalinkäsittely Johdanto, näytteistys
Digitaalinen signaalinkäsittely Johdanto, näytteistys Teemu Saarelainen, [email protected] Lähteet: Ifeachor, Jervis, Digital Signal Processing: A Practical Approach H.Huttunen, Signaalinkäsittelyn
Säätötekniikan ja signaalinkäsittelyn työkurssi
Säätötekniikan ja signaalinkäsittelyn työkurssi Työ D102: Sinimuotoisen signaalin suodattaminen 0.4 op. Julius Luukko Lappeenrannan teknillinen yliopisto Sähkötekniikan osasto/säätötekniikan laboratorio
T SKJ - TERMEJÄ
T-61140 SKJ - termit Sivu 1 / 7 T-61140 SKJ - TERMEJÄ Nimi Opnro Email Signaalinkäsittelyyn liittyviä termejä ja selityksiä Kevät 2005 Täytä lomaketta kevään aikana ja kerää mahdollisesti puuttuvia termejä
SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen
SGN- Signaalinkäsittelyn perusteet Välikoe.5.4 Heikki Huttunen Tentissä ja välikokeessa saa käyttää vain tiedekunnan laskinta. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla -3 on. Sivuilla 4-5 on. Sivulla
SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen
SGN-11 Signaalinkäsittelyn perusteet Välikoe 3.5.16 Heikki Huttunen Laskimen käyttö sallittu. Muiden materiaalien käyttö ei sallittu. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla 1-3 on. Sivuilla 4-5
Digitaalinen signaalinkäsittely Kuvankäsittely
Digitaalinen signaalinkäsittely Kuvankäsittely Teemu Saarelainen, [email protected] Lähteet: Ifeachor, Jervis, Digital Signal Processing: A Practical Approach H.Huttunen, Signaalinkäsittelyn menetelmät,
Kompleksianalyysi, viikko 7
Kompleksianalyysi, viikko 7 Jukka Kemppainen Mathematics Division Fourier-muunnoksesta Laplace-muunnokseen Tarkastellaan seuraavassa kausaalisia signaaleja eli signaaleja x(t), joille x(t) 0 kaikilla t
z muunnos ja sen soveltaminen LTI järjestelmien analysointiin
z muunnos ja sen soveltaminen LTI järjestelmien analysointiin muunnoksella (eng. transform) on vastaava asema diskreettiaikaisten signaalien ja LTI järjestelmien analyysissä kuin Laplace muunnoksella jatkuvaaikaisten
5. Z-muunnos ja lineaariset diskreetit systeemit. z n = z
5. Z-muunnos ja lineaariset diskreetit systeemit Jono: (x(n)) n=0 = (x(0), x(1), x(2),..., x(n),...) Z-muunnos: X(z) = n=0 x(n)z n, jos sarja suppenee jossain kompleksitason osassa. Esim. 4. Ykkösjonon
TL5503 DSK, laboraatiot (1.5 op) Suodatus 1 (ver 1.0) Jyrki Laitinen
TL5503 DSK, laboraatiot (1.5 op) Suodatus 1 (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab-ohjelmistoa käyttäen. Kokoa erilliseen
Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä
Sekalaiset tehtävät, 11. syyskuuta 005, sivu 1 / 13 Tehtäviä Tehtävä 1. Johda toiseen asteen yhtälön ax + bx + c = 0, a 0 ratkaisukaava. Tehtävä. Määrittele joukon A R pienin yläraja sup A ja suurin alaraja
Numeeriset menetelmät
Numeeriset menetelmät Luento 13 Ti 18.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 13 Ti 18.10.2011 p. 1/43 p. 1/43 Nopeat Fourier-muunnokset Fourier-sarja: Jaksollisen funktion esitys
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden
SIGNAALITEORIAN KERTAUSTA OSA 2
1 SIGNAALITEORIAN KERTAUSTA OSA 2 Miten spektri lasketaan moduloiduille ja näytteistetyille tietoliikennesignaaleille? KONVOLUUTIO JA KERTOLASKU 2 Kantataajuussignaali (baseband) = sanomasignaali ilman
Matematiikan tukikurssi, kurssikerta 3
Matematiikan tukikurssi, kurssikerta 3 1 Epäyhtälöitä Aivan aluksi lienee syytä esittää luvun itseisarvon määritelmä: { x kun x 0 x = x kun x < 0 Siispä esimerkiksi 10 = 10 ja 10 = 10. Seuraavaksi listaus
IIR-suodattimissa ongelmat korostuvat, koska takaisinkytkennästä seuraa virheiden kertautuminen ja joissakin tapauksissa myös vahvistuminen.
TL536DSK-algoritmit (J. Laitinen)..5 Välikoe, ratkaisut Millaisia ongelmia kvantisointi aiheuttaa signaalinkäsittelyssä? Miksi ongelmat korostuvat IIR-suodatinten tapauksessa? Tarkastellaan Hz taajuista
1 Vastaa seuraaviin. b) Taajuusvasteen
Vastaa seuraaviin a) Miten määritetään digitaalisen suodattimen taajuusvaste sekä amplitudi- ja vaihespektri? Tässä riittää sanallinen kuvaus. b) Miten viivästys vaikuttaa signaalin amplitudi- ja vaihespektriin?
Kompleksianalyysi, viikko 5
Kompleksianalyysi, viikko 5 Jukka Kemppainen Mathematics Division Kompleksiset jonot Aloitetaan jonon suppenemisesta. Määr. 1 Kompleksiluvuista z 1,z 2,...,z n,... koostuva jono suppenee kohti raja-arvoa
IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n
IV. TASAINEN SUPPENEMINEN IV.. Funktiojonon tasainen suppeneminen Olkoon A R joukko ja f n : A R funktio, n =, 2, 3,..., jolloin jokaisella x A muodostuu lukujono f x, f 2 x,.... Jos tämä jono suppenee
Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141
Lineaarialgebra ja matriisilaskenta II LM2, Kesä 2012 1/141 Kertausta: avaruuden R n vektorit Määritelmä Oletetaan, että n {1, 2, 3,...}. Avaruuden R n alkiot ovat jonoja, joissa on n kappaletta reaalilukuja.
Säätötekniikan matematiikan verkkokurssi, Matlab tehtäviä ja vastauksia 29.7.2002
Matlab tehtäviä 1. Muodosta seuraavasta differentiaaliyhtälöstä siirtofuntio. Tämä differentiaaliyhtälö saattaisi kuvata esimerkiksi yksinkertaista vaimennettua jousi-massa systeemiä, johon on liitetty
Signaalit ja järjestelmät aika- ja taajuusalueissa
Signaalit ja järjestelmät aika- ja taajuusalueissa Signaalit aika ja taajuusalueissa Muunnokset aika ja taajuusalueiden välillä Fourier sarja (jaksollinen signaali) Fourier muunnos (jaksoton signaali)
Osa IX. Z muunnos. Johdanto Diskreetit funktiot
Osa IX Z muunnos A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 298 / 322 A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 299 / 322 Johdanto
TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen
TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab-ohjelmistoa käyttäen. Kokoa erilliseen
SIGNAALITEORIAN KERTAUSTA 1
SIGNAALITEORIAN KERTAUSTA 1 1 (26) Fourier-muunnos ja jatkuva spektri Spektri taajuuden funktiona on kompleksiarvoinen funktio, jonka esittäminen graafisesti edellyttää 3D-kuvaajan piirtämisen. Yleensä
Matematiikan tukikurssi, kurssikerta 5
Matematiikan tukikurssi, kurssikerta 5 1 Jonoista Matematiikassa jono (x n ) on yksinkertaisesti järjestetty, päättymätön sarja numeroita Esimerkiksi (1,, 3, 4, 5 ) on jono Jonon i:ttä jäsentä merkitään
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 2 Lisää osamurtoja Tutkitaan jälleen rationaalifunktion P(x)/Q(x) integrointia. Aiemmin käsittelimme tapauksen, jossa nimittäjä voidaan esittää muodossa Q(x) = a(x x
4. Fourier-analyysin sovelletuksia. Funktion (signaalin) f(t) näytteistäminen tapahtuu kertomalla funktio näytteenottosignaalilla
4.1 Näytteenottolause 4. Fourier-analyysin sovelletuksia Näyttenottosignaali (t) = k= δ(t kt). T on näytteenottoväli, ja ω T = 1 T on näyttenottotaajuus. Funktion (signaalin) f(t) näytteistäminen tapahtuu
1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.
HY / Avoin yliopisto Johdatus yliopistomatematiikkaan, kesä 2015 Harjoitus 3 Ratkaisuehdotuksia Tehtäväsarja I Seuraavissa tehtävissä harjoitellaan muun muassa kahden joukon osoittamista samaksi sekä joukon
Alipäästösuotimen muuntaminen muiksi perussuotimiksi
Alipäästösuotimen muuntaminen muiksi perussuotimiksi Usein suodinsuunnittelussa on lähtökohtana alipäästösuodin (LPF), josta voidaan yksinkertaisilla operaatioilla muodostaa ylipäästö- (HPF), kaistanpäästö-
Alias-ilmiö eli taajuuden laskostuminen
Prosessiorientoituneet mallit Todellista hybridijärjestelmää ELEC-C1230 Säätötekniikka Luku 12: Näytteenottoteoreema ja jatkuvien säätimien diskreetit approksimaatiot Prosessiorientoituneet mallit katsotaan
Virheen kasautumislaki
Virheen kasautumislaki Yleensä tutkittava suure f saadaan välillisesti mitattavista parametreistä. Tällöin kokonaisvirhe f määräytyy mitattujen parametrien virheiden perusteella virheen kasautumislain
Tenttiin valmentavia harjoituksia
Tenttiin valmentavia harjoituksia Alla olevissa harjoituksissa suluissa oleva sivunumero viittaa Juha Partasen kurssimonisteen siihen sivuun, jolta löytyy apua tehtävän ratkaisuun. Funktiot Harjoitus.
Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.
Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.
Analyysi III. Jari Taskinen. 28. syyskuuta Luku 1
Analyysi III Jari Taskinen 28. syyskuuta 2002 Luku Sisältö Sarjat 2. Lukujonoista........................... 2.2 Rekursiivisesti määritellyt lukujonot.............. 8.3 Sarja ja sen suppenminen....................
Cantorin joukon suoristuvuus tasossa
Cantorin joukon suoristuvuus tasossa LuK-tutkielma Miika Savolainen 2380207 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2016 Sisältö Johdanto 2 1 Cantorin joukon esittely 2 2 Suoristuvuus ja
Digitaalinen signaalinkäsittely Desibeliasteikko, suotimen suunnittelu
Digitaalinen signaalinkäsittely Desibeliasteikko, suotimen suunnittelu Teemu Saarelainen, [email protected] Lähteet: Ifeachor, Jervis, Digital Signal Processing: A Practical Approach H.Huttunen,
Digitaalinen Signaalinkäsittely T0125 Luento 4-7.04.2006
Digitaalinen Signaalinkäsittely T5 Luento 4-7.4.6 [email protected] Z-taso Z-taso on paljon käytetty graafinen esitystapa jonka avulla voidaan tarkastella signaalien taajuussisältöjä sekä järjestelmien
802118P Lineaarialgebra I (4 op)
802118P Lineaarialgebra I (4 op) Tero Vedenjuoksu Oulun yliopisto Matemaattisten tieteiden laitos 2012 Lineaarialgebra I Yhteystiedot: Tero Vedenjuoksu [email protected] Työhuone M206 Kurssin kotisivu
1. Esitä rekursiivinen määritelmä lukujonolle
Matematiikan laitos Johdatus Diskrettiin Matematiikkaan Harjoitus 4 24.11.2011 Ratkaisuehdotuksia Aleksandr Pasharin 1. Esitä rekursiivinen määritelmä lukujonolle (a) f(n) = (2 0, 2 1, 2 2, 2 3, 2 4,...)
MS-C1420 Fourier-analyysi osa II
MS-C142 Fourier-analyysi osa II G. Gripenberg Aalto-yliopisto 14. helmikuuta 214 G. Gripenberg (Aalto-yliopisto) MS-C142 Fourier-analyysiosa II 14. helmikuuta 214 1 / 36 1 Fourier-sarjat ja Fourier-integraalit
Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2
Spektri- ja signaalianalysaattorit
Spektri- ja signaalianalysaattorit Pyyhkäisevät spektrianalysaattorit Suora pyyhkäisevä Superheterodyne Reaaliaika-analysaattorit Suora analoginen analysaattori FFT-spektrianalysaattori DFT FFT Analysaattoreiden
Kun järjestelmää kuvataan operaattorilla T, sisäänmenoa muuttujalla u ja ulostuloa muuttujalla y, voidaan kirjoittaa. y T u.
DEE-00 Lineaariset järjestelmät Harjoitus, ratkaisuehdotukset Järjestelmien lineaarisuus ja aikainvarianttisuus Kun järjestelmää kuvataan operaattorilla T, sisäänmenoa muuttujalla u ja ulostuloa muuttujalla
Vektoreiden virittämä aliavaruus
Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden
Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista
Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen
Analyysi 1. Harjoituksia lukuihin 1 3 / Syksy Osoita täsmällisesti perustellen, että joukko A = x 4 ei ole ylhäältä rajoitettu.
Analyysi Harjoituksia lukuihin 3 / Syksy 204. Osoita täsmällisesti perustellen, että joukko { 2x A = x ]4, [. x 4 ei ole ylhäältä rajoitettu. 2. Anna jokin ylä- ja alaraja joukoille { x( x) A = x ], [,
Reaaliluvut. tapauksessa metrisen avaruuden täydellisyyden kohdalla. 1 fi.wikipedia.org/wiki/reaaliluku 1 / 13
Reaaliluvut Reaalilukujen joukko R. Täsmällinen konstruointi palautuu rationaalilukuihin, jossa eri mahdollisuuksia: - Dedekindin leikkaukset - rationaaliset Cauchy-jonot - desimaaliapproksimaatiot. Reaalilukujen
3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.
3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen
Oppimistavoitematriisi
Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Arvosanaan 1 2 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä ja yhtälöpareja Osaan muokata
. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1
TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että
ELEC-C5070 Elektroniikkapaja (5 op)
(5 op) Luento 5 A/D- ja D/A-muunnokset ja niiden vaikutus signaaleihin Signaalin A/D-muunnos Analogia-digitaalimuunnin (A/D-muunnin) muuttaa analogisen signaalin digitaaliseen muotoon, joka voidaan lukea
Oppimistavoitematriisi
Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Esitiedot Arvosanaan 1 2 riittävät Arvosanaan 3 4 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä
Lineaarinen yhtälöryhmä
Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.
Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017
Matriisilaskenta (TFM) MS-A1 Hakula/Vuojamo Ratkaisut, Viikko 47, 17 R Alkuviikko TEHTÄVÄ J1 Mitkä matriisit E 1 ja E 31 nollaavat sijainnit (, 1) ja (3, 1) matriiseissa E 1 A ja E 31 A kun 1 A = 1. 8
Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44
Lineaarialgebra ja differentiaaliyhtälöt Laskuharjoitus 1 / vko 44 Tehtävät 1-3 lasketaan alkuviikon harjoituksissa, verkkotehtävien dl on lauantaina aamuyöllä. Tehtävät 4 ja 5 lasketaan loppuviikon harjoituksissa.
Zeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
Missä mennään. systeemi. identifiointi. mallikandidaatti. validointi. malli. (fysikaalinen) mallintaminen. mallin mallin käyttötarkoitus, reunaehdot
Missä mennään systeemi mallin mallin käyttötarkoitus, reunaehdot käyttö- (fysikaalinen) mallintaminen luonnonlait yms. yms. identifiointi kokeita kokeita + päättely päättely vertailu mallikandidaatti validointi
Tuntematon järjestelmä. Adaptiivinen suodatin
1 1 Vastaa lyhyesti seuraaviin a) Miksi signaaleja ylinäytteistetään AD- ja DA-muunnosten yhteydessä? b) Esittele lohkokaaviona adaptiiviseen suodatukseen perustuva tuntemattoman järjestelmän mallinnus.
1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Kaarenpituus. Olkoon r: [a, b] R
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 2: Sarjat
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 2: Sarjat Pekka Alestalo, Jarmo Malinen Aalto-yliopisto, Matematiikan ja systeemianalyysin laitos 14.9.2016 Pekka Alestalo, Jarmo Malinen
Signaalien datamuunnokset
Signaalien datamuunnokset Datamuunnosten teoriaa Muunnosten taustaa Muunnosten teoriaa Muunnosten rajoituksia ja ongelmia Petri Kärhä 06/02/2004 Luento 4a: Signaalien datamuunnokset 1 Digitaalitekniikan
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14
Dynaamisten systeemien identifiointi 1/2
Dynaamisten systeemien identifiointi 1/2 Mallin rakentaminen mittausten avulla Epäparametriset menetelmät: tuloksena malli, joka ei perustu parametreille impulssi-, askel- tai taajusvaste siirtofunktion
Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot
Tehtävänanto oli ratkaista seuraavat määrätyt integraalit: b) 0 e x + 1
Tehtävä : Tehtävänanto oli ratkaista seuraavat määrätyt integraalit: a) a) x b) e x + Integraali voisi ratketa muuttujanvaihdolla. Integroitava on muotoa (a x ) n joten sopiva muuttujanvaihto voisi olla
Mitä on konvoluutio? Tutustu kuvankäsittelyyn
Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa
1 sup- ja inf-esimerkkejä
Alla olevat kohdat (erityisesti todistukset) ovat lähinnä oheislukemista reaaliluvuista, mutta joihinkin niistä palataan myöhemmin kurssilla. 1 sup- ja inf-esimerkkejä Nollakohdan olemassaolo. Kaikki tuntevat
HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo
HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina 10.8.2015 klo 16.15. Tehtäväsarja I Tutustu lukuun 15, jossa vektoriavaruuden
ELEC-C5340 - Sovellettu digitaalinen signaalinkäsittely. Äänisignaalien näytteenotto ja kvantisointi Dither Oskillaattorit Digitaalinen suodatus
L1: Audio Prof. Vesa Välimäki ELEC-C5340 - Sovellettu digitaalinen signaalinkäsittely Luennon sisältö Äänisignaalien näytteenotto ja kvantisointi Dither Oskillaattorit Digitaalinen suodatus Lyhyt FIR-suodin
Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä
1.4 Funktion jatkuvuus
1.4 Funktion jatkuvuus Kun arkikielessä puhutaan jonkin asian jatkuvuudesta, mielletään asiassa olevan jonkinlaista yhtäjaksoisuutta, katkeamattomuutta. Tässä ei kuitenkaan käsitellä työasioita eikä ihmissuhteita,
1 Olkoon suodattimen vaatimusmäärittely seuraava:
Olkoon suodattimen vaatimusmäärittely seuraava: Päästökaistan maksimipoikkeama δ p =.5. Estokaistan maksimipoikkeama δ s =.. Päästökaistan rajataajuus pb = 5 Hz. Estokaistan rajataajuudet sb = 95 Hz Näytetaajuus
8 KANNAT JA ORTOGONAALISUUS. 8.1 Lineaarinen riippumattomuus. Vaasan yliopiston julkaisuja 151
Vaasan yliopiston julkaisuja 151 8 KANNAT JA ORTOGONAALISUUS KantaOrthogon Sec:LinIndep 8.1 Lineaarinen riippumattomuus Lineaarinen riippumattomuus on oikeastaan jo määritelty, mutta kirjoitamme määritelmät
Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
Signaalien datamuunnokset. Digitaalitekniikan edut
Signaalien datamuunnokset Datamuunnosten teoriaa Muunnosten taustaa Muunnosten teoriaa Muunnosten rajoituksia ja ongelmia Petri Kärhä 09/02/2009 Signaalien datamuunnokset 1 Digitaalitekniikan edut Tarkoituksena
9 Matriisit. 9.1 Matriisien laskutoimituksia
9 Matriisit Aiemmissa luvuissa matriiseja on käsitelty siinä määrin kuin on ollut tarpeellista yhtälönratkaisun kannalta. Matriiseja käytetään kuitenkin myös muihin tarkoituksiin, ja siksi on hyödyllistä
Tietoliikennesignaalit & spektri
Tietoliikennesignaalit & spektri 1 Tietoliikenne = informaation siirtoa sähköisiä signaaleja käyttäen. Signaali = vaihteleva jännite (tms.), jonka vaihteluun on sisällytetty informaatiota. Signaalin ominaisuuksia
1 Lineaariavaruus eli Vektoriavaruus
1 Lineaariavaruus eli Vektoriavaruus 1.1 Määritelmä ja esimerkkejä Olkoon K kunta, jonka nolla-alkio on 0 ja ykkösalkio on 1 sekä V epätyhjä joukko. Oletetaan, että joukossa V on määritelty laskutoimitus
Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin
Mediaanisuodattimet Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että niiden ominaisuudet tunnetaan hyvin niiden analysointiin on olemassa vakiintuneita menetelmiä
JAKSO 2 KANTA JA KOORDINAATIT
JAKSO 2 KANTA JA KOORDINAATIT Kanta ja dimensio Tehtävä Esittele vektoriavaruuden kannan määritelmä vapauden ja virittämisen käsitteiden avulla ja anna vektoriavaruuden dimension määritelmä Esittele Lause
Matematiikan peruskurssi 2
Matematiikan peruskurssi Tentti, 9..06 Tentin kesto: h. Sallitut apuvälineet: kaavakokoelma ja laskin, joka ei kykene graaseen/symboliseen laskentaan Vastaa seuraavista viidestä tehtävästä neljään. Saat
1 Aritmeettiset ja geometriset jonot
1 Aritmeettiset ja geometriset jonot Johdatus Johdatteleva esimerkki 1 Kasvutulille talletetaan vuoden jokaisen kuukauden alussa tammikuusta alkaen 100 euroa. Tilin nettokorkokanta on 6%. Korko lisätään
