T-61.140 Signaalinkäsittelyjärjestelmät VK / Tentti, 8.5.2003 Kommentteja: T1a) Laskemalla tai perustelemalla vakiokertoimiseksi lineaariseksi differentiaaliyhtälöksi. b) Impulssivasteen stabiilius SIGMA |h[n]| < oo ja kausaalisuus h[n]=0. c) N0 = 36 T2 a) [1p] b) hp[n] = 2 d[n-1] + d[n-2] [2p] c) hc[n] = -d[n] - 2d[n-1] -5d[n-2] - 4d[n-3] - 6d[n-4] [2p] d) Konvoluutio, y[n] = -hc[n] -10 hc[n-10 +... [1p] T3a) V, vaiheinformaatio b) V, |e^(-2jw)| == 1 c) O, == e^(jw)(2 cos(w)), arg{H}=w d) O, ___ __, ideaalinen {0 tai 1} |__ -> ___| T4a) H = 1/(1 + 0.9e^-jw) + 1/(1 - 0.9e^-jw) ( = 1/(1 - 0.81e^-2jw) ) [1p] b) Taajuusvasteessa alakerrassa polynomi: takaisinkytketty, rekursiivinen, 2.asteen IIR. Impulssivaste siis äärettömän pitkä. [1p] c) Tuli kaistanesto. [2p] d) Tarkoitus oli palata aikatasoon ja piirtää joko kaksi 1.asteen suodinta rinnan tai sitten yksi toisen asteen suodin käyttäen viiveitä, vakiolla kertoimista ja signaalien summaamista. Elementistä (0.9^n) ei tullut pisteitä. [2p] T5a) Tarkat taajuudet olivat 10 ja 90 Hz, amplitudeissa joitain eroja. [2p] b) Näytteenottoteoreeman mukaan. [1p] c) Tapahtuu vierastumista. [2p] d) Tässä jäljellä enää matalataajuisia komponentteja. [1p] T6A) Lukujonossa lasketaan yhteen kaksi viimeisintä. [3p] Differenssiyhtälön ratkaiseminen yritteillä on pitkälti sama asia kuin sen F-muuntaminen, ratkaisu F-tasossa (tässä tulee osamurtokehitelmä!), ja paluu takaisin. Taajuusvasteeseen voi jättää X(e^jw) termi jäljelle laskujen helpottamiseksi. y[2003] ~ 10^418. T6B) Suomeksi taajuiskorjain. Selitys, mitä ne tekee, esimerkiksi kuvien avulla. Rakentaminen LTI-suotimilla (kaskaadiin/rinnan?!). Kommentteja äänestä. [6p] T-61.140 Signaalinkäsittelyjärjestelmät Tentti, 14.5.2003 Kommentteja: T1a) Jaksollisuus: x1[n] ei ole jaksollinen, koska n ja N täytyy olla kokonaisulukuja (indeksinumeroita!) x2(t) on jaksollinen T0 = 8pi/27 Tässä kannattaa muokata muotoon cos(2 pi f t + v), josta w = 2 pi f ja T = 1/f. x3[n] on jaksollinen N0 = 3 = {..., 0, 1, 1, _0_ , 1, 1, 0, 1, 1, 0, 1, 1, ...} Tämä oli aika hankala, kannattaa kokeilla "aukaista" tuo summa(sigma)lauseke! T1b) Fourier-sarja: w = 2pi f = 2pi/T x2(t):lle w = 27/4, a_-1 = e^-jpi/6, a_1 = e^jpi/6 x3[n]:lle w = 2pi/3 (eli yhden jakson ajalta w = 2pi/N) a_0 = 2/3 (keskiarvo!), a_1 = -1/3, a_2 = -1/3 T2 Konvoluutio ja dekonvoluutio T2a) Suoraan konvoluutiolla annetuilla arvoilla y1[n] = {_2_, -1, -1} Joiltakin oli jäänyt huomaamatta x[0] = 2. T2b) Voidaan päätellä, että kun x[n] alkaa indeksiarvolla n=0 ja y[n] alkaa kohdasta n=2, niin h[n] alkaa kohdasta n=2. Tällöin h[0]==h[1]==0 T2c) Voidaan ajatella ja laskea monin eri tavoin. Esim. y[n] = x[n] * h[n] = x[n] * (h1[n] + h2[n]) = (x[n] * h1[n]) + (x[n] * h2[n]) Näin saadaan h2[n] = {_-1_, 1, 1, 0, 2} T2d) Ulostulo voidaan laskea nyt konvoluutiolla tai vielä yksinkertaisemmin päättelemällä LTI-ominaisuuksiin suoraan perustuen: Koska x[n] -> y[n], niin yhdellä viivästetty ja (-1):llä kerrottu x[n] tuottaa yhdellä viivästetyn ja (-1):llä kerrotun y[n]:n. Lopputulos: ym[n] = {_0_, 0, 0, -2, -1, -4, -2} T3a) OIKEIN. arctan(0.5/0.886) = pi/6, eli arg{X(e^j(pi/6))} = pi/6. Tällöin koska reaalinen signaali niin arg{X(e^j(-w))} = - arg{X(e^jw)}. T3b) VÄÄRIN. Laskemalla esim. |H(e^jw)|^2 huomataan, että se supistuu arvoon 1 eli kyseessä on all-pass-suodin. T3c) OIKEIN. Askelvasteet s1[n] ja s2[n] saadaan kumulatiivisena summana impulssivasteista. Suodin 1 nousee nollasta maksimiin 10 askeeleessa, suodin 2 taasen 20:ssa, joten se on hitaampi. T3d) OIKEIN. Ryhmäviive on siis vaihevasteen derivaatan vastaluku. Eli kun vaihevaste on lineaarinen (suotimessa ei tapahdu vaihevääristymiä), niin silloin sen derivaatta on vakio. FIR-suodin on _mahdollista_ tehdä lineaarivaiheiseksi. Perustelu: Yksinkertaisin esimerkki on kahden pisteen liikkuva keskiarvoistava suodin y[n] = x[n] + x[n-1] josta impulssivaste h[n] = d[n] + d[n-1] ja edelleen taajuusvaste H(e^jw) = 1 + e^-jw = e^-jw/2 (e^jw/2 + e^-jw/2) = e^-jw/2 (2 cos(w/2)) josta edelleen vaihevaste arg{H(e^jw} = -w/2 ja vielä ryhmäviive -d/dw (-w/2) = 1/2 Aika harva vastasi tähän kohtaan. T4a) Takaisinkytkentä = rekursiivinen laskenta = IIR = impulssivaste äärettömän pitkä. Suotimen asteluvun saa esim. taajuusvasteen asteluvusta, joka on tällä kertaa 1. T4b) Muodostetaan ensin differenssiyhtälö ja sille F-muunnos: H(e^jw) = 0.8 / (1 + 0.7 e^jw) Huomaa, että takaisinkytketyn kertoimen merkki "vaihtui". Harmittavan monen tenttisuoritus on hilkulla tästä tehtävästä: siis ensin diffisyhtälö kuvaajasta: y[n] = ... kaikki y:t vasemmalle, kaikki x:t oikealle ... = 0.8 x[n] F-muunnos y->Y, x->X, viiveet->e^-jw Y(e^jw) + ... Sitten vas. yhteiseksi tekijäksi Y(e^jw), oik. X(e^jw) Y(e^jw) [ + ] = ... Tämän jälkeen molemmat puolet jaetaan X:llä Y(e^jw)/X(e^jw) [ + ] = 0.8 ja molemmat puolet jaetaan vasemman puolen termillä, joka ei ole Y()/X() Y(e^jw)/X(e^jw) = 0.8 / [ + ] Taajuusvaste on H(e^jw) = Y(e^jw)/X(e^jw) = 0.8 / (1 + 0.7 e^-jw). T4c) Jos ei ole graafista laskinta, niin kannattaa taulukoida w H(e^jw) |H(e^jw)| ------------------------------------------ 0 0.4706 0.4706 0.25 pi 0.4823 - 0.1597i 0.5080 0.5 pi 0.5369 - 0.3758i 0.6554 0.75 pi 0.8080 - 0.7919i 1.1313 pi 2.6667 2.6667 ------------------------------------------ Nyt saadaan ylipäästö, jonka useimmat huomasivat suoraan jo taajuusvasteen alakerran kertoimen merkistä. Jos piirrät esim. koneella, niin muista, että tulkinta tehdään väliltä 0..pi. T4d) Ensimmäisen asteen suotimen käänteismuunnos löytyy suoraan taukosta: h[n] = 0.8 . (-0.7)^n u[n] Huomaa nyt että tulee (-0.7)^n eikä -(0.7)^n, eikä impulssivasteeseen tule oikealle puolelle mitään x[n]:ä tms. T5a) fs=12000 Hz, niin Ts = (1/12000)s ~ 0.000 083 s = 83 mikros T5b) fs/2 = 6 kHz, eli kahdelle korkeimmalle kosinille käy jotain erikoista... Kosinipiikit peruskaistalla 0..6 kHz (0 .. fs/2) löytyvät kohdista (taajuus,ampl): (1,4), (2,5), (3,2), (4,3). Huomaa, että myös taajuus 13 kHz tulee peruskaistalle! Laskostumisen/vierastumisen voi ajatella taajuustasossa tai sitten kylmästi aikatasossa kosineita näytteistämällä: x(t) = cos(2pi 13000 t) x[n] = x(n/fs) = cos(2pi 13000/12000 n) = cos(2pi 13000/12000 n - 2pi n) = cos(2pi 1000 /12000 n) xr(t) = cos(2pi 1000 t) Jolloin siis kun fs=12000, niin 13 kHz -> 1 kHz. c) Antialiasing-suodatus pienentää nyt kahden korkeimman komponentin amplitudia. Lisäksi uusi näytteenottotaajuus fs=24 kHz merkitsee sitä, että vain ylin komponentti vierastuu nyt taajuudelle 11 kHz (ei 1 kHz enää, kun näytteenottotaajuus muuttui!!!). T6A) Kertominen (-1)^n lukujonolla siirtää spektriä pi:n verran. Muistetaan myös, että reaalisen sekvenssin F-amplituidspektri on 2pi-jaksollinen ja symmetrinen y-akselin suhteen. Näin ollen lopputulos: ^ | |____ /`. |___|_______|____ | | | | |> 0 pi/2 pi T6B) Matlab-harjoituksissa käytiin Image Toolboxin demoa, jossa "salt&pepper"virhettä suodatettiin alipäästö- ja mediaanisuodatuksella. Pohditaan, miksi kuvista tuli mediaanioperaation ja keskiarvoistusoperaation jälkeen sellaisia kuin tuli: joitakin häiriöitä jäi, toisaalta toisessa kuvassa virheet "levisivät". Voisiko kuvia vielä parantaa jotenkin viilaamalla koodia? Miten operaatiot suhtautuvat LTI-suotimiin? Keskiarvoistavahan on todettu useaan otteeseen sellaiseksi alipäästösuotimeksi, mutta voidaanko mediaanin laskeminen toteuttaa vakiolla kertoimella, viiveillä ja yhteenlaskulla?