You are on page 1of 12

UNIVERZITET U TUZLI

FAKULTET ELEKTROTEHNIKE

Laboratorijske vježbe
Teorija informacija i kodovanje

Amera Sinanović

Tuzla,Septembar 2020. godine


2
Laboratorijska vježba 1

Zadatak 1.1 Ko-


risteći Python generisati nekoliko:

a) realnih brojeva iz intervala (0,1) prema uniformnoj raspodjeli.

b) realnih brojeva iz intervala (-5,5) prema uniformnoj raspodjeli.

c) cijelih brojeva iz intervala (0,1) prema uniformnoj raspodjeli.

d) cijelih brojeva sa srednjom vrijednošću 0 i standardnom devijacijom 1 prema normalnoj raspodjeli.

e) realnih brojeva sa srednjom vrijednošću 1 i standardnom devijacijom 2 prema normalnoj raspodjeli.


Ako pretpostavimo da su vrijednosti dobijene u prethodnim tackama izlaz informacionog izvora,
navesti primjere ovakvih izvora u realnom svijetu.

Rješenje

1 # -* - coding : utf -8 -* -
2 """
3 Generisati nekoliko slucajnih realnih brojeva iz intervala (0 ,1)
4 prema uniformnoj raspodjeli .
5 """
6 import numpy as np
7 from numpy import random
8 import matplotlib . pyplot as plt
9 from numpy import cos , pi
10
11 N =100;
12
13 x = random . rand ( N ) # unifromna raspodjela
14 n = np . arange ( N )
15
16
17 plt . stem (n ,x , ’r ’)
18 plt . xlabel ( " n " )
19 plt . ylabel ( " x [ n ] " )
20 plt . grid ()
21
22
23 x =10* random . rand ( N ) -5
24
25 plt . figure (2)
26 plt . stem (n ,x , ’b ’)
27 plt . xlabel ( " n " )
28 plt . ylabel ( " x [ n ] " )
29 plt . grid ()
30
31 x = np . round ( random . rand ( N ) )
4

32
33 plt . figure (3)
34 plt . stem (n ,x , ’g ’)
35 plt . xlabel ( " n " )
36 plt . ylabel ( " x [ n ] " )
37 plt . grid ()
38
39 x = random . randn ( N ) # normalna raspodjeal sa sr . 0 i st . dev . 1
40 plt . figure (4)
41 plt . stem (n ,x , ’y ’)
42 plt . xlabel ( " n " )
43 plt . ylabel ( " x [ n ] " )
44 plt . grid ()
45
46
47 x = random . randn ( N ) # normalna raspodjeal sa sr . 0 i st . dev . 1
48 plt . figure (4)
49 plt . stem (n ,x , ’y ’)
50 plt . xlabel ( " n " )
51 plt . ylabel ( " x [ n ] " )
52 plt . grid ()
53
54 x =1+ 2* random . randn ( N ) # normalna raspodjeal sa sr . 1 i st . dev . 2
55 plt . figure (5)
56 plt . stem (n ,x , ’k ’)
57 plt . xlabel ( " n " )
58 plt . ylabel ( " x [ n ] " )
59 plt . grid ()
60
61
62 x =1+ 5* random . randn ( N ) # normalna raspodjeal sa sr . 1 i st . dev . 5
63 plt . figure (5)
64 plt . stem (n ,x , ’m ’)
65 plt . xlabel ( " n " )
66 plt . ylabel ( " x [ n ] " )
67 plt . grid ()

Slika 1.1 Slika 1.2 Slika 1.3

Slika 1.4 Slika 1.5 Slika 1.6


5

Zadatak 1.2 Im-


plementirati model diskretnog binarnog izvora bez memorije kod koga je vjerovatnoća simbola "1"
jednaka p. Generisati nekoliko vrijednosti koristeći implementirani izvor ako je vjerovatnoća:

a) p = 0.1,

b) p = 0.5,

c) p = 0.5 a zatim dobijenim vrijednostima dodati AWGNsumcija je srednja vrijednost nula i varijansa
0.1.

d) Navesti par primjera diskretnog izvora bez memorije.

