TT12S1E Tietoliikenteen perusteet Metropolia/A. Koivumäki Laskuharjoitus 2 (11.9.2013): Tehtävien vastauksia 1. Eräässä kuvitteellisessa radioverkossa yhdessä radiokanavassa voi olla menossa samanaikaisesti viisi eri datasiirtoyhteyttä. Verkko toimii niin, että naapuritukiasemat voivat luovuttaa radiokanaviaan toisilleen, jos verkon palvelutason ylläpito niin vaatii. Esimerkki: Tukiasemalla A on käytössään normaalisti radiokanavat 12, 13, 14, ja 15 ja naapuritukiasemalla B on käytössään normaalisti radiokanavat 16, 17, 18, 19 ja 20. Jos vaikkapa tukiasema B kuormittuukin jostain syystä tilapäisesti niin, että normaalit viisi kanavaa eivät riitä, niin tukiasema A saattaa luovuttaa esim. kanavat 12 ja 13 tukiaseman B käyttöön, tietenkin edellyttäen, että tukiaseman A kuormitustilanne sen sallii. Oletetaan, että tämän radioverkon keskimääräinen käyttäjä varaa verkosta yhteyden keskimäärin 4 minuuttia tunnissa. Tarkastellaan e.m. tukiasemien A ja B toimintaa. a) Tiettynä aikana tukiaseman A kuuluvuusalueella on 264 verkon käyttäjää ja tukiaseman B kuuluvuusalueella 180 käyttäjää. Silloin käy niin, että tukiaseman A käyttäjien palvelutaso on aika huono, mutta tukiaseman B käyttäjien palvelutaso on erinomainen. Mitä tarkkaan ottaen nuo "aika huono" ja "erinomainen" nyt tarkoittavat lukuarvoina? (Tässä siis tarkastellaan tilannetta silloin, kun alussa kuvattua kanavienluovutusta ei ole toteutettu, jolloin tukiasema A:lla on neljä radiokanavaa ja tukiasemalla B viisi.) b) Minkälaisella kanavienluovutusjärjestelyllä saadaan aikaan tilanne, jossa kummankin tukiaseman käyttäjät saavat vähintäänkin kohtuullisen palvelutason? Perustele vastauksesi lukuarvojen kera. Tässä vastaus sekä kirjan Erlang-taulukkoa (tämän tiedoston lopussa) että käytettyä Erlang-laskuria käyttäen. Ensin taulukon avulla: a) Kun yksi käyttäjä varaa yhteyden keskimäärin 4 minuuttia tunnissa, hän generoi verkkoon liikennettä 4/60 Erlangia = 1/15 Erl. Silloin tukiaseman A alueella on liikennettä 264/15 Erl = 17.6 Erl ja tukiaseman B alueella 180/15 Erl = 12 Erl. Silloin allaoleva taulukko kertoo, että tukiaseman A alueella, jossa on käytössä 20 yhteyttä (4 kanavaa, jokaisessa 5 yhteyttä), eston todennäköisyys on 10 %. Ja tukiaseman B alueella, jossa on käytössä 25 yhteyttä (5 kanavaa, jokaisessa 5 yhteyttä), eston todennäköisyys on alle 0.5 %. (B-tukiaseman eston tarkkaa arvoa ei taulukosta tämän tarkemmin näe.) Siis: A-tukiaseman "aika huono" palvelutaso tarkoittaa 10 %:n estoa ja B-tukiaseman "erinomainen" palvelutaso tarkoittaa alle 0.5 %:n estoa. b) Kokeillaan sitä, että B-tukiasema luovuttaa yhden kanavan A-tukiasemalle. Silloin A:n alueella on yhteyksiä 25 ja liikennettä edelleen 17.6 Erl, joten taulukko antaa eston todennäköisyydeksi noin 2.0 %. Vastaavasti B:n alueella on yhteyksiä 20 ja liikennettä edelleen 12 Erl, joten taulukko antaa eston todennäköisyydeksi 1.0 %. Valittu toimintatapa siis antaa selvästi alkuperäistä paremman kokonaispalvelutason. Erlang-laskuria (http://www.cas.mcmaster.ca/~qiao/publications/erlang/newerlang.html) käyttäen: a) A-tukiasema: Vasemman ylänurkan laskuriin "Arrival Rate" = 264, "Service Rate " = 15 "Erlangs" = 1.76e01 = 17.6. Tämä oikean alanurkan laskuriin, ja siellä "Capacity" = 20 "Grade of Service" = 9.969e-02 = 0.09969 = 9.97 %. Aika huono. B-tukiasema: Vasemman ylänurkan laskuriin "Arrival Rate" = 180, "Service Rate " = 15 "Erlangs" = 1.2e01 = 12. Tämä oikean alanurkan laskuriin, ja siellä "Capacity" = 25 "Grade of Service" = 3.7799e-04 = 0.0003779 = 0.038 %. Erinomainen. b) B:ltä A:lle yksi kanava. Tämän jälkeen: A-tukiasema: Vasemman ylänurkan laskuriin "Arrival Rate" = 264, "Service Rate " = 15 "Erlangs" = 1.76e01 = 17.6. Tämä oikean alanurkan laskuriin, ja siellä "Capacity" = 25 "Grade of Service" = 2.0867e-02 = 0.020867 = 2.09 %. Kohtuullinen. B-tukiasema: Vasemman ylänurkan laskuriin "Arrival Rate" = 180, "Service Rate " = 15 "Erlangs" = 1.2e01 = 12. Tämä oikean alanurkan laskuriin, ja siellä "Capacity" = 20 "Grade of Service" = 9.7956e-03 = 0.0097956 = 0.98 %. Hyvä. 2. Ratkaise Erlang-taulukkoa käyttäen tämä: Jos GSM-tukiasemassa on yksi lähetin-vastaanotin (jolloin tukiaseman alueella voi olla menossa 7 yhtäaikaista puhelua), niin montako puhelimenkäyttäjää tukiaseman alueella voi olla seuraavissa tilanteissa: a) Puhelujen kesto keskimäärin 5 min/tunti, esto pitää olla alle 1 % b) Puhelujen kesto keskimäärin 5 min/tunti, esto pitää olla alle 2 % c) Puhelujen kesto keskimäärin 2 min/tunti, esto pitää olla alle 1 % d) Puhelujen kesto keskimäärin 2 min/tunti, esto pitää olla alle 2 % Tarkista tulokset nettilaskurilla.
Jos GSM-tukiasemassa on yksi lähetin-vastaanotin, niin sen alueella voi siis olla menossa 7 yhtäaikaista puhelua. a) Taulukosta riviltä n = 7 ja sarakkeesta QoS = 1% luetaan sallittu liikenteen kokonaismäärä: 2.50 Erl. Yksi puhelimenkäyttäjä tuottaa liikennettä 5/60 Erl = 0.083333 Erl, joten kokonaisliikenne on 2.50 Erl, jos käyttäjiä on 2.50/0.083333 = 30 kpl. b) Taulukosta riviltä n = 7 ja sarakkeesta QoS = 2% luetaan sallittu liikenteen kokonaismäärä: 2.94 Erl. Yksi puhelimenkäyttäjä tuottaa liikennettä 5/60 Erl = 0.083333 Erl, joten kokonaisliikenne on 2.94 Erl, jos käyttäjiä on 2.94/0.083333 = 35,28 kpl, eli tietysti vastaus on 35 kpl. c) Taulukosta riviltä n = 7 ja sarakkeesta QoS = 1% luetaan sallittu liikenteen kokonaismäärä: 2.50 Erl. Yksi puhelimenkäyttäjä tuottaa liikennettä 2/60 Erl = 0.033333 Erl, joten kokonaisliikenne on 2.50 Erl, jos käyttäjiä on 2.50/0.033333 = 75 kpl. d) Taulukosta riviltä n = 7 ja sarakkeesta QoS = 2% luetaan sallittu liikenteen kokonaismäärä: 2.94 Erl. Yksi puhelimenkäyttäjä tuottaa liikennettä 2/60 Erl = 0.033333 Erl, joten kokonaisliikenne on 2.94 Erl, jos käyttäjiä on 2.94/0.033333 = 88,2 kpl, eli tietysti vastaus on 88 kpl. Nettilaskurilla ei yllättäen voikaan suoraan ratkaista näitä tehtäviä. Siellä siis ei ole käytettävissä laskuria, joka antaisi "Arrival Rate" -arvon, kun tunnetaan "Service Rate", "Capacity" ja "Grade of Service". Ainoa keino on etsiä vastaukset kokeilemalla: Haetaan oikean alanurkan laskurilla se Erlang-määrä, joka annetulla yhteyksien määrällä ("Capacity", nyt 7) antaa halutun estotodennäköisyyden ("Grade of Service", esim- a-kohdassa 1 %). Kyllä sieltä tuo 2.50 Erl löytyy, mutta onhan se helpompi katsoa suoraan taulukosta. Sitten laskurilla ei voi laskea saatua Erlang-määrää vastaavaa käyttäjien määrää ("Arrival Rate"), kun tiedetään yhden käyttäjän keskimääräinen käyttö (a-kohdassa 5 min/tunti, jolloin "Service Rate" = 60/5 = 12). Laskurilla voi käyttäjien määrän hakea kokeilemalla eri arvoja "Arrival Rate" -kohtaan, mutta onhan se helpompi laskea: Sallitun kokonaisliikenteen määrä (2.50 Erl) jaettuna yhden käyttäjän liikennemäärällä (5/60 Erl), josta vastaukseksi 30. 3. Kuvassa on erään signaalin spektri. Jos tuota kuvaa tulkitsee sen mukaan, mitä spektrikalvoissa (http://users.metropolia.fi/~koiva/s2013/tt12s1e-tlt/signaalit_ja_spektri.pdf) kerrotaan sivuilla 8-10, niin minkälaisesta signaalista mahtaa olla kysymys? Amplitudi Vaihe 2 90 f/khz f/khz 2 4 6 2 4 6 Kyseessä on signaali, joka sisältää kolme eritaajuista komponenttia. Niiden taajuudet ovat 2 khz, 4 khz ja 6 khz. Jokaisen komponentin amplitudi on 2, ja niiden vaihekulmat ovat 0, 90 ja 0. Niinpä signaalin aaltomuodon yhtälö on v( t) = 2 cos( 2π 2 khz t + 0 ) + 2 cos( 2π 4 khz t + 90 ) + 2 cos( 2π 6 khz t + 0 ) Tämän yhtälön perusteella voi piirtää aaltomuodon kuvaajan. Se tehdään seuraavassa tehtävässä. Tehtävien 4, 5 ja 6 Matlab-kooditiedostot ja tehtävän 6 äänitiedosto on saatavilla tästä: http://users.metropolia.fi/~koiva/s2013/tt12s1e-tlt/matlab/. 4. Piirrä Matlabilla edellisen tehtävän signaalin aaltomuoto. Tee se kirjoittamalla Matlab-ohjelma (eli m-tiedosto). Tuloksena esim. tällainen ohjelmakoodi: % Laskuharjoitus 2, tehtävä 4 Fs = 100000; % Laskettavien arvojen (näytteiden) määrä sekunnissa T = 5; % Signaalin kesto sekunteina % Lasketaan tehtävän 3 signaalin arvo kaikkina % taulukossa t olevina ajanhetkinä. Ensin parametrit: f1 = 2000; f2 = 4000; f3 = 6000; % Taajuudet Hz A1 = 2; A2 = 2; A3 = 2; % Amplitudit fii1 = 0; fii2 = pi/2; fii3 = 0; % Vaihekulmat radiaaneina
% Signaalin yhtälö on: v = A1*cos(2*pi*f1*t+fii1) + A2*cos(2*pi*f2*t+fii2)... + A3*cos(2*pi*f3*t+fii3); % Nyt jokaisena taulukon t hetkenä on signaalin arvo taulukossa v % Piirretään v:n kuvaaja t:n funktiona: xlim([0 0.002]); % Otetaan näkyviin vain sen verran aika-akselia % että aaltomuoto näkyy hyvin. Tässä 2 ms:n pätkä. Kun ohjelman ajaa, tuloksena tällainen kuvaaja: 5 4 3 2 1 0-1 -2-3 -4-5 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10-3 5. Muokkaa edellisessä tehtävässä syntynyttä ohjelmaa niin, että Matlab laskee ja piirtää myös ohjelmassa määritellyn aaltomuodon amplitudispektrin. Lisätään tehtävässä 4 kirjoitetun koodin loppuun muutama komento, joiden avulla saadaan laskettua ja piirrettyä signaalin amplituspektri. Tässä koodi lisäysten jälkeen: % Laskuharjoitus 2, tehtävä 5 Fs = 100000; % Laskettavien arvojen (näytteiden) määrä sekunnissa T = 5; % Signaalin kesto sekunteina % Lasketaan tehtävän 3 signaalin arvo kaikkina % taulukossa t olevina ajanhetkinä: f1 = 2000; f2 = 4000; f3 = 6000; % Taajuudet Hz A1 = 2; A2 = 2; A3 = 2; % Amplitudit fii1 = 0; fii2 = pi/2; fii3 = 0; % Vaihekulmat radiaaneina % Signaalin yhtälö on: v = A1*cos(2*pi*f1*t+fii1) + A2*cos(2*pi*f2*t+fii2)... + A3*cos(2*pi*f3*t+fii3); % Nyt jokaisena taulukon t hetkenä on signaalin arvo taulukossa v % Halutaan piirtää kaksi kuvaa. Onnistuu subplot-komennolla. % Piirretään v:n kuvaaja t:n funktiona ylemmäksi kuvaksi: subplot(2,1,1); xlim([0 0.002]); % Otetaan näkyviin vain sen verran aika-akselia % että aaltomuoto näkyy hyvin. Tässä 2 ms:n pätkä. % Lasketaan v:n Fourier-muunnos eli spektri: V = fft(v); % fft-funktio laskee spektrin, jolloin tuloksena taulukko V, % jossa on kompleksilukuja yhtä monta kuin v:ssä % signaalin arvoja % Spektrin käsittely vaatii komentoja, jotta amplitudispektri näkyy oikein:
df = 1/T; % Taajuusaskel Fourier-muunnoksessa f = 0:df:Fs/2; % Spektri laskettiin näillä taajuuksilla Nf = length(f); % Taajuuksien määrä Vpos = abs(v(1:nf))/nf; % Tässä taulukossa amplitudispektri taajuusvälillä % 0... Fs/2 subplot(2,1,2); % Amplitudispektri alempaan kuvaan plot(f,vpos); xlim([0 20000]); ylim([0 3]); Tässä tulostuvat kuvaajat: 6. Tee Matlab-ohjelma, joka lukee wav-muotoisen äänitiedoston sisällön ja piirtää äänen aaltomuodon ja spektrin. Tutkittavia ääniä löytyy esim. täältä: http://www.animal-sounds.org/farm-animal-sounds.html Tämä ohjelma syntyy helposti, kun tehtävän 5 ohjelmaa muutetaan niin, että signaali v luetaan äänitiedostosta sen sijaan että se lasketaan koodissa yhtälöstä. Tässä muutettu ohjelma: % Laskuharjoitus 2, tehtävä 6: Signaali äänitiedostosta % Luetaan signaali äänitiedostosta: [v,fs] = wavread('cat.wav'); % Kissa naukuu % Samalla tuli luettua tiedostosta aaltomuodon % arvojen määrä sekunnissa eli näytteenottotaajuus Fs. N = length(v); % Näytteiden kokonaismäärä T = (N-1)*dt; % Signaalin kesto sekunteina % Piirretään v:n kuvaaja t:n funktiona ylemmäksi kuvaksi: subplot(2,1,1); % Lasketaan v:n spektri Fourier-muunnoksella: V = fft(v); % Nämä vaaditaan, jotta spektri saadaan esille: df = 1/T; % Taajuusaskel f = 0:df:Fs/2; % Spektrin taajuudet Nf = length(f); % Taajuuksien määrä Vpos = abs(v(1:nf))/nf; % Amplitudispektrin arvot % Plotataan spektri alempaan kuvaan: subplot(2,1,2); plot(f,vpos); Kissan ääni näyttää tältä, aaltomuoto ja spektri:
********************************************************************************** Erlang-taulukko: QoS 0.5% 1.0% 2.0% 3.0% 5.0% 10% 20% 50% n 1 0.01 0.01 0.02 0.03 0.05 0.11 0.25 1.00 2 0.11 0.15 0.22 0.28 0.38 0.60 1.00 2.73 3 0.35 0.46 0.60 0.72 0.90 1.27 1.93 4.59 4 0.70 0.87 1.09 1.26 1.52 2.05 2.95 6.50 5 1.13 1.36 1.66 1.88 2.22 2.88 4.01 8.44 6 1.62 1.91 2.28 2.54 2.96 3.76 5.11 10.4 7 2.16 2.50 2.94 3.25 3.74 4.67 6.23 12.4 8 2.73 3.13 3.63 3.99 4.54 5.60 7.37 14.3 9 3.33 3.78 4.34 4.75 5.37 6.55 8.53 16.3 10 3.96 4.46 5.08 5.53 6.22 7.51 9.69 18.3 12 5.28 5.88 6.61 7.14 7.95 9.47 12.0 22.2 15 7.38 8.11 9.01 9.65 10.6 12.5 15.6 28.2 20 11.1 12.0 13.2 14.0 15.3 17.6 21.6 38.2 25 15.0 16.1 17.5 18.5 20.0 22.8 27.7 48.1 30 19.0 20.3 21.9 23.1 24.8 28.1 33.8 58.1 35 23.2 24.6 26.4 27.7 29.7 33.4 40.0 68.1 40 27.4 29.0 31.0 32.4 34.6 38.8 46.2 78.1 45 31.7 33.4 35.6 37.2 39.6 44.2 52.3 88.1 50 36.0 37.9 40.3 41.9 44.5 49.6 58.5 98.1 55 40.4 42.4 44.9 46.7 49.5 55.0 64.7 108.1 60 44.8 46.9 49.6 51.6 54.6 60.4 70.9 118.1 65 49.2 51.5 54.4 56.4 59.6 65.8 77.1 128.1 70 53.7 56.1 59.1 61.3 64.7 71.3 83.3 138.1 75 58.2 60.7 63.9 66.2 69.7 76.7 89.5 148.1 80 62.7 65.4 68.7 71.1 74.8 82.2 95.8 158.1 85 67.2 70.0 73.5 76.0 79.9 87.7 102.0 168.0 90 71.8 74.7 78.3 80.9 85.0 93.2 108.2 178.0 95 76.3 79.4 83.1 85.9 90.1 98.6 114.4 188.0 100 80.9 84.1 88.0 90.8 95.2 104.1 120.6 198.0 110 90.1 93.5 97.7 100.7 105.5 115.1 133.1 218.0 140 118.0 122.0 127.0 130.6 136.4 148.1 170.5 278.0 ***********************************************************