TT12S1E Tietoliikenteen perusteet Metropolia/A. Koivumäki 1 Kirjan lukuun 3 liittyvää lisäselitystä ja esimerkkejä Kirjan luvussa 3 (Signals Carried over the Network) luodaan katsaus siihen, minkälaisia sähköisiä signaaleja tietoliikenneverkoissa käytetään informaation siirtämiseksi paikasta toiseen. Aiemmin jo käsiteltiin joitakin luvun aiheita, nyt jatketaan kirjan luvussa 3.6 PCM olevilla asioilla. PCM tulee sanoista Pulse Code Modulation, pulssikoodimodulaatio; kyse on seuraavassa otsikossa kerrotusta asiasta: Analogisen signaalin digitaalinen siirto Kun analogisessa muodossa olevaa informaatiota (esim. ääntä) halutaan tallentaa tai siirtää digitaalisesti, pitää tehdä seuraavat toimenpiteet: Näytteenotto Kvantisointi PCM-koodaus (PCM = Pulse Code Modulation) Käsitellään asia menemällä läpi esimerkki. Alla olevassa kuvassa on millisekunnin verran äänitaajuisen signaalin aaltomuotoa. Pystyakselilla on jännite voltteina. 4 3 2 1 0-1 0 200 400 600 800 1000-2 -3-4 Kuva 1. Kuva on tehty Excelillä, ja siellä signaali on määritelty niin, että se sisältää taajuuksia välillä 1 khz... 3.75 khz. Jos kuvassa näkyisi pidempi aika, havaittaisiin, että signaalin maksimijännite on 4 V ja minimijännite 4 V. Huipusta huippuun -jännite (eli peak-to-peak -jännite) on siis 8 V. Ensimmäinen vaihe tämän signaalin muuttamisessa digitaaliseksi on siis näytteenotto. Se tarkoittaa sitä, että signaalin aaltomuodon jännite mitataan f s kertaa sekunnissa. Parametria f s kutsutaan näytteenottotaajuudeksi ja sen yksikkönä käytetään "näytettä sekunnissa", 1/s tai Hz. Tärkein näytteenottoon liittyvä sääntö on Nyquistin näytteenottoteoreema: Näytteenottotaajuuden f s on oltava vähintään kaksi kertaa niin suuri kuin signaalin suurin taajuus Näytteenottoteoreeman perustelu otetaan esille tuolla myöhemmin.
2 Siis nyt kun signaalimme sisältää taajuuksia 3.75 khz:iin asti, näytteenottotaajuuden pitää olla vähintään 2 3750 = 7500 näytettä sekunnissa. Valitaan f s = 10 khz, jotta voidaan käsitellä mukavia tasalukuja. Näytearvot mitataan siis 100 µs välein. Seuraavaan kuvaan on merkitty näytteidenottokohdat. 4 3 2 1 0-1 0 200 400 600 800 1000-2 -3-4 Kuva 2. Ja tässä ovat näytteiden tarkahkot jännitearvot: Näytteen arvo / V 0 0.625 100 0.123 200 0.427 300 1.457 400 0.721 500 3.876 600 0.843 700 1.996 800 0.185 900 0.048 1000 0.324 Taulukko 1. Sen jälkeen kun näytearvot on mitattu, on alkuperäinen jatkuva analoginen aaltomuoto periaatteessa korvautunut pulssiamplitudimoduloidulla (PAM) signaalilla, eli alla olevan kuvan kaltaisella kapeiden jännitepulssien sarjalla. Kuva 3.
3 Voidaan osoittaa, että jos tässä PAM-signaalissa pulssien määrä sekunnissa on vähintään kaksi kertaa niin suuri kuin kuvan 1 signaalin suurin taajuus, PAM-signaali sisältää täsmälleen saman informaation kuin kuvan 1 signaali, eli kuvan 1 aaltomuoto on virheettömästi muodostettavissa kuvan 3 pulssijonosta. Nyt käsitellään digitaalista siirtoa, joten seuraava askel on kuvan 3 pulssijonon pulssien korkeuksien muuttaminen binääriluvuiksi, jotka sitten siirretään bitteinä vastaanottajalle. Vastaanotin muodostaa saamiensa bittien perusteella lukusarjan, jossa on pulssien korkeudet, jonka jälkeen vastaaotin osaa generoida kuvan 3 pulssijonon, ja sitten siitä alkuperäisen aaltomuodon. Oleellinen valinta on tämä: Monikobittisiksi binääriluvuiksi näytearvot (eli pulssien korkeudet) muutetaan? Esimerkkejä käytännöstä: Kun analogisesta puhelinliittymästä keskukseen tuleva puhesignaali muutetaan keskuksessa digitaaliseksi, näytteenottotaajus on 8 khz ja näytearvot muutetaan 8-bittisiksi binääriluvuiksi. Kun muutetaan musiikkia audio-cd -formaatin vaatimaan digitaaliseen muotoon, näytteenottotaajuus on 44.1 khz ja käytetään 16-bittistä koodausta. Edellä todettiin, että alkuperäinen aaltomuoto on muodostettavissa virheettömästi PAM-signaalista. Tämä kuitenkin pitää paikkansa vain, jos on käytettävissä pulssien korkeuksien tarkat arvot. Digitaalisessa siirrossa tämä ei voi toteutua, koska aina on käytettävissä vain rajallinen määrä binäärilukuja, joilla pulssien korkeudet ilmoitetaan. Koska alkuperäinen signaali on analoginen (ja myös kuvan 3 PAM-signaali on analoginen), on erilaisia mahdollisia näytearvoja (eli pulssikorkeuksia) periaatteessa äärettömän monta, mutta jos käytetään esim. 8-bittistä koodausta, on käytettävissä vain 256 eri binäärilukua noiden äärettömän monen eri näytearvon välittämiseen vastaanottajalle. Jatketaan esimerkkisignaalimme käsittelyä tältä pohjalta. Jotta edellä kuvatun kvantisoimisen ongelma ja siitä seuraava kvantisoimisvirhe tulisi selkeästi esille, tehdään näytearvojen koodaus digitaaliseksi niinkin vähällä kuin kolmella bitillä. Silloin meillä on käytettävissä vain kahdeksan erilaista binäärilukua taulukossa 1 lueteltujen jännitearvojen muuttamisessa digitaaliseksi. Edellä mainittu kvantisoiminen tarkoittaa seuraavaa. Tarkastellaan asiaa ensin vastaanottajan kannalta. Jos lähetyspäässä on käytetty 3-bittistä koodausta, niin silloin vastaanottajan pitää saamiensa 3-bittisten binäärilukujen perusteella muodostaa kuvan 3 PAM-signaali, eli hänen pitäisi pystyä muuttamaan vastaanottamansa 3-bittiset binääriluvut taulukossa 1 oleviksi jännitteiksi. Tämähän on mahdotonta, koska taulukossa 1 on 11 erisuuruista jännitearvoa, mutta 3-bittisiä binäärilukuja on vain 8 erilaista. Niinpä järjestelmässä on täytynyt olla tehtynä päätös siitä, miksi jännitearvoksi vastaanottaja kunkin 3-bittisen binääriluvun muuttaa. Siis pitää olla alla olevan kaltainen taulukko, josta nähdään tuon muunnoksen vaatimat tiedot. Koodisana Kvantisointitaso / V 000 3.5 001 2.5 010 1.5 011 0.5 100 0.5 101 1.5 110 2.5 111 3.5 Taulukko 2.
Siis jos vastaanottaja saa esim. binääriluvun 110, hän synnyttää PAM-signaaliin 2.5 V korkean pulssin. 4 Sama taulukko on tietysti käytettävissä myös lähetyspäässä. Siellä sitä käytetään niin, että kun on todettu, että PAM-signaalissa pulssin korkeus on x volttia, katsotaan taulukosta x:ää lähinnä oleva jännitearvo, ja koodataan pulssikorkeus sen kohdalla olevaksi 3-bittiseksi binääriluvuksi (eli koodisanaksi). Tällöin tietysti esim. kaikki välillä 1... 2 V olevat näytearvot saavat saman koodisanan 101. Kvantisointivirhe on siis jossain välillä 0.5 V... 0.5 V, eli kun vastaanottaja generoi saamiensa koodisanojen perusteella PAM-signaalin, siinä olevat pulssikorkeudet saattavat poiketa todellisesta arvosta tuon verran. Silloin vastaanottajan ei tietenkäään ole mahdollista saada aikaan tarkasti kuvan 1 alkuperäistä aaltomuotoa. Käytettäessä 3-bittistä koodausta taulukossa 2 annettu ei suinkaan ole ainoa mahdollinen tapa, jolla koodisanat ja jännitervot voivat vastata toisiaan. Taulukossa on esitetty tasavälinen kvantisointi niin, että jännitearvot on sijoiteltu mahdollisimman tasaisesti koko alkuperäisen analogisen signaalin jännitealueelle (joka nyt on 4 V... 4 V). Myös epätasavälistä kvantisointia käytetään, esim. puhelinverkossa. Siinä pienille jännitearvoille on kvantisointitasoja tiheämmässä kuin suuremmille jännitearvoille. Tällöin pienten jännitearvojen absoluuttinen kvantisointivirhe (voltteina) on pienempi kuin suurempien jännitearvojen, jolloin suhteellinen kvantisointivirhe (prosentteina jännitteen tarkasta arvosta) on suunnilleen sama koko jännitealueella. Nyt voimme viedä esimerkkimme loppuun. Kun näytteet on mitattu (taulukko 1), koodisanan pituus päätetty (3 bittiä), voidaan tehdä kvantisointi ja PCM-koodaus. Nyt kvantisointi = alla olevan taulukon 3:nnen sarakkeen täyttäminen ja PCM-koodaus = taulukon 4:nnen sarakkeen täyttäminen. Tässä tietenkin käytetään hyväksi taulukkoa 2. Näytteen arvo / V 0 0.625 100 0.123 200 0.427 300 1.457 400 0.721 500 3.876 600 0.843 700 1.996 800 0.185 900 0.048 1000 0.324 Taulukko 3. Lähin kvantisointitaso / V Koodisana Lopputulos: Olemme muuttaneet kuvan 1 signaalin 33 bitin jonoksi. Kirjoita tuo bittijono tähän: Vastanotin saa nuo 33 bittiä ja poimii bittijonosta 11 kolmibittistä koodisanaa ja muuttaa koodisanat jännitearvoiksi taulukon 2 mukaisesti. Saamiensa jännitearvojen perusteella se muodostaa kuvan 3 kaltaisen pulssijonon (jossa pulssien korkeudet kuitenkin ovat kvantisointivirheen takia hieman erilaiset kuin kuvassa 3). Sen jälkeen se alipäästösuodattaa pulssijonon (tästä enemmän jäljempänä), jolloin tuloksena on kuvan 1 kaltainen aaltomuoto, mutta ei kuitenkaan tarkasti sama aaltomuoto. Seuraavassa kuvassa on esitetty, millaisena vastaanottaja tässä tapauksessa saa lähetetyn aaltomuodon. Katkoviiva on lähetetty signaali, ehyt viiva on vastaanotettu signaali.
5 Kuva 4. Nyt vastaanotettu signaali poikkeaa varsin paljon lähetetystä. Tämä johtuu siitä, että lähetyspäässä mitatut näytearvot on koodattu vain kolmella bitillä, joka on aivan liian vähän. Tällöin kvantisointikohina on erittäin voimakasta ja johtaa signaalin pahaan vääristymiseen. Jos kyseessä olisi musiikki, niin se kuulostaisi vastaanottopäässä luultavasti aivan sietämättömältä. Pari tehtävää (vastaukset tiedoston lopussa) 1. Mikä 33-bittinen bittijono syntyi edellä taulukon 3 perusteella? 2. Kvantisointivirheestä aiheutuvaa virhettä kutsutaan kvantisointikohinaksi, koska virhesignaali on satunnaisesti vaihteleva jännite. PCM-koodauksella digitaaliseksi muutetun signaalin signaalikohinasuhde määritelläänkin S / N = 10 log db, missä S = signaalin teho ja S N N = kvantisointikohinan teho. Voidaan osoittaa, että jos analogisen signaalin PCM-koodauksessa käytettävä koodisanan pituus on n bittiä ja signaali on sinimuotoinen, niin S/N = ( 1.76 + 6. 02 n ) db. (Kirjassa on kaava S/N = ( 4.8 + 6. 0 n ) db. Se on S/N:n suurin mahdollinen arvo, joka on käytännön kannalta kovin optimistinen.) a) CD-standardin mukaisessa äänen tallennuksessa näytteenottotaajuus on 44100 1/s ja näytteet koodataan 16-bittisiksi binääriluvuksi. Mikä on CD-standardin mukaisen tallennetun äänen signaalikohinasuhde? b) DVD Audio -levyllä ääni saattaa olla koodattu esim. 24 bitillä esim. näytteenottotaajuudella 96000 1/s. Mikä on tällöin äänen S/N? c) Mikä on S/N edellä käsitellyssä esimerkkitapauksessa? (3-bittinen koodaus.9 3. Mikä on edelläolevassa tekstissä olevan esimerkin PCM-koodaustulos, kun käytetään kirjan luvussa 3.6.5 kuvattua A-lain mukaista epätasavälistä kvantisointia? Hieman näytteenoton teoriaa Tässä mennään nyt teoriassa tarpeettoman pitkälle tämän kurssin tarpeita ajatellen. Siksi tästä etenpäin oleva teksti on vain oheismateriaalityyppisesti tässä. Sen sisältö ei kuulu kurssivaatimuksiin.
Nyquistin näytteenottoteoreema siis kuuluu: Jos analogisen signaalin suurin taajuus on W, niin näytteenottotaajuuden pitää olla f s > 2W. Seuraavassa perustellaan tämä (ei tosin täydellisesti, koska asiaan liittyvä matematiikkaa pääosin hypätään yli). 6 Kuvan 1 signaalin suurin taajuus on 3.75 khz, joten W = 3.75 khz. Tällaisen signaalin spektri voi silloin olla vaikkapa tällainen. f -W Kuva 5. W (Tämä ei missään nimessä ole juuri kuvan 1 signaalin spektri. Sen kanssa tällä spektrillä ei ole muuta yhteistä kuin selkeä ylärajataajuus W. Tässä käytetään esimerkkinä tuollaista selkeää kolmiomuotoa, jotta asia tulisi mahdollisimman selvästi esille.) Spektrianalyysin matematiikalla (eli Fourier-muunnoksen ominaisuuksia tutkimalla) voidaan osoittaa seuraava asia: Analogisesta signaalista näytteenottotaajuudella f s muodostetun PAM-signaalin spektri koostuu äärettömän monesta alkuperäisen signaalin spektrin kopiosta, jotka ovat taajuusakselin kohdissa n f, missä n saa kaikki mahdolliset kokonaislukuarvot välillä.... Tässä sama Fourier-analyysillä saatavana yhtälönä: s Jos signaalin v(t) spektri on V(f), niin signaalin v ( nts ) δ ( t nt s ) spektri on n= n= V ( f nf s ) Kun tätä sovelletaan esimerkkisignaaliimme ja käyttämäämme näytteenottotaajuuteen 10 khz, saamme PAM-signaalille tällaisen spektrin: va 6....... f Ku Jokaisen kolmionmuotoisen spektrin leveys on 7.5 khz, ja koska kolmiot (eli spektrikopiot) ovat näytteenottotaajuuden eli 10 khz:n etäisyydellä toisistaan, ovat PAM-signaaliin kopioituneet spektrit irrallaan toisistaan. Niinpä kun PAM-signaali viedään läpi hyvälaatuisesta alipäästösuodattimesta, jonka ylärajataajuus on välillä 3.75 khz... 6.25 khz, suodattimen läpi pääsee vain origon kohdalla oleva kolmio. Siis suodatuksen jälkeen meillä on signaali, jonka spektri on kuvassa 5, eli silloin olemme saaneet kaivetuksi PAM-signaalista esille täsmälleen alkuperäisen analogisen signaalin.
7 Edellytyksenä tuon onnistumiselle on se, että kuvan 6 spektrissä siihen syntyneet alkuperäisen spektrin kopiot eivät mene päällekkäin. Jos näytteenottotaajuutta pienennetään, niin kuvan 6 spektrissä kolmiot lähestyvät toisaan, kunnes näytteenottotaajuudella 2W ne koskettavat toisiaan. Jos näytteenottotaajuutta vielä pienennetään, on tuloksena tällainen tilanne:...... f Kuva 7. Niissä kohdissa, joissa spektrin osat menevät päällekkäin, päällekkäin olevien osien lukuarvot summautuvat, jolloin lopullinen spektri saattaa näyttää esimerkiksi tältä:...... Kuva 8. Tästä spektristä on aivan mahdotonta saada minkäänlaisella suodatuksella erotetuksi alkuperäistä kolmionmuotoista spektriä. Liian pienestä näytteenottotaajuudesta johtuvaa ilmiötä, jossa PAM-signaaliin kopioituneet alkuperäisen signaalin spektrit menevät päällekkäin kuvassa 7 esitetyllä tavalla, kutsutaan nimellä laskostuminen eli aliasing. Laskostuminen on siis spektrille tapahtuva asia, mutta sen vaikutus tulee tietysti näkyviin myös aaltomuodossa. Alla olevassa kuvassa näkyy, miten laskostuminen vaikuttaa kuvan 1 signaalin aaltomuotoon, kun signaalin digitaalisessa siirrossa käytetään liian pientä 6 khz:n näytteenottotaajuutta. 8 f 6 4 2 0-2 0 200 400 600 800 1000-4 Kuva 9. Liian pienen näytteenottotaajuuden vaikutus aaltomuotoon siis saattaa olla varsin suuri.
TT12S1E Tietoliikenteen perusteet Metropolia/A. Koivumäki 8 Analogisen signaalin digitaalinen siirto: Tehtävien vastauksia 1. Taulukko 3 täytettynä: Näytteen arvo / V Lähin kvantisointitaso / V Koodisana 0 0.625 0.5 011 100 0.123 0.5 011 200 0.427 0.5 100 300 1.457 1.5 010 400 0.721 0.5 011 500 3.876 3.5 111 600 0.843 0.5 100 700 1.996 1.5 010 800 0.185 0.5 100 900 0.048 0.5 100 1000 0.324 0.5 011 Saatu bittijono: 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 2. a) Suoraan kaavasta: S/N = (1.76 + 6.02 16) db = 98.1 db b) S/N = (1.76 + 6.02 24) db = 146.2 db c) S/N = (1.76 + 6.02 3) db = 19.8 db 3. (Tämän tehtävän ratkaiseminen menee reippaasti kurssissa vaadittavien asioiden yli.) Jos käytetään kirjan kaavassa (3.9) määriteltyä epätasavälistä kvantisointia, niin kvantisointitasot menevät esimerkkimme tapauksessa näin: Koodisana Kvantisointitaso / V (tasavälinen) Kvantisointitaso / V (epätasavälinen) 000 3.5 2.02 001 2.5 0.51 010 1.5 0.13 011 0.5 0.03 100 0.5 0.03 101 1.5 0.13 110 2.5 0.51 111 3.5 2.02 Tällöin PCM-koodaus antaa eri tuloksen:
9 Tasavälinen kvantisointi Epätasavälinen kvantisointi Näytteen Lähin Koodisana Lähin Koodisana arvo / V kvantisointitaso / V kvantisointitaso / V 0 0.625 0.5 011 0.51 001 100 0.123 0.5 011 0.13 010 200 0.427 0.5 100 0.51 110 300 1.457 1.5 010 2.02 000 400 0.721 0.5 011 0.51 001 500 3.876 3.5 111 2.02 111 600 0.843 0.5 100 0.51 110 700 1.996 1.5 010 2.02 000 800 0.185 0.5 100 0.13 101 900 0.048 0.5 100 0.03 100 1000 0.324 0.5 011 0.51 001 Saadut bittijonot: Tasavälisellä kvantisoinnilla: 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 0 1 1 Epätasavälisellä kvantisoinnilla: 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 Kun koodaus tehdään näin vähillä biteillä, on epätasavälisellä kvantisoinnilla saatava tulos luultavasti huonompi kuin tasavälisellä saatava.