e) Simboli nakon dodavanja AWGN suma u dijelu zadatka c) predstavljaju realnu situaciju u komu-
nikacijskom sistemu. Objasniti.

1 # -* - coding : utf -8 -* -
2 import numpy as np
3 from numpy import random
4 import matplotlib . pyplot as plt
5
6 N =100;
7 n = np . arange ( N )
8 x = random . rand ( N ) # unifromna raspodjela
9
10 # p - vjerovatnoca simbola 1
11
12 p =0.1
13
14 x1 = np . zeros ( N )
15
16 i =0;
17 while i < N :
18 if x [ i ] < p :
19 x1 [ i ]=1;
20 else :
21 x1 [ i ]=0;
22 i = i +1;
23
24 plt . stem (n , x1 , ’r ’)
25 plt . xlabel ( " n " )
26 plt . ylabel ( " x1 [ n ] " )
27 plt . grid ()
28
29 # p - vjerovatnoca simbola 1
30
31 p =0.5
32
33 x1 = np . zeros ( N )
34
35 i =0;
36 while i < N :
37 if x [ i ] < p :
38 x1 [ i ]=1;
39 else :
40 x1 [ i ]=0;
41 i = i +1;
42
43 plt . figure (2)
44 plt . stem (n , x1 , ’g ’)
45 plt . xlabel ( " n " )
46 plt . ylabel ( " x1 [ n ] " )
47 plt . grid ()
48
49
6

50 # p - vjerovatnoca simbola 1
51
52 N =50
53 p =0.5
54 n = np . arange ( N )
55 x1 = np . zeros ( N )
56 # sum
57 x2 = 0.1* random . rand ( N )
58
59 i =0;
60 while i < N :
61 if x [ i ] < p :
62 x1 [ i ]=1;
63 else :
64 x1 [ i ]=0;
65 i = i +1;
66
67 x = x1 + x2
68 plt . figure (3)
69 plt . stem (n ,x , ’k ’)
70 plt . xlabel ( " n " )
71 plt . ylabel ( " x [ n ] " )
72 plt . grid ()
73
74
75 plt . figure (4)
76 plt . stem (n , x2 , ’y ’)
77 plt . xlabel ( " n " )
78 plt . ylabel ( " x2 [ n ] " )
79 plt . grid ()

Slika 1.7 Slika 1.8

Slika 1.9 Slika 1.10


UNIVERZITET U TUZLI
FAKULTET ELEKTROTEHNIKE

Laboratorijske vježbe
Teorija informacija i kodovanje

Amera Sinanović

Tuzla,Septembar 2020. godine


2
Laboratorijska vježba 2

Zadatak 2.1

Diskretni izvor bez memorije opisan je alfabet od X = x1, x2, x3, x4 i vjerovatnoćama p(X) =
0.4, 0.3, 0.2, 0.1.

a) Odrediti entropiju H(X).

b) Izračunati količinu informacija sadržanu u porukama x1x2x1x3 i x4x3x3x2 te uporediti sa vrijed-


nostima u dijelu zadatka a).

c) Ako bi smo u dijelu zadatka b) izmjenili poredak simbola da li ce se promjeniti kolicina informacije?
Demonstrirati i objasniti.

d) Ako povećamo broj simbola u sekvenci, da li će količina informacije porasti? Demonstrirati i


objasniti.

e) Kada je količina informacije maksimalna? Demonstrirati i objasniti.

Rješenje

1 # -* - coding : utf -8 -* -
2 """
3 Diskretni izvor bez memorije opisan je alfabet od X = { x1 , x2 , x3 , x4 }
4 i v j e r o v a t n o a m a p ( X ) ={0.4 , 0.3 , 0.2 , 0.1}.
5 """
6
7 import numpy as np
8 from numpy import random , sum , log2
9 import matplotlib . pyplot as plt
10
11 p = np . array ([0.4 , 0.3 , 0.2 , 0.1])
12 # entropija
13 H = - sum ( p * log2 ( p ) )
14
15 # k o l i i n a informacija s a d r a n u u poruci x1x2x1x3
16 p1 = p [0] * p [1]* p [0] * p [2]
17 I1 = - log2 ( p1 )
18
19 # k o l i i n a informacija s a d r a n u u poruci x4x3x3x2
20 p2 = p [3] * p [2]* p [2] * p [1]
21 I2 = - log2 ( p2 )
22
23 # makismalna entropija
24
25 p = np . linspace (0 , 1 ,100)
26 H = - p * log2 ( p ) - (1 - p ) * log2 (1 - p ) ;
27
28
4

