Harjoitus 3
Harjoitus 3
Harjoitus 3
Transform your PDFs into Flipbooks and boost your revenue!
Leverage SEO-optimized Flipbooks, powerful backlinks, and multimedia content to professionally showcase your products and significantly increase your reach.
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
1.<br />
Kausaali suodatin käyttää laskennassaan vain nykyisiä ja aiempina ajanhetkinä<br />
(= pienemmillä indeksiarvoilla) mitattuja tai laskettuja signaaliarvoja, jotka<br />
suodatin lukee muistista. Kausaalisuus on välttämätöntä reaaliaikajärjestelmille.<br />
Matemaattisesti kausaalisuusehto voidaan ilmaista muodossa h ( n) = 0 , n < 0 (eli<br />
suodatin on kausaali, jos sen impulssivaste saa nollasta poikkeavia arvoja vain,<br />
kun indeksi on nolla tai positiivinen).<br />
Määritä seuraavien suodattimien impulssivasteet ja tutki, ovatko ne kausaaleja:<br />
a)<br />
a) y(n) = x(n) + 0.5x(n-1)<br />
b) y(n) = x(n) + 0.5x(n+1)<br />
Sij. x ( n) = δ ( n) ⇒ y( n) = h( n)<br />
h<br />
⎧1,<br />
n = 0<br />
⎨<br />
⎩0.5,<br />
n = 1<br />
( n) = δ ( n) + 0 .5⋅δ<br />
( n −1) = = { 1, 0.5} ⇒ h( n) = 0, n = 0<br />
Suodatin on siis kausaali. Huomaa, että lähtö y(n) riippuu vain nykyisestä [x(n)] ja<br />
tätä edeltävästä [x(n-1)] tulosignaalin arvosta.<br />
b)<br />
Sij. x ( n) = δ ( n) ⇒ y( n) = h( n)<br />
h<br />
⎧0.5,<br />
n = −1<br />
⎨<br />
⎩1,<br />
n = 1<br />
( n) = δ ( n) + 0.5<br />
⋅δ<br />
( n + 1) =<br />
⇒ h( n) ≠ 0, n = −1<br />
Suodatin ei siis ole kausaali. Huomaa, että lähtö y(n) riippuu nykyisestä [x(n)] ja<br />
seuraavaksi tulevasta [x(n+1)] tulosignaalin arvosta. Reaaliaikajärjestelmässä ei ole<br />
aikaa odotella seuraavaksi tulevia arvoja.<br />
©Jyrki Laitinen 1
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
2.<br />
Stabiili suodatin tuottaa äärellisestä herätteestä äärellisen vasteen.<br />
Matemaattisesti stabiilisuusehto voidaan ilmaista muodossa<br />
∑ ∞<br />
−∞ k =<br />
h ( k)<br />
< ∞ (eli<br />
suodatin on stabiili, jos sen impulssivasteen arvojen itseisarvojen summa on<br />
äärellinen).<br />
Määritä seuraavien suodattimien impulssivasteet ja tutki ovatko ne stabiileja:<br />
a)<br />
a) y(n) = x(n) + 1.5y(n-1)<br />
b) y(n) = x(n) - 0.5y(n-1)<br />
Sij. x ( n) = δ ( n) ⇒ y( n) = h( n)<br />
h<br />
n<br />
n<br />
n<br />
n<br />
n<br />
M<br />
( n) = δ ( n) + 1.5⋅<br />
h( n −1)<br />
= 0 : h( 0) = δ ( 0)<br />
+ 1.5⋅<br />
= 1: h( 1) = δ ( 1)<br />
+ 1.5 ⋅ h<br />
= 2 : h( 2) = δ ( 2)<br />
+ 1.5 ⋅<br />
= 3 : h( 3) = δ ( 3)<br />
+ 1.5 ⋅<br />
= 4 : h( 4) = δ ( 4)<br />
+ 1.5 ⋅<br />
n = n :<br />
h<br />
h(<br />
−1)<br />
= 1+<br />
1.5 ⋅ 0 = 1<br />
(0) = 0 + 1.5 ⋅1<br />
= 1.5<br />
h(1)<br />
= 0 + 1.5 ⋅1.5<br />
= 1.5<br />
h(2)<br />
= 0 + 1.5 ⋅1.5<br />
h(3)<br />
= 0 + 1.5 ⋅1.5<br />
( = 2.25)<br />
3<br />
= 1.5 ( = 3.375)<br />
4<br />
= 1.5 ( = 5.0625)<br />
n−1<br />
n<br />
( n) = δ ( n) + 1.5 ⋅ h(<br />
n −1)<br />
= 0 + 1.5 ⋅1.5<br />
= 1.5<br />
2<br />
3<br />
2<br />
∑ ∞<br />
k = −∞<br />
b)<br />
2 3 4<br />
h ( k)<br />
= 1+<br />
1.5 + 1.5 + 1.5 + 1.5 + L → ∞ ⇒ Suodatin ei ole stabiili.<br />
Sij. x ( n) = δ ( n) ⇒ y( n) = h( n)<br />
h<br />
n<br />
n<br />
n<br />
n<br />
n<br />
( n) = δ ( n) + 0.5⋅<br />
h( n −1)<br />
= 0 : h( 0) = δ ( 0)<br />
+ 0.5⋅<br />
= 1: h( 1) = δ ( 1)<br />
+ 0.5 ⋅ h<br />
= 2 : h( 2) = δ ( 2)<br />
+ 0.5 ⋅<br />
= 3 : h( 3) = δ ( 3)<br />
+ 0.5 ⋅<br />
= 4 : h( 4) = δ ( 4)<br />
+ 0.5 ⋅<br />
M<br />
n = n :<br />
∑ ∞<br />
k = −∞<br />
h<br />
h(<br />
−1)<br />
= 1+<br />
0.5 ⋅ 0 = 1<br />
(0) = 0 + 0.5 ⋅1<br />
= 0.5<br />
h(1)<br />
= 0 + 0.5 ⋅ 0.5 = 0.5<br />
h(2)<br />
= 0 + 0.5 ⋅ 0.5<br />
h(3)<br />
= 0 + 0.5 ⋅ 0.5<br />
( = 0.25)<br />
3<br />
= 0.5 ( = 0.125)<br />
4<br />
= 0.5 ( = 0.0625)<br />
n−1<br />
n<br />
( n) = δ ( n) + 0.5 ⋅ h(<br />
n −1)<br />
= 0 + 0.5 ⋅ 0.5 = 0.5<br />
2<br />
3<br />
2 3 4 1<br />
h ( k)<br />
= 1+<br />
0.5 + 0.5 + 0.5 + 0.5 + L = = 2 < ∞ ⇒ Suodatin on stabiili.<br />
1−<br />
0.5<br />
2<br />
©Jyrki Laitinen 2
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
Edellä oli kyseessä geometrinen sarja, jonka ensimmäinen termi a = 1 ja peräkkäisten<br />
termien välinen suhde q = 0.5. Jos |q|
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
3.<br />
Lineaarisen aikainvariantin (LTI) suodattimen impulssivaste on h(n) = {-0.01,<br />
0.02, -0.10, 0.40, -0.10, 0.02, -0.01}.<br />
a) Esitä suodattimen differenssiyhtälö.<br />
b) Suunnittele suodattimelle toteutus, joka minimoi kertolaskujen määrän.<br />
c) Esitä suunnittelemasi toteutus lohkokaaviona.<br />
d) Määritä sekunnissa tarvittavien lasku- ja muistioperaatioiden määrä, jos<br />
suodatettavan signaalin näytetaajuus f s = 44100 Hz.<br />
Koska impulssivaste on äärellisen pituinen (N = 7) on kyseessä FIR-suodatin.<br />
Impulssivasteen h(n) arvot ovat FIR-suodattimen tapauksessa suoraan<br />
suodinkertoimien a k arvoja. Tämän perusteella voidaan nyt helposti kirjoittaa<br />
differenssiyhtälö, jota muokkaamalla kertolaskujen määrä minimoituu.<br />
y<br />
( n) = a x( n) + a x( n − ) + a x( n − 2) + a x( n − 3) + a x( n − 4) + a x( n − 5) + a x( n − 6)<br />
0<br />
= −0.01⋅<br />
x<br />
= −0.01⋅<br />
1<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
( n) + 0.02 ⋅ x( n −1) − 0.10 ⋅ x( n − 2) + 0.40 ⋅ x( n − 3) − 0.10 ⋅ x( n − 4) + 0.02 ⋅ x( n − 5) − 0.01⋅<br />
x( n − 6)<br />
{ x( n) + x( n − 6)<br />
} + 0.02 ⋅{ x( n −1) + x( n − 5)<br />
} − 0.10 ⋅{ x( n − 2) + x( n − 4)<br />
} + 0.40 ⋅ x( n − 4)<br />
x[n] z -1 z -1 z -1<br />
z -1 z -1 z -1<br />
-0.01<br />
0.02 -0.10<br />
0.40<br />
y[n]<br />
©Jyrki Laitinen 4
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
4.<br />
Tarkastellaan oheista IIR-suodatinta.<br />
x(n)<br />
0.3<br />
y(n)<br />
z -1<br />
0.6<br />
0.1<br />
z -1<br />
z -1<br />
0.3<br />
0.1<br />
z -1<br />
a) Määritä suodattimen differenssiyhtälö.<br />
b) Määritä suodinkertoimet.<br />
c) Määritä laskentakapasiteetti- ja muistivaatimus.<br />
a)<br />
y ( n)<br />
= 0.3⋅<br />
x(<br />
n)<br />
+ 0.6 ⋅ x(<br />
n −1)<br />
+ 0.3⋅<br />
x(<br />
n − 2)<br />
+ 0.1⋅<br />
y(<br />
n −1)<br />
+ 0.1⋅<br />
y(<br />
n − 2)<br />
b)<br />
y ( n ) = a0<br />
⋅ x ( n ) + a1<br />
⋅ x ( n −1<br />
) + a2<br />
⋅ x ( n − 2 ) − b1<br />
⋅ y ( n −1<br />
) − b2<br />
⋅ y ( n − 2 )<br />
= 0.3⋅<br />
x( n) + 0.6 ⋅ x( n −1) + 0.3⋅<br />
x( n − 2) + 0.1⋅<br />
y( n −1) + 0.1⋅<br />
y( n − 2)<br />
⇒<br />
a<br />
0<br />
2<br />
= 0.3<br />
a1<br />
= 0.6<br />
a = 0.3<br />
b = −0.1<br />
b<br />
1<br />
2<br />
= −0.1<br />
c)<br />
Yhteenlaskuja 4 kpl<br />
Kertolaskuja 5 kpl<br />
Muistihakuja 4 kpl<br />
©Jyrki Laitinen 5
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
5.<br />
Huomataan, että tehtävän 4 suodatin koostuu kahdesta peräkkäisestä<br />
suodattimesta. Tällaista esitystä kutsutaan suora muoto I:ksi.<br />
x(n)<br />
0.3<br />
y(n)<br />
z -1<br />
0.6<br />
0.1<br />
z -1<br />
z -1<br />
0.3<br />
0.1<br />
z -1<br />
Suodatin 1 Suodatin 2<br />
Koska suodattimet ovat lineaarisia ja aikainvariantteja (LTI), niiden järjestystä<br />
voidaan vaihtaa, jolloin rakenne muuttuu seuraavaksi<br />
x(n)<br />
0.1<br />
0.1<br />
0.3<br />
w(n)<br />
z -1 z -1<br />
z -1 z -1<br />
0.6<br />
0.3<br />
y(n)<br />
Suodatin 2<br />
Suodatin 1<br />
Tämä rakenne esitetään useimmiten lyhyemmin alla esitetyssä muodossa, jota<br />
kutsutaan suora muoto II:ksi.<br />
x(n)<br />
0.1<br />
0.1<br />
0.3<br />
z -1<br />
0.6<br />
z -1<br />
0.3<br />
y(n)<br />
a) Määritä suodatin 2:sen lähtö w(n).<br />
b) Määritä suodatin 1:sen lähtö y(n), kun tulosignaalina on w(n).<br />
c) Mitä etua tällä suodatusjärjestyksellä saavutetaan?<br />
a)<br />
w ( n)<br />
= x(<br />
n)<br />
+ 0.1⋅<br />
w( n −1)<br />
+ 0.1⋅<br />
w(<br />
n − 2)<br />
b)<br />
y ( n)<br />
= 0.3⋅<br />
w( n)<br />
+ 0.6 ⋅ w( n −1)<br />
+ 0.3⋅<br />
w(<br />
n − 2)<br />
©Jyrki Laitinen 6
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
c)<br />
Kuten a) ja b)-kohdan kaavoista huomataan luetaan kummassakin suodattimessa<br />
muistista arvot w(n-1) ja w(n-2). Nämä voidaan säilyttää neljän muistipaikan<br />
(viiveen) asemesta kahdessa muistipaikassa, jolloin muistinkäyttö tehostuu.<br />
Suora muoto II vaatii nyt<br />
Yhteenlaskuja 4 kpl<br />
Kertolaskuja 5 kpl<br />
Muistihakuja 2 kpl<br />
Seuraavassa kuvassa on esitetty tehtävän 4 ja 5 suodattimen amplitudispektri (ylempi)<br />
ja vaihespektri (alempi).<br />
Taajuusasteikko on välillä 0 .. π, joka vastaa taajuuksia 0 .. f s /2. Jos suodatettavan<br />
signaalin näytetaajuus on esimerkiksi 44100 Hz, on kuvassa esitetty taajuusväli 0 ..<br />
22050 Hz.<br />
Amplitudiarvot on esitetty desibeliyksiköissä [dB]. 0 dB vastaa vahvistusarvoa 1, -20<br />
dB vahvistusarvoa 0.1, -40 dB vahvistusarvoa 0.01, jne.<br />
0<br />
Magnitude (dB)<br />
-20<br />
-40<br />
-60<br />
-80<br />
-100<br />
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />
Normalized Frequency (×π rad/sample)<br />
0<br />
Phase (degrees)<br />
-50<br />
-100<br />
-150<br />
-200<br />
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />
Normalized Frequency (×π rad/sample)<br />
©Jyrki Laitinen 7
TL5361, Näytejonosysteemit (K2007)<br />
<strong>Harjoitus</strong> 3<br />
6. (Kotitehtävä)<br />
Erään reaaliaikasovelluksissa käytettävän DSP-piirin yhden käskyn suoritusaika<br />
on 11 ns (nanosekuntia). Piirin käskykannassa on käsky MACD, joka hakee<br />
yhden tulosignaalin näytearvon ja yhden suodinkerroinarvon muistista,<br />
suorittaa yhden suodinkertoimen ja näytearvon kertolaskun ja siirtää yhden<br />
näytearvon muistiin seuraavalle muistipaikalle 11 ns aikana.<br />
Suodatettaessa signaalia Q:n asteen FIR-suotimella tarvitaan yksi käsky<br />
näytearvon x(n) lukemiseen, Q+1 MACD-käskyä konvoluutiosumman<br />
laskemiseen ja yksi käsky suodatetun arvon y(n) tulostamiseen. Lisäksi tarvitaan<br />
kahdeksan muuta käskyä mm. muistin initialisointiin.<br />
Olkoon Q = 154. Kuinka monta näytepistettä voidaan edellä kuvatulla piirillä<br />
enintään suodattaa sekunnissa?<br />
Esitä tulos ja perustelu erillisellä paperilla, jonka palautat nimelläsi ja<br />
ryhmätunnuksellasi varustettuna laskuharjoituksen yhteydessä opettajalle.<br />
Yhden lähtöarvon laskemiseen tarvitaan<br />
· 1 käsky uuden näytearvon x(n) lukemiseen<br />
· Q + 1 käskyä konvoluutiosumman laskemiseen<br />
· 1 käsky uuden näytearvon y(n) tulostamiseen<br />
· 8 muistin initialisointi yms. käskyä<br />
⇒ yhteensä tarvitaan Q + 11 käskyä/lähtöarvo<br />
⇒ yhden näytearvon käsittelyyn kuluva aika on (Q+11)·11 ns<br />
Nyt Q = 154 ⇒ yhden näytearvon käsittelyyn kuluu (154+11)·11 ns = 1815 ns<br />
Sekunnissa voidaan siis suodattaa enintään 1/(1815·10 -9 ) = 550964 näytepistettä.<br />
©Jyrki Laitinen 8