: Johdatus signaalinkäsittelyyn 2
|
|
|
- Annika Toivonen
- 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 2-23 Heikki Huttunen 8253: Johdatus signaalinkäsittelyyn 2 Tampere 23 ISSN ISBN
2
3 Opetusmoniste : Johdatus signaalinkäsittelyyn 2 Heikki Huttunen Tampereen teknillinen yliopisto Signaalinkäsittelyn laitos PL Tampere [email protected] 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 "8253: Johdatus signaalinkäsittelyyn 2". Materiaali on kehittynyt nykyiseen muotoonsa luennoidessani aiheesta Jyväskylän yliopistossa lukuvuonna , Tampereen yliopistossa lukuvuonna ja Tampereen teknillisessä yliopistossa lukuvuosina Kurssi ja sen materiaali ovat suoraa jatkoa syksyisin luennoitavalle kurssille "823: Johdatus signaalinkäsittelyyn ". Syksyn kurssin materiaali löytyy verkosta osoitteesta Ensimmäinen johdatuskurssi esittelee (diskreettiaikaisten) lineaaristen järjestelmien teorian (lineaariset järjestelmät, FFT, z-muunnos) ja suodinsuunnittelun perusteet. Tämän lisäksi kurssin lopussa tutustutaan muutamaan sovellusalueeseen, joita ovat olleet digitaalinen kuvankäsittely, puheenkäsittely, kuvan ja videon kompressio sekä lääketieteellinen signaalinkäsittely. Toinen johdatuskurssi keskittyy enemmän sovelluksiin. Moniste esittelee seuraavat aihepiirit: IIR-suotimet, näytteenottotaajuuden muuntelu, adaptiivinen suodatus, spektrin estimointi, äänisignaalin pakkaaminen ja epälineaarinen suodatus. Tämän lisäksi kurssin alussa saatetaan käydä osa kurssimonisteessa "823: Johdatus signaalinkäsittelyyn " olevista syksyn kurssilla käsittelemättä jääneistä aiheista. Kesällä 2 monisteen laatimisessa oli apuna filosofian ylioppilas Jari Niemi Tampereen yliopistosta. Kiitän häntä hyvin tehdystä työstä. Aikaisempiin versioihin nähden monisteessa olleita virheitä on korjattu sekä harjoitustehtäviä lisätty. Lisäinformaatiota löytyy kurssin kotisivulta, jonka osoite on Sivulta löytyy myös monisteen tuorein versio pdf-formaatissa. 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 8253 JOHDATUS SIGNAALINKÄSITTELYYN 2
7 Sisältö Esipuhe i Remez-menetelmä FIR-suodinten suunnittelussa. Lähtökohta: optimaalisuus minimax-mielessä McClellan-Parks-Rabiner algoritmi Käänteisen Fourier-muunnoksen menetelmä 3 IIR-suodinten suunnittelu 5 3. Butterworth suotimet Tyypin I Chebyshev-suotimet Tyypin II Chebyshev-suotimet Elliptiset suotimet eli Cauer-suotimet Äärellisen sananpituuden vaikutukset IIR-suotimia käytettäessä Muunnosvaiheen kvantisointivirhe Suodatuksen vaikutus kvantisointivirheeseen Äärellisen sananpituuden vaikutus IIR-suotimen kertoimien talletuksessa ja niillä kertomisessa Näytteenottotaajuuden muuntelu (Multirate DSP) Desimointi eli näytteenottotaajuuden alentaminen Näytteenottotaajuuden pienentäminen useassa vaiheessa (multistage decimation) Interpolointi eli näytteenottotaajuuden nostaminen Näytteenottotaajuuden muunnos rationaalikertoimella Interpoloinnin käyttö D/A-muunnoksessa Nollannen asteen pitopiiri Kohinanmuokkaus Adaptiivinen suodatus Kohinan poisto Tuntemattoman järjestelmän mallinnus Ekvalisointi Ennustus Suodatusongelman teoreettinen optimiratkaisu Gradienttimenetelmä ja LMS-algoritmi
8 iv 8253 JOHDATUS SIGNAALINKÄSITTELYYN Matlab-esimerkki adaptiivisesta suodatuksesta Spektrin estimoinnista 7 7. Ongelmia pelkkää FFT:tä käytettäessä Ikkunoiden ominaisuuksia Värähtely sivukaistoilla Spektripiikin leveys Scalloping Loss (SL) Equivalent noise bandwidth (ENBW) Päällekkäiset ikkunat Processing gain (PG) Pahimman tapauksen hävikki (WCPL) Spektrin vinoutuminen (Biasing) Matlab-testejä eri ikkunoilla Yhteenveto Audiodatan kompressio Kuuloaistin ominaisuuksia Kuuloaistin anatomia Kuuloaistin mallintaminen Kuulokäyrä Peittoilmiö Peittoilmiön hyväksikäyttö audion koodauksessa Taajuusalueiden erottelu Kvantisointikohinan peittyminen ja bittien jakaminen eri taajuuksille 92 9 Epälineaarinen suodatus Robustisuus Muutamia epälineaarisia suotimia Mediaani Painotettu mediaanisuodin L-suotimet Homomorfiset suotimet
9 Luku Remez-menetelmä FIR-suodinten suunnittelussa Remez-menetelmä, eli optimaalinen menetelmä etsii minimax-mielessä optimaalista suodinta. Algoritmi johdetaan seuraavassa (täydellisyyden vuoksi) melko yksityiskohtaisesti. Olennaisinta on kuitenkin ymmärtää tuloksena saatavan suotimen ominaisuudet. Luvun lopussa varsinainen suunnittelu tehdään käyttäen valmista Matlab-ohjelmaa.. Lähtökohta: optimaalisuus minimax-mielessä Tarkastellaan tuttua ideaalista taajuusvastetta: { H id (e iω, kun ω P )=, kun ω P, missä ω [, π] ja P on päästökaista. Remez-algoritmia johdettaessa tarkastellaan vain suotimia, joiden vaihevaste on nolla kaikilla taajuuksilla ja taajuusvaste on reaalinen. Tämä tarkoittaa, että suotimen kertoimet ovat symmetrisesti origon suhteen (eli h(n) = h(n) aina kun n ). Tämä vastaa täysin ikkunamenetelmän tilannetta, jossa suunnitellaan ensin origokeskinen suodin, jota sitten viivästetään niin paljon, että suotimesta saadaan kausaalinen. Jakamalla taajuusvasteen määräävä summa kolmeen osaan ja soveltamalla kertoimien symmetrisyyttä (kertoimia N = 2M+ kappaletta) sekä Eulerin kaavaa voidaan lauseketta muokata seuraavasti. H(e iω ) = M h(n)e iωn M = h()+ = h()+ M h(n)e iωn + h(n)e iωn M h(n)e iωn + M M h( n)e iωn
10 JOHDATUS SIGNAALINKÄSITTELYYN 2 = h()+ = h()+ = h()+ M h(n)(e iωn + e iωn ) M h(n)(cos( ωn)+i sin( ωn)+cos(ωn)+i sin(ωn)) M h(n)(2 cos(ωn))). Jatkossa tästä käytetään lyhyempää muotoa, joka saadaan ottamalla käyttöön apukertoimet a(n): M H(e iω )= a(n) cos(ωn), n= missä { h(n), kun n = a(n) = (.) 2h(n), kun n M. Nyt suotimen suunnitteluongelma voidaan esittää seuraavasti: on löydettävä sellaiset kertoimet a(),a(),...,a(m), että virhefunktion E(ω) =H(e iω ) H id (e iω ), itseisarvon suurin arvo on mahdollisimman pieni. Toisin sanoen on etsittävä sellaiset kertoimet a(n), että a(n) =arg min max E(ω), a( ) ω X missä X [, π) koostuu päästö- ja estokaistoista (ei siirtymäkaistasta). Usein virhettä päästö- ja estokaistoilla halutaan painottaa eri tavoin. Tällöin virhefunktioksi valitaan E(ω) =W(ω) ( H(e iω ) H id (e iω ) ), missä painofunktio W(ω) saa eri arvot esto- ja päästökaistalla. Painofunktion arvo voi olla vaikkapa 2 estokaistalla ja päästökaistalla. Tällöin päästökaistalla sallitaan kaksinkertainen virhe estokaistaan nähden. Painofunktion valintaan tutustutaan tarkemmin harjoitustehtävässä.5. Optimaaliselle ratkaisulle voidaan löytää seuraava riittävä ja välttämätön ehto: H(e iω ) on minimax-mielessä optimaalinen, jos ja vain jos on olemassa ainakin M + 2 sellaista pistettä ω,ω,...,ω M+ X, että seuraavat ehdot ovat voimassa: ω <ω < <ω M <ω M+, E(ω k+ )= E(ω k ), kun k =,,...,M, E(ω k ) = max ω X E(ω), kun k =,,...,M+ Optimaalisen ratkaisun taajuusvasteen jokainen värähtelyhuippu päästökaistalla ja estokaistalla on tarkalleen saman korkuinen. Lisäksi virheen merkki vaihtuu jokaisessa värähtelyhuipussa, ks. kuva. Nyt kuvassa on nimenomaan suotimen taajuusvaste, joka tässä tapauksessa on reaalinen. Näinollen kuvaaja voi saada myös negatiivisia arvoja. Amplitudivaste on alla olevan kuvaajan itseisarvo.
11 . REMEZ-MENETELMÄ FIR-SUODINTEN SUUNNITTELUSSA 3 +δ p δ p δ s δ s f p f s.5 Päästökaista Siirtymäkaista Merkitään maksimivirhettä muuttujalla ɛ, Estokaista ɛ = max ω X E(ω). Silloin optimaalisen taajuusvasteen virheet pisteissä ω,..., ω M+ voidaan esittää muodossa E(ω k )=W(ω k ) ( H ( ( )) e k) iω Hid e iω k =( ) k ɛ, k =,,...,M+. Pisteet ω,ω,...,ω M+ määräytyvät seuraavassa esitettävän algoritmin avulla. Rutiinin alussa ne valitaan esimerkiksi tasaisin välein väliltä [, π]..2 McClellan-Parks-Rabiner algoritmi Suodin, jonka taajuusvaste toteuttaa optimaalisuusehdon on mahdollista löytää seuraavalla algoritmilla. Oletetaan, että meillä on annettuna M + 2 välin [, π] pistettä, ts. joukko Ω = {ω,ω,...,ω M+ }. Tämä joukko on siis mikä tahansa pistejoukko, useimmiten tasaisin välimatkoin valittu. Kyseiset pisteet kertovat optimaalisen taajuusvasteen otaksutut värähtelyhuiput, jotka siis alkuvaiheessa ovat puhtaalla arvauksella valitut. Jos ne olisivat oikeat optimaalisen taajuusvasteen värähtelyhuiput, niin yhtälö E(ω k )=W(ω k ) ( H ( e iω k) Hid ( e iω k )) =( ) k ɛ, k =,,...,M+, olisi voimassa. Tämä voidaan esittää M + 2:na lineaarisena yhtälönä: M n= a(n) cos nω k ( )k ɛ W(ω k ) = H ( ) id e iω k, (.2)
12 JOHDATUS SIGNAALINKÄSITTELYYN 2 k =,,...,M+. Tämä yhtälöryhmä sisältää M + 2 tuntematonta, nimittäin muuttujat a(),a(),...,a(m) ja muuttujan ɛ. Yhtälöryhmä matriisimuodossa on seuraavaa muotoa, cos(ω ) cos(m ω ) /W(ω ) a() H id (e iω ) cos(ω ) cos(m ω ) /W(ω ) a() H id (e iω ) =.. cos(ω M ) cos(m ω M ) /W(ω M ) a(m) H id (e iω M ) cos(ω M+ ) cos(m ω M+ ) /W(ω M+ ) ɛ H id (e iω M+ ) Vektori (a(),a(),...,a(m),ɛ) T voidaan ratkaista tästä yhtälöstä. Saadut kertoimet määräävät taajuusvasteen, joka on pisteissä ω,ω,...,ω M+ etäisyydellä ɛ ideaalisesta taajuusvasteesta. Virhefunktion huippuarvot eivät kuitenkaan ole näissä pisteissä, vaan funktio saa suurempia arvoja muualla. Alla olevassa kuvassa on Remez-algoritmin tuottamia kertoimia vastaavan taajuusvasteen kuvaaja algoritmin toisella iteraatiokierroksella Normalisoitu taajuus (Fs=) Tätä vastaava virhefunktio on alla olevassa kuvassa Normalisoitu taajuus (Fs=) Nyt ɛ =.529 ja pisteet ω,ω,...,ω M+ näkyvät kuvassa ympyröinä. Virhefunktio siis saa arvon ɛ pisteissä ω,ω,...,ω M+, mutta nämä pisteet eivät selvästikään ole virhefunktion huippuarvoja. Virhefunktion todelliset huippuarvot voidaan kuitenkin selvittää ja ottaa nämä uusiksi lähtöarvoiksi iteraatiolle. Näiden avulla voidaan jälleen selvittää kertoimet a(),a(),...,a(m) sekä ɛ, joista saadaan uusi virhefunktio ja sille uudet pisteet ω,ω,...,ω M+, ja niin edelleen. Näin jatketaan, kunnes uudet alkuarvot poikkeavat edellisen kierroksen lähtöarvoista riittävän vähän, ω k ω k <α. Viimeisen kierroksen kertoimista a(),a(),...,a(m) voidaan muodostaa impulssivaste h(n) ottamalla huomioon impulssivasteen positiivinen symmetria sekä kaava (.).
13 . REMEZ-MENETELMÄ FIR-SUODINTEN SUUNNITTELUSSA 5 McClellan-Parks-Rabiner algoritmi. Valitse M + 2 pistettä Ω = {ω,ω,...,ω M+ } joukosta X. 2. Ratkaise yhtälöryhmästä (.2) tuntemattomat a(),a(),...,a(m) ja ɛ. 3. Etsi uudet M + 2 ääriarvoa Ω = {ω,ω,...,ω M+ } näin saadulle uudelle virhefunktiolle. 4. Jos ω k ω k < α, niin palauta joukon Ω pisteitä vastaavat kertoimet h(),h(),...,h(m). Muutoin sijoita Ω := Ω ja palaa kohtaan 2. Algoritmin suppenemisen todistaminen sivuutetaan tässä yhteydessä. Kuitenkin suppeneminen tapahtuu kohti optimiratkaisua, jos äärellinen laskentatarkkuus ei aiheuta juuttumista johonkin sykliin. Todistus on löydettävissä numeerisen matematiikan ja funktioiden approksimoinnin kirjoista. Remez-algoritmin alkuperäinen käyttötarkoitus oli nimittäin parhaan ns. Chebychev-approksimaation löytäminen annetulle funktiolle välillä [, ]. Suotimen asteen (kertoimien määrän) arviointiin ei ole olemassa mitään analyyttistä lauseketta ja aste onkin yleensä enemmän tai vähemmän arvailun varassa. Ifeachorin kirjassa on olemassa empiirisiä arvioita kertoimien määräksi, mutta niihin ei puututa tässä. Matlab antaa arvion tarvittavasta kertoimien määrästä komennolla remezord. Kuten ikkunamenetelmässäkin, myös Remez-algoritmin käytännön hyödyntämisessä on Matlabin signaalinkäsittelyn toolbox korvaamaton apu. Remez-suunnittelun suorittava Matlab-komento on b = remez (n,f,m,w);, missä n on suotimen aste (kertoimien määrä - ), f on vektori, joka määrää pisteet väliltä [, ], joissa asetetaan taajuustason vaatimuksia. Vektori m kertoo vektorin f määräämissä pisteissä halutut taajuusvasteet ja w on Remez-algoritmin käyttämä painofunktio W(ω). Vektorin f määrittelyssä on syytä huomata, että taajuudet on skaalattu välille [, ], missä vastaa Nyquistin rajataajuutta, eli kompleksitason pistettä e iπ. Lisäksi vektorin ensimmäinen piste pitää olla ja viimeinen. Nämä parametrit saadaan komennolla [n,f,m,w] = remezord (F,A,Dev,Fs);, missä vektori F sisältää siirtymäkaistan rajataajuudet, A sisältää amplitudivasteen arvot eri kaistoilla, Dev sisältää maksimipoikkeamat eri kaistoilla lineaarisella asteikolla ja Fs on näytteenottotaajuus. Esimerkki: Suunnittele Matlabin avulla optimaalinen suodin, jonka vaatimukset ovat: Chebychevin polynomit T (x), T (x),t 2 (x),...määritellään seuraavasti Näistä muodostettu lineaarikombinaatio on muotoa S M (x) = T n (x) = cos nθ, θ = arccosx. M a n T n (x) = n= M a n cos nθ, josta pitää löytää optimaaliset kertoimet a n. Tämä puolestaan on täsmälleen sama ongelma kuin optimaalisen taajuusvasteen löytämisessä. Näin ollen optimaalinen suodinsuunnittelu on itse asiassa Chebyshevapproksimointia. n=
14 JOHDATUS SIGNAALINKÄSITTELYYN 2 Päästökaistat Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [ Hz,88Hz] ja [2 Hz, 256 Hz] [5 Hz, 75 Hz].5 db 45 db 52 Hz Desibelit täytyy ensin muuntaa lineaariselle asteikolle. Päästökaistalla saa värähtelyä olla.5 db ja ihannearvo on. Amplitudivasteen suurin arvo saa olla siis.5 db ja pienin arvo.5 db. Suurin arvo lineaarisella asteikolla saadaan yhtälöstä 2 log x =.5, eli x =.5/2 =.593. Pienin arvo puolestaan tulee yhtälöstä 2 log x =.5, eli x =.5/2 =.944. Näistä jälkimmäinen on lähempänä ihannearvoa eli ykköstä, joten maksimipoikkeama lineaarisella asteikolla on.944 =.559. Estokaistalla amplitudivasteen pitää olla arvon 45 db alapuolella, eli lineaarisella asteikolla: 2 log x = 45, josta x = 45/2 =.56. Vektori Dev on siis Dev=[.559,.56,.559]; Vektori F puolestaan on F=[88,5,75,2]; ja vektori A=[,,];. Näytteenottotaajuus Fs=52. Aste arvioidaan siis komennolla [n,f,m,w] = remezord (F,A,Dev,Fs); ja tulokseksi saadaan mm. aste n=34, josta kertoimien määräksi tulee Varsinainen suunnittelu tapahtuu komennolla b=remez(n,f,m,w);, joka palauttaa kuvassa olevan impulssivasteen Taajuusvaste: Amplitudivaste (db) Normalisoitu taajuus Taajuusvaste lineaarisella asteikolla: Matlabin versio 5.3 palauttaa virheellisesti myös parittomia asteita eli parillisia kertoimien määriä. Tällöin ei kaistanestosuotimen toteutus onnistu.
15 . REMEZ-MENETELMÄ FIR-SUODINTEN SUUNNITTELUSSA 7 Napa-nollakuvio: 2.5 Imaginary Part Real Part Esimerkki: Suunnitellaan ylipäästösuodin seuraavilla vaatimuksilla: Päästökaista Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [5 khz, 22.5 khz] [ khz,8khz]. db 25 db 44. khz Desibeliarvo. db vastaa lineaarisen asteikon maksimipoikkeamaa.4 ja minimivaimennus 25 db poikkeamaa.562, joten vektori Dev=[.562,.4];. Lisäksi F=[8,5];, A=[,]; ja Fs=44.;. Rutiini remezord antaa asteeksi Matlabin versiolla 5.3 arvon n=7, mutta ylipäästösuotimen asteen pitää olla parillinen (ja kertoimien määrän pariton). Siksi otetaan asteeksi n=8. Suunnittelukomento antaa seuraavan impulssivasteen Taajuusvaste desibeleinä on alla
16 JOHDATUS SIGNAALINKÄSITTELYYN 2 2 Amplitudivaste (db) Normalisoitu taajuus Kuvasta nähdään, että asteen arviointirutiini antaa toisinaan liian pieniä arvoja. Tässä tapauksessa seurauksena oli, ettei estokaistan minimivaimennus ole määrittelyjen mukainen. Oikeaan lopputulokseen päästäisiin kasvattamalla astetta. Taajuusvaste lineaarisella asteikolla on puolestaan seuraavan näköinen Lopuksi napa-nollakuvio näyttää seuraavalta..5.5 Imaginary Part Real Part Harjoitustehtäviä.. Piirrä alla olevaa kuvaa vastaava suunnittelukriteereitä havainnollistava kuvio, kun kriteerit ovat seuraavat: Näytteenottotaajuus on 44. khz, Taajuuksilla -8 khz tulee suotimen vaimennuksen olla vähintään 25 db, Taajuuksilla on päästökaista ja värähtely saa olla enintään. db.
17 . REMEZ-MENETELMÄ FIR-SUODINTEN SUUNNITTELUSSA 9 +δ p δ p δ s f f p s.5 Päästökaista Siirtymäkaista Estokaista.2. a) Muunna seuraavat luvut desibeleiksi:.5,.2,.,.,., 2. b) Muunna seuraavat desibeliarvot lineaariselle asteikolle: 25 db, 3 db, 6 db, 2 db, 3 db, 6 db..3. Tarkastellaan ensimmäisen tehtävän suunnitteluvaatimuksia ja erityisesti sen päästöja estokaistan sijainteja (vaimennusvaatimukset unohdetaan hetkeksi). Laske montako kerrointa tarvitaan kun suodin suunnitellaan ikkunamenetelmällä käyttäen (a) Suorakulmaista ikkunaa, (b) Hanning-ikkunaa, (c) Hamming-ikkunaa, (d) Blackman-ikkunaa?.4. (Matlab) Suunnittele Remez-algoritmilla suodin, joka toteuttaa ensimmäisen tehtävän vaatimukset (help remez, help remezord). Suunnittele vastaava suodin ikkunamenetelmällä (help fir). Tulosta ruudulle amplitudi- ja vaihevasteet sekä napa-nollakuviot..5. Remez-menetelmän painofunktion avulla voidaan säätää värähtelyä päästö- ja estokaistoilla. Merkitään päästö- ja estokaistan maksimivärähtelyjen suhdetta muuttujalla K: K = δ p δ s = Tällöin painofunktion tulee olla muotoa maksimivärähtely päästökaistalla maksimivärähtely estokaistalla. W(ω) = { päästökaistalla, K estokaistalla. Jos esimerkiksi δ p =. ja δ s =.5, niin K 7.28, ja painofunktio on W(ω) = { päästökaistalla, 7.28 estokaistalla.
18 8253 JOHDATUS SIGNAALINKÄSITTELYYN 2 Yleensä suunnittelukriteerit on annettu desibeleinä. Tällöin ne pitää ensin muuntaa lineaariselle asteikolle. Määritä Remez-algoritmin painofunktio, kun (a) Päästökaistan värähtely saa olla enintään.26 db ja estokaistan vaimennus vähintään 3 db. (b) Päästökaistan värähtely saa olla enintään.5 db ja estokaistan vaimennus vähintään 4 db. (c) Päästökaistan värähtely saa olla enintään. db ja estokaistan vaimennus vähintään 8 db.
19 Luku 2 Käänteisen Fourier-muunnoksen menetelmä Käänteisen Fourier-muunnoksen suunnittelumenetelmässä (engl. frequency sampling method) näytteistetään ideaalinen taajuusvaste ja otetaan sen käänteinen diskreetti Fouriermuunnos. Diskreetti Fourier-muunnoshan vastaa taajuusvastetta tietyissä kompleksitason yksikköympyrän pisteissä ja näin ollen käänteinen DFT tuottaa approksimaation ideaaliselle impulssivasteelle. Ongelmana on, että tietoa taajuustason käyttäytymisestä on ainoastaan tietyissä yksikköympyrän pisteissä, ja muista pisteistä ei tiedetä mitään. Tämän menetelmän merkitys on lähinnä historiallinen. Käänteisen Fourier-muunnoksen menetelmä on tapana mainita siksi, että se on helppo ymmärtää ja se on usein ensimmäinen mieleen tuleva ratkaisu taajuuksien suodattamiselle. Kuvassa on esitetty ideaalinen taajuusvaste, taajuusvasteen näytteistyspisteet ja niiden ja käänteisen DFT:n avulla selvitetyn impulssivasteen todellinen taajuusvaste. Kuvasta havaitaan taajuusvasteen heittelehtiminen kiinteiden pisteiden ulkopuolella Mikään ei kuitenkaan takaa, että kertoimista tulee reaalisia otettaessa käänteinen DFT. Meidän pitääkin eksplisiittisesti valita se taajuusvaste, jonka tuloksena on lineaarivaiheinen reaalikertoiminen FIR-suodin. Valinta suoritetaan niiden ideaalisten taajuusvasteiden
20 JOHDATUS SIGNAALINKÄSITTELYYN 2 joukosta, joiden itseisarvot toimivat toivotulla tavalla: H id (e iω ) {, kun ω P =, kun ω P, missä päästökaista P on jokin joukon [, π] osajoukko. Valinta selviää tarkastelemalla käänteisen DFT:n lauseketta h(n) = N N H(k)w kn N, missä w N = e 2πi/N. Muunnetaan H(k) napakoordinaatistoon: h(n) = N k= k= N H(k) e iarg H(k) w kn N = N H(k) e iarg H(k) e 2πikn/N N = N k= N k= i(arg H(k)+2πkn/N) H(k) e = N H(k) cos(arg H(k)+2πkn/N) N k= + i N H(k) sin(arg H(k)+2πkn/N) N k= Koska halutaan reaalikertoiminen suodin, pitää jälkimmäinen summattava jättää pois, h(n) = N H(k) cos(arg H(k)+2πkn/N). N k= Erityisesti lineaarivaiheisille FIR-suotimille on voimassa kun N on parillinen ja α = N 2. Tällöin arg(h(k)) = 2παk N, h(n) = N H(k) cos(2π(n α)k/n). N k= Käänteisen DFT:n suunnittelumenetelmä voidaan kiteyttää tähän kaavaan.
21 2. KÄÄNTEISEN FOURIER-MUUNNOKSEN MENETELMÄ 3 Käänteisen DFT:n suunnittelumenetelmä (N parillinen). Kiinnitä ideaalinen taajuusvaste H id (e iω ). 2. Selvitä tätä vastaava DFT H(n) kaavasta ( H(n) =H id missä n =,,2,...,N. e 2πin N 3. Suunnitellun suotimen impulssivaste saadaan kaavasta k= ), h(n) = N ( ) 2π(n α)k H(k) cos, N N missä n =,,...,N ja α = N 2. Kokeillaan tätä menetelmää Matlabin avulla. Vaatimukset: Näytteenottotaajuus on 44. khz, Taajuuksilla khz on estokaista, Taajuuksilla -8 khz on päästökaista. Olkoon kertoimien määrä N = 32. Yllä olevan algoritmin tuloksena on suodin, jonka taajuusvaste ideaalisen taajuusvasteen ja kiinnitettyjen pisteiden kanssa on kuvassa..4.2 Amplitudi (abs.) Normalisoitu taajuus Ikkunoiden avulla tuloksia saadaan parannettua, mutta ei merkittävästi, eikä lähellekään ikkunamenetelmän tai optimaalisen menetelmän tuloksia. Harjoitustehtäviä 2.. (Matlab) Laadi funktio, joka toteuttaa käänteisen Fourier-muunnoksen suunnittelumenetelmän Matlabissa. Apuna kannattanee käyttää Matlabin editoria (komento edit). Tiedoston ensimmäiselle riville tulee määrittely, tässä tapauksessa function b=invfft(h) missä H on haluttu amplitudivaste eri pisteissä (vektori, jossa on n komponenttia, n on kertoimien määrä) ja tulokseksi tulee suotimen kertoimet sisältävä vektori b. Tiedosto talletetaan samalla nimellä kuin varsinainen funktiokutsu (tässä tapauksessa invfft.m). Tämän jälkeen kirjoitetaan ohjelmakoodi jonka lopussa halutut kertoimet sijoitetaan vektoriin b. Vihje: menetelmä kiteytyy yhteen kaavaan, joka on määrä
22 JOHDATUS SIGNAALINKÄSITTELYYN 2 toteuttaa. Koska kyseessä on summa, homman voi hoitaa for-silmukassakin. Tyylikkäämpi ratkaisu saadaan kuitenkin sisätulon avulla, jossa vaakavektori kerrotaan oikealta puolelta pystyvektorilla. Saatat tarvita seuraavia Matlabin funktioita: length, fix ja cos. Jos halutaan 8-kertoiminen alipäästösuodin, jonka rajataajuus on puolet Nyquistin rajataajuudesta, määritellään ensin taajuusvaste H=[,,,,,,,] (huomaa, että amplitudivektori (,,, ) tulee kahteen kertaan) ja kutsutaan rutiinia. Tulokseksi pitäisi tulla b=[-.58,,.38,.5,.38,,-.58,] (Matlab) Suunnittele edellisen tehtävän rutiinilla suodin, jonka amplitudivaste on nolla nollataajuudella ja kasvaa lineaarisesti kunnes on yksi Nyquistin rajataajuudella. Tutustu fir2-rutiiniin ja suunnittele sen avulla vastaava suodin. Vertaa tuloksia eri kerroinmäärillä. Vihje: vertailu onnistunee helpoiten lineaarisella asteikolla; komennoilla [h,w]=freqz(b); plot(w/(2*pi),abs(h));
23 Luku 3 IIR-suodinten suunnittelu Perinteinen menetelmä IIR-suodinten suunnittelussa on suunnitella ensin vastaava analoginen suodin ja muuntaa se sitten digitaaliseen muotoon. Muunnoksessa käytetään ns. bilineaarimuunnosta tai impulssi-invarianttitekniikkaa. Tällä kurssilla ei perehdytä suunnittelumenetelmiin, vaan ne jätetään myöhemmille lineaarisen suodatuksen kursseille. Seuraavassa esitellään kuitenkin IIR-suodinten neljä eri tyyppiä ja tutkitaan kuinka suunnittelu tehdään Matlabia käyttäen. Matlab-ohjelmiston ja sen signaalinkäsittelyn toolboxin avulla on mahdollista suunnitella IIR-suotimia samaan tyyliin kuin FIR-suotimiakin. Matlabille annetaan siis suotimelle asetettavat vaatimukset vektorimuodossa, ja Matlab palauttaa sitä vastaavan IIR-suotimen kertoimet kahtena vektorina (rekursiivisille termeille ja ei-rekursiivisille termeille). Matlabin suunnittelemiin IIR-suotimiin on kuitenkin syytä suhtautua varauksella. Käytössä on funktioita, jotka arvioivat tarvittavien kertoimien määrää, ja palauttavat jonkin desimaaliluvun, sanokaamme N = Kertoimiahan on kuitenkin luonnollisesti aina jokin kokonaislukumäärä, joten tämä täytyy pyöristää ylöspäin: N = 4. Tässä vaiheessa suunnitteluohjelmalla on hieman lisävapautta käyttää näin saatava suotimen tehokkuuden lisäys hyväksi jonkin suotimen ominaisuuden tehostamiseen. Matlab kuitenkin käyttää tämän vapauden yksinomaan siirtymäkaistan leveyden minimointiin unohtaen kokonaan päästö ja estokaistojen värähtelyn minimoimisen. Kun saadut kertoimet otetaan käyttöön jossain sovelluksessa, äärellisen sananpituuden vaikutuksesta saattavat kyseiset värähtelyt ylittää suurimman sallitun määrän päästö tai estokaistalla. Nämä ongelman kuitenkin ovat harvoin suunnittelun esteenä, ja suodinten suunnittelu on siis kuitenkin mahdollista suhteellisen hyvällä tarkkuudella Matlabia käyttäen. Seuraavassa joitain menetelmiä. Tarkastelu jaetaan neljään osaan suodintyyppien mukaan: Butterworth suotimet, Tyypin I Chebyshev suotimet, Tyypin II Chebyshev suotimet, Elliptiset suotimet.
24 JOHDATUS SIGNAALINKÄSITTELYYN 2 3. Butterworth suotimet Butterworth-tyyppisille IIR-suotimille on tyypillistä, että päästökaistan alku ja estokaistan loppu (alipäästösuotimen tapauksessa) ovat molemmat mahdollisimman tasaisia (maximally flat stopband; maximally flat passband). Butterworth-tyyppisen IIR-suotimen suunnittelussa tarvitaan kahta komentoa, joista ensimmäinen laskee tarvittavien kertoimien määrän ja skaalaa argumenttina saamansa päästö ja estokaistat vastaavaksi analogisen prototyypin argumentiksi. Käytännössä suunnittelussa ei siis tarvitse muistaa lainkaan analogisen prototyypin käyttöä; Matlab hoitaa sen käytön. Alipäästösuodinta suunniteltaessa kertoimien määrää voidaan arvioida komennolla [N, Wn] = buttord(2*wp, 2*Ws, Rp, Rs) missä N on ulostulona saatava aste ja Wn on analogisen prototyypin rajataajuus. Kahden ensimmäisen parametrin kerroin tarvitaan, koska Matlab skaalaa taajuudet välille [, ] ja tällä kurssilla ne skaalataan välille [,.5]. Tarvittavat argumentit ovat Wp on päästökaistan rajataajuus Ws on estokaistan rajataajuus Rp on suurin sallittu värähtely päästökaistalla desibeleinä Rs on estokaistan minimivaimennus Suunnittelu tapahtuu komennolla [b,a] = butter (N, Wn); Samaa komentoa käytetään myös ylipäästösuodinten suunnittelussa. Tällöin lisätään komennon viimeiseksi argumentiksi merkkijono high. Esimerkiksi: [b,a] = butter (N, Wn, high ); Jos halutaan kaistanpäästö- tai -estosuotimia, pitää argumenttien Ws ja Wp sijasta antaa vektorit [W, W2] ja [W3, W4], jotka ilmoittavat amplitudivasteiden reunoja vastaavat siirtymäkaistat. Lisäämällä viimeiseksi argumentiksi merkkijono stop, saadaan kaistanestosuodin; muutoin tuloksena on kaistanpäästösuodin. Tuloksena saadaan kaksi vektoria, b= (b,b,...,b N ) ja a= (, a,...,a N ), jotka sisältävät siirtofunktion seuraavasti: Y(z) X(z) = H(z) =b + b z + b 2 z b N z N + a z + a 2 z a N z N. Tästähän saadaan ( varsinaisen suotimen kertoimet kertomalla yhtälön molemmat puolet termillä X(z) + ) N k= a kz k ( Y(z) + ) N a k z k = X(z) k= N b k z k k=
25 3. IIR-SUODINTEN SUUNNITTELU 7 ja edelleen käänteisen z-muunnoksen avulla N y(n)+ a k y(n k) = k= N b k x(n k). k= Tämä voidaan ilmaista muodossa y(n) = N N b k x(n k) a k y(n k). k= k= Suunnittelun jälkeen tämä kaava voidaankin jo sellaisenaan toteuttaa. Esimerkki: Suunnitellaan alipäästösuodin, jonka päästökaista on normalisoiduissa taajuuksissa välillä [,.] ja estokaista välillä [.45,.5]; päästökaistan maksimivärähtely on. db ja estokaistan minimivaimennus on 47 db. [N, Wn] = buttord (.22,.29,., 47) N = 28 Wn =.2443 Varsinainen suunnittelu tapahtuu komennolla [b,a] = butter(n,wn); Näin saadaan kaksi vektoria; b, jonka kuvaaja on seuraavassa 3.5 x ja vektori a: x Suunnitellun suotimen impulssivasteen alku saadaan komennolla impz(b,a) Taajuusvaste (freqz (b,a)); huomaa huikea vaimennus estokaistan loppupäässä.
26 JOHDATUS SIGNAALINKÄSITTELYYN 2 Amplitudivaste (db) Normalisoitu taajuus Vaihevaste on melko lineaarinen päästökaistalla eikä näin ollen haitanne useimmissa sovelluksissa. Sen kuvaaja on alla. Vaihevaste asteina Lopuksi navat ja nollat: Normalisoitu taajuus 2.5 Imaginary part Real part 3.2 Tyypin I Chebyshev-suotimet Ensimmäisen tyypin Chebyshev-suotimille on tyypillistä, että niiden estokaista on maksimaalisen tasainen (maximally flat), mutta päästökaista on tasavärähtelevä (equiripple). Niiden suunnittelussa on käytettävissä vastaavat komennot kuin Butterworth-suodinten tapauksessa. Suotimen aste voidaan arvioida komennolla [N, Wn] = chebord(2*wp, 2*Ws, Rp, Rs) missä N on ulostulona saatava aste ja Wn on analogisen prototyypin rajataajuus. Tarvittavat argumentit ovat Wp on päästökaistan lopputaajuus
27 3. IIR-SUODINTEN SUUNNITTELU 9 Ws on estokaistan alkutaajuus Rp on suurin sallittu värähtely päästökaistalla desibeleinä Rs on estokaistan minimivaimennus Suunnittelukomento on muotoa [B,A] = cheby(n,rp,wn), missä N on suotimen aste, Rp on suurin sallittu värähtely päästökaistalla ja Wn on analogisen prototyypin rajataajuus (joka arvioidaan chebord -funktiolla). Muut kuin alipäästösuotimet suunnitellaan samalla tavalla kuin Butterworth-suotimen tapauksessa. Tarkastellaan edellisen esimerkin suodinta vastaavaa tyypin I Chebyshevsuodinta: [N, Wn] = chebord(.22,.29,., 47) N = 2 Wn =.22 [b,a] = cheby (N,., Wn); Näin saadun suotimen amplitudi- ja vaihevasteet ovat seuraavassa. Amplitudivaste (db) Vaihevaste asteina Normalisoitu taajuus Normalisoitu taajuus Päästökaistan tasavärähtely-ominaisuus puolestaan nähdään seuraavasta skaalatusta kuvasta, jossa on lineaarinen asteikko Tyypin II Chebyshev-suotimet Toisen tyypin Chebyshev-suotimille on tyypillistä, että niiden estokaista on tasavärähtelevä (equiripple), mutta päästökaista on maksimaalisen tasainen (maximally flat). Niiden
28 JOHDATUS SIGNAALINKÄSITTELYYN 2 suunnittelussa on käytettävissä vastaavat komennot kuin edellä mainituissa tapauksissa. Suotimen aste voidaan arvioida komennolla [N, Wn] = cheb2ord(2*wp, 2*Ws, Rp, Rs) missä N on ulostulona saatava aste ja Wn on analogisen prototyypin rajataajuus. Tarvittavat argumentit ovat Wp on päästökaistan lopputaajuus Ws on estokaistan alkutaajuus Rp on suurin sallittu värähtely päästökaistalla desibeleinä Rs on estokaistan minimivaimennus Suunnittelukomento on muotoa [B,A] = cheby2(n,rs,wn), missä N on suotimen aste, Rs on suurin sallittu värähtely estokaistalla ja Wn on analogisen prototyypin rajataajuus (joka arvioidaan cheb2ord -funktiolla). Edellisen esimerkin suodinta vastaava tyypin II Chebyshev-suodin suunnitellaan seuraavasti: [N, Wn] = cheb2ord(.22,.29,., 47) N = 2 Wn =.2795 [b,a] = cheby2 (N, 47, Wn); Näin saadun suotimen amplitudi- ja vaihevasteet ovat seuraavassa. Amplitudivaste (db) Normalisoitu taajuus Vaihevaste asteina Normalisoitu taajuus 3.4 Elliptiset suotimet eli Cauer-suotimet Elliptisille suotimille on ominaista, että sekä päästökaistan amplitudivaste että estokaistan amplitudivaste ovat tasavärähteleviä. Komennot suunnittelussa ovat
29 3. IIR-SUODINTEN SUUNNITTELU 2 [N, Wn] = ellipord(2*wp, 2*Ws, Rp, Rs) ja [B,A] = ellip(n,rp,rs,wn) Kaikkien termien merkitykset on jo selvitetty edellisissä kappaleissa. Esimerkkisuotimemme suunnittelu tapahtuu siis komennoilla [N,Wn] = ellipord(.22,.29,., 47) Tulokseksi saadaan: N = 7 Wn =.22 Seuraavaksi suunnittelukomento: [b,a] = ellip (N,., 47, Wn); Tulokseksi saadaan suodin, jolla on seuraava amplitudivaste: Amplitudivaste (db) Vaihevaste on alla: Normalisoitu taajuus Vaihevaste asteina Normalisoitu taajuus Lopuksi vielä amplitudivaste lineaarisella asteikolla zoomattuna päästökaistaan: Harjoitustehtäviä 3.. Alla olevat kuvat (a-d) esittävät eräiden IIR-suodinten amplitudivasteita. Kaikki neljä IIR-suodinten tyyppiä on mukana. Mikä suodintyyppi vastaa kutakin kuvaa? 3.2. (Matlab) Matlab palauttaa suodinsuunnittelun tuloksena vektorit b =(.2353,.8746,.283,.8746,.2353) ja a = (.,.268,.65,.2989,.339). Alla on yksinkertaistettu esimerkki c-kielisestä ohjelmasta, joka toteuttaa mainitun IIR-suotimen.
30 JOHDATUS SIGNAALINKÄSITTELYYN 2 2 Amplitudivaste desibeliasteikolla 2 Amplitudivaste desibeliasteikolla Amplitudivaste lineaarisella asteikolla Amplitudivaste lineaarisella asteikolla (a) (b) 5 Amplitudivaste desibeliasteikolla 5 Amplitudivaste desibeliasteikolla Amplitudivaste lineaarisella asteikolla Amplitudivaste lineaarisella asteikolla (c) (d) Ainoastaan varsinaisen suodatuksen toteuttavat rivit puuttuvat. Lisää sopivat rivit (kaksikin riittää). Ohjelmassa taulukko x[] sisältää suodatettavan signaalin ja tulossignaali tulee sijoittaa taulukkoon y[]. Esimerkissä signaali x alustetaan impulssiksi, jolloin lopputuloksena taulukossa y on suotimen impulssivaste. Alla oleva ohjelmakoodi löytyy verkosta ja kääntyy Lintulassa kääntäjällä cc, käännä ja aja ohjelma. main() { float x[]; /* Suodatettava signaali */ float y[]; /* Suodatuksen tulos */ float b[]={.2353,.8746,.283,.8746,.2353}; float a[]={.,.268,.65,.2989,.339}; int n; int k;
31 3. IIR-SUODINTEN SUUNNITTELU 23 /* Alustetaan x impulssiksi ja y nollasignaaliksi */ for (n=;n<;n++) { x[n]=.; y[n]=.; } x[4]=.; /* Suodatetaan signaali x ja sijoitetaan tulos y:hyn */ for (n=4;n<;n++) { /**** Lisää tähän tarvittavat rivit ****/ } /* Tulostetaan y:n arvot */ } for (n=4;n<;n++) printf ("%.4f ",y[n]); printf ("\n"); 3.3. (Matlab) Suunnittele jollakin Matlabin neljästä suunnittelurutiinista IIR-alipäästösuodin, joka päästää läpi taajuudet välillä Hz 4 Hz ja poistaa taajuudet 7 Hz 2 Hz, kun näytteenottotaajuus on 4 Hz. Minimivaimennus estokaistalla on 45 db ja maksimivärähtely päästökaistalla on.3 db. Tulosta ruudulle impulssivaste (impz), amplitudivaste (freqz) ja napa-nollakuvio (zplane) (Matlab) Vertaile eri menetelmillä (4 kpl) suunniteltujen IIR-suodinten kertoimien lukumäärää kun suunnittelukriteerit ovat samat kuin edellisessä tehtävässä (Matlab) Vertaa tulosta ja Remez-menetelmän vaatimien kertoimien määrää (komento: remezord) samoilla suunnittelukriteereillä (Matlab) IIR-suodinten suunnittelussa yleisin menetelmä on bilineaarimuunnos, joka muuntaa analogisen suotimen vastaavaksi digitaaliseksi suotimeksi. Toteutetaan tämä algoritmi alipäästösuotimen tapauksessa Matlabilla tässä ja seuraavassa tehtävässä. Valitettavasti tällä kurssilla ei voida tutustua menetelmän takana olevaan teoriaan, joten tehtävä saattaa tuntua pelkältä kaavakokoelman kirjoittamiselta. Tälläkin tasolla on kuitenkin mahdollista saada käsitys algoritmin monimutkaisuudesta sekä perusideasta. Algoritmi on pääpiirteissään seuraava.. Muunna IIR-suotimen suunnitteluvaatimukset vastaavan analogisen suotimen
32 JOHDATUS SIGNAALINKÄSITTELYYN 2 vaatimuksiksi käyttäen muunnosta Ω p = Ω s = c tan(ω s /2), missä ω p on digitaalisen suotimen päästökaistan rajataajuus, ω s on digitaalisen suotimen estokaistan rajataajuus ja Ω p ja Ω s ovat analogisen suotimen vastaavat. Kerroin c saadaan kaavasta c = tan(ω p /2). Huomaa, että taajuudet Hertseinä pitää ensin normalisoida näytteenottotaajuudella ja kertoa luvulla 2π, jotta saadaan ω p ja ω s. 2. Suunnittele analoginen suodin H(s), joka toteuttaa suunnitteluvaatimukset. 3. Muunna analoginen suodin digitaaliseksi bilineaarimuunnoksella, eli sijoittamalla muuttujan s paikalle lauseke s = c z z +, jolloin tuloksena on siirtofunktio H(z). Kerroin c määriteltiin kohdassa. Tarkastellaan näitä kolmea vaihetta tässä ja seuraavassa tehtävässä. Luo tiedosto lowpass.m, jonka ensimmäinen rivi on function [N,D]=lowpass(fp, fs, varahtely, vaimennus, Fs), Näin määritellään siis funktio, jonka parametrit ovat päästökaistan rajataajuus (fp, Hertseinä), estokaistan rajataajuus (fs, Hertseinä), päästökaistan maksimivärähtely (varahtely, desibeleinä, positiivinen kokonaisluku), estokaistan minimivaimennus (vaimennus, desibeleinä, positiivinen kokonaisluku), sekä näytteenottotaajuus (Fs). Näitä muuttujia käyttäen pitäisi tehdä ohjelma, joka palauttaa vektorit N (siirtofunktion osoittaja) ja D (siirtofunktion nimittäjä). Alla on ohjeita, miten ohjelma voisi edetä. Muunna ensin rajataajuudet vastaaviksi analogisen suotimen rajataajuuksiksi. Analogisen Butterworth-suotimen amplitudivasteen neliö on alla olevan kuvan mukainen. Kuvasta voidaan ratkaista vaimennusparametrit: ɛ = δp/, A = δs/, missä δ p on digitaalisen suotimen päästökaistan maksimivärähtely ja δ s on digitaalisen suotimen estokaistan minimivaimennus. Laske ɛ ja A. Englanniksi tästä operaatiosta käytetään nimitystä prewarping.
33 3. IIR-SUODINTEN SUUNNITTELU 25 +ε2 2 A 2 Ω = p Ω c Ω s Ω 3.7. (Matlab) (Jatkoa tehtävään 3.6) Suotimen aste voidaan arvioida kaavasta ( ) A log 2 ɛ M = 2. 2 log Ω s Tuloksena saadaan siis siirtofunktion aste, joka pitää pyöristää ylöspäin kokonaisluvuksi (pyöristys: ceil). Vaatimukset toteuttavan Butterworth-tyyppisen analogisen suotimen siirtofunktio H(s) on muotoa ( ) M p p 2 p M H(s) = (s p )(s p 2 ) (s p M ), missä navat p,p 2,...,p M saadaan kaavasta p k =. ɛ /Meπi[/2+(2k )/(2M)] Laske ohjelmassasi kyseiset navat ja muodosta niistä vektori. Kun analogisen prototyypin navat ovat selvillä, saadaan vastaavat digitaalisen suotimen navat bilineaarimuunnoksella. Bilineaarimuunnoksen kaavahan oli s = c z z +. Nyt tiedetään analogisen suotimen navat (s) ja halutaan digitaalisen suotimen navat (z). Ylläolevasta kaavasta ratkaistaan siis z: z = + s/c s/c. Kukin napa p k kuvautuu siis digitaalisen suotimen navaksi p k = + p k/c p k /c. Tee sama Matlabilla. Vektorit jaetaan termi kerrallaan operaatiolla "./", esimerkiksi p3=p./p2.
34 JOHDATUS SIGNAALINKÄSITTELYYN 2 Digitaalisen alipäästösuotimen tapauksessa kaikki nollat ovat pisteessä z =. Muodosta näistä vektori (M termiä), minkä jälkeen saat siirtofunktion komennolla zp2tf. Komento saa parametreinään nollat, navat sekä vahvistuksen nollataajuudella (gain). Laita tässä vaiheessa vahvistukseksi ykkönen. Nyt sinulla on siirtofunktion kertoimet (osoittaja N ja nimittäjä D). Koska vahvistukseksi heitettiin summassa ykkönen, se on varmaankin pielessä. Vähäisellä pyörittelyllä havaitaan, että todellinen vahvistus nollataajuudella (H()) on Matlabin syntaksilla ilmaistuna K=sum(N)/sum(D). Lopullinen tulos saadaan nyt jakamalla vektori N luvulla K. Rutiini palauttaa vektorit N ja D automaattisesti (Matlab) Suunnittele edellisen tehtävän rutiinilla seuraavien vaatimusten mukainen alipäästösuodin. Päästökaista Estokaista Päästökaistan maksimivärähtely Estokaistan minimivaimennus Näytteenottotaajuus [ khz,9khz], [2.5 khz,6khz],.4 db, 25 db, 32 khz. Tulosta ruudulle napa-nollakuviot sekä amplitudivaste.
35 Luku 4 Äärellisen sananpituuden vaikutukset IIR-suotimia käytettäessä Tähänastinen IIR-suodinten suunnittelu on tehty oletuksella, että käytössä on ääretön sananpituus ja laskentatarkkuus. Jopa Matlabilla suunniteltaessa saatavien suodinten kertoimet on esitetty verrattain suurella tarkkuudella. Kun suotimet käytännössä toteutetaan, täytyy kuitenkin kiinnittää huomiota käytettävän lukuesityksen vaikutukseen suodinten todelliseen käyttäytymiseen. Jos suotimet toteutetaan jollain korkean tason ohjelmointikielellä (C, Pascal, Fortran, Matlab), pyöristysvirheet eri vaiheissa ovat suhteellisen pieniä johtuen näiden kielten kehittyneestä liukulukuaritmetiikasta. Todellisiin ongelmiin joudutaan kun käytetään esimerkiksi signaalinkäsittelykorttia, jossa käytetään 8-, 2- tai 6- bittistä kiinteän pilkun aritmetiikkaa. Toisaalta suunniteltaessa signaalinkäsittelypiirejä, on syytä käyttää mahdollisimman pientä määrää bittejä, jotta laskutoimitukset saataisiin yksinkertaisemmaksi toteuttaa ja jotta piiri olisi halpa valmistaa. Digitaalisen IIR-suotimen tärkeimmät äärellisestä sananpituudesta johtuvat virhelähteet on lueteltu seuraavassa. Kvantisointivirhe, joka syntyy muunnettaessa sisään tuleva analoginen signaali digitaaliseksi signaaliksi, jonka esityksessä käytetään verraten pientä bittimäärää. IIR-suotimen kertoimien esitys äärellisellä bittimäärällä aiheuttaa muutoksia taajuusvasteessa ja stabiilisuusominaisuuksissa. Äärellisen sananpituuden seurauksena järjestelmän laskutoimituksissa saattaa tulla ylivuotoa, jolloin tulokset menettävät merkityksensä lähes täysin. Suodatettaessa tarvittavien kertolaskuoperaatioiden tulokset pyöristetään tai katkaistaan käytetyn sananpituuden mukaisesti. Jos aritmetiikka on toteutettu kahden komplementtiin (two s complement) perustuen, niin ylivuototilanteessa esimerkiksi kahden suuren positiivisen luvun summaksi saadaan itseisarvoltaan suuri negatiivinen luku. Tämä luonnollisestikin sotkee koko suodatuksen, sillä tällainen suuri virhe säilyy ja kertautuu jatkossa IIR-suodinten rekursiivisen rakenteen vuoksi.
36 JOHDATUS SIGNAALINKÄSITTELYYN 2 4. Muunnosvaiheen kvantisointivirhe Muunnettaessa saapuva analoginen signaali digitaaliseksi on käytettävissä ainoastaan äärellinen määrä bittejä kunkin signaalin arvon esittämiseen. Merkitään käytettävää bittimäärää (merkkibittiä lukuunottamatta) muuttujalla b ja tarkastellaan tapausta, jossa diskreetin signaalin kaikki lukuarvot on jaettu tasavälisesti välille [, ]. Jos käytössä on esimerkiksi seitsemän bittiä (+merkkibitti), voidaan kahden komplementtiaritmetiikalla esittää luvut 28, 27, 26,...,,,,...,25, 26, 27. Nämä luvut skaalataan välille [, ] yksinkertaisesti jakamalla ne luvulla 2 7 = 28. Näin saadaan kvantisointitasot 28, 27, 26,...,,, 25,...,, 26, 27. Nämä kolme esitysmuotoa tapauksessa b = 2 on esitetty alla olevassa taulukossa. binääriesitys desimaaliesitys kvantisointitaso Taulukon tapauksessa kahden kvantisointivälin etäisyys on ja yleisesti ottaen se on 4 2 b käytettäessä b:tä bittiä (+merkkibittiä). Kvantisoitaessa muodostuva virhe on enintään puolet tästä eli 2 b /2, jos käytetään pyöristystä lähimpään numeroon. Tämä virhe e(n) voidaan ajatella lisätyksi alkuperäiseen signaaliin x(n), jolloin saadaan tulos ^x(n) =x(n)+e(n). Alla olevissa kuvissa on esitetty sinisignaali yhtenäisellä viivalla ja tulos kvantisoitaessa seitsemään bittiin (+merkkibittiin) ympyröillä. Alemmassa kuvassa on kvantisointivirhe e(n) x Tyypillisesti kvantisointivirheestä e(n) tehdään seuraavat oletukset tilastollista analyysiä varten. Ylin kvantisointitaso on poikkeus tästä, koska esimerkiksi taulukon tilanteessa pitää kaikki luvut väliltä [ 3 4,] pyöristää alaspäin lukuun 3 4. Tämä poikkeus jätetään yleensä huomiotta, koska suuremmilla bittimäärillä virheen suuruusluokka on hyvin pieni ja se myöskin esiintyy hyvin harvoin.
37 4. ÄÄRELLISEN SANANPITUUDEN VAIKUTUKSET IIR-SUOTIMIA KÄYTETTÄESSÄ 29. Signaali e(n) on stationaarinen satunnaisprosessi, eli sen tilastolliset ominaisuudet eivät muutu ajan myötä. 2. Signaalin e(n) lukuarvot eivät riipu lukujonon x(n) arvoista. 3. Signaalin e(n) arvot ovat riippumattomia toisistaan, eli e(n) on valkoista kohinaa (white noise). 4. Signaalin e(n) arvot ovat jakautuneet tasaisesti välille ( 2 b /2, 2 b /2]. Nämä oletukset ovat syntyneet käytännön pakosta, ja eivät suinkaan pidä paikkaansa kaikille signaaleille x(n). Jos esimerkiksi x(n) on yksikköaskel, niin useimmat edellä mainituista oletuksista eivät ole voimassa. Näitä oletuksia käyttämällä saadaan kuitenkin johdettua yksinkertainen malli kvantisointivirheiden vaikutukselle IIR-suotimen käyttäytymiseen. Jos oletetetaan järjestelmän käyttävän pyöristystä lähimpään lukuun, niin silloin signaalin e(n) odotusarvo 2 µ e = E[e(n)] =, ja varianssi σ 2 e = E[(e(n) µ }{{} e ) 2 ]=E[e(n) 2 ]. = Odotusarvon (toisesta) määritelmästä 3 saadaan edelleen: E[e(n) 2 ] = = 2 b 2 b /2 2 b /2 x 2 dx 2 b 2/ b /2 2 b /2 = 2 b ( 2 3b = 2 2b 2. x b 24 Kvantisoidun signaalin signaali-kohinasuhde (signal to noise ratio; SNR) määritellään signaalin tehon suhteena kohinan tehoon (desibeliasteikolla), ja se saadaan näiden varianssien suhteesta: σ 2 x SNR = log. σ 2 e 2 n Kutakuinkin sama asia kuin lukujonon keskiarvo, s.o. lim n 2n+ k= n e(k). 3 Jos tiedetään satunnaismuuttujan x jakauma p(x), voidaan x:n odotusarvo laskea kaavasta E[x] = xp(x) dx. )
38 JOHDATUS SIGNAALINKÄSITTELYYN 2 Signaali-kohinasuhde on siis kvantisoinnissa b bittiin (+merkkibitti) σ 2 x SNR = log 2 2b /2 = log (σ 2 x)+ log (2)+2b log (2) log (σ 2 x) b. Signaali-kohinasuhde kasvaa siis noin 6 db jokaista lisäbittiä kohden. Ylla olevaa kaavaa sievempään muotoon ei ole mahdollista päästä tekemättä oletuksia signaalista x(n) ja sen varianssista σ 2 x. Kulutuselektroniikkatuotteissa halutaan yleensä mahdollisimman hyvä signaali-kohinasuhde ja siksi teknisissä tiedoissa ilmoitettu SNR lasketaan mahdollisimman suuriamplitudiselle signaalille. Tällaiseksi sopii esimerkiksi sini- tai kosinisignaali amplitudilla, esimerkiksi x(n) =cos(2π.25n). Nyt signaalissa x(n) toistuu jakso...,,,,,..., joten signaalin neliön odotusarvo on 2. Samaan tulokseen päästään muillakin taajuuksilla kuin.25. Oletuksella σ2 x = 2 saadaan signaali-kohinasuhteeksi SNR log ( ) b = 6.2b Esimerkiksi CD-soitin esittää näytteet 6 bitin tarkkuudella, joten tällä sinisignaalilla sen SNR 6.2 (6 ) db. Toinen yleinen oletus signaalin x(n) varianssista on, että sen amplitudi on skaalattu johonkin vakioarvoon. Käytännön tilanteissa täytyy nimittäin varautua siihen, että analoginen signaali, josta näytteitä otetaan, saa ajoittain hyvinkin suuria arvoja. Siksi sisääntulevan signaalin amplitudi on tapana kertoa jollain vakiolla A. Näin saatavan signaalin Ax(n) hajonta on A 2 σ 2 x, joten kvantisoinnin jälkeinen signaali-kohinasuhde on SNR 6.2b log (σ 2 x)+2 log (A). Nyrkkisääntönä voidaan sanoa, että valitsemalla A = /(4σ x ) käytännössä eliminoidaan liian suurien arvojen saapumisen mahdollisuus. Tällöin skaalatun signaalin Ax(n) varianssi on σ 2 x/(6σ 2 x)= ja signaali-kohinasuhde on desibeleissä 6 SNR 6.2b log ( )=6.2b Muitakin skaalaustermejä toki käytetään ja kullekin niistä voidaan johtaa oma SNR-kaava. Mitä pienempi skaalaustermi A on, sitä pienemmäksi tulee myös SNR. Jos esimerkiksi halutaan signaali-kohinasuhteeksi tällä skaalauksella yli 8 db, niin pitää olla 6.2b.25 > 8, eli b> = Näin ollen riittää valita 4-bittinen esitys (+merkki).
39 4. ÄÄRELLISEN SANANPITUUDEN VAIKUTUKSET IIR-SUOTIMIA KÄYTETTÄESSÄ Suodatuksen vaikutus kvantisointivirheeseen Tarkastellaan kvantisoidun signaalin ^x(n) = x(n) +e(n) suodatusta lineaarisella ja aikainvariantilla (LTI) järjestelmällä F( ), jonka impulssivaste on h(n). Koska järjestelmä on lineaarinen, niin suodatustuloksen F[^x(n)] = F[x(n)+e(n)] = F[x(n)] + F[e(n)] virhettä voidaan tarkastella erikseen. Suodatuksen jälkeinen pelkästään kvantisoinnista johtuva virhe on f(n) =F[e(n)] = h(k)e(n k). k= k= Tämän virheen odotusarvo on [ ] µ f = E h(k)e(n k) = k= = µ e k= h(k)e[e(n k)] h(k). Viimeiselle lausekkeelle saadaan myös käyttökelpoisempi muoto havaitsemalla z-muunnoksen määritelmästä, että µ e h(k) =µ e H(). k= Varianssin laskenta on hieman hankalampaa, ja lausekkeen johto sivuutetaankin tässä yhteydessä. Lopputulos voidaan ilmaista seuraavasti. Kvantisointivirheestä johtuvan virheen varianssi σ 2 f suodatuksen jälkeen voidaan esittää seuraavissa muodoissa: σ 2 f = σ 2 e h(n) 2 = σ2 e 2π = σ2 e 2πi n= π π H ( e iω) 2 dω C H(z)H(z ) dz z, missä σ 2 e on sisäänmenevän (kvantisointivirheestä johtuvan) valkoisen kohinan varianssi, h(n) on tarkasteltavan suotimen impulssivaste, H(z) on sen siirtofunktio ja C on funktion H(z)H(z )/z suppenemisalueella sijaitseva suljettu käyrä. Esimerkki: Oletetaan, että analoginen signaali muunnetaan digitaaliseksi (+7)-bittisellä A/D-muuntimella, ja että näin saatu digitaalinen signaali suodatetaan IIR-suotimella, jonka siirtofunktio on H(z) = z +.5.
40 JOHDATUS SIGNAALINKÄSITTELYYN 2 Suodattimen toteuttava differenssiyhtälö on siis y(n) =.5y(n )+x(n ). Mikä on ulostulossa oleva pelkästään kvantisoinnista johtuva virhe, kun äärellisestä laskentatarkkuudesta ja kertoimien äärellisestä esityksestä johtuvat virheet jätetään huomiotta? Muunnosvaiheessa on käytössä 8 bittiä, joista yksi käytetään merkkibitiksi. Tässä tapauksessa siis b = 7. Muunnosvaiheen virheen varianssi saadaan edellä olleesta kaavasta, σ 2 e = 2 2b 2 = = Tätä vastaava keskiarvohan on, kun oletetaan, että analogisen signaalin arvot pyöristetään aina lähimpään lukuun suoran katkaisun asemesta. Ulostulon kvantisointivirheestä johtuvan kohinan varianssi voidaan johtaa ratkaisemalla järjestelmän impulssivaste: ( h(n) = n u(n ) 2) ja sijoittamalla se edellä olleeseen kaavaan σ 2 f = σ 2 e = σ 2 e n= n= = σ 2 e 4 = 4 3 σ2 e. ( 4 h(n) 2 ) n Kohinan varianssi kasvaa siis 4/3-kertaiseksi eli on kaikkiaan σ 2 f = FIR-suodinten tapauksessa tilanne on yksinkertaisempi kuin IIR-suotimilla. Esimerkiksi FIR-suotimen, jonka impulssivasteen kertoimet ovat /3, kun n =,, 2 ja muulloin, ulostulossa olevan kvantisoinnista johtuvan kohinan varianssi on σ 2 f = σ 2 e n= h(n) 2 ( ( ) 2 = σ 2 e + 3 = 3 9 σ2 e = 3 σ2 e. ( ) ( ) ) 2 3
41 4. ÄÄRELLISEN SANANPITUUDEN VAIKUTUKSET IIR-SUOTIMIA KÄYTETTÄESSÄ Äärellisen sananpituuden vaikutus IIR-suotimen kertoimien talletuksessa ja niillä kertomisessa. Kvantisointivirheen lisäksi toinen, merkittävämpi virhelähde on kertolaskujen toteuttaminen äärellisellä aritmetiikalla. Jos kaksi lukua, jotka on esitetty b:n bitin tarkkuudella kerrotaan keskenään, tulokseksi saadaan luku, jonka täsmällinen esittäminen vaatii enintään 2b bittiä. Huonommassa tapauksessa tarvittavien bittien määrä kasvaa siis eksponentiaalisesti suoritettujen kertolaskujen lukumäärään nähden. Käytännössä kertolaskujen tuloksena saatavat luvut täytyy aina pyöristää lähimpään b-bittiseen esitykseen. Tästä johtuvan virheen tarkastelu on useimmiten tapauskohtaista. Tähän virhetyyppiin palataan myöhemmillä signaalinkäsittelyn kursseilla. Harjoitustehtäviä 4.. Laske A/D-muunnoksessa syntyvän kvantisointikohinan varianssi kun käytössä on (a) merkkibitti+3 bittiä, (b) merkkibitti+7 bittiä, (c) merkkibitti+ bittiä, (d) merkkibitti+5 bittiä Oletetaan, että analoginen näytteistettävä signaali skaalataan vakiolla A = /(4σ x ). Mikä on digitaalisen signaalin signaali-kohinasuhde (SNR) kun käytössä on (a) merkkibitti+3 bittiä, (b) merkkibitti+7 bittiä, (c) merkkibitti+ bittiä, (d) merkkibitti+5 bittiä? 4.3. Laske signaali-kohinasuhteen kaava, jos skaalauksessa käytetäänkin vakiota A =. 2σ x 4.4. Oletetaan, että analoginen signaali on muotoa x(t) =sin(ωt + φ). Tälle signaalille σ 2 x = /2. Mikä on nyt signaali-kohinasuhteen kaava näytteenoton jälkeen, kun oletetaan, ettei analogista signaalia skaalata lainkaan? Mikä on SNR, kun käytetään 5 bittiä merkkibitin lisäksi? 4.5. (Matlab) Seuraavalla menettelyllä voidaan tutkia kvantisoinnin vaikutusta Matlabilla. Määritellään ensin testisignaali x=randn(2,);. Tämä voidaan kvantisoida esim. seitsemään bittiin (+merkkibittiin) komennolla y=quant(x,/2^7);. Tulosta virhesignaali x-y ruudulle ja laske sen varianssi (help cov). Vertaa tätä teoreettiseen tulokseen (tehtävä 4..). Toista sama (+3):lle, (+):lle ja (+5):lle bitille.
42 JOHDATUS SIGNAALINKÄSITTELYYN (Matlab) Suunnittele Matlabilla elliptinen IIR-suodin, jonka estokaista on näytteenottotaajuudella normalisoituna [,.] ja päästökaista [.5,.5]. Estokaistan minimivaimennus on 5 db ja päästökaistan maksimivärähtely. db. Kvantisoi kertoimet (vektorit b ja a) (+):n bittiin ja tulosta ruudulle näin saadun suotimen taajuusvaste kvantisoimattoman kanssa samaan kuvaan. Kuinka paljon estokaistan vaimennus huononi? 4.7. Tarkastellaan ensimmäisen asteen IIR-suodinta, jonka siirtofunktio on H(z) =.8z. Oletetaan että analoginen signaali muunnetaan digitaaliseksi 8-bittisellä A/D-muuntimella (merkki+7 bittiä). Mikä on suotimen ulostulossa oleva pelkästään kvantisoinnista johtuva virhe, kun äärellisestä laskentatarkkuudesta ja kertoimien äärellisestä esityksestä johtuvat virheet jätetään huomiotta? 4.8. (Matlab) Luo normaalijakautunut satunnainen testisignaali komennolla randn. Pituus voi olla joitakin tuhansia näytteitä. Kvantisoi signaali kahdeksaan bittiin (merkki + 7 bittiä), ja laske empiirisesti näin saadun kvantisointikohinan varianssi. Suodata kvantisoitu sekä kvantisoimaton signaali tekstissä olevan esimerkin suotimella y(n) =.5y(n ) + x(n ). Suodatuksen jälkeinen kvantisointikohina on nyt tulossignaalien erotus. (a) Laske suodatuksen jälkeisen kvantisointikohinan varianssi ja vertaa tulosta esimerkissä laskettuun teoreettiseen tulokseen. (b) Teoriassa kohinan varianssi kasvoi suodatettaessa 4 -kertaiseksi. Entä käytännössä? Tarkastellaan ensimmäisen asteen IIR-suodinta, jonka siirtofunktio on H(z) = az. Tässä lausekkeessa a on jokin reaalivakio, jonka itseisarvo a <. Johda (vakiosta a riippuva) lauseke suotimen ulostulossa olevalle pelkästään kvantisoinnista johtuva virheelle, kun äärellisestä laskentatarkkuudesta ja kertoimien äärellisestä esityksestä johtuvat virheet jätetään huomiotta ja A/D-muunnin käyttää ( + 7) bitin esitystä? Mitä virheelle tapahtuu kun a lähestyy ykköstä?
43 Luku 5 Näytteenottotaajuuden muuntelu (Multirate DSP) Näytteenottotaajuuden muuntelusta A/D-muunnoksen jälkeen käytetään englannin kielessä nimitystä multirate DSP, mutta sille ei ole olemassa lyhyttä suomenkielistä nimeä. Yksinkertaisin menetelmä näytteenottotaajuuden muuntamiseksi on tietysti muuntaa signaali ensin analogiseksi ja tämän jälkeen muuntaa se takaisin digitaaliseksi uudella näytteenottotaajuudella. Tämä menettely johtaa kuitenkin ylimääräisiin kvantisointi- eli pyöristysvirheisiin, joita on syytä välttää. Ongelma on mahdollista ratkaista pelkästään digitaalisen signaalinkäsittelyn keinoin. Tällöin saadaan taatusti optimaalinen tulos, jossa ei ole mukana ylimääräisiä kvantisointikohinoita. Ongelma on siis seuraava: on olemassa signaali, joka on muodostettu analogisesta signaalista näytteenottotaajuudella f. Tästä signaalista halutaan selvittää se digitaalinen signaali, joka on mahdollisimman lähellä sitä signaalia, joka olisi saatu näytteenottotaajuudella ^f. Kouluesimerkki kyseisestä ongelmasta on muunnos CD-formaatista DAT-formaattiin. CD-levyillä data on nimittäin esitetty näytteenottotaajuudella 44. khz. Sen sijaan DATnauhurin formaatti perustuu näytteenottotaajuuteen 48 khz. Usein muunnos toki hoidetaan käytännössä muuntamalla signaali ensin analogiseksi ja edelleen digitaaliseksi taajudella 48 khz. Parempaan tulokseen kuitenkin on mahdollista päästä multirate-signaalinkäsittelyn menetelmin. Taajuuden muuntaminen on tarpeellista myös, kun signaalista on syystä tai toisesta otettu näytteitä liian korkealla taajuudella. Tällöin siis signaalissa ei ole läheskään niin suuria taajuuksia kuin näytteenottotaajuus mahdollistaa. Kun kuitenkin näytteenottotaajuus on suuri, tulee suunniteltujen suodintenkin aste tarpeettoman korkeaksi. Pienempi aste saavutetaan, jos taajuudet muunnetaan ensin pienemmäksi ja suodatetaan vasta sitten. Tämän jälkeen signaali voidaan tarvittaessa muuntaa jälleen suurempaan taajuuteen. Muuntaminen käytännössä tapahtuu kahden perusoperaation avulla: Interpolointi kasvattaa signaalin näytteenottotaajuutta lisäämällä ylimääräisiä arvoja, Desimointi pienentää signaalin näytteenottotaajuutta poistamalla osan alkuperäisen signaalin arvoista. Desimointi ja interpolointi muuntavat näytteenottotaajuutta jollain kokonaislukukertoimella (esimerkiksi khz 2kHz tai khz.5khz, jne). Näitä operaatioita yhdiste-
44 JOHDATUS SIGNAALINKÄSITTELYYN 2 lemällä saadaan aikaiseksi kaikkia rationaalikertoimia vastaavat taajuusmuunnokset. Tarkastellaan lähemmin muunnosta CD-formaatista DAT-formaattiin. Käytössä on 44. khz ja tavoite olisi 48 khz. Muunnoskerroin on 48/44. = 48/44 = 6/47. Ensin taajuus korotetaan siis arvoon = 756 khz interpoloimalla kertoimella 6. Tämän jälkeen signaali muunnetaan takaisin taajuuteen 48 khz desimoimalla kertoimella 47. Merkittävää on, että muunnos tapahtuu juuri tässä järjestyksessä. Jos ensin olisi desimoitu, niin tuloksena olevassa signaalissa näytteenottotaajuus olisi ollut liian pieni, ja suurin osa signaalin informaatiosta olisi hävinnyt. Nyt tällaista informaatiohävikkiä ei tapahdu. 5. Desimointi eli näytteenottotaajuuden alentaminen Oheinen kaavio esittää signaalin x(n) desimointiin liittyviä vaiheita. Ennen varsinaista näytteenottotaajuuden pienentämistä signaali täytyy suodattaa alipäästösuotimella laskostumisen estämiseksi. Näin saadun signaalin näytteenottotaajuutta pienennetään jättämällä ainoastaan osa alkuperäisen signaalin arvoista jäljelle. Desimointioperaatiota merkitään alaspäin osoittavalla nuolella ja taajuuden muunnoskertoimella. Esimerkiksi näytteenottotaajuuden pudottamista kolmannekseen merkitsevä symboli on 3. Kuvion tapauksessa alkuperäinen näytteenottotaajuus F s pudotetaan desimoinnissa arvoon F s /M. Tämä tehdään poimimalla joka M:s alkio desimoituun signaaliin. x(n) H(z) w(n) Antialiassuodatin Uudelleennäytteistys M y(n) Koska desimoitaessa näytteenottotaajuus pienenee, on laskostumisen vaara ilmeinen. Laskostuminenhan estetään ainostaan poistamalla signaalista taajuudet, jotka ovat suurempia kuin puolet näytteenottotaajuudesta. Tämän suorittava suodin (digital anti-aliasing filter) on siis sellainen alipäästösuodin, joka poistaa kaikki arvoa F s /2M suuremmat taajuudet. Normalisoiduissa taajuuksissa ilmaistuna alipäästösuotimen suunnitteluvaatimukset ovat seuraavat. Suotimen päästökaista on [, f]. 2M Suotimen estokaista on [, ]. 2M 2 Siirtymäkaistan leveys, f, määräytyy sovelluksen mukaan. Mitä kapeammaksi siirtymäkaista halutaan, sitä enemmän kertoimia suotimessa tulee olla. Myös vaimennusvaatimukset riippuvat sovelluksesta. Kaavoina signaalin x(n) desimointiprosessi kertoimella M signaaliksi y(n) voidaan ilmaista seuraavasti: w(n) = h(k)x(n k), k= y(m) = w(mm) = h(k)x(mm k). k=
45 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 37 Alla olevat kuvat esittävät desimoinnin vaikutusta aikatasossa. Alkuperäinen signaali x(n) suodatetaan ensin alipäästösuotimella, jolloin saadaan signaali w(n), joka on valmis desimoitavaksi. Desimoitaessa kertoimella 3 otetaan uuteen signaaliin mukaan ainoastaan joka kolmas arvo. Vertailun vuoksi mukana on myös signaali, joka on saatu desimoimalla ilman alipäästösuodatusta. Alkuperäinen signaali Alipäästösuodatettu signaali Desimoitu suodatettu signaali Desimoitu suodattamaton signaali Desimointiprosessi selvinnee helpommin taajuustason kuvaajista. Ensimmäinen kuvaaja esittää alkuperäisen signaalin x(n) spektriä (diskreetin Fourier-muunnoksen itseisarvoa sopivasti ikkunoituna ja interpoloituna) X(n). Esimerkin tapauksessa näytteenottotaajuus on 892 Hz. Tällöin siis suurin signaalin sisältämä taajuus on 496 Hz. Kun tätä signaalia halutaan desimoida kertoimella 3, täytyy ensin poistaa 365 Hz suuremmat 3 taajuudet. Tätä varten suunnitellaan alipäästösuodin, jonka estokaista on väli [, ] (näytteenottotaajuuden suhteen normalisoituina taajuuksina) ja päästökaista nollasta johonkin 6 2 lukua /6 pienempään lukuun, riippuen kuinka paljon kertoimia on varaa käyttää. Oheisessa esimerkissä päästökaistan rajataajuudeksi valittiin.4, päästökaistan maksimivärähtelyksi.9db (. lineaarisella asteikolla) ja estokaistan minimivaimennukseksi 4dB (. lineaarisella asteikolla). Tämän suotimen amplitudivaste on kuvattu kuvassa oheises-
46 JOHDATUS SIGNAALINKÄSITTELYYN 2 sa kuvassa. Tällä suotimella suodatettaessa saadaan signaali w(n), jonka spektri on suotimen amplitudivasteen alla olevassa kuvassa. Kun signaalista w(n) jätetään jäljelle vain joka kolmas arvo tuloksena on signaali y(n), jonka spektri on seuraavassa kuvassa. Nyt siis uusi näytteenottotaajuus on 892/3Hz. Viimeinen kuvaaja esittää suodattamattoman desimoidun signaalin spektriä, jossa laskostumisilmiö on selvästi havaittavissa. Siinä oleva spektri poikkeaa alkuperäisen signaalin vastaavasta kaistasta, vaikka ne halutaan mahdollisimman lähelle toisiaan. 4 Alkuperäisen signaalin spektri Taajuus (Hz) Suodattimen amplitudivaste Taajuus (Hz) 4 Suodatetun signaalin spektri Taajuus (Hz) 4 Desimoidun signaalin spektri Taajuus (Hz) 4 Desimoidun suodattamattoman signaalin spektri Taajuus (Hz)
47 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) Näytteenottotaajuuden pienentäminen useassa vaiheessa (multistage decimation) Desimaattoreiden toteutusta voidaan nopeuttaa pudottamalla näytteenottotaajuutta useammassa vaiheessa. Esimerkiksi näytteenottotaajuuden pudotus yhteen kymmenesosaan alkuperäisestä voidaan tehdä yhdessä vaiheessa kertoimella kymmenen tai kahdessa vaiheessa ensin kertoimella 5 ja sitten kertoimella 2. Kolmas mahdollisuus on pudottaa ensin kertoimella 2 ja sitten kertoimella 5. Kaikilla näillä menetelmillä tarvitaan eri määrä kertoimia, ja useimmiten suora pudotus kertoimella tarvitsee enemmän kuin useammassa vaiheessa tehdyt operaatiot. Alla on esitetty kaaviot eri menetelmistä, kun lähtötaajuus on 2 khz ja tavoite on 2 khz. Oletetaan lisäksi, että signaalista täytyy säilyttää taajuudet 9 Hertsiin asti ja että suunnittelussa käytetään FIR-suodatinta ja Hammingikkunaa. Yhdessä vaiheessa: x(n) H(z) y(n) Nyt päästökaista on väli [,.9] khz ja estokaista [, ] khz. Siirtymäkaista normalisoituna on näin ollen väli [.45,.5], joten kertoimia tarvitaan N = 3.3/ f = 3.3/ Kahdessa vaiheessa: x(n) H (z) 5 H 2 (z) 2 y(n) Nyt suotimen H (z) päästökaista on väli [,.9] khz ja estokaista [2, ] khz. Siirtymäkaista normalisoituna on näin ollen väli [.45,.], joten kertoimia tarvitaan N = 3.3/ Suotimen H 2 (z) päästökaista puolestaan on väli [,.9] khz ja estokaista [, 2] khz. Siirtymäkaista normalisoituna näytteenottotaajuudella 4 khz on näin ollen väli [.225,.25], joten kertoimia tarvitaan N 2 = 3.3/ Yhteensä kertoimia tarvitaan siis 94. Kahdessa vaiheessa: x(n) H (z) 2 H 2 (z) 5 y(n) Suotimen H (z) päästökaista on väli [,.9] khz ja estokaista [5, ] khz. Siirtymäkaista normalisoituna on näin ollen väli [.45,.25], joten kertoimia tarvitaan N = 3.3/ Suotimen H 2 (z) päästökaista puolestaan on väli [,.9] khz ja estokaista [, 5] khz. Siirtymäkaista normalisoituna näytteenottotaajuudella khz on näin ollen väli [.9,.], joten kertoimia tarvitaan N 2 = 3.3/. 33. Yhteensä kertoimia tarvitaan siis 348. Näin ollen tehtävä on viisainta suorittaa kahdessa vaiheessa kertoimilla 5 ja 2 (tässä järjestyksessä). Yleisesti pitää paikkansa, että desimointikertoimet kannattaa sijoittaa laskevaan järjestykseen. Siksi järjestys Järjestys x(n) H (z) 2 H 2 (z) 5 y(n) tuottaa aina enemmän kertoimia kuin x(n) H (z) 5 H 2 (z) 2 y(n), ja se olisi voitu alun perinkin jättää tarkastelematta. 5.3 Interpolointi eli näytteenottotaajuuden nostaminen Signaalin interpoloinnin tarkoituksena on saada aikaiseksi signaali, joka vastaa alkuperäistä, mutta jonka näytteenottotaajuus on suurempi. Oheinen kaavio esittää lohkokaavio-
48 JOHDATUS SIGNAALINKÄSITTELYYN 2 ta interpolointioperaatiosta. Toisin kuin desimoinnissa, nyt ei tarvita esisuodatusta, koska näytteenottotaajuutta nostettaessa kaikki alkuperäiset taajuudet voidaan toki esittää. x(n) Nollien lisääminen L w(n) Alipäästösuodatus H(z) y(n) Ensimmäinen operaatio on näytteenottotaajuuden nostaminen L-kertaiseksi. Tätä operaatiota merkitään nuolella ylöspäin ja interpolointikertoimella L, siis L. Tämän operaation toteuttamisessa on lukuisia vaihtoehtoja; kuinka määritetään uudet ylimääräiset arvot? Matemaatikko alkaisi tässä tapauksessa luultavasti sovittaa polynomeja tai splinejä saadakseen uusia arvoja olemassaolevien arvojen välille. Signaalinkäsittelyssä tilanne hoidetaan kuitenkin toisin: tuntemattomien arvojen tilalle sijoitetaan nollat ja näin saatu signaali suodatetaan alipäästösuotimella. Nollia lisättäessä mukaan tulee hyvin suuria taajuuksia. Suurten taajuuksien lisäämisen vaikutus on poistettava, ja se luonnollisesti tapahtuu alipäästösuodatuksella. Alkuperäisessä signaalissa suurin taajuus on F s /2. Interpoloitaessa näytteenottotaajuuteen LF s, suurin esitettävissä oleva taajuus on LF s /2. Taajuutta F s /2 suuremmat taajuudet on poistettava, koska ne ovat nollien lisäämisen tulosta. Nollien lisäämisen jälkeen saatu signaali (näytteenottotaajuus LF s ) suodatetaan siis alipäästösuotimella, joka säilyttää taajuudet väliltä [, F s /2] ja poistaa tätä suuremmat taajuudet. Koska nyt näytteenottotaajuus on interpoloinnin seurauksena LF s, niin suotimen vaatimukset on normalisoitava tämän luvun suhteen. On siis suunniteltava alipäästösuodin, jonka vaatimukset ovat: päästökaista on normalisoituina taajuuksina ilmaistuna väli [, (F s /2)/(LF s ) f] = [, 2L f]. Siirtymäkaistan leveys f riippuu jälleen sovellutuksesta jossa interpolointia on tarkoitus soveltaa ( f määrää osaltaan kertoimien määrän). estokaista on väli [(F s /2)/(LF s ),/2]= [ 2L, 2]. Myös vaimennusvaatimukset määräytyvät enimmäkseen sovellutuksen mukaan, eikä niiden valinnasta voida antaa mitään yleistä ohjenuoraa. Koska alkuperäiseen signaaliin sijoitetaan L nollaa jokaista signaalin arvoa kohden, signaalin amplitudi putoaa suodatettaessa yhteen L:n osaan. Siksi suodatuksen jälkeen (tai sitä ennen) signaalin arvot on syytä kertoa luvulla L. Kaavoina esitettynä signaalin x(n) interpolointiprosessi kertoimella L signaaliksi y(n) on seuraava: { x(m/l), kun m =, ±L, ±2L, w(m) =, muulloin, y(n) = h(k)w(n k). k=
49 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 4 Alkuperäinen signaali Alkuperäinen signaali, johon on lisätty nollia Alipäästösuodatettu signaali Yllä oleva kuva esittää esimerkkitapausta, jossa signaalin näytteenottotaajuus interpoloidaan kolminkertaiseksi (L = 3). Ensin signaaliin x(n) jokaisen kahden peräkkäisen arvon väliin sijoitetaan L = 2 nollaa, jolloin saadaan signaali w(m). Tämä suodatetaan alipäästösuotimella, jonka estokaista on [,.5], päästökaista [,.526] ja maksimivärähtelyarvot samat kuin desimointiesimerkissä. Tuloksena saadaan ulostulosignaali y(m). Tä- 6 mä signaali on lopuksi vielä kerrottava luvulla L = 3, jotta signaalin energia säilyisi. Tulos on alimmassa edellä olleista kuvista. Taajuustasossa tilanne on oheisen kuvan mukainen. Ylin kuva esittää alkuperäistä signaalia, jonka näytteenottotaajuus on esimerkissämme 892 Hz. Lisättäessä signaaliin nollia, saavutetaan signaali, jonka spektri W(e iω ) on seuraavassa kuvassa. Tästä on poistettava välillä 496 Hz 2288 Hz olevat taajuudet esimerkiksi suotimella, jonka amplitudivaste H(e iω ) on seuraavassa kuvassa. Tuloksena on signaali y(n), jonka spektri on alimmassa kuvassa. 4 Alkuperäisen signaalin spektri Taajuus (Hz)
50 JOHDATUS SIGNAALINKÄSITTELYYN 2 4 Nollilla täydennetyn signaalin spektri Taajuus (Hz) Suodattimen amplitudivaste Taajuus (Hz) Suodatetun signaalin spektri Taajuus (Hz) 5.4 Näytteenottotaajuuden muunnos rationaalikertoimella Kuten aiemmin mainittiin, rationaalikertoiminen näytteenottotaajuuden muunnos saadaan yhdistämällä interpolointi ja desimointi, tässä järjestyksessä. Jos siis näytteenottotaajuus halutaan L -kertaiseksi, interpoloidaan signaali ensin L-kertaiseksi ja desimoidaan tämän M jälkeen kertoimella M. Tässä kannattaa laskennan säästämiseksi supistaa murtoluku L M niin pitkälle kuin mahdollista. Järjestelmän lohkokaavio on alla olevan kuvan mukainen. x(n) Nollien lisääminen L H (z) H 2 (z) Alipäästösuodatus Antialiassuodatin Uudelleennäytteistys M y(n) Kaaviosta käy ilmi, että järjestelmässä on kaksi alipäästösuodatusta peräkkäin. Toinen näistä voidaan poistaa ja jättää jäljelle se, jonka suodatusvaatimukset ovat tiukemmat. Jos esimerkiksi kerroin L = 4, tulee suotimen H M 3 (z) päästökaistaksi [, f] =[, f] ja 2L 8 estokaistaksi [, ]. Suotimen H 8 2 2(z) vastaavat arvot ovat [, f] =[, f] ja [, ]. 2M Suodin H (z) poistaa siis laajemman taajuusalueen kuin H 2 (z), joten pelkkä H (z) riittää. Tässä yhteydessä täytyy luonnollisesti huomioida myös vaimennusvaatimusten toteutuminen. Alla oleva kaavio esittää näin saatavaa yksinkertaistettua järjestelmää.
51 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 43 x(n) Nollien lisääminen Alipäästösuodatus Uudelleennäytteistys L H(z) M y(n) 5.5 Interpoloinnin käyttö D/A-muunnoksessa Seitsemänkymmentäluvun puolivälin jälkeen alettiin tutkia mahdollisuuksia musiikin ja muun äänimateriaalin digitaaliseen tallentamiseen. Lopputuloksena syntyi CD-soitin, joka on nykyään yleisesti käytössä ympäri maailmaa. Seuraavassa tarkastellaan sen joitakin teknisiä yksityiskohtia ja erityisesti sen D/A-muunnosvaihetta, jossa digitaalinen signaali muunnetaan analogiseksi. Lisätietoja löytyy esimerkiksi Steiglitzin kirjasta sekä Philipsin julkaisusta 2. Kohinanmuokkausta tarkastellaan yksityiskohtaisemmin IEEE:n artikkelikokoelmassa 3. CD-levyn halkaisija on 2 cm ja raidat ovat.6 mikrometrin etäisyydellä toisistaan. Audio-CD:n sisältämä informaatio koostuu 6 bitin näytteistä, joita on otettu 44 Hertzin näytteenottotaajuudella. Koska stereoääni tarvitsee kaksi kanavaa, saadaan bittimääräksi miljoonaa bittiä sekunnissa. Todellinen levyllä oleva bittimäärä on kuitenkin noin kolminkertainen. Ylimääräiset bitit ovat enimmäkseen virheenkorjausta varten. Pieni osa biteistä tarvitaan myös kappaleiden pituuksien ja mahdollisesti myös nimien tallentamiseen. Multirate-tekniikan yhteydessä mielenkiintoisin vaihe on CD-soittimen D/A-muunnos Nollannen asteen pitopiiri Yksinkertaisimmillaan muunnos digitaalisesta signaalista analogiseksi tapahtuu nollannen kertaluvun pitopiirillä (engl. zero-order hold; ZOH tai sample-and-hold; S/H). Tällöin analogisen signaalin arvoksi asetetaan viimeksi tullut digitaalisen signaalin arvo. Oheisessa kuvassa esitetään erään digitaalisen signaalin muunnos analogiseksi nollannen kertaluvun pitopiirillä. Ympyrät kuvaavat digitaalisen signaalin arvoja ja viiva on analoginen approksimaatio Aika Ken Steiglitz, A Digital Signal Processing Primer, with Applications to Digital Audio and Computer Music, Addison-Wesley, Menlo Park, CA, "Compact Disc Digital Audio,"Philips Technical Review, vol. 4, no. 6, Oversampling Delta-Sigma Data Converters: Theory, Design and Simulation, toim. J. Candy ja G. Temes, IEEE Press, New York, 992.
52 JOHDATUS SIGNAALINKÄSITTELYYN 2 Äänisignaalin ollessa kyseessä mielenkiintoisinta on kuinka analogisen signaalin spektri vastaa alkuperäisen digitaalisen signaalin spektriä. Vastaus löytyy seuraavan kuvan simuloiduista spektreistä Normalisoidut taajuudet Normalisoidut taajuudet Ylemmässä kuvassa on digitaalisen signaalin spektri. Vaaka-akseli esittää taajuuksia näytteenottotaajuuden suhteen normalisoituina. Alempi kuvaaja esittää analogisen signaalin spektriä nollannen asteen pitopiirin jälkeen. Nyt signaalin energia jakautuu paljon laajemmalle alueelle siten, että alkuperäinen spektri (välillä [,.5]) monistuu suuremmille taajuuksille. Välillä [.5, ] on vaimentunut peilikuva alkuperäisestä spektristä, välillä [,.5] on alkuperäisen spektrin vaimennettu kopio, välillä [.5, 2] taas peilikuva vaimennettuna, jne. Kuvassa on esitetty ainoastaan alkuperäinen spektri ja sen seitsemän kopiota, mutta itse asiassa kopioita on äärettömän monta (pienemmillä ja pienemmillä energioilla). Nollannen asteen pitopiirin käyttäytyminen taajuustasossa voidaan esittää analyyttisesti. Koska kyseessä on jatkuva-aikainen suodin, analyysimenetelmä poikkeaa hieman johdatuskursseilla tarkastelluista. Pitopiiri voidaan ajatella suotimeksi, jonka impulssivaste on jatkuva funktio {, kun t T, h(t) =, muulloin, missä T on kahden näytteenottohetken välinen aikaero (CD-soittimella /44 s). Analogisen suotimen tapauksessa konvoluutio määritellään kaavalla y(t) = h(u)x(t u)du eli tässä tapauksessa y(t) = T x(t u)du.
53 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 45 Tällaisen suotimen taajuusvaste on H(e iω ) = = = T / T h(t)e iωt dt e iωt dt iω e iωt = e iωt iω. Viimeisin lauseke voidaan sieventää muotoon jolloin amplitudivasteeksi tulee Tämän funktion kuvaaja on alla (nyt T = ). H(e iω )=Te iωt/2 sinc(ωt/2), H(e iω ) = T sinc(ωt/2) Digitaalisen signaalin näytteenottotaajuus on yo. asteikolla yksi ja Nyquistin rajataajuus näinollen kohdassa /2. Jokainen kuvaajan huippukohta tuottaa yhden vaimennetun kopion digitaalisen signaalin spektristä. Amplitudivasteen kuvaaja sovitettuna signaalin spektriin on alla. Visualisointisyistä amplitudivaste on nyt kerrottu kolmellasadalla Normalisoidut taajuudet Näin havaittiin, että pelkkä pitopiiri tuottaa ylimääräisiä taajuuksia analogiseen signaaliin. CD-soittimen tapauksessa ylimääräinen energia esiintyy yli 22.5 kilohertsin taajuuksilla, joita ihmiskorva ei kuule. Ylimääräinen energia korkeilla taajuuksilla saattaa kuitenkin rasittaa vahvistinlaitteistoa, joten se on hyvä poistaa.
54 JOHDATUS SIGNAALINKÄSITTELYYN 2 Korkeat taajuudet voitaisiin poistaa analogisella alipäästösuotimella, jonka päästökaista on esimerkiksi väli [, 2] khz ja estokaista [22.5, ) khz (analogisella suotimilla käsiteltävillä taajuuksilla ei ole ylärajaa). Tällöin siirtymäkaistasta tulee kuitenkin verraten kapea, jolloin analogisesta suotimesta tulee hankala suunniteltava ja helposti kallis. Multirate-menetelmiä käyttäen suodatus voidaan tehdä kahdessa vaiheessa, jolloin suotimista tulee yksinkertaisempia. Ensimmäisessä vaiheessa nostetaan digitaalisen signaalin näytteenottotaajuus nelinkertaiseksi (76.4 khz). Tämä tapahtuu lisäämällä kahden näytearvon väliin kolme nollaa ja suodattamalla tulos alipäästösuotimella, jonka päästökaista on väli [, 2] khz ja estokaista [22.5, 88.2] khz. Tämän suotimen toteutus riippuu halutusta tarkkuudesta, mutta esimerkiksi Philipsin kuvauksessa käytetään FIR-suodinta, jossa on 96 kerrointa. Kukin kerroin esitetään kahdentoista bitin tarkkuudella. Toisessa vaiheessa digitaalinen signaali muunnetaan analogiseksi nollannen asteen pitopiirillä ja suodatetaan lopuksi analogisella suotimella, joka poistaa suurille taajuuksille tulevan ylimääräisen energian. Nyt analogisen suotimen vaatimukset on helppo toteuttaa: päästökaista [, 2] khz, estokaista [88.2, ) khz. Siirtymäkaistan leveys on nyt yli 3- kertainen aikaisempaan verrattuna. Itse asiassa siirtokaista voitaisiin venyttää yli 5:een kilohertsiin ilman ongelmia (miksi?) Kohinanmuokkaus Digitaalilaitteita käytettäessä informaation kaikkein luonnollisin esitysmuoto on binäärinen. Binääridatalla tehtävät operaatiot ovat nopeita ja niitä käyttävät laitteet yksinkertaisia suunnitella. Myös CD-soittimen alunperin 6-bittinen data muunnetaan nykyisissä soittimissa ensin binääriseksi ja vasta tämän jälkeen analogiseksi. Tällöin D/A-muunnin tuottaa vain kahta eri jännitetasoa ja se saadaan rakenteeltaan yksinkertaiseksi. Normaalisti signaalin muunnos binääriseksi aiheuttaisi voimakkaan kvantisointikohinan signaaliin, mutta siitä päästään eroon nostamalla näytteenottotaajuus riittävän korkealle. Tarkastellaan tilannetta, jossa CD-soittimen 6-bittisen datan näytteenottotaajuus nostetaan ensin L-kertaiseksi ja saatu tulos muunnetaan b-bittiseen esitysmuotoon. Jokainen poistettu bitti nostaa kvantisointikohinan varianssin nelinkertaiseksi. Lopputuloksessa varianssi on 2 2(6 b) -kertainen alkuperäiseen nähden. Kvantisointikohina on luonteeltaan valkoista kohinaa, mikä tarkoittaa sen levittäytyvän tasaisesti koko spektrin alueelle. Koska näytteenottotaajuus nostettiin L-kertaiseksi, levittäytyy kohina tasaisesti L kertaa alkuperäistä leveämmän spektrin alueelle. Suodattamalla alkuperäistä Nyquistin rajataajuutta suuremmat taajuudet pois, putoaa kvantisointikohina L:nteen osaan, eli vain signaalin spektrin kanssa samalla alueella oleva kvantisointikohina jää jäljelle. Näytteenottotaajuutta nostamalla voidaan siis yhden bitin poisto tarkkuudesta kompensoida nostamalla näytteenottotaajuus nelinkertaiseksi. Näytteenottotaajuuden nosto nelinkertaiseksi pudottaa signaalin taajuusalueella olevan kvantisointikohinan yhteen neljäsosaan, ja toisaalta yhden bitin poisto nostaa kvantisointikohinan varianssin nelinkertaiseksi. Jos 6-bittinen signaali halutaan binääriseksi, pitää se kompensoida nostamalla näytteenottotaajuus 4 5 -kertaiseksi. Koska 4 5 9, tämä ei ole käytännössä mahdollista. Näin ollen on mietittävä muita mahdollisuuksia ja erityisesti, mitä muuta näytteenottotaajuuden nostamisen lisäksi voitaisiin tehdä ennen kvantisointia kohinan poistamiseksi signaalin kanssa yhteiseltä taajuusalueelta. Tällaisista menetelmistä käytetään nimeä kohinan-
55 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 47 muokkaus (engl. noise shaping), ja ideana on nimenomaan muokata kohinaspektrin muotoa ja siirtää kohinan energiaa suuremmille taajuuksille. x(n) L Interpolointi H(z) w(n) + Kvanti sointi y(n) D/A + z e(n) Yksinkertaisin kohinanmuokkausmenettely on yllä olevan lohkokaavion mukainen. Ensimmäisessä vaiheessa signaali x(n) interpoloidaan näytteenottotaajuudeltaan moninkertaiseksi. Tulos w(n) kvantisoidaan ja järjestelmä säilyttää tiedon aiemmasta kvantisointivirheestä (signaali e(n)). Yleensä kvantisointia mallinnetaan lisäämällä kvantisoitavaan signaaliin virhesignaali e(n). Yllä olevan kuvan tapauksessa lohkokaaviosta saadaan yhtälö y(n) = w(n)+e(n) e(n ). Ottamalla z-muunnokset puolittain saadaan yhtälö Y(z) =W(z)+E(z)( z ). Näin ollen signaali w(n) menee sellaisenaan järjestelmän läpi (ei suodatusta). Sen sijaan virhesignaali e(n) kulkee lineaarisen järjestelmän H(z) = z läpi. Tämän järjestelmän taajuusvaste on H(e iω )= e iω, jonka itseisarvon kuvaaja on alla. Melko helposti voidaan osoittaa, että e iω = 2 sin( ω 2 ). Amplitudivaste π/4 π/2 3π/4 π Kulmataajuus Kuviosta nähdään, että kohinan matalat taajuudet vaimenevat ja korkeat taajuudet vahvistuvat. Koska signaali w(n) on interpoloitu versio alkuperäisestä signaalista, sijaitsevat tärkeät taajuudet nimenomaan matalilla taajuuksilla, jossa kohina on vaimentunut. Signaalin y(n) SNR riippuu nyt interpolointikertoimesta L ja siitä, kuinka moneen bittiin signaali kvantisoidaan. Kohinan määrä voidaan laskea analyyttisesti huomaamalla, että sen tehon jakaumafunktio eri taajuuksille (ns. tehospektri) saadaan kertomalla amplitudivasteen lausekkeen neliö kvantisointikohnan varianssilla eli kaavasta 4σ 2 e sin 2 ( ω), missä 2 σ2 e = 2 2b /2 ja b on bittien määrä kvantisoinnin jälkeen. Koska signaali sijaitsee interpoloinnin jälkeen taajuuksilla ω [, π/l], meidän tarvitsee tietää tällä taajuusalueella olevan kohinan teho. Se
56 JOHDATUS SIGNAALINKÄSITTELYYN 2 saadaan integroimalla, π/l 4σ 2 e sin 2 ( ω 2 2b ) dω = 4 sin 2 ( ω ) dω ( = 2 2b π 3 2L ) 2 sin(π L ) ( = 2 2b π ) 6 L sin(π L ). Nyt voidaan kysyä, montako bittiä säästetään kun interpoloidaan tietyllä kertoimella L. Esimerkiksi CD-soittimen tapauksessa bittimäärä on 5 +, ja kvantisointikohinan teho näin ollen 2 3. Samaan kvantisointikohinaan päästään interpoloinnin ja kohinanmuokkauksen avulla interpolointikertoimella L ratkaisemalla tarvittava bittimäärä b 2 yhtälöstä 2 2b ( π ) 6 L sin(π L ) = Bittien tarve eri kertoimilla on esitetty alla olevassa kuvassa. Arvoissa ei ole mukana merkkibittiä. π/l 2 Bittien määrä b Interpolointikerroin L Kuviosta nähdään interpolointikertoimien olevan edelleenkin varsin suuria. Täysin binääriseen tilanteeseen (b = ) tarvitaan nyt 77-kertainen interpolointi, mikä on liikaa. Järjestelmää on siis kehitettävä edelleen. Kohinanmuokkaus tapahtuu siis yksinkertaisimmillaan viemällä kvantisointikohina järjestelmän H(z) = z läpi. Tulosta voidaan parantaa korottamalla siirtofunktio toiseen tai suurempaan potenssiin. Toisen asteen kohinanmuokkaus käyttää siis järjestelmää H(z) =( z ) 2 = 2z + z 2, joka on melko helppo liittää aiemmin esillä olleeseen lohkokaavioon. Yleisemmin p:nnen asteen kohinanmuokkaus vie kohinan järjestelmän H(z) = ( z ) p läpi. Tällöin amplitudivasteeksi tulee H(e iω ) = (2 sin( ω 2 ))p ja amplitudivasteen kuvaajat arvoilla p =,2,...,5 on esitetty alla. Käyrät kohtaavat pisteessä ω, jossa on voimassa yhtälö 2 sin(ω/2) =, eli pisteessä ω = π/3, joka on normalisoituina taajuuksina f = ω 2π = 6. 4 Amplitudivaste 3 2 π/4 π/2 3π/4 π Kulmataajuus
57 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 49 Kvantisointikohinan varianssi on π/l 2 2p 2 2b sin 2p ( ω 2 2 ) dω. Tämäkin integraali voidaan ratkaista suljetussa muodossa, jolloin saadaan seuraava taulukko. Taulukko ilmoittaa tarvittavan bittimäärän 5 + -bittisen signaalin esittämiseksi interpolointikertoimen L ja asteen p funktiona. L p = p = p = p = Taulukosta nähdään, että asteen kasvaessa tarvittava näytteenottotaajuus pienenee. Tutkitaan lopuksi toisen asteen kohinanmuokkaajaa, kun testisignaalin alkuperäinen näytteenottotaajuus on 892 Hz, L = 4 ja b = eli kvantisoinnin tulos on binäärinen. Interpolointikerroin L on visualisointisyistä melko pieni. Alla olevassa kuvassa on pätkä testisignaalia Ensimmäisessä vaiheessa signaali interpoloidaan; tulos on alla Interpoloinnin jälkeen signaali kvantisoidaan yhteen bittiin, eli käytännössä jäljelle jää vain näytteen merkki. Tällöin syntyy alla oleva virhesignaali. Huomaa, että kyseessä ei ole alkuperäisen signaalin merkki vaan mukana on myös edellisen askeleen virhesignaali
58 JOHDATUS SIGNAALINKÄSITTELYYN 2 Järjestelmän ulostulosignaali näyttää seuraavalta Signaali ei näytä aikatasossa juurikaan samalta kuin alkuperäinen, mutta taajuustasossa yhtäläisyydet silti löytyvät. Ensin alkuperäisen interpoloidun signaalin spektri Taajuus / Hz Kun tätä verrataan alla olevaan tulossignaalin spektriin, nähdään, että matalilla taajuuksilla spektrit ovat kokolailla samanlaisia. Lisäksi havaitaan suuremmilla taajuuksilla spektrin noudattavan amplitudivasteen H(e iω ) = 6 sin 4 (ω) muotoa. Nyt interpolointikerroin L ei ollut riittävän suuri, joten signaalin ja kohinan spektrit ovat osittain samalla taajuusalueella Taajuus / Hz Seuraavaksi kvantisoitu signaali muunnetaan analogiseksi yksinkertaisella yksibittisellä D/A-muuntimella, jonka jälkeen analoginen signaali suodatetaan analogisella alipäästösuotimella. Analoginen suodin poistaa signaalista kohinan taajuudet. Jos interpolointikerroin ja järjestelmän aste olisivat olleet riittävän suuria, signaalin ja kohinan spektrit olisivat melko selkeästi erillään. Tällöin analogisen alipäästösuotimen suunnittelu olisi melko helppoa, koska siirtymäkaista saataisiin riittävän leveäksi. Harjoitustehtäviä 5.. Kuvitellun digitaalisen järjestelmän näytteenottotaajuus on 42 khz. Jatkokäsittelyä varten signaali pitää muuntaa näytteenottotaajuuteen 6 khz. Millaiset taajuusvaatimukset on asetettava antialias-suotimelle, jonka läpi signaali suodatetaan ennen varsinaista uudelleennäytteistystä? Signaalista tiedetään, että taajuuksien 2.5 khz
59 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 5 tulee ehdottomasti säilyä desimoidussa signaalissa. (Siis missä on päästökaista ja estokaista?) 5.2. (Matlab) Käytä Matlabin resample-rutiinia muuntaaksesi testisignaalin laughter (latautuu komennolla load laughter muuttujaan y) näytteenottotaajuuden (a) 5 Hertsiin, (b) 6 Hertsiin alkuperäisestä 892 Hz:sta. Tarkastele alkuperäisen ja tulossignaalien spektrogrammeja ja tulosta ne ruudulle eri ikkunoihin (help figure). Anna specgram-komennolle parametrit muodossa specgram(y,256,fs), missä y on tutkittava signaali ja Fs on näytteenottotaajuus Signaali x(n), jonka näytteenottotaajuus on 2 khz pitää muuntaa signaaliksi, jonka näytteenottotaajuus on 5 khz. Selvitä muunnoksen vaiheet lohkokaaviona käyttäen uudelleennäytteistystä ( L ja M ) ja alipäästösuodatusta ( H(z) ). Esitä tarvittavien alipäästösuodinten päästö- ja estokaistojen sijainti, kun taajuudet väliltä 5.5 khz halutaan säilyttää Tavoitteena on pudottaa 2 khz signaalin näytteenottotaajuus yhteen kilohertsiin useassa vaiheessa. Signaalin olennaisin informaatio sijaitsee taajuuskaistalla -45 Hz, joka tulee siis ehdottomasti säilyttää. Selvitä tarvittavien suodinten kertoimien yhteismäärä eri multistage-toteutuksissa (4 kpl riittää, jos tutkitaan vain ne tapaukset, joissa desimointikertoimet ovat laskevassa järjestyksessä), kun alipäästösuotimet suunnitellaan Hamming-ikkunalla (jolloin N = 3.3/ f) Kuinka monta kertolaskua kukin edellisistä toteutuksista tarvitsee sekunnissa (MPS, multiplications per second)? Tämä saadaan laskettua kaavasta MPS = I N i F i, missä I on desimointilohkojen lukumäärä, N i on i:nnen lohkon kertoimien määrä ja F i on i:nnen lohkon sisääntulevan signaalin näytteenottotaajuus (Matlab) Tutkitaan Matlabilla laskostumista sekä nollannen asteen pitopiirin tuottamia heijastuksia. Matlab ei jostain syystä suostu soittamaan signaalia muulla näytteenottotaajuudella kuin 892 Hz. Siksi signaali täytyy tallettaa ensin ja soittaa sen jälkeen toisella ohjelmalla. i= a) Laskostuminen. Lataa ääninäyte muuttujaan y komennolla load handel. Pudota näytteenottotaajuus ensin puoleen alkuperäisestä komennolla x= y(:2:length(y)); Nyt korkeat taajuudet laskostuvat matalien päälle. Kuuntelua varten tämä täytyy tallentaa komennolla auwrite(z,496, out.au ); Käynnistä ohjelma audiotool ja kuuntele sen avulla interpoloinnin tulos tiedostosta out.au. Vertaa kuulemaasi oikeaoppisella desimoinnilla saatavaan tulokseen, eli korvaa äskeisessä menettelyssä komento x=y(:2:length(y)); vastaavalla decimate-komennolla.
60 JOHDATUS SIGNAALINKÄSITTELYYN 2 b) Heijastukset. Lataa ääninäyte muuttujaan y komennolla load handel. Pudota näytteenottotaajuus puoleen alkuperäisestä komennolla decimate ja sijoita tulos muuttujaan x. Tarkastellaan tämän signaalin interpolointia takaisin alkuperäiseen 892 Hz:iin. Nollannen asteen pitopiiriä voidaan simuloida komennolla interp. Luo tätä varten vektorit: t=:2:length(y);, t2=:length(y);. Komento y2=interp(t,x,t2, nearest ); interpoloi samoin kuin nollannen asteen pitopiiri. Kuuntele tulos (nyt komento soundsc taas toimii, koska näytteenottotaajuus on 892 Hz) ja vertaa sitä oikein interpoloituun tulokseen, joka saadaan komennolla interp. Vertaa lopuksi spektrogrammeja toisiinsa Tarkastellaan kuvitteellisen D/A-muuntimen toteutusta kohinanmuokkausta käyttäen. Kohinanmuokkain on ensimmäistä astetta ja interpolointikerroin on kahdeksan. Nyt halutaan tietää, montako bittiä varsinainen D/A-muunnin tarvitsee kun alkuperäinen signaali on esitetty 5 + :llä bitillä. Ratkaise tätä varten ensin kvantisointikohinan varianssin lauseke b:n funktiona Ratkaise seuraavaksi, millä b:n arvolla saat saman tuloksen kuin 5 + bitillä ilman interpolointia ja kohinanmuokkausta? Toisin sanoen, millä b:n arvolla edellisen tehtävän lauseke saa arvon 2 3 2? 5.9. (Matlab) Toteutetaan Matlabilla ensimmäisen asteen kohinanmuokkain. Aloita Matlabskripti lataamalla testisignaali Handel muuttujaan y. Sijoita x=y;, koska muuttujaa y tarvitaan myöhemmin. Interpoloi signaali kertoimella 4 käyttäen komentoa interp. Interpoloinnin tulos on lohkokaaviossa oleva signaali w(n). Tätä signaalia lähdetään käsittelemään lohkokaavion mukaisesti. Alusta tätä varten muuttujat e ja y nolliksi: e=zeros(,length(w));. Lohkokaavion mukainen kohinanmuokkaus voidaan esittää pseudokoodina seuraavasti: for n:=2 to length(w) tmp:=w(n)-e(n-); y(n):=sign(tmp); e(n):=y(n)-tmp; end Tulosta ruudulle ulostulosignaali ja sen spektri (fft:llä laskettuna) sekä virhesignaali. Desimoi signaali takaisin 892 Hertsiin ja kuuntele tulos. Kvantisointikohina on selvästi kuultavissa signaalin taajuuskaistalla johtuen vain nelinkertaisesta interpoloinnista ja ensimmäisen asteen kohinanmuokkauksesta. 5.. (Matlab) Muunna edellisen tehtävän kohinanmuokkaus toisen asteen versioksi, jossa pseudokoodi on seuraava. for n:=3 to length(w) tmp:=w(n)-2*e(n-)+e(n-2); y(n):=sign(tmp); e(n):=y(n)-tmp;
61 5. NÄYTTEENOTTOTAAJUUDEN MUUNTELU (MULTIRATE DSP) 53 end Tee vastaavat testit kuin edellisessä tehtävässä ja vertaa tulosta.
62 JOHDATUS SIGNAALINKÄSITTELYYN 2
63 Luku 6 Adaptiivinen suodatus Kun signaali ja kohina ovat eri taajuuskaistoilla, suodatusongelma on ratkaistavissa normaalein lineaarisen suodatuksen menetelmin. On kuitenkin tilanteita, joissa taajuuskaistat ovat osittain päällekkäin ja vaihtelevat ajan kuluessa. Lisäksi saattaa käydä niin, ettei suunnittelija tiedä vielä suunnitteluvaiheessa millaista kohinaa sovellusvaiheessa tulee vastaan. Tällöin suotimen täytyy oppia sovellutuksen olosuhteet ja adaptoitua niihin. Tämä tarkoittaa, että suodin muuttaa kertoimiaan olosuhteiden muuttuessa. Adaptiiviset järjestelmät eivät siis tarkalleen ottaen ole aikainvariantteja. Sen sijaan ne ovat lineaarisia ja ne esitetään konvoluution avulla. Adaptiiviset suotimet voivat toimia lukuisien erilaisten konfiguraatioiden yhteydessä. Seuraava kuva esittää niistä yhtä. Referenssi- + signaali - Kohdesignaali Adaptiivinen suodatin Kuvassa on kaksi signaalilähdettä, joista toisesta tulee suodatettava signaali (kohdesignaali) ja toisesta tulee jonkinlainen estimaatti toivotusta tulossignaalista (ns. referenssisignaali). Adaptiivinen suodatin pyrkii koko ajan minimoimaan referenssisignaalin ja suodatustuloksen välistä erotusta. Ensinäkemältä idea ei vaikuta kovinkaan järisyttävältä, koska toivottu tulossignaali täytyy tietää ennen suodatusta. Valitsemalla suodatettava signaali ja referenssisignaali sopivasti päästään kuitenkin mielenkiintoisiin tuloksiin. Seuraavassa tarkastellaan muutamia sovelluskohteita. 6. Kohinan poisto Tietyn tyyppisiä häiriöitä voidaan poistaa signaalista adaptiivisin menetelmin. Adaptiivisuus tulee kyseeseen silloin, kun häiriön parametreja ei tiedetä tai ne vaihtelevat ajan myö-
64 JOHDATUS SIGNAALINKÄSITTELYYN 2 tä. Referenssisignaali sisältää tällöin signaalin, joka on tietyn tyyppisen häiriön vääristämä. Suodatettavana signaalina on toinen häiriösignaali, joka korreloi jollain lailla referenssisignaalin häiriön kanssa. Tällöin adaptiivinen suodin pyrkii minimoimaan referenssisignaalin ja häiriön välistä erotusta käyttäen hyväkseen kahden eri häiriön yhteisiä piirteitä. Jos tämä onnistuu, vähennyslaskun tuloksena on signaali, josta on poistettu alkuperäinen häiriö. Esimerkkinä tämän tyyppisestä menettelystä on sikiön sydänäänien tunnistus. Ongelmana tunnistuksessa normaalisti on äidin sydänäänien voimakkuus. Adaptiivisessa järjestelmässä sijoitetaan yksi mikrofoni äidin sydämen lähelle ja toinen äidin vatsalle. Referenssisignaali tulee nyt vatsan mikrofonista ja sisältää varsinaisen signaalin (sikiön sydänäänet) sekä häiriökomponentin (äidin sydänääni). Häiriökomponentti voidaan poistaa toisen mikrofonin signaalin avulla. Äidin sydämen lähellä olevan mikrofonin signaali koostuu miltei pelkästään äidin sydänäänistä. Adaptiivinen algoritmi pyrkii minimoimaan kahden signaalin erotuksen ja samalla poistamaan äidin sydänäänet mahdollisimman tehokkaasti. Sikiön sydänäänet sen sijaan säilyvät sillä ne eivät juurikaan korreloi äidin sydänäänien kanssa. Siksi adaptiivinen suodatin ei tee niille mitään. Alla on tämän järjestelmän lohkokaavio. Äiti + sikiö + - Sikiö Äiti Adaptiivinen suodatin 6.2 Tuntemattoman järjestelmän mallinnus Adaptiivisella järjestelmällä voidaan mallintaa tuntematonta järjestelmää ja laskea sen ominaisuuksia. Tällöin suodatettavana signaalina on jokin (laajakaistainen, useita taajuuksia sisältävä) testisignaali ja referenssisignaalina on tuntemattoman järjestelmän ulostulo, kun herätteenä on kyseinen testisignaali. Jos adaptiivinen suodatin kykenee minimoimaan testisignaalin ja referenssisignaalin välisen erotuksen, se itse asiassa käyttäytyy samoin kuin tuntematon mallinnettava laite. Adaptiivisen suodattimen ominaisuudet ovat tällöin matemaattinen malli tuntemattoman järjestelmän ominaisuuksista. Alla on tällaisen järjestelmän lohkokaavio.
65 6. ADAPTIIVINEN SUODATUS 57 Testisignaali Tuntematon järjestelmä + - Adaptiivinen suodatin 6.3 Ekvalisointi Ekvalisoinnilla tarkoitetaan vääristyneen signaalin palauttamista mahdollisimman lähelle alkuperäistä. Vääristymisen syynä voi olla esimerkiksi kohinainen tiedonsiirtokanava. Sekä lähetin että vastaanotin tietävät jonkin laajakaistaisen testisignaalin, jota lähetetään säännöllisin väliajoin. Adaptiivinen suodatin suodattaa vastaanotettua testisignaalia ja referenssisignaalina on alkuperäinen testisignaali. Adaptioprosessin tuloksena on suodin, joka palauttaa kohinaisen signaalin mahdollisimman lähelle alkuperäistä signaalia täten minimoiden suodatustuloksen ja referenssisignaalin välisen virheen. Samaa suodatinta voidaan käyttää myös muun signaalin suodatukseen, jos kanavan ominaisuudet pysyvät riittävän samanlaisina seuraavan testisignaalin lähettämiseen saakka. Tätä tekniikkaa käytetään GSM-puhelimissa ekvalisoimaan puhelimen liikkeistä ja signaalin heijastumisesta aiheutuvia häiriöitä. Tukiasema ja puhelin lähettävät säännöllisin väliajoin tiettyä testisignaalia, jonka molemmat tietävät. Kun kanava muuttuu puhelimen liikkuessa, molemmat sovittavat ekvalisaatiosuotimensa tilanteen mukaan. Lohkokaavio on alla. Testisignaali + - Tuntematon järjestelmä Adaptiivinen suodatin 6.4 Ennustus Jos valitaan suodatettavaksi signaaliksi viivästetty versio referenssisignaalista, voidaan adaptiivista suodinta käyttää tulevien signaaliarvojen ennustamiseen. Suodatuksen edetessä suodin pyrkii minimoimaan referenssisignaalin ja viivästetyn version välistä eroa. Jos signaali on riittävän yksinkertainen (muodostuu esimerkiksi vain muutamista taajuuksista), suodin oppii ennustuksen varsin pian. Ennustavaa adaptiivista suodinta käytetään hyväksi esimerkiksi signaalin kompressiossa. Jos lähetin- ja vastaanottajapäässä käytetään
66 JOHDATUS SIGNAALINKÄSITTELYYN 2 samaa ennustajaa, tarvitsee välillä lähettää ainoastaan ennustusvirhe. Jos ennustaja toimii hyvin, ennustusvirhe sisältää ainoastaan lähellä nollaa olevia arvoja, jotka saadaan pakattua pieneen tilaan. Informaatioteoreettisin termein ilmaistuna virhesignaalilla on pieni entropia. Lohkokaavio on alla. Signaali + - -M z Adaptiivinen suodatin 6.5 Suodatusongelman teoreettinen optimiratkaisu Ennen varsinaisten adaptoitumisessa tarvittavien algoritmien esittelyä tarkastellaan hieman yleistä tehtävänasettelua ja teoreettisia ratkaisuja sille. Olkoon x(n) suodatettava signaali ja s(n) referenssisignaali. Merkitään suodatustulosta merkinnällä N y(n) =w(n) x(n) = w(k)x(n k), missä w(n) on adaptiivisen suodattimen impulssivaste. Yleensä tämä impulssivaste muuttuu ajan funktiona, joten oikeampi merkintä olisi w n (k), tms., mutta yksinkertaisuuden vuoksi jätetään aikaindeksi jatkossa pois. Yksinkertaisin esitysmuoto konvoluutiosummalle saadaan vektorien sisätulona: k= y(n) =w T x(n) =x T (n)w, missä w =(w(),w(),...,w(n )) T ja x(n) =(x(n),x(n ),...,x(n N + )) T. Määritellään lisäksi virhesignaali e(n) =s(n) y(n) =s(n) w T x(n), joka pyritään saamaan mahdollisimman lähelle nollasignaalia. Se, kuinka lähellä virhesignaali on nollasignaalia, määräytyy kustannusfunktion avulla. Mahdollisia kustannusfunktioita voisivat olla esimerkiksi ja c(w) =E[ e(n) ] c(w) =E[e 2 (n)], missä e 2 (n) on lyhyempi merkintä lukujonolle (e(n)) 2,jaE[e 2 (n)] tarkoittaa kyseisen jonon odotusarvoa.
67 6. ADAPTIIVINEN SUODATUS 59 Koska tavoitteena on minimoida kustannusfunktio, sen on hyvä olla derivoituva. Siksi valitsemme jälkimmäisen kustannusfunktion (funktio f(x) =x 2 on kaikkialla derivoituva, mutta f(x) = x ei). Auki kirjoitettuna kustannusfunktio saa muodon c(w) = E[e 2 (n)] = E [(s(n) y(n)) 2] = E[s 2 (n)] + E[y 2 (n)] 2E[s(n)y(n)]. } {{ } } {{ } ( ) ( ) Tämän lausekkeen kaksi viimeistä odotusarvoa puretaan auki: ja ( ) = E [ (w T x(n)) 2] = E [ w T x(n)x T (n)w ] = w T E[x(n)x T (n)]w = w T Rw, ( ) =2E[s(n)x T (n)w] =2E[s(n)x T (n)]w = 2p T w, missä matriisi R = E[x(n)x T (n)] on N N matriisi, josta käytetään nimeä autokorrelaatiomatriisi ja vektori p = E[s(n)x T (n)] on s(n):n ja x(n):n ristikorrelaatiovektori. Esimerkiksi tapauksessa N = 4 saavat R ja p muodon ja x(n)x(n) x(n)x(n ) x(n)x(n 2) x(n )x(n 3) R = E x(n )x(n) x(n )x(n ) x(n )x(n 2) x(n )x(n 3) x(n 2)x(n) x(n 2)x(n ) x(n 2)x(n 2) x(n 2)x(n 3) x(n 3)x(n) x(n 3)x(n ) x(n 3)x(n 2) x(n 3)x(n 3) s(n)x(n) p = E s(n)x(n ) s(n)x(n 2). s(n)x(n 3) Matriisin R symmetrisyys ja yksinkertainen muoto tulevat hyvin ilmi eräälle testisignaalille lasketuista arvoista : R = , p = Kustannusfunktio saa siis muodon c(w) =E[s 2 (n)] + w T Rw 2p T w. Tämä funktio on derivoituva vektorin w jokaisen alkion suhteen ja sen gradientin nollakohta minimoi kustannusfunktion. Koska signaali oli äärellisen mittainen, odotusarvo korvattiin 739:n näytteen keskiarvolla.
68 JOHDATUS SIGNAALINKÄSITTELYYN 2 Ensimmäinen derivoitava, s 2 (n) ei riipu kertoimista w(),w(),...,w(n ), joten gradientista tulee nolla. Toinen termi sen sijaan riippuu ja gradientiksi tulee (yksi kerrallaan derivoimalla ja yhdistämällä tuloksen vektoriksi) w E[y2 (n)] = w wt Rw = 2Rw. Kolmannen termin gradientti puolestaan on Näin ollen Asetetaan gradientti nollaksi: Tästä saadaan normaaliyhtälöt w E[2s(n)y(n)] = w 2pT w = 2p. c = c(w) =2Rw 2p. w 2Rw 2p = Rw = p, ja jos R on kääntyvä, w = R p. Teoriassa voidaan siis aina löytää optimaalinen lineaarinen suodin, jos suodatusongelman tilastollisista ominaisuuksista on riittävän hyvä malli. Toisin sanoen, täytyy olla riittävän luotettava arvio autokorrelaatiomatriisille R sekä ristikorrelaatiovektorille p. Käytännön menetelmät eivät ratkaise painovektoria w suoraan, koska matriisin R kääntämistä halutaan välttää sen raskauden vuoksi. Iteratiiviset menetelmät päivittävät painovektoria kustannusfunktion gradientin mukaan. Tällaisia menetelmiä ovat LMS- 2 ja RLSalgoritmit Gradienttimenetelmä ja LMS-algoritmi Käytännön tilanteissa valmista tilastollista mallia ei useinkaan ole saatavilla ja tilastolliset ominaisuudet muuttuvat ajan myötä. Siksi myös autokorrelaatiomatriisin ja ristikorrelaatiovektorin estimaatteja täytyy päivittää jatkuvasti. Jos tämä on helposti tehtävissä, voidaan käyttää gradienttimenetelmää adaptiivisen suodatuksen ratkaisuna. Gradienttimenetelmä on iteratiivinen menetelmä, joka estimoi kullakin iteraatiokierroksella matriisia R ja vektoria p ja päivittää näiden perusteella adaptiivisen suotimen kertoimia w tietyn matkan negatiivisen gradientin suuntaan (siis sinne missä kustannusfunktio pienenee). Tämä voidaan ilmaista kaavamuodossa seuraavasti: w := w µ c(w), (6.) missä c(w) on kustannusfunktion gradientti ja µ on pieni positiivinen reaaliluku, joka kertoo kuinka pitkiä harppauksia gradientin määräämään suuntaan otetaan. Jos µ on liian 2 least mean squares 3 recursive least squares
69 6. ADAPTIIVINEN SUODATUS 6 pieni, adaptoituminen muuttuu liian hitaaksi, ja jos se on liian suuri, prosessi ei suppene kohti optimiratkaisua. 4 Ongelmana yllä olevan kaavan käytössä on gradientin estimointi. Tarkastellaan asiaa lähemmin seuraavassa. Aikaisemmin laskettiin kustannusfunktion gradientille seuraava lauseke: c(w) = 2Rw 2p. Sijoittamalla R = E[x(n)x T (n)] ja p = E[s(n)x(n)] saadaan yhtälöt c(w) = 2E[x(n)x T (n)]w 2E[s(n)x(n)] = 2E[x(n)x T (n)w s(n)x(n)] = 2E[x(n)y(n) s(n)x(n)] = 2E[x(n)(y(n) s(n))] = 2E[e(n)x(n)]. Jos viimeistä odotusarvoa ei ole aikaa estimoida, voidaan käyttää pelkästään tuoreimpia arvoja. Tällöin c(w) 2e(n)x(n). (6.2) Näin saadusta gradienttimenetelmän muodosta käytetään nimitystä LMS-algoritmi. Sen kerrointen päivittäminen voidaan tiivistää kaavaan w := w + 2µe(n)x(n), joka on saatu sijoittamalla kaava (6.2) kaavaan (6.). Kokonaisuudessaan LMS-algoritmi on seuraavanlainen. LMS-algoritmi. Alusta painovektori w sopivilla alkuarvoilla, esimerkiksi nollavektoriksi. 2. Laske ulostulo y(n) =w T x(n). 3. Laske virhe e(n) =s(n) y(n). 4. Päivitä suotimen kertoimia: w := w + 2µe(n)x(n). 5. Jos suodatettava signaali ei ole lopussa, aseta n := n + ja palaa kohtaan Matlab-esimerkki adaptiivisesta suodatuksesta Seuraavassa tarkastellaan LMS-algoritmin toimintaa keinotekoisessa adaptiivisen suodatuksen esimerkissä. Tarvittava rutiini on adaptiivisen suodatuksen toteuttava algoritmi, jonka muoto Matlabissa on 4 Voidaan osoittaa, että LMS-algoritmi suppenee, jos <µ< λ max, missä λ max on autokorrelaatiomatriisin R suurin ominaisarvo. Tämän luvun tarkka määrittäminen on käytännössä usein mahdotonta.
70 JOHDATUS SIGNAALINKÄSITTELYYN 2 function [y,w] = LMS (x, ref, mu, N) Funktio saa siis lähtötietoina signaalin x, referenssisignaalin ref, suotimen pituuden N ja parametrin µ. Funktio palauttaa ulostulovektorin y ja viimeisen kierroksen painovektorin w, joka sisältää viimeisen iteraation painot (pituus on siis N). Signaalien y ja ref erotus on tällöin virhevektori e, joka ilmoittaa kuinka paljon suodatustulos poikkeaa referenssisignaalista ref kullakin iteraatiokierroksella. Seuraava Matlab-koodi toteuttaa LMSsuodatuksen: function [y,w]=lms(x,ref,mu,n), y=zeros(size(x)); w=zeros(,n); for n=n:length(x), data=x(n:-:n-n+); y(n)=w*data; e=ref(n)-y(n); w=w+2*mu*e*data ; end; % Alustetaan ulostulo nolliksi % Alustetaan suodin nolliksi % Otetaan pätkä suodatettavaa signaalia % Lasketaan konvoluutio painojen kanssa % Lasketaan erotussignaali % Päivitetään painoja Olkoon x=sin(.5*2*pi*(:)); sisääntuleva signaali, josta pitäisi estimoida kohinakomponenttia. Sen ensimmäistä komponenttia ovat kuvassa:.5.5 Sen spektri näyttää seuraavalta: Oletetaan, että toisesta signaalilähteestä saadaan signaali, jossa on häiriötä sekä toinen sinisignaali summautuneena. y =.6*cos(.5*2*pi*(:)) + sin(.5*2*pi*(:));
71 6. ADAPTIIVINEN SUODATUS Tämän signaalin spektri on seuraavassa: Adaptoitumisen tarkoituksena on siis tässä tapauksessa oppia muuntamaan signaali x vastaavaksi signaalin y häiriökomponentiksi pienentämällä amplitudia ja muuttamalla vaihetta. Aloitetaan siis suodatus: [z,w] = LMS (x, y,., 2); Tuloksena on seuraava virhekäyrä..5 LMS suodatus (mu=.) Kierros Suppeneminen vaikuttaa hieman hitaalta. Kokeillaan suurempaa arvoa: [z,w] = LMS (x, y,., 2);.5 LMS suodatus (mu=.).5.5 Kasvatetaan parametria edelleen Kierros [z,w] = LMS (x, y,.5, 2);
72 JOHDATUS SIGNAALINKÄSITTELYYN 2.5 LMS suodatus (mu=.5) Kierros Seuraavalla parametrin arvolla prosessi ei selvästikään enää suppene: [z,w] = LMS (x, y,.2, 2); 5 x 38 LMS suodatus (mu=.2) Kierros Funktiokutsun viimeisellä iteraatiokierroksella (kun µ =.) käytetyt painot palautetaan muuttujassa w, ja ne ovat kuvassa Siirtymällä taajuustasoon nähdään näitä painoja vastaavan suotimen amplitudi- ja vaihevasteet: Magnitude (db) Normalized Frequency ( π rad/sample) Phase (degrees) Normalized Frequency ( π rad/sample) Kuten kuviosta nähdään poistettavan taajuuden kohdalla on selvä vaimennus. Ulostulosignaalin spektri näyttää seuraavalta.
73 6. ADAPTIIVINEN SUODATUS Tämä ulostulosignaali on estimaatti häiriösignaalista, joten häiriötön signaali saadaan alkuperäisen signaalin ja häiriön erotuksena. Tuloksen spektri on alla Harjoitustehtäviä 6.. (Matlab) Kopioi LMS-algoritmi itsellesi. Lintulassa löydät sen hakemistosta ~hehu/public_html/857/lms.m ja verkossa se on osoitteessa Lisää nyt periodinen kohinakomponentti signaaliin laughter: noisy=y+.*sin(2*pi*.2*(:length(y))) ; Jos kuuntelet signaalin, havaitset tasaisen ylimääräisen äänen taajuudella = Hz. LMS-algoritmi poistaa sen helposti, jos käytettävissä on alkuperäinen referenssisignaali. Sovella LMS-algoritmia signaaliin noisy siten, että y on referenssisignaalina. Suotimen pituus N voi olla muutaman kymmenen näytteen luokkaa. Tulosta ruudulle saadun suotimen amplitudivaste. Komento help LMS toimii (Matlab) Usein käytettävissä ei ole alkuperäistä referenssisignaalia, mutta LMS-algoritmi on tällöinkin käyttökelpoinen. Kuvassa 6. on tähän tilanteeseen sopiva järjestelmä. Kohinaisesta signaalista noisy täytyy nyt luoda viivästetty versio. Tehdään se lisäämällä alkuun nollia: noisy2=[zeros(,5),noisy ] ; Sovella nyt kuvan 6. menettelyä jaksollisen kohinakomponentin poistamiseen signaalista kun suodatetaan viivästettyä versiota ja referenssisignaalina on viivästämätön kohinainen signaali. Tulosta amplitudivaste ruudulle. Kuuntele signaali, josta vihellys on poistettu. Kiinnitä huomiota siihen, mistä kohtaa lohkokaaviota kyseinen signaali saadaan.
74 JOHDATUS SIGNAALINKÄSITTELYYN (Matlab) Normalisoitu LMS-algoritmi (NLMS) saadaan LMS-algoritmista muuttamalla suppenemisparametrin µ laskenta adaptiiviseksi. Muokkaa funktiota LMS.m siten, että painoja päivitettäessä parametrin mu tilalla käytetään uutta parametria mu2, joka lasketaan kaavasta mu mu2 = + data *data. Sijoita tämä laskukaava juuri ennen riviä, jossa painot päivitetään. Muuta vielä rivillä w=w+2*mu*e*data ; % Päivitetään painoja olevan parametrin mu tilalle uusi parametri mu2. Kokeile uutta algoritmia tehtävän 6.2. tilanteeseen. Anna parametrina mu nyt joku luku väliltä 2, mieluummin läheltä kakkosta Oletetaan, että seuraavien termien arvot (vrt. kappale 6.5) on arvioitu kahdesta signaalista: [ ] [ ] 2 7 R =, p =, E[s 2 (n)] = Merkitään lisäksi [ ] w w =. w Laske ja sievennä kustannusfunktion c(w) lauseke Oletetaan, että R, p ja w ovat kuten edellisessä tehtävässä. Laske (ja sievennä) kustannusfunktion gradientti c sekä kustannusfunktion minimoiva vektori w Mitä tapahtuu adaptiivisen suotimen kertoimille, jos referenssisignaali s(n) ja kohdesignaali x(n) eivät korreloi lainkaan? Toisin sanoen jokaisella kokonaisluvulla k on voimassa ehto E[s(n)x(n k)] =. Perustele (Matlab) Muunna funktiota LMS.m siten, että viimeisen kierroksen kerroinvektorin w sijasta palautetaankin matriisi, jossa kukin rivi sisältää yhden iteraatiokierroksen kertoimet:. kierroksen kertoimet w () w () w (2) w (N ) 2. kierroksen kertoimet w 2 () w 2 () w 2 (2) w 2 (N ) 3. kierroksen kertoimet = w 3 () w 3 () w 3 (2) w 3 (N ) kierroksen M kertoimet w M () w M () w M (2) w M (N ) Muuta myös kertoimien alustus sellaiseksi, että ensimmäisen iteraatiokierroksen suotimen kertoimet ovat ykkösiä (komento ones, eikä zeros). Luo sitten komennolla randn kaksi keskenään korreloimatonta signaalia: referenssisignaali s ja kohdesignaali x, joiden pituus on 3. Aja muutettu LMS-algoritmi näillä signaaleilla ja tulosta kertoimen w k () kuvaaja kun k =,2,3,...,M komennolla plot(w(:,)). Saatko kuvaajan täsmäämään edellisen tehtävän tuloksen kanssa?
75 6. ADAPTIIVINEN SUODATUS 67 x(n) + - e(n) Ei-jaksollinen signaali z -M Adaptiivinen suodatin y(n) Jaksollinen signaali Kuva 6.: Jaksollisen häiriön poistoon sopivan järjestelmän lohkokaavio (Matlab) LMS-algoritmi on yksi ratkaisu adaptiivisen suodatuksen toteutuksessa. Toinen yleisesti käytetty algoritmi on nimeltään RLS-algoritmi, joka on lyhenne sanoista Recursive Least Squares. Tällä kurssilla emme paneudu lähemmin itse algoritmiin, mutta tutustumme sen käyttöön. Kopioi tiedosto RLS.m itsellesi verkkoselaimella osoitteesta tai Lintulassa tiedostosta ~hehu/public_html/857/rls.m. Tutkitaan LMS- ja RLS-algoritmien eroja kokeellisesti simuloiduilla testisignaaleilla. Testiä varten kannattanee lisätä komennot Matlab-skriptiin, jonka kaikki komennot ajetaan kerrallaan. Luodaan ensin satunnainen, normaalijakautunut kohinasignaali: x=*randn(2,); Suodatetaan tulos, jotta saataisiin korrelaatio näytteiden välille (ilman sitä LMS ja RLS eivät toimi). x=filter([ -3 2],[ -.5],x); Tämä on nyt kohdesignaali. Olkoon referenssisignaali nyt tämän suodatettu versio: y=filter([,2,3,4],,x); Lisätään lopuksi referenssisignaaliin kohinaa, jotta tehtävä vaikeutuisi hieman: y=y+randn(size(y)); RLS-algoritmi saa neljä parametria: kohdesignaalin, referenssisignaalin, suotimen pituuden ja unohduskertoimen (engl. forgetting factor). Unohduskerroin λ [, ] kertoo sen, kuinka pitkältä ajalta algoritmi muistaa signaalien arvot. Esimerkiksi kertoimella λ =.99 algoritmin muisti on kertaluokkaa.99 k = k= = näytettä..99
76 JOHDATUS SIGNAALINKÄSITTELYYN 2 Mitä suurempi unohduskerroin, sitä pidempi muisti algoritmilla on. Suurilla kertoimilla algoritmi ei kykene mukautumaan lyhyen aikavälin muutoksiin. Toisaalta pienet kertoimet saavat algoritmin liiankin herkäksi pienille muutoksille. Vertaile LMS- ja RLS-algoritmeja edellämainittujen kohde- ja referenssisignaalin tapauksessa. Suotimen pituudeksi riittää 4. Tulosta ruudulle molempien menetelmien virhesignaalit (referenssin ja suodatustuloksen erotus). Kokeile eri arvoja RLS:n unohduskertoimelle ja LMS:n suppenemisparametri µ:lle. Katso myös help RLS (Matlab) Ekvalisointi. Matlabin testisignaali handel on kulkenut erään (simuloidun) tiedonsiirtokanavan läpi ja samalla taajuudet ovat vääristyneet. Lataa (wavread) tulossignaali tiedostosta ~hehu/public_html/857/corrupt.wav Tehtävänäsi on käyttää adaptiivista järjestelmää (LMS tai RLS valintasi mukaan) etsimään kanavan kertoimet, ts. etsimään se FIR-suodin, joka muuntaa signaalin handel signaaliksi corrupt.wav. Estimoi ajan säästämiseksi kanavan kertoimia signaaliparin 5:sta ensimmäisestä näytteestä. Voit olettaa, että mallissa on kertoimia enintään 5. Ekvalisoi vääristynyt signaali kanavan käänteissuotimella 5, toisin sanoen ekvalisoitu=filter(,kanava,corrupt); missä vektorissa kanava on estimoidut kanavan kertoimet ja corrupt on vääristynyt signaali. Kuuntele alkuperäinen, vääristynyt sekä ekvalisoitu signaali. Tulosta ruudulle kanavan impulssivaste ja taajuusvaste sekä toiseen ikkunaan ekvalisointisuotimen taajuusvaste (freqz(,kanava)). 6.. (Matlab) Ekvalisointi II. Toinen vaihtoehto ekvalisoinnille on estimoida adaptiivisella järjestelmällä suoraan kanavan käänteissuodinta (edellähän estimoitiin kanava ja laskettiin sen käänteissuodin). Tällöin siis pyritään etsimään se FIR-suodin, joka muuntaa signaalin corrupt.wav signaaliksi handel. Ongelmaksi muodostuu se, että teoriassa käänteissuodin on IIR-suodin, ja sitä estimoidaan FIR-suotimella. Etsi adaptiivisella menettelyllä paras tällainen FIR-suodin ja tulosta ruudulle kanavan impulssivaste. Vertaa tulosta edellisen tehtävän ekvalisointisuotimen taajuusvasteeseen. Nyt kannattaa valita pidempi suodin, luokkaa 3 4 näytettä. Amplitudivasteesta ei tule tällä menettelyllä tarkalleen oikeaa käänteiskanavaa, mutta toisaalta tulos ei ole myöskään epästabiili. Edellisen tehtävän ongelmana on oletus kanavan minimivaiheisuudesta, mikä ei useimmiten pidä paikkaansa. 6.. (Matlab) Ennustus. Lataa Matlabin testisignaali handel ja erota sen alusta :n näytteen mittainen pätkä: y=y(:);. Tee tuloksesta kaksi uutta versiota: kohdesignaali x, jonka alussa on nolla ja referenssisignaali s, jonka lopussa on nolla 5 Tämä onnistuu vain, jos kanavan H(z) kaikki nollat ovat yksikköympyrän sisäpuolella. Tämä siksi, että ne muuttuvat käänteissuotimen /H(z) navoiksi. Tällaisen suotimen sanotaan olevan minimivaiheinen. Tämän tehtävän kanava valittiin tarkoituksella minimivaiheiseksi.
77 6. ADAPTIIVINEN SUODATUS 69 (x=[,y ] ; s=[y,] ;). Ajettaessa LMS:ää näillä signaaleilla algoritmi minimoi suodatustuloksen ja referenssisignaalin erotusta. Koska kohdesignaali on viivästetty versio referenssisignaalista, algoritmi yrittää käytännössä ennustaa seuraavaa arvoa aikaisemmista arvoista. Aseta kertoimien määräksi N = ja ala kasvattaa parametrin µ arvoa arvosta µ =. alkaen kunnes tulos karkaa käsistä. Tulosta referenssisignaali ja suodatustulos samaan ikkunaan ja tutki kuinka hyvin ennustus onnistui.
78 JOHDATUS SIGNAALINKÄSITTELYYN 2
79 Luku 7 Spektrin estimoinnista Annetun signaalin spektrin estimointi tarkoittaa yksinkertaisimmillaan signaalin muuntamista taajuustasoon diskreetin Fourier-muunnoksen avulla. Signaalin spektrillä tarkoitetaankin kuvaajaa, josta nähdään kaikki signaalin (aikasarjan, lukujonon, vektorin, tms.) sisältämät taajuudet. Diskreetti Fourier-muunnos tarjoaa sinällään varsin hyvän estimaatin signaalin todellisesta spektristä, mutta on olemassa tilanteita, joissa pelkkä DFT ei toimi. Tällöin on käytettävä monimutkaisempia menetelmiä, joita tarkastellaan tässä luvussa. Spektrin tarkastelu on useassa sovelluksessa ainoa mahdollinen menettely analysoida signaalin ominaisuuksia. Tärkeitä sovelluskohteita löytyy esimerkiksi lääketieteestä, jossa voidaan EEG-signaalin spektristä yli 9-prosenttisella varmuudella päätellä, onko testattavalla Huntingtonin tauti, Parkinsonin tauti tai skitsofrenia. Samoin esimerkiksi tietoliikennetekniikassa voidaan spektrin avulla päätellä tietoliikennekanavassa ilmenevän kohinan luonne. Tämä puolestaan auttaa valitsemaan mahdollisimman tehokkaan suotimen. 7. Ongelmia pelkkää FFT:tä käytettäessä Tarkastellaan esimerkiksi sinisignaalia x(n) =sin ( ) 3πn, 6 jonka taajuus on siis ω = 3π/6 eli normalisoituina taajuuksina f = 3/32. Jos tästä signaalista otetaan FFT, jossa N = 6, niin signaalin taajuutta ei voida tarkasti esittää FFT:n avulla. Ideaalitapauksessa kyseinen signaali aiheuttaisi piikin FFT:ssä kertoimeen numero.5, jos FFT:n komponentit on indeksoitu nollasta viiteentoista. Kuitenkaan FFT ei sisällä tällaista pistettä, joten tämän signaalin energia jakautuu pisteiden ja 2 kesken. Tämä ongelma korjautuu kuitenkin yksinkertaisella interpolointimenettelyllä. Lisäämällä nollia tarkasteltavan otoksen perään, saadaan FFT:hen lisää pisteitä. Tämä menettely on olennaisesti ainoastaan spektrin interpolointia, eikä tietenkään tuo siihen mitään uutta informaatiota. Kuitenkin näin saadaan tietyt signaalin piirteet paremmin näkyville. Edellisen esimerkin tilanteessa siis lisätään alkuperäisen kuudentoista näytteen mittaisen signaalin perään esimerkiksi 6 nollaa, jolloin saadaan 32 näytteen mittainen signaali (englanninkielinen ninitys operaatiolle on zero-padding). Tästä otetaan seuraavaksi FFT, jolloin saadaan spektri, jossa voidaan tarkemmin esittää signaalin taajuudet.
80 JOHDATUS SIGNAALINKÄSITTELYYN 2 Alla olevassa kuvassa on esitetty alkuperäisen signaalin 6 näytteen mittaisen FFT:n itseisarvot, ja spektri, joka saadaan kun lisätään ensin 6 nollaa ja otetaan sen jälkeen FFT. Mustat pallot saavat samat arvot kuin interpoloimattomassa spektrissä ja valkoiset ovat uusia, interpoloinnin tuomia pisteitä. Alimmassa kolmesta kuvasta on tulos, kun nollia lisätään 24 kappaletta. Siinä on merkitty mustilla ympyröillä ne kohdat, jotka löytyvät jo kuudentoista mittaisella FFT:llä. Kuvasta nähdään, että suurin amplitudi on ylemmässä kuvassa 6 ja alemmassa 8. Tämä johtuu siitä että sinisignaalin aiheuttama piikki ei nyt jakaudu niin ikävästi useamman komponentin osalle Tämä onkin tyypillinen menettely FFT:n laskemisessa. Jos muunnettavan vektorin dimensio ei ole muotoa 2 L, niin silloin sen loppuun lisätään nollia siten että saadaan dimensioksi luvun 2 potenssi. Tästä on se hyöty, että tällöin voidaan käyttää nopean Fouriermuunnoksen algoritmia (FFT). Lisäksi tällä menettelyllä saadaan parempi estimaatti signaalin spektristä. Yllä olevassa kuvassa päästään nollia lisäämällä parempaan tulokseen, mutta selvästikään tulos ei ole vielä signaalin varsinainen spektri. Todellinen spektri on ainoastaan yksi piikki, jonka pitäisi sijaita taajuudella ω = 3π/6. Sen sijaan alimmassa kuvassa on signaalinkäsittelyssä hyvin tyypillinen sin(x)/x -muotoinen kuvaaja. Sama funktio tuli usein vastaan suunniteltaessa FIR-suotimia ikkunamenetelmällä. Selvitetään seuraavaksi miten kyseinen funktio liittyy spektrin estimointiin. Kun signaalista x(n) lasketaan FFT, niin tällöinhän varsinaisesta signaalista katkaistaan ensin sopivan mittainen osa (yleensä muotoa N = 2 L ). Tällöin saadaan uusi signaali, joka on muotoa v(n) =w(n)x(n),
81 7. SPEKTRIN ESTIMOINNISTA 73 missä w(n) = {, kun n =,,2,...,N,, muulloin. Kuten diskreetin Fourier-muunnoksen tarkastelusta muistetaan, kertolasku aika-alueella vastaa konvoluutiota taajuusalueella, ts. V(n) = W(n) X(n). N Siis tulokseksi saadaan spektri, joka on aidon spektrin konvoluutio ikkunan w(n) diskreetin Fourier-muunnoksen kanssa: V(n) = N W(n k)x(k), N k= missä lukujonot W(n) ja X(n) täytyy laskettaessa olettaa jaksollisiksi ja äärettömän pitkiksi. Erityisesti siis meidän esimerkissämme todellinen spektri X(n) on muotoa αδ(n β), jolloin V(n) = α N W(n k)δ(k β) = α W(n β). N N k= Näin ollen havaittu spektri V(n) on siis ikkunan w(n) siirretty ja skaalattu Fourier-muunnos. Sen lauseke on laskettu aikaisemmin, ja se on muotoa sin(x)/x siirrettynä ja skaalattuna. Koska diskreetti Fourier-muunnos on lineaarinen operaatio, niin jokainen signaalin sisältämä taajuus voidaan ajatella muunnettavaksi erikseen ja tämän jälkeen laskettavaksi yhteen. Siksi jokaisen signaalin Fourier-muunnos muodostuu muotoa sin(x)/x olevien funktioiden summana, ja tarkastelu voidaan periaatteessa palauttaa yhden taajuuden tarkasteluun. Ongelman poistamiseksi menetellään samoin kuin FIR-suodinten suunnittelussa. Ikkunan tarkoituksena FIR-suodinten suunnittelussa on vähentää värähtelyä päästökaistalla ja estokaistalla. Nyt tarkoituksena on vaimentaa funktion sin(x)/x värähtelyä ikkunaa käyttäen. Ikkunafunktiota käytetään siis ennen varsinaisen FFT:n laskemista kertomalla ikkunan ja signaalin arvot komponenteittain keskenään. Tilanne on kuitenkin sen verran erilainen, että käytettävät ikkunat poikkeavat osittain aikaisemmin tarkastelluista. Tarkastellaan seuraavassa muutamia ikkunoiden ominaisuuksia. 7.2 Ikkunoiden ominaisuuksia Suodinsuunnittelun yhteydessä tutustuttiin jo muutamiin ikkunoiden ominaisuuksiin. Tuolloin oli esillä saman tyyppinen taulukko kuin alla.
82 JOHDATUS SIGNAALINKÄSITTELYYN 2 Ikkuna- Siirtymäkaistan Päästökaistan Korkein 6 db Ikkunan lauseke funktion leveys värähtely huippu kaistan- w(n), kun nimi (normalisoitu) (db) sivukaistalla (db) leveys 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 7.2. Värähtely sivukaistoilla Taulukosta nähdään muun muassa korkeimman sivukaistalla olevan huipun korkeus. Tämä arvo kertoo suoraan sen kuinka korkeita huippuja tulee yksittäisen spektripiikin ympäristöön. Esimerkiksi suorakulmaista ikkunaa käytettäessä pääkaista on taulukon mukaan 3 db korkeinta sivukaistan huippua korkeammalla. Sivukaistojen amplitudi on siis 3 db suhteessa pääkaistaan, mikä lineaarisella asteikolla vastaa kertomista arvolla Sivukaistan korkeimmat huiput ovat näin ollen hieman reilu viidesosa spektripiikistä. Hamming-ikkunaa käytettäessä sivukaistan huiput ovat vähintään 4 db alempana. Desibeliasteikon luku 4 db tarkoittaa lineaarisella asteikolla lukua.89. Hammingikkunaa käytettäessä sivukaistan korkeimmat huiput ovat näin ollen enintään vajaa sadasosa spektripiikin korkeudesta. Spektriä estimoitaessa tästä ilmiöstä käytetään englanniksi nimitystä spectral leakage, joka tarkoittaa että osa spektrin energiasta vuotaa ympäröiville taajuuksille. Tämä näkyy ylimääräisinä huippuina sellaisilla taajuuksilla, joilla ei todellisuudessa pitäisi olla mitään. Ikkuna on tässä mielessä sitä parempi, mitä suurempi luku on sarakkeessa korkein huippu sivukaistalla Spektripiikin leveys Ikkunoitaessa FFT:tä yksittäiset piikit spektrissä leviävät väistämättä useamman FFT-kertoimen alueelle. Tämän ilmiön voimakkuus voidaan mitata kuuden desibelin kaistanleveyden (6 db bandwidth) avulla. Nimensä mukaisesti se kertoo kuinka leveällä alueella ikkunan spektri on kuuden desibelin rajan yläpuolella. Desibeliasteikon luku 6 db vastaa lineaarisella asteikolla noin puolikasta amplitudissa ja se on yleisesti käytetty raja spektriä estimoitaessa. Taulukossa on ilmoitettu kuuden desibelin kaistanleveys muutamalle ikkunalle. Arvo kertoo kuinka monen FFT-kertoimen alueelle spektripiikki leviää (amplitudilla /2). Spektrin estimaattorin resoluutio on sitä parempi mitä pienempi tämä arvo on. Taulukosta nähdään, että ilman ikkunointia saadaan paras resoluutio, mutta tällöin ongelmaksi muodostuu voimakas värähtely sivukaistoilla Scalloping Loss (SL) Vaikeasti suomennettava käsite scalloping loss, josta käytetään myös nimitystä picket fence effect ilmenee silloin kun tarkasteltava signaali sisältää taajuuden, jota ei voida esittää käytettävän DFT:n avulla.
83 7. SPEKTRIN ESTIMOINNISTA 75 Yleisemmin tämä ilmiö voidaan esittää tasaisen spektrin avulla. Oletetaan että signaali sisältää kaikkia taajuuksia yhtä paljon (kyseessä on siis vaikkapa valkoista kohinaa). Silloin sen spektrin pitäisi olla tasainen, mutta hävikki-ilmiön johdosta se on alla olevan kuvan mukainen. Tästä kuviosta tuleekin ilmiön nimi (picket fence tarkoittaa laudoista tehtyä aitaa). Maksimikohta Minimikohta Taajuus Tätä ilmiötä kuvaamaan on kehitetty mitta nimeltä scalloping loss (SL). Se lasketaan yllä olevan kuvan mukaisesti tasaisen spektrin pienimmän ja suurimman arvon suhteena: SL = W(ω s/2n) W() = N n= w(n)e iπn/n N n= w(n), missä ω s = 2πf s on vastaa näytteenottotaajuutta ja W(ω) on ikkunafunktion w(n) N- ulotteinen Fourier-muunnos. Osoittajassa on spektri laskettuna FFT:n nollannen ja ensimmäisen pisteen puolivälissä (yksi minimikohdista) ja nimittäjässä on spektri laskettuna nollannessa pisteessä (yksi maksimikohdista). Ikkuna on sitä parempi mitä lähempänä ykköstä SL on. Hävikki-arvoja voidaan nopeasti laskea Matlabilla. Alla olevassa taulukossa on laskettu hävikit muutamalle yleisesti käytetylle ikkunalle. suorakulmainen kolmio Hanning Hamming N = N = N = Equivalent noise bandwidth (ENBW) Paras mahdollinen ikkunafunktio olisi sellainen, että sen Fourier-muunnos olisi äärettömän kapea impulssi (jatkuva delta-funktio). Kuitenkin tällaisen Fourier-muunnoksen saamiseksi ikkunafunktion pitää olla äärettömän pitkä, jolloin koko ikkunointi menettää merkityksensä. Jatkuvan delta-funktion käänteinen Fourier-muunnos on nimittäin reaalifunktio f(x) =, x R. Mitä lähemmäs käytettävän ikkunafunktion Fourier-muunnos pääsee jatkuvaa delta-funktiota, sitä parempi se on. Siksi määritelläänkin ikkunafunktion Fourier-
84 JOHDATUS SIGNAALINKÄSITTELYYN 2 muunnoksen leveys (equivalent noise bandwidth): N n= ENBW = w2 (n) [ N ] 2. n= w(n) Kaava kuvastaa sellaisen suorakulmion leveyttä, jonka ala ja korkeus ovat samat kuin ikkunafunktion w(n) Fourier-muunnoksella. Ikkunafunktio on sitä parempi, mitä pienempi ENBW sillä on. Esimerkiksi ilman ikkunointia saadaan ENBW-arvoksi ENBW = N n= [ N n= ] 2 = Usein halutaan tietää, paljonko ENBW on DFT:n kertoimina ilmaistuna. Tämä arvo saadaan kertomalla yo. luku ikkunan pituudella. Suorakulmaiselle ikkunalle siis ENBW= DFT:n kerrointa riippumatta ikkunan pituudesta. Sen sijaan neljän mittaisen ikkunan.5, kun n =, 3 w(n) =, kun n =, 2, muulloin ENBW-arvo on ENBW = ( ) = , eli = DFT:n kerrointa. Näin ollen sillä saadaan resoluution kannalta huonompia 9 9 spektrejä kuin ilman ikkunaa otettavalla neljän mittaisella FFT:llä. Spektrit ovat huonompia siksi, että niiden resoluutio on huonompi, ts. hyvin kapeat lähekkäiset piikit sotkeutuvat toistensa kanssa. Alla olevassa taulukossa on laskettu ENBW-arvoja DFT:n kertoimina muutamalle yleisesti käytetylle ikkunalle. Taulukosta nähdään, että hyvä ENBW-arvo on usein ristiriidassa hyvän SL-arvon kanssa. N. suorakulmainen kolmio Hanning Hamming N = N = N = Päällekkäiset ikkunat Hyvillä ikkunoilla on tyypillisesti sellainen ominaisuus, että niiden ensimmäiset ja viimeiset arvot ovat keskimmäisiä pienempiä. Kuvaajat muistuttavat alaspäin aukeavia paraabeleja. Tällaisilla ikkunoilla on valitettavana ominaisuutena, että ne vaimentavat alku- ja loppupään komponentteja, jolloin siellä olevat signaalin komponentit myöskin vastaavasti vaimenevat. Pitkillä signaaleilla tätä ilmiötä voidaan kuitenkin korjata jakamalla signaali osittain päällekkäisiin samanpituisiin osiin, laskemalla näiden FFT:t ikkunafunktioiden
85 7. SPEKTRIN ESTIMOINNISTA 77 avulla ja palauttamalla kyseisten FFT:den keskiarvon. Nyrkkisääntönä voitaisiin pitää, että jos päällekkäisyyttä on 5% 75%, niin suurin osa ikkunoiden reuna-alueille jäävistä ominaisuuksista säilyy Processing gain (PG) Signaali-kohina-suhteen muutoksesta ikkunaa käytettäessä käytetään nimitystä processing gain, ja se lasketaan ikkunoidun ja ikkunoimattoman signaalin signaali-kohinasuhteiden osamääränä: S/N-suhde ikkunoinnin jälkeen PG = S/N-suhde ennen ikkunointia. Tällä suureella on selvä yhteys ENBW-arvoon, sillä ENBW ja PG molemmat kuvaavat kuinka paljon kohinaa signaaliin tulee ikkunafunktiota käytettäessä Pahimman tapauksen hävikki (WCPL) Pahimman tapauksen hävikki (worst case processing loss, WCPL) kuvastaa signaali-kohinasuhteen heikentymistä pahimmassa mahdollisessa tapauksessa. Se määritellään suurimman mahdollisen scalloping loss:in (SL) ja suurimman mahdollisen processing gain:in (PG) summaksi. Tällä suureella on se miellyttävä ominaisuus, että se on aina 3. db:n ja 4.3 db:n välissä Spektrin vinoutuminen (Biasing) Ikkunan käyttäminen spektrin laskennassa saattaa muuttaa signaalin keskiarvoa. Koska spektrin nollas komponentti (nollataajuus) on suoraan riippuvainen keskiarvosta, niin myös se saattaa vääristyä. Ikkunan käyttö vaikuttaa (asymptoottisesti) kaikkiin muihin taajuuskomponentteihin samalla tavalla. Nollannen taajuuskomponentin käyttäytymistä voidaan kompensoida vähentämällä datasta vakio ja kertomalla tulos toisella vakiolla ennen spektrin laskentaa. Seuraava tarkastelu antaa kaavan vinoutumisen estämiseksi. Tarkastellaan signaalia x(n), jonka keskiarvo on (tämä oletus ei vaikuta tulosten yleisyyteen). Ikkunan aiheuttama vinoutuminen voidaan poistaa vähentämällä alkuperäisestä signaalista vakio k. Tällöin ikkunoinnin jälkeen saadaan signaali x (n) =w(n)[x(n) k ]. Tämä pitää kertoa toisella vakiolla k 2, jotta vinoutuminen tulisi täysin estettyä. Tuloksena on signaali x (n) =k 2 w(n)[x(n) k]. Koska alkuperäisen signaalin keskiarvo on nolla, niin myös signaalin x (n) keskiarvon pitää olla nolla: N x (n) =, n=
86 JOHDATUS SIGNAALINKÄSITTELYYN 2 eli [ N ] N k 2 w(n)x(n) k w(n) =. n= n= Tästä saadaan laskettua ensimmäinen vakio: k = N n= w(n)x(n) N n= w(n). Ehto vakiolle k 2 saadaan asettamalla varianssit yhtäsuuriksi ennen ja jälkeen ikkunointia. Tuloksena saadaan vakion k 2 arvoksi N k 2 = N k= w2 (n). Näin ollen spektriä kannattaa estimoida signaalista [ ][ ] N x n= (n) =w(n) x(n) w(n)x(n) N N n= w(n) N. k= w2 (n) 7.3 Matlab-testejä eri ikkunoilla Eri ikkunoilla saadaan siis laskettua monia niiden tehokkuutta kuvaavia parametreja, mutta vasta käytännön testit varmistavat valitun ikkunan toimivuuden. Kokeillaan lopuksi Matlabilla muutaman ikkunan tehokkuutta yksittäisten spektripiikkien tunnistamisessa. Testisignaalina käytetään eritaajuisten sinien summaa. Normalisoituina taajuudet ovat, 2,,,,, ja. Ideana tässä on se, että näin voidaan verrata eri ikkunoiden kykyä erotella lähekkäin olevia taajuuksia toisistaan (spectral resolution). Tarkalleen ottaen testisignaali on seuraava: x(n) = 8 k= ( 2πn sin 2 + π ). k 4 Kaikilla taajuuksilla on π/4:n suuruinen vaihesiirtymä siksi, että myös Nyquistin rajataajuudella oleva signaali voitaisiin esittää (mitä tapahtuisi ilman vaihesiirtoa?). Spektri ideaalitapauksessa näyttäisi seuraavalta: 2 Signaalin todellinen spektri Spektriä estimoitaessa ikkunan pituudella on suuri merkitys ja valinta ei ole helppoa. Valitaan tässä esimerkissä näytteiden määräksi 64. Tämän mittainen datavektori kerrotaan
87 7. SPEKTRIN ESTIMOINNISTA 79 pisteittäin eri ikkunafunktioilla ja lisätään loppuun vielä nollia niin paljon, että vektorista tulee 256:n mittainen. Ilman ikkunointia lopputulos näyttää seuraavalta: Spektri ilman ikkunointia Kolmioikkunaa käytettäessä tulos on alla: Spektri kolmioikkunalla Seuraavaksi Hanning-ikkuna: Spektri Hanning ikkunalla Ja lopuksi vielä tulos Hamming-ikkunaa käytettäessä. 5 Spektri Hamming ikkunalla Kuvista huomataan, että ilman ikkunointia spektrissä on lukuisia huippuja sielläkin, missä todellisuudessa ei pitäisi olla mitään. Syynä on aiemmin mainittu värähtely sivukaistoilla. Toisaalta ilman ikkunointia saadaan paras spektripiikkien resoluutio. Resoluutiota voidaan arvioida kuuden desibelin kaistanleveyden avulla. 7.4 Yhteenveto Spektrin estimointiin käytetään lisäksi monia edellä esitettyjä hienostuneempia menetelmiä, mutta tämän kurssin tasolla voidaan laatia seuraava algoritmi spektrin estimoimiseksi.
88 JOHDATUS SIGNAALINKÄSITTELYYN 2 Spektrin estimointi. Valitse sovellukseesi sopiva näytevektorin pituus. Jos spektriä estimoidaan liian lyhyeltä ajalta, tulos on epätarkka (yksittäisiä piikkejä vaikea havaita). Jos taas aikaväli on liian pitkä, jäävät spektrin nopeat muutokset ajassa havaitsematta. 2. Valitse sovellukseesi sopiva ikkunafunktio. Esimerkiksi Kaiser-ikkunaa käytettäessä valitse pieni parametrin α arvo jos hyvä resoluutio on tärkeää. Jos taas tarvitset tasaisemman spektrin ilman värähtelyä sivukaistoilla, valitse suuri α. Kerro datavektori valitulla ikkunafunktiolla. Estä tarvittaessa spektrin vinoutuminen. 3. Jos näytevektori on lyhyt, lisää loppuun nollia. Tulokseksi saatavan vektorin pituus on hyvä olla jokin kakkosen potenssi, jotta laskennasta tulee nopeampaa. 4. Laske vektorin FFT. Sen itseisarvon N/2 ensimmäistä termiä ovat spektrin estimaatti (N on lopullisen datavektorin pituus). Harjoitustehtäviä 7.. (a) Jatkuva-aikainen signaali v(t) sisältää ainoastaan viittä kilohertsiä matalampia taajuuksia. Se muunnetaan digitaaliseksi kymmenen kilohertsin näytteenottotaajuudella. Näin saadun signaalin x(n) tuhannesta ensimmäisestä näytteestä lasketaan DFT (X(n)). Mitä alkuperäisen signaalin taajuutta vastaa DFT:n sadasviideskymmenes komponentti X(5)? (b) Alla olevassa kuvassa on kahden signaalin DFT:n itseisarvojen kuvaajat. Toinen signaali on x (n) =cos(.5πn)+ cos(.26πn) ja toinen on x 3 2(n) =cos(.49πn)+ cos(.25πn), missä n =,,...,27. Kuvassa on DFT:n itseisarvojen 64 ensimmäistä arvoa. Yhdistä nämä signaalit niille kuuluvien spektrien kanssa. Perus- 3 tele (Matlab) Spektrin estimointimenetelmän tehokkuutta voidaan tarkastella estimoimalla sopivasti suodatetun valkoisen kohinan spektriä. Luo 52:n näytteen mittainen satunnaisvektori (help randn) ja suodata se IIR-suotimella, jonka kertoimet ovat
89 7. SPEKTRIN ESTIMOINNISTA 8 b=.*[,9,]; a=[,-.3,.845]; Nyt siis vektori b sisältää suotimen osoittajan (viivan yläpuolella) kertoimet ja a nimittäjän (viivan alla). Koska alussa suotimen ominaisuudet eivät ole vielä täysin voimassa, tarkastellaan spektrin estimointia loppupään näytteistä. (a) Tee siis seuraava algoritmi: i. Ota signaalin N viimeistä näytettä ja lisää tämän vektorin loppuun nollia, niin että vektorin kokonaispituus on 52. ii. Laske saadun vektorin FFT. iii. Ota tuloksesta itseisarvo (abs). iv. Ota tulosvektorin alusta 256 ensimmäistä näytettä ja tulosta ne desibeliasteikolla ruudulle (lineaarisen asteikon luku x on desibeliasteikolla 2 log (x)). Vertaa saatua tulosta todelliseen spektriin, joka on käytetyn suotimen amplitudivaste. Tulosta amplitudivaste samaan kuvaan. Tee koe kun N = 32, 64, 28 ja 256. Ei haittaa vaikka saatu kuvaaja olisi ylempänä tai alempana kuin todellinen spektri, muoto on tärkein. (b) Yritä parantaa algoritmiasi kertomalla signaali ennen nollien lisäämistä Hamming-ikkunalla (hamming(n)). (c) Poista vinoutuminen spektristä vähentämällä ennen nollien lisäämistä vakio N n= k = w(n)x(n) N n= w(n) ja kertomalla tulos vakiolla N k 2 = N k= w2 (n), missä x(n) on tarkasteltava signaali, w(n) on käytetty Hamming-ikkuna ja N sen pituus. (d) Laita koko proseduuri for-silmukan sisään ja laske sadan yo. tavalla generoidun signaalin spektrin keskiarvo. Tulosta kuvaaja ruudulle. Tämän pitäisi olla jo aika lähellä todellista spektriä Eräästä kokeesta saatiin 65536:n näytteen mittainen signaali näytteenottotaajuudella khz. Signaalista tiedetään, että taajuudella khz on taajuuspiikki. Nyt halutaan tietää, onko taajuudella 3 khz toinen taajuuspiikki. Ensimmäisenä kokeillaan laskea 65536:n näytteen mittainen DFT, mutta havaitaan tuloksen olevan pelkkää kohinaa. Muiden mittausten perusteella tutkijaryhmä arvioi taajuudella 3 khz olevan signaalin (jos se ylipäänsä on olemassa) varianssiksi (tehoksi) yhden neljäsosan kohinan varianssista (tehosta). Ensin täytyy laskea amplitudivaste [H,W]=freqz(b,a); ja tulostaa H:n itseisarvon logaritmi kerrottuna 2:llä. Se saadaan samaan kuvaan antamalla ensin komento hold on. Lopuksi kannattaa antaa komento hold off.
90 JOHDATUS SIGNAALINKÄSITTELYYN 2 (a) Laske signaalin SNR kappaleen 4 kaavalla. (b) Signaali-kohinasuhdetta voidaan parantaa jakamalla näyte kahteen osaan, ottamalla näiden DFT ja laskemalla tulosvektoreiden itseisarvojen keskiarvo. Näin toimimalla kohinan varianssi (teho) putoaa puoleen signaalin varianssin pysyessä ennallaan (olettaen että signaali pysyy suunnilleen samanlaisena koko näytteen ajan). Laske näin saadun tuloksen SNR. (c) Samalla menettelyllä voidaan jatkaa edelleen. Signaali voidaan jakaa (suunnilleen) kolmeen, neljään, viiteen jne. osaan ja keskiarvottaa näin saatujen signaalien DFT:t. Tällöin varianssikin putoaa aina kolmasosaan, neljäsosaan, viidesosaan, jne. Muodosta yleinen kaava SNR:lle jaettaessa signaali n:ään osaan. (d) Tutkimusryhmä arvioi, että SNR:n pitäisi olla vähintään db jotta tunnistaminen olisi riittävän varmaa. Moneenko osaan signaali pitää vähintään jakaa jotta SNR olisi vähintään db? 7.4. Samalla kun SNR kasvaa edellisen tehtävän menettelyllä, DFT:n pituus pienenee. Tällöin yksittäinen DFT:n näytearvo kattaa laajemman alueen. Esimerkiksi 256:n mittaisesta DFT:stä saadaan 28 kerrointa. Kun nämä jaetaan tasaisesti edellisen tehtävän taajuusalueelle 5 khz, vastaa yksi DFT:n kerroin 5/28 = 3.9 khz:n kaistaa. Koska suorakulmaista ikkunaa käytettäessä yksi spektripiikki leviää.2:n DFT:n kertoimen alueelle (6 db:n kaistanleveys), voidaan näin saadun spektrin yhden spektripiikin leveydeksi arvioida = 4.73 khz. Näin ollen on mahdollista erottaa kaksi taajuutta toisistaan jos niiden etäisyys on vähintään 4.73 kilohertsiä. (a) Kuinka pitkä DFT:n pitäisi olla, jotta edellisessä tehtävässä mainitut taajuudet khz ja 3 khz olisi mahdollista erottaa toisistaan? (b) Kuinka pitkä DFT:n pitäisi olla jos suorakulmaisen ikkunan asemesta käytetään Hamming-ikkunaa? 7.5. Voidaanko tehtävien 7.3. ja 7.4. mukainen järjestelmä toteuttaa? Toisin sanoen, ovatko vaatimukset ristiriidassa keskenään? Jos ne eivät ole, monellako tavalla parametrit voidaan valita? 7.6. (Matlab) Laske Matlabilla ENBW-arvot kuudentoista, 64:n ja 256:n mittaiselle Blackman-ikkunalle (help blackman). Ilmoita tulos DFT:n kertoimien määränä (Matlab) Laske Scalloping Loss -arvot kuudentoista, 64:n ja 256:n mittaiselle Blackmanikkunalle.
91 Luku 8 Audiodatan kompressio Ensimmäisen johdatuskurssin lopuksi tarkasteltiin kuvien kompressiota häviöllisin ja häviöttömin menetelmin. Tuolloin tutustuttiin JPEG-standardiin sekä MPEG-standardin videokoodaukseen. MPEG-standardi määrittelee myös menetelmiä audion koodaukseen ja niihin tutustutaan seuraavaksi. Kappaleessa 5.5 tutustuttiin CD-soittimen ominaisuuksiin ja mainittiin muun muassa, että pakkaamaton CD-audiodata sisältää noin.4 miljoonaa bittiä sekuntia kohti. Näin suuri datamäärä muodostuu ongelmaksi muun muassa digitaalisen audion siirrossa, esimerkiksi digitaaliradiota käytettäessä. Suuri osa CD-soittimen biteistä on tarpeettomia kuuntelijan kannalta. Uusista kompressoiduista digitaalisen audion formaateista (esim. mp3-standardi) puhuttaessa oletetaan usein kompression vain heikentävän äänenlaatua. Näin ei suinkaan tarvitse olla, vaan kompression avulla voidaan esimerkiksi siirtää vähemmän tarpeellisia bittejä ihmisen kuuloaistin kannalta merkityksettömiltä alueilta tärkeämmille alueille. Näin on mahdollista parantaa (havaittua) äänenlaatua (esimerkiksi keskiäänien dynaamista aluetta) bittimäärän pysyessä samana. Tässä kappaleessa esitetään tärkeimmät periaatteet digitaalisen audion pakkaamisessa. Erityisesti tarkastellaan huomattavan suosion saanutta MPEG-standardin äänikoodauksen osuutta. Kyseinen äänikoodauksen standardi jaetaan kolmeen tasoon (layer) niiden kompressiotehon mukaan. Taso tuottaa huonoimman kompressiosuhteen, mutta on yksinkertaisin toteuttaa ja tehovaatimukset ovat pienimmät. Jos laitteistotehoa riittää eikä reaaliaikainen pakkaaminen ole välttämätöntä, voidaan käyttää korkeampia tasoja. Suurempi kompressioteho vaatii suunnittelijoilta enemmän paneutumista enkooderin ohjelmointiin (enemmän ohjelmakoodia) sekä laitteistolta enemmän laskentatehoa. Standardin määrittelyn mukaan ensimmäisen tason on määrä tuottaa suunnilleen CD-tasoinen ääni käyttäen 384 kilobittiä sekuntia kohti. Tasoille 2 ja 3 tämä bittimäärä on 92 kb/s ja 28 kb/s. Äänen laatu mitataan kuuntelutesteissä, ja tulos on CD-tasoinen, jos kuuntelijoiden havaitsema ero alkuperäisen ja pakatun version välillä ei ole tilastollisesti merkittävä. Konetehon kasvaessa käytännön standardiksi useissa sovelluksissa on muodostunut taso 3 sen alhaisemman bittimäärän vuoksi. Reaaliaikaiset sovellukset käyttävät alempaa tasoa; esimerkiksi digitaaliradio (DAB) perustuu tasoon 2. Häviöllisen kuvanpakkauksen standardit oli mahdollista esittää melko vähäisin esitiedoin. Tärkeintä osaa näyttelivät kuvien muunnokset, erityisesti diskreetti kosinimuunnos eli DCT. Muunnoksen jälkeen osa muunnoskertoimista jätettiin koodaamatta tai koodattiin pienemmällä tarkkuudella.
92 JOHDATUS SIGNAALINKÄSITTELYYN 2 Audiokoodauskin voitaisiin esittää vastaavalla tavalla. Tällöin riittäisi käydä läpi audiosignaalille tehtävä muunnos ja mainita, että osa kertoimista koodataan pienemmällä tarkkuudella. Bittivähennys pohjautuu kuitenkin monipuoliseen ja -tieteiseen teoriaan ihmisen kuuloaistin havaintoprosessista (tätä tutkiva tieteenala on nimeltään psykoakustiikka). Tämä teoria näyttelee niin olennaista osaa audiokoodauksessa ja erityisesti sen tulevaisuudennäkymissä, että myös se on syytä käsitellä. Näin ollen ennen algoritmista vaihetta tutustutaankin äänen ja äänihavainnon väliseen suhteeseen. 8. Kuuloaistin ominaisuuksia 8.. Kuuloaistin anatomia Anatomian kannalta ihmiskorva jakautuu kolmeen osaan, ulko-, väli- ja sisäkorvaan. Ulkokorvaan kuuluvat korvalehti sekä korvakäytävä. Äänisignaalien kannalta korvalehti vahvistaa edestä ja sivuilta tulevia ääniä (n. 5 db) samalla vaimentaen takaa tulevia ääniä. Erityisesti korvalehti vahvistaa keskiääniä ja amplitudivasteen huippu on noin 2.5 khz:n kohdalla. Tämän lisäksi myös korvakäytävä vahvistaa keskiääniä 5-2 db ja vahvistushuippu on noin kolmen kilohertsin kohdalla. Vaikka keskiäänten vahvistuminen osittain kumoutuukin välikorvassa, saapuu sisäkorvaan keskiääniltään vahvistunut äänisignaali. Sisäkorvan ääniä aistiva osa on nimeltään simpukka, jonka sisäosassa on tyvilevy. Yksinkertaistettuna tyvilevy on ikäänkuin pitkä soittimen kieli, joka on jäykempi ja kapeampi alkupäästä kuin loppupäästä. Näin ollen korkeataajuiset ääniaallot saavan tyvilevyn kapean osan värähtelemään (vrt. kitaran ohuet kielet) ja matalat taajuudet vaikuttavat enemmän leveään loppupäähän (vrt. kitaran paksut kielet). Tyvilevyn liikkeitä on tunnistamassa 5 karvasolua, joiden liikkeet välittyvät aivoihin. Aivot saavat näin tiedon värähtelyn maksimiamplitudin sijainnista ja muodostavat sen perusteella tulkinnan taajuudesta Kuuloaistin mallintaminen Kehitettäessä matemaattisia malleja kuuloaistille on toimivaksi ratkaisuksi osoittautunut olettamus, jonka mukaan kuulokäytävä jakaa ääniaallot eri taajuuskomponentteihin eräänlaisten kaistanpäästösuodinten avulla. Erään tutkimuksen tuloksena 2 julkaistiin taulukko 24:sta kaistanpäästösuodattimen rajataajuudesta. Tutkimuksessa oletetettiin suodinten olevan lähellä ideaalisia kaistanpäästösuotimia, mutta myöhempi tutkimus on osoittanut tämän olettamuksen vääräksi. Melko hyviin tuloksiin päästään kuitenkin mallintamalla kuuloaistia ei-ideaalisilla kaistanpäästösuotimilla. Tällaisten suodinten kaistanleveyden (vastaava kuin kappaleen 7 equivalent noise bandwidth eli ENBW-arvo) on havaittu riippuvan niiden keskustaajuudesta. Jos tätä riippuvuutta havainnollistetaan täyslogaritmisella asteikolla, voidaan voimakkaasti yksinkertaistaen sanoa kaistanleveyden kasvavan suunnilleen eksponentiaalisesti suhteessa tarkasteltavaan taajuuteen. Näin ollen spektrin estimoinnin resoluutio on paras pienillä taajuuksilla ja heikoin suurilla taajuuksilla. Lisätietoja löytyy esim. E. Haug, O. Sand, Ø. Sjaastad, K. Toverud, Ihmisen fysiologia, WSOY B. Scharf, "Critical bands", teoksessa Foundations of modern auditory theory, Academic press, New York, 97.
93 8. AUDIODATAN KOMPRESSIO 85 Äänisignaalin jako eri taajuuskaistoihin on pohjana audion koodaukselle. Koodaustehokkuuden kannalta tähän on kaksi syytä. Ensinnäkin tällöin voidaan pakkaus optimoida sopivaksi ihmisen kuulokäyrän mukaan ja toiseksi voidaan käyttää apuna peittoilmiötä Kuulokäyrä Kuuntelutesteissä on havaittu ihmisen kuuloaistin herkkyyden noudattavan suunnilleen seuraavien kuvien mukaista kuulokäyrää. 2 2 Äänenvoimakkuus (db) Äänenvoimakkuus (db) Taajuus (Hz) Taajuus (Hz) x 4 Vasemmanpuoleinen kuva esittää kuulokäyrää logaritmisella asteikolla. Oikeanpuoleisessa kuvassa sama käyrä on esitettynä lineaarisella asteikolla. Logaritminen asteikko on yleisemmin käytetty, koska se kykenee kuvaamaan kuuloaistin toimintaa havainnollisemmin. Kuvien pystyakseli esittää pienintä havaittua äänenpainetta kullakin taajuudella. Esimerkiksi puhdas sinisignaali taajuudella 5 Hz on mahdollista kuulla, jos sen äänenpäine on vähintään 5 db. Käyrän alapuolelle jääviä taajuus-äänenvoimakkuus-yhdistelmiä ei ihmiskorva kuule. Pystyakselilla on desibeleissä ilmaistu äänenvoimakkuus. Äänenvoimakkuudet ilmaistaan suhteessa pienimpään kuultavissa olevaan ääneen, jonka voimakkuus on näin ollen db (n. -3 khz taajuudella, vaihtelee lähteen mukaan). Toisinaan käytetään merkintää "db SPL", jossa SPL on lyhenne sanoista sound pressure level. Nimi viittaa äänenpainetasoon, jonka yksikkö on W/m 2. Nolla desibeliä määritellään äänenpaineeksi 2 W/m 2. Näin ollen esimerkiksi lukeman 5 db tarkoittama äänenpaine saadaan yhtälöstä eli x log = 5, 2 x = 7 W/m 2. Kuulokäyrää hyväksi käyttämällä voitaisiin jo säästää bittejä jättämällä kaikki sen alle jäävät äänet tallentamatta. Alla oleva kuva vertaa erään näytesignaalin taajuuskomponentteja kuulokynnykseen. Kuviosta nähdään, että hyvin pienet ja hyvin suuret taajuudet jäävät kuulokynnyksen alapuolelle ja voidaan näin ollen esimerkiksi suodattaa pois signaalista. Suodatuksen tuloksena on yksinkertaisempi signaali, mikä näkyy entropian pienenemisenä.
94 JOHDATUS SIGNAALINKÄSITTELYYN 2 Todellisuudessa tilanne ei ole aivan näin yksinkertainen, sillä kuulokynnystä kuvaava käyrä pätee puhtaille siniäänille, joilla on siis vain yksi taajuuskomponentti. Esimerkin puhesignaalin taajuussisältö on monimutkaisempi, jolloin jotain saattaa jäädä kuuluviin. Lisäksi käyrän alle jäävät komponentit tulevat esiin, jos käyttäjällä on mahdollista kontrolloida äänenvoimakkuutta. Näin ollen on tarkasteltava samanaikaisten äänten yhteisvaikutusta kuulohavaintoon. 2 Äänenvoimakkuus (db) Taajuuden (Hz) kantainen logaritmi 8..4 Peittoilmiö Koodauksen kannalta kuulokynnystä hyödyllisempi kuuloaistin ominaisuus on peittoilmiö (maskeeraus, masking effect). Tuomainen 3 määrittelee peittoilmiön toisen signaalin (maskeeraajan, maskin) aiheuttamaksi häirinnäksi kohdesignaalin havaitsemisessa. Maskaajasignaali on siis voimakkaampi ääni, joka peittää heikomman äänen alleen. Käytännössä tämä ilmenee esimerkiksi siten, että kovaäänisen musiikin (maski) soidessa normaali puhe (kohdesignaali) ei kuulu. Yleensä peittoilmiö jaetaan kahteen eri tyyppiin, samanaikaiseen ja ei-samanaikaiseen. Samanaikaisessa peittoilmiössä sekä maskaajasignaali että kohdesignaali kuullaan yhtäaikaa. Jos maskaajasignaali on kohdesignaalia voimakkaampi, kohdesignaali peittyy kuulumattomiin. Samalla peittyy osa maskaajasignaalia ympäröivistä taajuuksista oheisen kuvan mukaisesti. Kuvassa on esitetty yksi voimakas taajuuspiikki taajuudella Hz. Tällöin kuulokynnys muuttuu siten, että korva ei kuule ympäröiviä taajuuksia kuulokynnyksen mukaisesti vaan huonommin. Nyt kaikki kuvan yhtenäisen viivan alle jäävät äänet (taajuusvoimakkuusyhdistelmät) jäävät kuulumattomiin. Älykäs koodausmenetelmä ymmärtää tällöin koodata kyseiset taajuudet pienemmällä tarkkuudella ja säästää näin bittejä. Yksittäisen äänen muodostama maskikuvio riippuu myös äänen luonteesta. Kohinatyyppiset ja laajakaistaiset äänet peittävät muita ääniä alleen tehokkaammin kuin säännölliset äänet. 3 J. Tuomainen, "Psykoakustiikka: akustiikan ja havainnon välinen suhde", teoksessa Revonsuo et al. (toim.), Mieli ja aivot: kognitiivinen neurotiede, Kognitiivisen neurotieteen tutkimusyksikkö, Turun yliopisto, Turku, 996.
95 8. AUDIODATAN KOMPRESSIO 87 2 Äänenvoimakkuus (db) Taajuuden (Hz) kantainen logaritmi Ei-samanaikainen peittoilmiö tarkoittaa sitä, että voimakas yksittäinen ääni peittää muita lähitaajuuksilla olevia ääniä myös jonkin aikaa sen jälkeen kun maskaajaääni itse on loppunut. Tämä johtunee siitä, että korva ei ehdi aivan heti palautua entiselleen eikä havaitse heikkoja lähitaajuuksien ääniä aivan täydellisesti. Ei-samanaikaisen peittoilmiön kesto on kymmenien tai satojen millisekuntien luokkaa. Esimerkiksi 8 ms =.8 s vastaa 44. khz:n näytteenottotaajuudella 3528 näytettä. Näin ollen muutaman tuhannen seuraavan näytteen kyseiset taajuudet voidaan koodata pienemmällä tarkkuudella. Bittisäästö voi näin muodostua merkittäväksi. Ei-samanaikainen peittoilmiö ei kuitenkaan ole yhtä voimakasta kuin samanaikainen, eikä sen avulla voida näin ollen saavuttaa yhtä merkittäviä bittisäästöjä. Yllättävä havainto on, että ei-samanaikainen peittoilmiö toimii myös toiseen suuntaan. Tällöin voimakas maskaajaääni peittää lähitaajuudet myös ennen alkamistaan. Tuomainen viittaa selitysmalliin, jonka mukaan ilmiö johtuu lyhytaikaisen sensorisen muistin (ns. kaikumuistin) toiminnasta. Riippumatta syistä, ilmiötä on helppo hyödyntää ohjelmistotasolla samaan tapaan kuin peittoilmiötä yleensäkin. 8.2 Peittoilmiön hyväksikäyttö audion koodauksessa Molempiin peittotyyppeihin on olemassa matemaattiset mallit, jotka toimivat kohtuullisen hyvin. MPEG-standardikin määrittelee kaksi ohjelmarutiinia, jotka laskevat annetun signaalin kokonaismaskin. Kokonaismaski tarkoittaa eri taajuuskomponenttien yhteisvaikutusta. MPEG-standardin malli on yksinkertaisempi ohjelmoitava ja nopeampi laskettava, mutta toisaalta epätarkempi. Näin ollen se soveltuu tilanteisiin, joissa laskennan on oltava nopeaa ja bittimäärän ei tarvitse olla optimaalinen. Malli 2 on monimutkaisempi ja tarkempi. Eräs peruslähtökohdista MPEG-standardointityössä on ollut jättää mahdollisimman paljon vapauksia enkooderin sunnittelijalle. MPEG määrittelee vain bittivirran, mutta ei menetelmiä sen luomiseksi. Standardin mallit ovat vain (hyviä) esimerkkejä. Mikään ei pakota pakkausohjelman suunnittelijaa käyttämään kumpaakaan niistä. Nopea (joskin tuhlaileva) ratkaisu on olla käyttämättä kumpaakaan psykoakustisista malleista. Toisaalta ke-
96 JOHDATUS SIGNAALINKÄSITTELYYN 2 hittyneiden pakkausohjelmien algoritmit perustuvat viritettyihin psykoakustisiin malleihin, jotka ovat standardimalleja tarkempia. Mitä tarkempi malli on, sitä enemmän bittejä voidaan jättää pois ilman kuuluvaa eroa alkuperäiseen. Lisätietoja aiheesta löytyy verkosta vaikkapa hakusanoilla psychoacoustic +model +MPEG Taajuusalueiden erottelu Jotta peittoilmiötä voitaisiin käyttää tehokkaasti hyväksi, äänisignaali jaetaan ensin eri taajuuskomponentteihin. MPEG-standardin mukaan tämä tapahtuu 32:lla kaistanpäästösuotimella, joiden päästökaistat ovat yhtä leveät ja erilliset. Jos esimerkiksi näytteenottotaajuus on 32 khz, jokaisen suotimen päästökaistan leveys on 6/32 = 5 Hz. Ensimmäisen suotimen päästökaista on siis 5 Hz, toisen 5 Hz ja niin edelleen. Tällaisesta suodinkokoelmasta käytetään nimeä suodinpankki (filter bank) ja erään suodinpankin suodinten amplitudivasteet on esitetty alla olevassa kuvassa Taajuus (Hz) Äänisignaali suodatetaan jokaisella suodinpankin suotimella, ja tuloksena saadaan 32 signaalia joista kukin esittää yhtä taajuuskaistaa. Näiden 32:n signaalin näytteenottotaajuus pudotetaan kertoimella 32 eli yhteen kilohertsiin. Tällöin korkeammat taajuudet laskostuvat taajuusalueelle 5 Hz. Tämä ei kuitenkaan haittaa, sillä tuon taajuusalueen informaatio suodatettiin pois aiemmin. Näin ollen laskostuminen ei sekoita taajuusinformaatiota ja alkuperäinen signaali voidaan palauttaa moduloimalla desimoitua versiota. Alla olevassa kuvassa on yksi 5 Hz levyinen kaista alkuperäisestä signaalista esitettynä aika- sekä taajuusalueella..2 Yhden taajuuskaistan alkuperäinen signaali Yhden taajuuskaistan alkuperäinen spektri Kuvasta nähdään, että kapeakaistaisuudesta johtuen signaali on melko yksinkertainen suureen näytteenottotaajuuteen nähden. Kun signaali desimoidaan kertoimella 32, taa-
97 8. AUDIODATAN KOMPRESSIO 89 juusalue 3 35 Hz laskostuu taajuuksille 5 Hz. Samalla näytteiden määrä putoaa yhteen kolmaskymmeneskahdesosaan alkuperäisestä. Tulos on esitetty alla olevassa kuvassa.. Signaali desimoinnin jälkeen Signaalin spektri desimoinnin jälkeen Lopputuloksena on siis 32 signaalia, joiden näytteenottotaajuus on khz ja joista kukin esittää yhtä taajuuskaistaa alkuperäisestä signaalista. Näytteet on esitetty 6:lla bitillä kuten aiemminkin. Periaatteessa tässä vaiheessa alkuperäinen signaali on vielä täydellisesti rekonstruoitavissa. Lisäksi näytearvojen lukumäärä on sama kuin ennen jakoa eri taajuuskaistoille (alussa yksi signaali näytteenottotaajuudella 32 khz, nyt 32 signaalia näytteenottotaajuudella khz). Enkooderi tallentaa signaalin nimenomaan tässä esitysmuodossa pienennettyään ensin kunkin taajuuskaistan bittimäärää seuraavan kappaleen periaatteiden mukaan. Tästä voidaan dekoodausvaiheessa saada palautettua miltei tarkalleen alkuperäinen signaali. Ensimmäisessä vaiheessa interpoloidaan kertoimella 32, jolloin saadaan alla olevan kuvan mukainen signaali Desimoitu signaali interpoloinnin jälkeen Spektri interpoloinnin jälkeen Tämän jälkeen signaali moduloidaan kosinisignaalilla, jonka taajuus on 3 Hz. Kertolasku aikatasossa vastaa konvoluutiota taajuustasossa, ja nyt konvoluutio otetaan siis signaalin spektrin ja kosinin spektrin (yksi piikki taajuudella 3 Hz) välillä. Tuloksena
98 JOHDATUS SIGNAALINKÄSITTELYYN 2 alkuperäinen spektri siirtyy 3 Hz suuremmalle taajuudelle. Myös negatiiviset taajuudet siirtyvät taajuusasteikolla 3 Hz ylöspäin, mutta ne voidaan poistaa ylipäästösuodatuksella. Tulos on esitetty alla ja se on hyvin lähellä alkuperäistä. Vähäiset muutokset johtuvat desimoitaessa tapahtuvasta laskostumisesta. Todellisessa järjestelmässä nekin kumoutuvat muiden taajuuskaistojen laskostumisilmiöiden kanssa..2 Signaali moduloinnin jälkeen Spektri moduloinnin jälkeen Rekonstruktiovaihetta voidaan yksinkertaistaa jättämällä modulointi pois. Tämä onnistuu tarkastelemalla näytteenottotaajuuden kasvattamista (lohkokaaviossa N ) lähemmin. Tämän operaation jälkeen (ennen interpoloinnin jälkeistä alipäästösuodatusta) signaalin spektri näyttää seuraavalta.. Desimoitu signaali nollien lisäämisen jälkeen Spektri nollien lisäämisen jälkeen Kuten interpoloinnin yhteydessä havaittiin, nollien lisääminen muodostaa kopioita alkuperäisestä spektristä korkeammille taajuuksille. Koska alkuperäinen taajuuskaista sijaitsi korkeammalla taajuudella, voidaan yhtä hyvin käyttää siellä valmiiksi olevaa kopiota. Alipäästösuodatuksen ja moduloinnin asemesta voidaan siis käyttää vain yhtä kaistanpäästösuodatusta, joka erottelee kaistalla 3 Hz 35 Hz olevan kopion. Tulossignaali spektreineen on alla.
99 8. AUDIODATAN KOMPRESSIO 9.2 Kaistanpäästösuodatettu signaali Kaistanpäästösuodatetun signaalin spektri Joka toinen spektrin kopio on alkuperäisen spektrin peilikuva. Tämä ei kuitenkaan haittaa, sillä samat spektrit peilautuivat jo kerran laskostuessaan näytteenottotaajuutta pienennettäessä. Näin ollen niiden spektrit ovat todellisen spektrin peilikuvia silloin, kun näytteenottotaajuutta aletaan nostaa. Peilautuessaan toisen kerran nollia lisättäessä ne kääntyvät automaattisesti oikein päin. Suodinpankin lohkokaavio on alla olevassa kuvassa. Vasemmalla signaali x(n) jaetaan N:llä kaistanpäästösuotimella taajuuskaistoihin ja yksittäisiä taajuuskaistoja esittävien signaalien näytteenottotaajuus pudotetaan kertoimella N. Taajuuskaistoja esittävät signaalit voidaan nyt pakata, eli ne voidaan esittää pienemmällä tarkkuudella kuten seuraavassa kappaleessa esitetään. Kun alkuperäinen signaali halutaan palauttaa kompressoidusta versiosta, nostetaan taajuuskaistojen näytteenottotaajuudet ensin nollia lisäämällä samaksi kuin alkuperäisellä signaalilla. Näin saaduista signaaleista irrotetaan oikea taajuuskaista kaistanpäästösuodatuksella. Tässä voidaan käyttää samaa suodinta, jolla kaista alunperin erotettiin signaalista x(n). On tosin mahdollista käyttää muutakin suodinta, mutta suotimet H (z),h 2 (z),...,h N (z) kelpaavat yhtä hyvin. Näin saadut taajuuskaistat summataan yhteen ja saadaan signaalin x(n) approksimaatio y(n). x(n) H (z) N... H (z) 3 H (z) 2 H (z) N... N N N K V A N T I S O I N T I N... N N N H (z) N... Pakkaamisen kannalta olennaisin vaihe on seuraava. Siinä taajuuskaistojen esittämiseen tarvittavia bittimääriä aletaan vähentää. Bittivähennys tapahtuu siitä esitysmuodosta, jossa on 32 yhden kilohertsin näytetaajuudella olevaa signaalia. H (z) 3 H (z) 2 H (z) y(n)
100 JOHDATUS SIGNAALINKÄSITTELYYN Kvantisointikohinan peittyminen ja bittien jakaminen eri taajuuksille Tässä vaiheessa on käytössä rutiini (psykoakustinen malli), joka laskee kokonaismaskin parametrina saamansa signaalin perusteella. Tätä mallia voidaan verrata signaalin taajuussisältöön. Alla olevista kuvista vasemmanpuoleinen esittää erään signaalin spektriä (pystypylväät) sekä siitä ja kuulokäyrästä laskettua kokonaismaskia (yhtenäinen käyrä) 4. Oikeanpuoleisessa kuvassa on kokonaismaski. Kokonaismaski noudattaa siis kuulokäyrän muotoa, mutta signaalin voimakkailla taajuuksilla nousee hieman ylemmäs. Kokonaismaskista nähdään kullakin taajuusalueella voimakkain signaali, joka alkuperäiseen voidaan lisätä ilman että kuuntelija havaitsee sitä. Näin ollen kuvaaja ilmaisee myös, kuinka suuri määrä kvantisointikohinaa signaalin eri taajuuksilla voi olla. Tästä voidaan päätellä pienin bittimäärä jolla kukin 32:sta eri taajuuskaistoilla olevasta signaalista täytyy esittää ilman havaittavaa laadun heikkenemistä. Äänenvoimakkuus (db) Taajuus (Hz) Äänenvoimakkuus (db) Taajuus (Hz) Signaalin sisältämiä taajuuksia on tapana vertailla kokonaismaskiin tarkastelemalla näiden erotusta. Seuraavassa kuvassa on kyseinen erotus (siis ylhäällä vasemmassa kuvassa olevat pylväät miinus oikeassa kuvassa olevat pylväät). Tästä erotuksesta käytetään nimeä signaali-maski-suhde (signal-to-mask ratio, SMR). SMR (db) Taajuus (Hz) Signaali-maski-suhdetta voidaan vertailla siihen signaali-kohina-suhteeseen, joka syntyy esitettäessä signaali b:llä bitillä. Käytetään tästä merkintää SNR(b). Tällöin riittävä ehto sille, ettei bittivähennyksestä seuraava kvantisointikohina kuulu, on SMR < SNR(b). (8.) Kvantisointikohinan signaali-kohina-suhde riippuu signaalin amplitudista, mutta tässä esimerkissä voidaan olettaa vastaava malli kuin kappaleessa 4. Tuolloin päädyttiin kaavaan SNR(b) 6.2b.24. Sijoittamalla tämä lauseke kaavaan (8.), saadaan epäyhtälö SMR < 6.2b Esimerkin signaali on todellinen äänisignaali, mutta kokonaismaski on vain esimerkki eikä sitä ole laskettu millään käytössä olevalla rutiinilla.
101 8. AUDIODATAN KOMPRESSIO 93 Tästä on helppo ratkaista b: b> SMR Tämän kaavan mukaiset minimibittimäärät eri taajuuskaistoille on esitetty seuraavassa kuvassa. 6 5 Bittien lukumäärä Taajuus (Hz) Käytännön tilanteissa voisi olla varminta antaa bittejä hieman avokätisemmin myös korkeille taajuuksille. Jos kokeeksi kullekin taajuudelle annetaan yksi ylimääräinen bitti yllä olevien lisäksi, saadaan koodauksen ja dekoodauksen jälkeen seuraava taajuussisältö. Power Spectrum Magnitude (db) Frequency Ylempi kuvaaja esittää alkuperäisen signaalin spektriä ja alempi häviöllisen koodauksen tulossignaalin spektriä. Bittejä on nyt koko 32 näytteen mittaiseen signaaliin käytetty 6, eli.88 bittiä/näyte alkuperäisen 6 bittiä/näyte sijasta 5. Ero näkyy selvästi, ja on myös kuultavissa äänisignaalissa, mutta se on yllättävän pieni ottaen huomioon kompressiosuhteen ja miltei arvaamalla valitun kokonaismaskin. Tämän lisäksi näyte oli pitkä verrattuna todellisten koodereiden käyttämiin ikkunoihin (mp3:ssa tyypillinen ikkunan pituus on näytettä). Siksi myös taajuudet olivat enemmän hajallaan. Esimerkissä bittejä jaettiin signaalin taajuussisällön mukaan. Tästä seuraa, että bittitarve vaihtelee ajan myötä. Tällaisesta koodauksesta käytetään MPEG:in yhteydessä variable bitrate (VBR) ja sopiva suomennos voisi olla vaihtuvan bittinopeuden koodaus. Useissa mp3-koodereissa ei kuitenkaan ole sen hyödyllisyydestä huolimatta mahdollisuutta VBR:n käyttöön, vaan bittinopeus on kiinnitetty etukäteen. Jos bittinopeus on kiinnitetty, kooderilla on käytössään tietty bittimäärä kullekin ikkunalle. Tällöin ne jaetaan taajuuksien kesken iteratiivisesti luovuttamalla yksi bitti kerrallaan sille kaistalle, jonka SMR:n ja SNR:n erotus 6 kulloinkin on suurin. Toisinaan bittejä on enemmän kuin tarvitaan ja toisinaan niitä voitaisiin käyttää enemmänkin. MPEG:in tasot ja 2 eivät vaadi dekoodereilta mahdollisuutta VBR:n käyttöön, mutta jokaisen tason 3 dekooderin täytyy tukea VBR:ää. 5 Entropiakoodaus parantaa kompressiosuhdetta edelleen. 6 Tästä erotuksesta käytetään nimeä noise-to-mask ratio: NMR = SMR SNR(b).
102 JOHDATUS SIGNAALINKÄSITTELYYN 2 Harjoitustehtäviä 8.. Kun kapeakaistainen signaali x(n) halutaan siirtää korkeammalle taajuusalueelle, käytetään modulointia. Tällöin signaali x(n) kerrotaan pisteittäin kantoaallolla c(n) = cos(2πf c n), missä f c kertoo kuinka paljon signaalin x(n) taajuuksia halutaan nostaa (esimerkiksi arvolla f c =.25 taajuudet nousevat puolella Nyquistin rajataajuudesta). Millainen spektri on tuloksena, kun signaali x(n) =sin(. 2πn) moduloidaan kantoaallolla, missä f c =.3? Piirrä tilanteesta vastaavat kolme kuvaajaa kuin kuvassa (kuvassa normalisoidun taajuuden f c tilalla on kulmataajuus ω c, joten on muistettava, että ω c = 2πf c ). Vapaaehtoinen lisäkysymys: osaatko sanoa mikä DFT:n ominaisuus selittää modulaation? (a) X(e iω) (b) 2π... π π ω M C(e iω) ω M π π 2π π ω... (c) 2π 2π+ω c ω c iω Y(e ) ω c 2π ω c ω M 2π ω c 2π 2π+ ω c ω π 2π+ ω c ω c ω c 2π ω c 2π 2π+ ω c ω ω c ω M ω c + ω M 8.2. Jotta signaalin spektri pysyisi muuttumattomana, eivät vierekkäiset spektrin kopiot saa mennä päällekkäin modulaatiossa. Mitkä kaksi epäyhtälöä kuvan muuttujien ω c ja ω M välillä täytyy tällöin olla voimassa? Jos haluat, voit muotoilla epäyhtälöt myös muuttujien f c ja f M avulla, missä ω c = 2πf c ja ω M = 2πf M (Matlab) Kopioi itsellesi tiedosto tai Lintulassa ~hehu/public_html/seiska.mat ja lataa se Matlabiin. Ääninäytteen näytteenottotaajuus on 6 Hz. Suunnittele fir-rutiinilla alipäästösuodin (n. sata kerrointa), jonka rajataajuus on kahdeksasosa näytteenottotaajuudesta eli neljäsosa Nyquistin rajataajuudesta. Suodata muuttujassa y oleva signaali suunnitellulla suotimella. Tällöinhän tulossignaalin taajuudet ovat välillä 2 khz ja välillä 2 8 khz on tyhjää tilaa (katso spektrogrammi). Tehtävän 8.2 merkinnöillä ilmaistuna f M =. Minkä muodon tehtävän 8.2 kaksi ehtoa nyt saavat ja missä rajoissa kantoaallon taajuuden f c tulee olla? Moduloi nyt suodattamasi signaali samanmittaisel- 8 la kantoaallolla c(n) =cos(2πf c n), missä f c on mainittujen rajojen välissä, ja katso spektrogrammi. Modulointi nosti signaalin spektriä ylöspäin siten, että nollataajuus nousi f c :n verran korkeammalle. Tee remez tai fir-rutiinilla suodin, joka poistaa negatiiviselta puolelta taajuuksille f c tulleet haamutaajuudet. Kuuntele tulos ja katso spektrogrammi. Tee samat testit myös muutamalla muulla sopivalla muuttujan f c arvolla. Saattaa olla, ettei Matlab tue muita näytteenottotaajuuksia kuin 8 khz. Tee silloin testit Octavella, joka käynnistyy komennolla octave, ja soittaa näytteen y näytteenottotaajuudella 6 khz komennolla soundsc(y,6).
103 8. AUDIODATAN KOMPRESSIO (Matlab) Edellisen tehtävän moduloidut signaalit saadaan palautettua alkuperäisiksi demoduloimalla ne, eli käytännössä kertomalla ne uudelleen kantoaallolla ja poistamalla muut kuin alkuperäisessä signaalissa olleet taajuudet [, f M ]. Tee testit edellisen tehtävän kantoaalloilla ja vertaa demoduloinnin tulosta alkuperäiseen spektrogrammissa ja kuuntelemalla (Matlab) Laaditaan MPEG-standardin mukainen suodinpankki, jota voidaan käyttää taajuuksien erottelussa 32:lle kaistalle. Oletetaan, että näytteenottotaajuus on 32 khz, jolloin yksi taajuuskaista on 5 Hz. Luo ensin prototyyppisuodin, jonka perusteella muut suotimet suunnitellaan 7. Kyseinen suodin on alipäästösuodin, joka päästää läpi taajuudet -25 Hz ja poistaa muut (negatiiviselta puolelta mukaan tulevat haamutaajuudet -25- Hz, siis yhteensä 5 Hz). Otetaan siis päästökaistaksi -8 Hz ja estokaistaksi 32-6 Hz. Suunnittele Remez-algoritmilla tällainen suodin, jossa on 52 kerrointa (siis 52 on kerrointen lkm., ei aste). Kaistojen painot voit itse valita. Kerro lopuksi kaikki kertoimet kahdella. Jos em. suotimen kertoimista käytetään merkintää h(n), kun n =,,...,5, saadaan j:nnellä taajuuskaistalla oleva suodin kaavasta ( ) (2j )(n 6)π h j (n) =h(n) cos, 64 missä j =,2,3,...,32. Kyseessä on siis prototyyppisuotimen modulointi. Muodosta näin saaduista suotimista matriisi, jossa kullakin 32:lla vaakarivillä on j:nnen suotimen 52 kerrointa. Ensin kannattanee luoda sopivan kokoinen nollamatriisi (help zeros) ja sitten for-silmukassa täyttää rivi kerrallaan. Tulosta kokeeksi muutaman suotimen taajuusvaste. Alla olevassa kuvassa on esimerkiksi kaistoilla (-5 Hz), 2 (5- Hz), (45-5 Hz) sekä 2 (95- Hz) operoivien suodinten amplitudivasteet (Matlab) Lataa signaali handel ja ota siitä sekunnin mittainen näyte alusta (892 näytettä). Irrota sen yhdeksäs taajuuskaista edellisessä tehtävässä suunnittelemallasi suotimella. (Näytteenottotaajuus on toinen, joten taajuusalue on alempana kuin aikaisemmassa tehtävässä. Tällä ei ole tämän tehtävän kannalta olennaista merkitystä.) Tulosta tuloksen spektri ruudulle. Voit nyt hätätapauksessa tehdä spektriestimaatin pelkällä FFT:llä. Ota tuloksesta talteen ainoastaan joka 32:s näyte (vaikkapa kaksoispisteen avulla, help colon) 8. Interpoloi tämä signaali alkuperäisen mittaiseksi, ts. 7 Standardin prototyyppisuodin ei ole juuri tämä suodin, mutta vastaava. 8 Tämä olisi nyt yksi niistä signaaleista, jotka talletetaan.
104 JOHDATUS SIGNAALINKÄSITTELYYN 2 kertoimella 32 (help interp). Tulosta spektri ruudulle. Moduloi lopuksi viimeisintä signaalia kosinisignaalilla ( ) 9 c(n) =cos 32 πn. Luku 9 viittaa yhdeksänteen taajuuskaistaan ja 32 on kaistojen yhteismäärä. Tulosta moduloidun signaalin spektri ruudulle. Huomaat, että mukaan on tullut myös spektrin peilikuva negatiiviselta puolelta. Suodata saamasi signaali alkuperäisellä suotimella, jolloin peilikuvan pitäisi poistua spektristä (tämä on yksi mahdollinen tapa päästä eroon peilikuvasta, muitakin on) (a) Erään signaalin taajuuskaistalla 5 Hz 55 Hz oleva äänenvoimakkuus on 3.5 db. Kyseisen kaistan kokonaismaski on puolestaan 5.2 db. Montako bittiä/näyte tarvitaan (monisteen mukaisilla kaavoilla) taajuuskaistalla olevan signaalin koodaamiseen, jotta eroa alkuperäiseen ei kuulla? (b) Taajuuskaistalla 7 Hz 75 Hz oleva äänenvoimakkuus on 4. db ja kaistan kokonaismaski on 6. db. Montako bittiä tarvitaan, jotta eroa alkuperäiseen ei kuulla? 8.8. (Matlab) Tehtävässä 8.5. suunniteltiin suodinpankki, joka jakaa signaalissa olevat taajuudet 32:een eri taajuuskaistaan. Suunnittele tällä skriptillä kyseinen suodinpankki. Lataa signaali train muuttujaan y käskyllä load train ja jaa se taajuusalueisiin suodinpankillasi (for-silmukassa, tms.). Muodosta suodatustuloksista matriisi, jossa on 32 kappaletta 288 näytteen mittaisia signaaleita (Matlab) Ilman psykoakustista mallia jokaista signaalia kvantisoidaan saman verran. Kvantisoi edellisen tehtävän 32 signaalia (esim. for-silmukassa) (a) bittiin, (b) 5 bittiin, (c) 2 bittiin, ja kuuntele tulos. Kvantisointi tapahtuu komennolla (quant(x,2^(-b)), joka kvantisoi x:n suunnilleen b:hen bittiin. Lopputulos saadaan summaamalla yksittäiset kvantisoidut taajuuskaistat yhteen. Ennen yhteenlaskua kannattaa suodattaa kukin kvantisoitu signaali sitä vastaavalla suodinpankin suotimella vielä kerran, koska kvantisoitaessa spektrillä on tapana levitä. 8.. (Matlab) Muodostetaan (hyvin) karkea psykoakustinen malli. Arvioidaan ensin kunkin taajuuskaistan tehoa laskemalla sitä vastaavan signaalin näytteiden neliöiden summa ja jakamalla se näytteiden lukumäärällä. Muunna tämä desibeliasteikolle ottamalla -kantainen logaritmi ja kertomalla se kymmenellä. Kaiken kaikkiaan laskukaavaksi tulee ( P = log n= ) x 2 (n).
105 8. AUDIODATAN KOMPRESSIO 97 Arvoista tulee negatiivisia, koska saadut desibeliarvot ovat suhteessa suuritehoisimpaan mahdolliseen signaaliin. Lisää siis tuloksiin vakio 5 jatkokäsittelyä varten. Muodosta näistä vektori, jossa on arvioidut desibeliarvot kaikille 32 taajuuskaistalle. Olkoon kokonaismaski nyt puolet tästä vektorista suodatettuna 3:n pisteen mediaanisuotimella (maski=medfilt(tehot/2,3)). 8.. (Matlab) Laske edellisen tehtävän psykoakustista mallia käyttäen SMR, eli signaalien tehojen ja maskin arvojen erotusvektori. Muodosta tästä vektori, joka kertoo tarvittavan bittimäärän kullekin kaistalle (vrt. tehtävä 8.7.). Yhteensä bittimäärän 32:lla kaistalla pitäisi olla 5. Kvantisoi kukin 32:stä kaistasta näin saatuun bittimäärään. Suodata ja summaa kvantisoidut signaalit yhteen ja kuuntele tulos. Vertaa tulosta tehtävän 8.9. kahden bitin tulokseen. Tuloksen pitäisi kuulostaa paremmalta (tai ei ainakaan huonommalta) vaikka 5 bittiä jaettuna 32:lle kaistalle tekee vain.6 bittiä/näyte.
106 JOHDATUS SIGNAALINKÄSITTELYYN 2
107 Luku 9 Epälineaarinen suodatus Tähänastinen kurssi on keskittynyt lineaarisiin suodatusmenetelmiin, eli sellaisiin suotimiin F(x(n)), joille on voimassa F(ax(n)+by(n)) = af(x(n)) + bf(y(n)), kaikille reaaliluvuille a ja b ja kaikille signaaleille x(n) ja y(n). Myös sovellukset käyttävät pääosin lineaarisia suotimia. Tästä huolimatta herää kysymys siitä, mitä tapahtuisi jos yllä olevasta rajoituksesta luovuttaisiin. Ilmeisesti tällöin menetettäisiin mahdollisuus käyttää lineaaristen suodinten tehokasta suunnittelukoneistoa, mutta mitä saataisiin tilalle? Näihin kysymyksiin tutustutaan seuraavassa. Lineaarisia suotimia suunniteltaessa taustalla on ollut niiden taajuustulkinta. Esimerkiksi alipäästösuotimen tärkein ominaisuus on matalien taajuuksien säilyminen ja korkeiden taajuuksien poistuminen. Suotimen toiminnan ymmärtämisen kannalta tämä on selvä etu. Toisaalta se myöskin rajoittaa suodinten toimintaa, sillä esimerkiksi samalla taajuuskaistalla olevia signaalia ja kohinaa ei voida erottaa toisistaan lineaarisin menetelmin. Tarkastellaan alla olevaa signaalin spektriä Normalisoitu taajuus Kyseinen signaali on tallennettu 6:n bitin tarkkuudella. Oletetaan, että se kulkee kohinaisen kanavan läpi ja että kukin bitti muuttuu todennäköisyydellä p. Alla on tulossignaalin spektri kun p = /. Tällöin keskimäärin joka tuhannes bitti on muuttunut Normalisoitu taajuus
108 8253 JOHDATUS SIGNAALINKÄSITTELYYN 2 Kohina ei ole kovinkaan selvästi havaittavissa yllä olevassa spektrissä, mutta jos tarkastellaan pelkän virhesignaalin spektriä, tulos on seuraavan näköinen Normalisoitu taajuus Kuviosta nähdään, että tarkasteltu kohinamalli aiheuttaa kohinaa kaikille taajuuksille. Näin ollen mikään lineaarinen suodatin ei voi poistaa kohinaa tehokkaasti. Edellä olleessa esimerkissä olleesta kohinasta käytetään nimitystä bittivirhe. Jos oletetaan, että bitit esittävät posiviivisia kokonaislukua (unsigned int), muun muassa seuraavat virheet ovat mahdollisia. Lähetetty: Kymmenjärjestelmässä 4428 Vastaanotettu: Kymmenjärjestelmässä 4429 Vastaanotettu: Kymmenjärjestelmässä 4364 Vastaanotettu: Kymmenjärjestelmässä 5452 Vastaanotettu: Kymmenjärjestelmässä 4796 Jos bittivirhe muuttaa eniten merkitsevää (äärimmäisenä vasemmalla olevaa) bittiä, on näytearvon muutos 2 5 = Koska lineaariset suotimet perustuvat painotetun keskiarvon laskentaan, vaikuttaa tämä muutos suodatuksessa useisiin vasteen näytteisiin. Lineaarinen suodatin levittääkin bittivirhettä laajemmalle alueelle samalla pienentäen sen amplitudia. Alla oleva kuvasarja havainnollistaa bittivirhettä aikatasossa. Ylin kuva on alkuperäinen signaali, seuraavassa on lisätty bittivirhettä (virheen todennäköisyys.) ja kolmas kuva esittää näiden kahden erotusta, ts. varsinaista bittivirhettä
109 9. EPÄLINEAARINEN SUODATUS Koska bittivirhe ja varsinkin sen suodatus aikatasossa riippuu jossain määrin signaalista, on suodatusta usein tapana tarkastella vakiosignaalin yhteydessä. Alla olevassa kuvassa on bittivirhettä lisätty nollasignaaliin todennäköisyydellä Jos tämä suodatetaan viiden mittaisella FIR-suotimella tuloksena on alla olevan kuvan mukainen signaali. Suotimen kertoimet on valittu yhtä suuriksi siten, että niiden summa on yksi (valinta tehtiin näin paremman puutteessa; taajuuksiin perustuvasta suunnittelustahan ei ole mitään apua nyt). Kuvasta nähdään, että jokaisesta signaalissa olevasta impulssista on tullut viiden mittainen impulssi, jonka amplitudi on yksi viidesosa alkuperäisestä. Vakiosignaalin tapauksessa kohinan poistuminen ei ole kovinkaan hyvä Jos kohinan tiedetään muodostuvan yksittäisistä impulsseista, halutaan suotimen olevan mahdollisimman immuuni suurimmille ja pienimmille arvoille ikkunan sisällä. Esimerkki tällaisesta suotimesta on yleisimmin käytetty epälineaarinen suodin: mediaanisuodin. Mediaanisuodin valitsee ulostuloksi suuruusjärjestyksessä keskimmäisen. Alla on suodatustulos mediaanisuotimella kun ikkunan pituus on viisi. 2 x Kuvasta nähdään, että lähes kaikki impulssit poistuvat. Mediaanisuodin toimiikin erinomaisesti yksittäisten impulssien poistossa vakiosignaalista. Tästä ei toki voida vetää mitään johtopäätöksiä suotimen soveltuvuudesta muunlaisille kuin vakiosignaaleille. Lineaarisista suotimista poiketen mediaanilla ei ole varsinaista taajuustulkintaa, joten se sopii
110 JOHDATUS SIGNAALINKÄSITTELYYN 2 verraten huonosti esimerkiksi äänenkäsittelyyn ja muihin taajuuksien suodatukseen perustuviin sovelluksiin. Sen sijaan sitä käytetään jossain määrin mm. kuvissa esiintyvän kohinan poistoon. 9. Robustisuus Epälineaarisen suodatuksen yhteydessä puhutaan suotimen robustisuudesta (engl. robustness). Robustisuudella tarkoitetaan suotimen olevan epäherkkä herätteen muutoksille. Aiemmin olleen esimerkin perusteella voitaisiin väittää mediaanisuotimen olevan keskiarvosuodinta robustimpi. Tämä näkyy siinä, ettei bittivirheen lisääminen alkuperäiseen nollasignaaliin muuta mediaanisuotimen ulostuloa yhtä paljon kuin keskiarvosuotimen. Useimmiten robustisuudesta puhutaan kvalitatiivisessa mielessä. Tämä tarkoittaa, että sanotaan esimerkiksi suotimen A olevan robustimpi kuin B. Suodinten suunnittelun ja analyysin kannalta olisi mielekkäämpää sanoa vaikkapa suotimen A olevan kaksi kertaa niin robusti kuin suotimen B, tai jopa että suotimen A robustisuus on.4 kun taas suotimenbon.2. Tällaiseen käyttöön sopivia robustisuusmittoja on kehitelty ja eräs niistä on suotimen murtumapiste. Suotimen murtumapiste (engl. breakdown point) on suurin määrä muutoksia ikkunan sisällä olevissa arvoissa, joka ei vielä voi saada ulostuloa selvästi alkuperäistä suuremmaksi tai pienemmäksi. Toinen tapa esittää asia on kysyä kuinka monta ikkunan sisällä olevaa arvoa voidaan korvata hyvin suurilla tai pienillä arvoilla, jotta ulostulo ei vielä muutu merkittävästi. Useimmiten hyvin suuri arvo ja merkittävä muutos tarkoittavat arvoa ±. Lisäksi tulos on tapana jakaa ikkunan alkioiden lukumäärällä. Esimerkiksi viiden mittaisen mediaanisuotimen murtumapiste on 2. Tämä lasketaan 5 seuraavasti. Jos ikkunan sisällä on viisi äärellistä arvoa, joista yksi korvataan :llä, mediaani on äärellinen (järjestetty vektori on muotoa (,,,, ), missä on jokin äärellinen arvo). Jos kaksi arvoa korvataan :llä, mediaani on edelleen äärellinen (järjestetty vektori on muotoa (,,,, )). Mutta jos kolme arvoa korvataan :llä, mediaanista tulee ääretön (järjestetty vektori on muotoa (,,,, ), josta valitaan keskimmäinen). Kaksi ääretöntä on siis suurin määrä, jolla ulostulosta ei tule ääretöntä. Tämä jaetaan ikkunan alkioiden määrällä 5, jolloin saadaan murtumapisteeksi 2. 5 Vastaavalla tavalla havaitaan seitsemän mittaisen mediaanisuotimen murtumapisteeksi 3, koska kolme ääretöntä ei vielä saa mediaania äärettömäksi, mutta neljä saa. Yleisemmin 2k + -pituisen mediaanisuotimen murtumapiste on k/(2k + ), kun k =,2,3,... 7 Viiden mittaisen keskiarvosuotimen murtumapiste sen sijaan on nolla, sillä ensimmäinen saa keskiarvon äärettömäksi. 9.2 Muutamia epälineaarisia suotimia Tässä kappaleessa tarkastellaan lyhyesti muutamia yleisimmin käytettyjä epälineaarisia suotimia. Äärettömien kanssa laskemista on tässä yksinkertaistettu olettamalla laskusääntö a + =. Määritelmät voi toki tehdä täsmällisemminkin, mutta tällä kurssilla tyydytään yksinkertaisempaan käsittelyyn.
111 9. EPÄLINEAARINEN SUODATUS Mediaani Aiemmin tutustuttiin jo mediaanisuotimeen. Täsmällinen määritelmä on seuraava. N:n pisteen (merkitään N = 2k + ) mediaanisuotimen vaste herätteelle x(n) on y(n) =MED{x(n k),x(n k + ),...,x(n ),x(n),x(n + ),...,x(n + k)}, missä MED tarkoittaa annetun joukon mediaania, s.o. järjestyksessä keskimmäistä alkiota. Jos alkioita on parillinen määrä, MED antaa kahden järjestyksessä keskimmäisen alkion keskiarvon. Esimerkiksi MED{, 4, 3, 2, 5} = 3, MED{, 4, 3, 2} = = 2.5. Mediaanin hyvänä ominaisuutena on voimakas robustisuus Painotettu mediaanisuodin Mediaanisuodinta käytettäessä jokaisella ikkunan sisällä olevalla arvolla on sama paino. Jos tilannetta verrataan FIR-suodatukseen, vastaava tilanne tulisi vastaan kertoimien ollessa samat. Tämä rajoite vältetään tarkastelemalla painotettua mediaanisuodinta. N:n pisteen painotetun mediaanisuotimen vaste herätteelle x(n) painoilla (w,w 2,...,w N ) on y(n) =MED{w x(n k),w 2 x(n k + ),...,w k x(n ),w k+ x(n), w k+2 x(n + ),...,w N x(n + k)}, missä merkintä r x tarkoittaa näytteen x monistamista r kertaa, esimerkiksi 3 2 = 2, 2, 2. Nyt on huomattava, että tavallinen joukon määritelmä ei enää riitä, vaan on käytettävä multijoukkoa, jossa toisto on sallittu. Tavallisella joukon käsitteellä joukot {2 3, 3 4} ja {3, 4} ovat samat, mutta multijoukkoa käytettäessä {2 3, 3 4} = {3, 3, 4, 4, 4}. Olkoon ikkunan sisällä alkiot (7, 8, 3, 25, 24). Painoilla (, 2, 3, 2, ) ulostulo lasketaan seuraavasti. Ensin näytteet monistetaan painojen mukaisesti. Tuloksena saadaan multijoukko { 7, 2 8, 3 3, 2 25, 24} = {7, 8, 8, 3, 3, 3, 25, 25, 24}. Tämän jälkeen joukko järjestetään ja saadaan (3, 3, 3, 7, 8, 8, 24, 25, 25). Näistä valitaan keskimmäinen, joka on 8 (sattumoisin sama kuin mediaani). Painoja käyttämällä on mahdollista muuttaa mediaanin ominaisuuksia. Muutos on aina vähemmän robustiin suuntaan, sillä voidaan osoittaa mediaanin murtumapisteen olevan suurin kaikista painotetuista mediaaneista. Näin ollen muut painotetut mediaanit muuttavat vähemmän alkuperäistä signaalia ja poistavat samalla vähemmän kohinaa. Mediaani- ja keskiarvosuotimilla on mielenkiintoinen yhteys. Joukon {x,x 2,...,x N } keskiarvo on se reaaliluku θ, joka minimoi summan N (x k θ) 2. k=
112 JOHDATUS SIGNAALINKÄSITTELYYN 2 Joukon {x,x 2,...,x N } mediaani puolestaan on se reaaliluku θ, joka minimoi summan N x k θ. k= Näennäisistä eroavaisuuksistaan huolimatta näille voidaan siis löytää hyvin samankaltaiset esitykset. Näistä esityksistä on hyötyä teorian kannalta, sillä niiden avulla voidaan osoittaa mediaanin olevan tilastollisesti paras suodin (vakiosignaalin tapauksessa), kun signaalissa oleva kohina noudattaa Laplace-jakaumaa, esimerkiksi p(x) =e 2 x. Keskiarvo puolestaan on paras suodin, kun signaalissa oleva kohina noudattaa Gaussin jakaumaa, esimerkiksi p(x) = 2π e 2 x2. Yllä olevia muotoja vastaavat esitykset löydetään painotetulle keskiarvosuotimelle (eli FIR-suotimelle) ja painotetulle mediaanille. Joukon {x,x 2,...,x N } painotettu keskiarvo painoilla (w,w 2,...,w N ) on se reaaliluku θ, joka minimoi summan N w k (x k θ) 2. k= Joukon {x,x 2,...,x N } painotettu mediaani painoilla (w,w 2,...,w N ) on puolestaan se reaaliluku θ, joka minimoi summan N w k x k θ. Painotetun mediaanisuotimen murtumapiste saadaan lausekkeesta { } N N N max m Z + : w (k) <.5 w k, k= k=n m+ missä suotimen painot ovat w,w 2,...,w N. Lausekkeessa haetaan suurin sellainen kokonaisluku m, että m:n suurimman painon summa ei vielä ole yli puolet kaikkien painojen summasta L-suotimet On olemassa myös muita ratkaisuja painokertoimien lisäämiseksi mediaaniin. Yksi tällainen ratkaisu muodostaa L-suodinten joukon. Merkitään ikkunan alkioita vektorina (x,x 2,...,x N ) ja näistä järjestämällä muodostettua vektoria merkinnällä (x (),x (2),x (3),...,x (N) ), missä x () x (2) x (3)... x (N). Tällöin L-suodatuksen ulostulo painoilla (w,w 2,...,w N ) on k= y = N w k x (k). k=
113 9. EPÄLINEAARINEN SUODATUS 5 Ilman järjestämistä L-suodin olisi tavallinen FIR-suodin. Olkoon ikkunan sisällä alkiot (7, 8, 3, 25, 24). Painoilla (.,.2,.4,.2,.) ulostulo lasketaan seuraavasti. Ensin näytteet järjestetään: (3, 7, 8, 24, 25), ja järjestetyn vektorin näytteet kerrotaan vastaavilla painoilla ja summataan: = 9.2. Valitsemalla sopivat painot L-suotimesta saadaan keskiarvosuodin, mediaanisuodin tai ns. α-viritetty-suodin (engl. α-trimmed mean). Se on L-suodin, jonka painot ovat w k = {, ( 2α)N kun αn + k ( α)n,, muulloin. Hankalan näköisistä lausekkeista huolimatta α-suotimen idea on yksinkertainen. Ikkunasta poistetaan tietty määrä suurimpia ja pienimpiä alkioita ja lopuista otetaan keskiarvo. Esimerkiksi seitsemän pisteen α-viritetty-suodin parametrin α arvolla 2 on L-suodin 7 kertoimilla (,,,,,,). Nyt nimittäin painot saadaan lausekkeesta w k = { ( kun k ( 2)7, 7 7, muulloin, eli sievennettynä w k = {, 3 kun 3 k 5,, muulloin. Parametri α määrää siis poistettavien näytteiden osuuden ikkunan kaikista näytteistä. Mitä suurempi sen arvo on, sitä enemmän suuria ja pieniä arvoja poistetaan ja sitä lähempänä tulos on mediaanisuodinta. Koska L-suotimen ulostulo lasketaan sisääntulevien arvojen lineaarikombinaationa (eli kertolaskulla ja yhteenlaskulla), tulee sen murtumapisteeksi sama kuin FIR-suotimella eli nolla. Poikkeuksena ovat ne L-suotimet, joiden ensimmäinen ja viimeinen kerroin (w ja w N ) ovat nollia (ks. harjoitus 9.2) Homomorfiset suotimet Signaalinkäsittelyssä tulee toisinaan vastaan tilanteita, joissa kohina ei ole summautuneena signaaliin, vaan vaikutusmekanismi on jokin muu. Eräs melko usein esiintyvä kohinamalli on multiplikatiivinen malli, x(n) =s(n)µ(n). Tässä mallissa oletetaan, että on olemassa jokin alkuperäinen signaali s(n), joka joutuu kohinaprosessin µ(n) vaikutuksen alaiseksi. Komponentit s(n) ja µ(n) ovat yleensä tuntemattomia, ja käsillä on ainoastaan havaittu signaali x(n). Kohinakomponentti µ(n):stä oletetaan yleensä, että E[µ(n)] =. Tällöin signaalin keskimääräinen taso säilyy kohinaprosessissa.
114 JOHDATUS SIGNAALINKÄSITTELYYN 2 Tämä malli pätee esimerkiksi tutkakuvissa, jossa todellinen näkymä peittyy osittain multiplikatiivisella kohinalla. Myös valokuvauksessa voidaan ajatella, että todellinen näkymä s(n) onkin filmille saatuna joutunut valaistuksen µ(n) vaikutuksen alaiseksi. Jos valaistus ei ole tasainen (µ(n) ei vakio), näyttävät jotkut alueet todellista tummemmilta. Kohinakomponentin poisto ei nyt onnistu normaalein lineaarisen suodatuksen menetelmin. Lineaarinen suodatus toimii hyvin esimerkiksi silloin, kun kohina on summautunut signaaliin eli x(n) =s(n)+µ(n). Herää kysymys, onko aiemmin ollut multiplikatiivinen malli mahdollista muuttaa summamalliksi eli additiiviseksi malliksi. Vastaus on myönteinen: tarvitaan vain operaatio, joka muuntaa kertolaskun yhteenlaskuksi. Logaritmi on tällainen operaatio. Ottamalla logaritmit multiplikatiivisen mallin molemmilta puolilta saadaan yhtälö ln x(n) =ln s(n)+ln µ(n). Kun siis havaitun signaalin jokaiseen pisteeseen sovelletaan logaritmia, saadaan multiplikatiivinen kohina muunnettua additiiviseksi. Seuraavaksi tämä additiivinen kohina poistetaan sopivalla suotimella ja tulokseen sovelletaan eksponenttifunktiota, joka on logaritmin käänteisoperaatio. Tällaisesta järjestelmästä käytetään nimitystä homomorfinen suodin ja sen lohkokaavio on alla. x(n) ln(x) Suodatus e x y(n) Harjoitustehtäviä 9.. (Matlab) Lataa Matlabiin kuva gatlin komennolla load gatlin. Saat kuvan ruudulle komennolla imagesc(x). Kuvan värit saat kohdalleen komennolla colormap (map). Lisää nyt kuvaan keinotekoista kohinaa komennolla imnoise. Valitse kohinamalliksi salt & pepper parametrillä D =.6. Katso miltä kohinainen kuva näyttää ja suodata se kaksiulotteisella 5 5-FIR-suotimella (filter2), jonka kertoimet ovat yhtäsuuret (kerroinmatriisi M=ones(5,5)/25;). Vertaa tulosta 5 5- mediaanisuotimella saatavaan tulokseen (medfilt2) Laske yhdeksän pisteen α-viritetyn suotimen murtumapiste kun α = Tarkastellaan suodatustilannetta, jossa ikkunan sisällä on näytteet x,x 2,...,x N (N on positiivinen kokonaisluku). Osoita, että lauseke N (x i θ) 2 k= saa pienimmän arvonsa kun parametri θ saa arvon Vihje. Etsi derivaatan nollakohdat. θ = N N x i. k=
Remez-menetelmä FIR-suodinten suunnittelussa
Luku Remez-menetelmä FIR-suodinten suunnittelussa Remez-menetelmä, eli optimaalinen menetelmä etsii minimax-mielessä optimaalista suodinta. Algoritmi johdetaan seuraavassa (täydellisyyden vuoksi) melko
Signaalinkäsittelyn sovellukset
Signaalinkäsittelyn laitos. Opetusmoniste 26: Institute of Signal Processing. Lecture Notes 26: Heikki Huttunen Signaalinkäsittelyn sovellukset Tampere 26 Tampereen teknillinen yliopisto. Signaalinkäsittelyn
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,
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 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, 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-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
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
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.
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
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
Heikki Huttunen Signaalinkäsittelyn sovellukset
Tampereen teknillinen yliopisto. Signaalinkäsittelyn laitos. Opetusmoniste 2: Tampere University of Technology. Department of Signal Processing. Lecture Notes 2: Heikki Huttunen Signaalinkäsittelyn sovellukset
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, 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
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
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
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
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 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
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
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ö-
Suodattimet. Suodatintyypit: Bessel Chebyshev Elliptinen Butterworth. Suodattimet samalla asteluvulla (amplitudivaste)
Suodattimet Suodatintyypit: Bessel Chebyshev Elliptinen Butterworth Suodattimet samalla asteluvulla (amplitudivaste) Kuvasta nähdään että elliptinen suodatin on terävin kaikista suodattimista, mutta sisältää
Heikki Huttunen Signaalinkäsittelyn sovellukset
Tampereen teknillinen yliopisto. Signaalinkäsittelyn laitos. Opetusmoniste 2: Tampere University of Technology. Department of Signal Processing. Lecture Notes 2: Heikki Huttunen Signaalinkäsittelyn sovellukset
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
T Digitaalinen signaalinkäsittely ja suodatus
T-63 Digitaalinen signaalinkäsittely ja suodatus 2 välikoe / tentti Ke 4528 klo 6-9 Sali A (A-x) ja B (x-ö)m 2 vk on oikeus tehdä vain kerran joko 75 tai 45 Tee välikokeessa tehtävät, 2 ja 7 (palaute)
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
Katsaus suodatukseen
Katsaus suodatukseen Suodatuksen perustaa, ideaaliset suotimet, käytännön toteutuksia Suodatus Suodatusta käytetään yleensä signaalin muokkaukseen siten, että 2 poistetaan häiritsevä signaali hyötysignaalin
Luento 8. Suodattimien käyttötarkoitus
Luento 8 Lineaarinen suodatus Ideaaliset alipäästö, ylipäästö ja kaistanpäästösuodattimet Käytännölliset suodattimet 8..006 Suodattimien käyttötarkoitus Signaalikaistan ulkopuolisen kohinan ja häiriöiden
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,
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
Harjoitustyö 1. Signaaliprosessorit Sivu 1 / 11 Vähämartti Pasi & Pihlainen Tommi. Kaistanestosuodin, estä 2 khz. Amplitudi. 2 khz.
Signaaliprosessorit Sivu 1 / 11 Harjoitustyö 1 Kaistanestosuodin, estä 2 khz Amplitudi f 2 khz MATLAB koodi: clear; close all; w=[0 1900 1950 2050 2100 4000]/4000; m=[1 1 0 0 1 1]; h=remez(800,w,m); [H,w]=freqz(h,1);
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?
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45
MS-A3/A5 Matriisilaskenta Laskuharjoitus 2 / vko 45 Tehtävä (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 2i = 2, b) z 2i < 2, c) /z
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.
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ä
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
SMG-1100: PIIRIANALYYSI I. Verkkojen taajuusriippuvuus: suo(dat)timet
SMG-00: PIIRIANALYYSI I Verkkojen taajuusriippuvuus: suo(dat)timet alipäästösuodin ylipäästösuodin kaistanpäästösuodin kaistanestosuodin jännitevahvistus rajataajuus kaistanleveys resonanssi Suotimet:
k=0 saanto jokaisen kolmannen asteen polynomin. Tukipisteet on talloin valittu
LIS AYKSI A kirjaan Reaalimuuttujan analyysi 1.6. Numeerinen integrointi: Gaussin kaavat Edella kasitellyt numeerisen integroinnin kaavat eli kvadratuurikaavat Riemannin summa, puolisuunnikassaanto ja
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
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
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
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
Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35
Numeeriset menetelmät TIEA381 Luento 8 Kirsi Valjus Jyväskylän yliopisto Luento 8 () Numeeriset menetelmät 11.4.2013 1 / 35 Luennon 8 sisältö Interpolointi ja approksimointi Funktion approksimointi Tasainen
Numeeriset menetelmät
Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot
1. Määritä pienin näytelauseen ehdon mukainen näytetaajuus taajuus seuraaville signaaleille:
TL61, Näytejonosysteemit (K00) Harjoitus 1. Määritä pienin näytelauseen ehdon mukainen näytetaajuus taajuus seuraaville signaaleille: a) 1 (t) = cos(000πt) + sin(6000πt) + cos(00πt) ja ) (t) = cos(00πt)cos(000πt).
Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A000 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2..205 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x x 2 =
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
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
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ä.
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ä
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ä
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
4 Yleinen potenssifunktio ja polynomifunktio
4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako
Spektri- ja signaalianalysaattorit
Spektri- ja signaalianalysaattorit Pyyhkäisevät spektrianalysaattorit Suora pyyhkäisevä Superheterodyne Reaaliaika-analysaattorit Suora analoginen analysaattori FFT-spektrianalysaattori DFT FFT Analysaattoreiden
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
T-61.246 DSP (Harjoitustyö 2003, v. 5.01) Sivu 2 / 9
T-61.246 DSP (Harjoitustyö 2003, v. 5.01) Sivu 1 / 9 T-61.246 DSP (Harjoitustyö 2003, v. 5.01) Sivu 2 / 9 T-61.246 Digitaalinen signaalinkäsittely ja suodatus Versio 5.01 (29.9.2003) T-61.246 Harjoitustyö
Vastekorjaus (ekvalisointi) Lähteet: Zölzer. Digital audio signal processing. Wiley & Sons. Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons.
Vastekorjaus (ekvalisointi) Lähteet: Zölzer. Digital audio signal processing. Wiley & Sons. Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons. Sisältö:! Johdanto! IIR vai FIR äänten suodattamiseen?!
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko 5 Tehtävä 1 (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 3 =, b) z + 3 i < 3, c) 1/z >. Yleisesti: ehto z = R, z C muodostaa kompleksitasoon
Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt
Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.
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....................
Reaalilukuvälit, leikkaus ja unioni (1/2)
Luvut Luonnolliset luvut N = {0, 1, 2, 3,... } Kokonaisluvut Z = {..., 2, 1, 0, 1, 2,... } Rationaaliluvut (jaksolliset desimaaliluvut) Q = {m/n m, n Z, n 0} Irrationaaliluvut eli jaksottomat desimaaliluvut
811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut
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
w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.
Kotitehtävät, tammikuu 2011 Vaikeampi sarja 1. Ratkaise yhtälöryhmä w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1. Ratkaisu. Yhtälöryhmän ratkaisut (w, x, y, z)
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
1 Äänisignaalin tallentaminen ja analysointi... 2 Q Q Q Q Häiriönpoisto... 5 Q Q Q2.3...
1 Äänisignaalin tallentaminen ja analysointi... 2 Q1.1... 2 Q1.2... 2 Q1.3... 3 Q1.4... 4 2 Häiriönpoisto... 5 Q2.1... 5 Q2.2... 8 Q2.3... 9 3 FIR- ja IIR-suotimien vertailu... 10 Q3.1... 10 Q3.2... 11
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 TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33
Numeeriset menetelmät TIEA381 Luento 6 Kirsi Valjus Jyväskylän yliopisto Luento 6 () Numeeriset menetelmät 4.4.2013 1 / 33 Luennon 6 sisältö Interpolointi ja approksimointi Polynomi-interpolaatio: Vandermonden
3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö
3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö Yhtälön (tai funktion) y = a + b + c, missä a 0, kuvaaja ei ole suora, mutta ei ole yhtälökään ensimmäistä astetta. Funktioiden
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
Epäyhtälöt 1/7 Sisältö ESITIEDOT: yhtälöt
Epäyhtälöt 1/7 Sisältö Epäyhtälö Epäyhtälöllä tarkoitetaan ehtoa, missä kahdesta lausekkeesta toinen on suurempi tai mahdollisesti yhtä suuri kuin toinen: f(x) < g(x), f(x) g(x).merkit voidaan luonnollisesti
3. kierros. 2. Lähipäivä
3. kierros. Lähipäivä Viikon aihe (viikko /) Takaisinkytketyt vahvistimet Takaisinkytkentä, suljettu säätöluuppi Nyquistin kriteeri, stabiilisuus Taajuusanalyysi, Boden ja Nyquistin diagrammit Systeemin
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)
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
SÄÄTÖJÄRJESTELMIEN SUUNNITTELU
ENSO IKONEN PYOSYS 1 SÄÄTÖJÄRJESTELMIEN SUUNNITTELU Enso Ikonen professori säätö- ja systeemitekniikka http://cc.oulu.fi/~iko Oulun yliopisto Älykkäät koneet ja järjestelmät helmikuu 2019 ENSO IKONEN PYOSYS
BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018
BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018 Tehtävä 8 on tällä kertaa pakollinen. Aloittakaapa siitä. 1. Kun tässä tehtävässä sanotaan sopii mahdollisimman hyvin, sillä tarkoitetaan
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
Signaalien tilastollinen mallinnus T-61.3040 (5 op) Syksy 2006 Harjoitustyö
Signaalien tilastollinen mallinnus T-61.3040 (5 op) Syksy 2006 Harjoitustyö Harjoitustyön sekä kurssin suorittaminen Kurssin suorittaminen edellyttää sekä tentin että harjoitustyön hyväksyttyä suoritusta.
Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia. TKK (c) Ilkka Mellin (2005) 1
Johdatus todennäköisyyslaskentaan Normaalijakaumasta johdettuja jakaumia TKK (c) Ilkka Mellin (2005) 1 Normaalijakaumasta johdettuja jakaumia Johdanto χ 2 -jakauma F-jakauma t-jakauma TKK (c) Ilkka Mellin
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
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
1 Kertaus. Lineaarinen optimointitehtävä on muotoa:
1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n
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
6.2.3 Spektrikertymäfunktio
ja prosessin (I + θl + + θl q )ε t spektritiheysfunktio on Lemman 6. ja Esimerkin 6.4 nojalla σ π 1 + θ 1e iω + + θ q e iqω. Koska viivepolynomien avulla määritellyt prosessit yhtyvät, niin myös niiden
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ
MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ 4.9.09 HYVÄN VASTAUKSEN PIIRTEITÄ Alustavat hyvän vastauksen piirteet on suuntaa-antava kuvaus kokeen tehtäviin odotetuista vastauksista ja tarkoitettu ensisijaisesti
z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2
BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden
Muuntavat analogisen signaalin digitaaliseksi Vertaa sisääntulevaa signaalia referenssijännitteeseen Sarja- tai rinnakkaismuotoinen Tyypilliset
Muuntavat analogisen signaalin digitaaliseksi Vertaa sisääntulevaa signaalia referenssijännitteeseen Sarja- tai rinnakkaismuotoinen Tyypilliset valintakriteerit resoluutio ja nopeus Yleisimmät A/D-muunnintyypit:
Gaussin ja Jordanin eliminointimenetelmä
1 / 25 : Se on menetelmä lineaarisen yhtälöryhmän ratkaisemiseksi. Sitä käytetään myöhemmin myös käänteismatriisin määräämisessä. Ideana on tiettyjä rivioperaatioita käyttäen muokata yhtälöryhmää niin,
Tietorakenteet (syksy 2013)
Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten
3 Ikkunointi. Kuvio 1: Signaalin ikkunointi.
3 Ikkunointi Puhe ei ole stationaarinen signaali, vaan puheen ominaisuudet muuttuvat varsin nopeasti ajan myötä. Tämä on täysin luonnollinen ja hyvä asia, mutta tämä tekee sellaisten signaalinkäsittelyn
TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen
TL5503 DSK, laboraatiot (1.5 op) Audiosignaalit (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja SPDemo-ohjelmistoja käyttäen. Kokoa
8000203: Johdatus signaalinkäsittelyyn 1
TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan osasto Signaalinkäsittelyn laitos TAMPERE UNIVERSITY OF TECHNOLOGY Department of Information Technology Institute of Signal Processing Opetusmoniste -23 Heikki
Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28
Numeeriset menetelmät TIEA381 Luento 5 Kirsi Valjus Jyväskylän yliopisto Luento 5 () Numeeriset menetelmät 3.4.2013 1 / 28 Luennon 5 sisältö Luku 4: Ominaisarvotehtävistä Potenssiinkorotusmenetelmä QR-menetelmä
Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:
MATP00 Johdatus matematiikkaan Ylimääräisten tehtävien ratkaisuehdotuksia. Osoita, että 00 002 < 000 000. Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa. Lähdetään sieventämään epäyhtälön
Numeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33
Numeeriset menetelmät TIEA381 Luento 12 Kirsi Valjus Jyväskylän yliopisto Luento 12 () Numeeriset menetelmät 25.4.2013 1 / 33 Luennon 2 sisältö Tavallisten differentiaaliyhtälöiden numeriikasta Rungen
Funktioiden approksimointi ja interpolointi
Funktioiden approksimointi ja interpolointi Keijo Ruotsalainen Division of Mathematics interpolaatio-ongelma 8 Eksponenttifunktion exp(x) interpolointi 3.5 Funktion e^{0.25x} \sin(x) interpolointi 7 3