29 plt . plot (p ,H , ’b ’)
30 plt . xlabel ( " p ( x ) " )
31 plt . ylabel ( " H ( x ) " )
32 plt . title ( " Zavisnost enptropije od vjerovatnoce " )
33 plt . grid ()

Slika 2.1: Zavisnost entropije od vjerovatnoće pojavljivanja simpbola


5

Zadatak 2.2

Odrediti entropiju diskretno izvora bez memorije ako izvrsimo drugo prosirenje izvora. Izvor je opisan
sa alfabetom:

a) X = x1, x2 i vjerovatnoćama p(X) = 0.8, 0.2.


b) X = x1, x2, x3 i vjerovatnoćama p(X) = 0.50.3, 0.2.
c) X = x1, x2, x3, x4 i vjerovatnoćama p(X) = 0.4, 0.3, 0.2, 0.1.
d) Proširenje izvora ima određene posljedice u pogledu simbola i njihovih vjerovatnoća. Objasniti.
e) Odrediti koliko će simbola imati izvor sa m simbola nakon n-tog proširenja.

Rješenje

1 # -* - coding : utf -8 -* -
2 import numpy as np
3 from numpy import random , sum , log2
4 import matplotlib . pyplot as plt
5
6 # p ( X ) = {0.8 , 0.2}
7 p2 = np . array ([0.8 ,0.2])
8 # entropija
9 H2 = - sum ( p2 * log2 ( p2 ) )
10
11
12 # drugo prosirenje izvora sa dva simbola
13
14 p22 = np . array ([0.8*0.8 , 0.2*0.8 , 0.2*0.8 , 0.2*0.2])
15 # entropija
16 H22 = - sum ( p22 * log2 ( p22 ) )
17
18 # p ( X ) = {0.5 , 0.3 , 0.2}.
19 p3 = np . array ([0.5 ,0.3 , 0.2])
20 # entropija
21 H3 = - sum ( p3 * log2 ( p3 ) )
22
23
24 # drugo prosirenje izvora sa dva simbola
25
26 p32 = np . array ([ p3 [0] * p3 , p3 [1] * p3 , p3 [2] * p3 ])
27 # entropija
28 H32 = - sum ( p32 * log2 ( p32 ) )
29
30
31 # p ( X ) = {0.4 , 0.3 , 0.2 , 0.1}.
32 p4 = np . array ([0.4 ,0.3 , 0.2 , 0.1])
33 # entropija
34 H4 = - sum ( p4 * log2 ( p4 ) )
35
36
37 # drugo prosirenje izvora sa dva simbola
38
39 p42 = np . array ([ p4 [0] * p4 , p4 [1] * p4 , p4 [2] * p4 , p4 [3] * p4 ])
40 # entropija
41 H42 = - sum ( p42 * log2 ( p42 ) )

Zadatak 2.3 Dis-


kretni izvor bez memorije X opisan je alfabetom X koji sadrži 35 simbola i odgovarajućim vjerovatno-
ćama pi . Vjerovatnoća da je generisani simbol iz intervala (1, 5) je 0.5, iz intervala (6, 15) je 0.25 i
intervala (16, 35) je 0.25.
6

a) Odrediti entropiju diskretnog izvora uz pretpostavku da su vjerovatnoće simbola za pojedine inter-


vale međusobno jednake.
b) Generisati 50 slučajnih brojeva koji podliježu datoj raspodjeli. Da li matematićcki model doista
opisuje dati izvor? Povećati broj generisanih simbola na 5000, šta primjećujemo?

Rješenje

You might also like