26.07.2013 Views

Signaalin kvantisointi ja virheen mallinnus

Signaalin kvantisointi ja virheen mallinnus

Signaalin kvantisointi ja virheen mallinnus

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Department of Signal Processing<br />

<strong>Signaalin</strong> <strong>kvantisointi</strong> <strong>ja</strong> <strong>virheen</strong> <strong>mallinnus</strong><br />

Vierailuluento IMA3-kurssilla<br />

Heikki Huttunen<br />

Lecturer, Dr. Eng.<br />

Signal Processing<br />

Tampere University of Technology<br />

heikki.huttunen@tut.fi


<strong>Signaalin</strong> <strong>kvantisointi</strong><br />

Muunnettaessa saapuva analoginen signaali digitaaliseksi on käytettävissä<br />

ainoastaan äärellinen määrä bittejä kunkin signaalin arvon esittämiseen.<br />

Merkitään käytettävää bittimäärää (merkkibittiä lukuunottamatta) muuttu<strong>ja</strong>lla b <strong>ja</strong><br />

tarkastellaan tapausta, jossa diskreetin signaalin kaikki lukuarvot on <strong>ja</strong>ettu<br />

tasavälisesti välille [−1, 1].<br />

Jos käytössä on esimerkiksi seitsemän bittiä (+merkkibitti), voidaan kahden<br />

komplementtiaritmetiikalla esittää luvut<br />

−128, −127, −126, . . .,−1, 0, 1, . . .,125, 126, 127. Nämä luvut skaalataan välille<br />

[−1, 1] yksinkertaisesti <strong>ja</strong>kamalla ne luvulla 2 7 = 128. Näin saadaan<br />

<strong>kvantisointi</strong>tasot − 128<br />

128<br />

, −127<br />

128<br />

1 0 1<br />

, −126<br />

128 , . . .,− 128 , 128 , 128<br />

, . . ., 125<br />

128<br />

, 126<br />

128<br />

127 , 128 . Nämä<br />

kolme esitysmuotoa tapauksessa b = 2 on esitetty alla olevassa taulukossa.<br />

binääriesitys 100 101 110 111 000 001 010 011<br />

desimaaliesitys −4 −3 −2 −1 0 1 2 3<br />

<strong>kvantisointi</strong>taso − 4<br />

4 −3<br />

4 −2<br />

4 −1<br />

4<br />

1<br />

0<br />

4<br />

1<br />

4<br />

2<br />

4<br />

3<br />

4


<strong>ja</strong> yleisesti ottaen se<br />

Taulukon tapauksessa kahden <strong>kvantisointi</strong>välin etäisyys on 1<br />

4<br />

on 2−b käytettäessä b:tä bittiä (+merkkibittiä). Kvantisoitaessa muodostuva virhe<br />

on enintään puolet tästä eli 2−b /2, jos käytetään pyöristystä lähimpään<br />

numeroon. a Tämä virhe e(n) voidaan a<strong>ja</strong>tella lisätyksi alkuperäiseen signaaliin<br />

x(n), jolloin saadaan tulos<br />

^x(n) = x(n) + e(n).<br />

Tyypillisesti <strong>kvantisointi</strong>virheestä e(n) tehdään seuraavat oletukset tilastollista<br />

analyysiä varten.<br />

1. Signaali e(n) on stationaarinen satunnaisprosessi, eli sen tilastolliset<br />

ominaisuudet eivät muutu a<strong>ja</strong>n myötä.<br />

2. <strong>Signaalin</strong> e(n) lukuarvot eivät riipu lukujonon x(n) arvoista.<br />

3. <strong>Signaalin</strong> e(n) arvot ovat riippumattomia toisistaan, eli e(n) on valkoista<br />

kohinaa (white noise).<br />

4. <strong>Signaalin</strong> e(n) arvot ovat <strong>ja</strong>kautuneet tasaisesti välille (−2 −b /2, 2 −b /2].<br />

aYlin <strong>kvantisointi</strong>taso on poikkeus tästä, koska esimerkiksi taulukon tilanteessa pitää kaikki luvut väliltä<br />

[ 3<br />

3<br />

,1] pyöristää alaspäin lukuun . Tämä poikkeus jätetään yleensä huomiotta, koska suuremmilla<br />

4 4<br />

bittimäärillä <strong>virheen</strong> suuruusluokka on hyvin pieni <strong>ja</strong> se myöskin esiintyy hyvin harvoin.<br />

2


Nämä oletukset ovat voimassa, jos signaali on riittävän satunnainen. Ne eivät pidä<br />

paikkaansa kaikille signaaleille x(n): jos esimerkiksi x(n) on yksikköaskel, niin<br />

useimmat edellä mainituista oletuksista eivät ole voimassa. Näitä oletuksia<br />

käyttämällä saadaan kuitenkin johdettua yksinkertainen malli<br />

<strong>kvantisointi</strong>virheiden määrälle.<br />

Jos oletetetaan järjestelmän käyttävän pyöristystä lähimpään lukuun, niin silloin<br />

signaalin e(n) odotusarvo b<br />

<strong>ja</strong> varianssi<br />

µe = E[e(n)] = 0,<br />

σ 2 e = E[(e(n) − µe )<br />

<br />

=0<br />

2 ] = E[e(n) 2 ].<br />

b Kutakuinkin sama asia kuin lukujonon keskiarvo, s.o. lim<br />

n→∞<br />

3<br />

1<br />

2n+1<br />

nk=−n e(k).


Odotusarvon (toisesta) määritelmästä c saadaan edelleen:<br />

E[e(n) 2 ] =<br />

= 2 b<br />

2 −b /2<br />

−2 −b /2<br />

2 1<br />

x dx<br />

2−b 2 −b /2<br />

−2 −b /2<br />

= 2 b<br />

−3b 2<br />

24<br />

= 2−2b<br />

12 .<br />

x 3<br />

3<br />

+ 2−3b<br />

24<br />

Kvantisoidun signaalin signaali-kohinasuhde (signal to noise ratio; SNR)<br />

määritellään signaalin tehon suhteena kohinan tehoon (desibeliasteikolla), <strong>ja</strong> se<br />

c Jos tiedetään satunnaismuuttu<strong>ja</strong>n x <strong>ja</strong>kauma p(x), voidaan x:n odotusarvo laskea kaavasta E[x] =<br />

∞−∞ xp(x)dx.<br />

4


saadaan näiden varianssien suhteesta:<br />

SNR = 10 log 10<br />

σ2 x<br />

σ2 .<br />

e<br />

Signaali-kohinasuhde on siis kvantisoinnissa b bittiin (+merkkibitti)<br />

SNR = 10 log 10<br />

σ 2 x<br />

2 −2b /12<br />

= 10 log 10 (σ 2 x) + 10 log 10 (12) + 2b · 10 log 10 (2)<br />

≈ 10 log 10 (σ 2 x) + 10.79 + 6.02b.<br />

Signaali-kohinasuhde kasvaa siis noin 6 dB jokaista lisäbittiä kohden.<br />

5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!