Zadaci Kodiranje

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 43

Teorijakodiranja

ZADACI

a). Odrediti binarni kod za cifre


0,1,...,9, ako je odgovarajue
kodno stablo prikazano na slici.
1

0
0

0
1
0

0 1
1 2

0
1
0
3

0
1 0 1
4 5 6

1
0
7

0
1 0
8 9

b). Nacrtati kodno stablo za sledei


ternarni kod:
V=
{0,10,11,12,200,201,2220,2221,222

Kljunerei
Svakom kodu odgovara KODNO STABLO ili STABLO
ODLUIVANJA koje predstavlja grafiki prikaz
kodnih ifri u kome vorovi odgovaraju svim
prefiksima (ukljuujui i prazan skup) kodnih
zamena.
Alfabet je konaan, neprazan skup X iji su
elementi
slova.
Operacija
dopisivanja
nadovezuje rei:
x=x1.....xn, y=y1....ym, z=xy z=x1...xny1...ym.
Ako je z=xy, x je PREFIKS, a y SUFIKS u rei z.
Prazan skup zove se i PRAZNA RE
i njom proireni skup se oznaava
O X+ U { })
sa X* (X* =

Kljunerei
Konaan skup A = {1,,a} je ALFABET IZVORA
i B = {1,,b } je ALFABET KODA, za a, b>1.
Broj b je BAZA KODA.
Ako je A A* onda je svako 1-1 preslikavnje

f : A* B * jedno KODIRANJE REI nad A.


Skup V f ( A ) je KOD a njegovi elementi su
*

KODNE ZAMENE.

Binarni kod
0, 1Ternarni kod

0, 1, 2

a).
0

1 0

5 6

0
1
8

0
9

a).
Dekoder uvek kree od poetne faze.
Prvi primljeni bit pokree dekoder prema
zavrnoj fazi.

a).
0

Poetna
taka

1 0

0
1

5 6

001
1

a).

1
2
3

010
0010
1
011
0

7
4
5
6

011
1
100

101
0
101

8
9

1
110
0

0
100
1

Poetna
taka

0
0

1 0

5 6

V = { 0,10,11,12,200,201,2220,2221,22222

b). 0

1
0

10

1 2
11 12
0
0
200

2
2

1
201

2220 2221

2
2
22222

b).
Poetna taka je proizvoljno izabrana.
Svaka kodna zamena zadatog ternarnog
koda se predstavlja u stablu odluivanja
samo jednom.

b). U drugom delu zadatka nije potrebno


postavljati glavne jednaine i vriti
kalkulacije jer se u postavci zadatka
zahteva samo grafiko predstavljanje
kodnog stabla za dati ternarni kod.

zadatka
se
moe
proveriti
a),b Reenje
posmatranjem kodnog stabla koje se grana u
)
korelaciji sa poveanjem duine kodnih zamena
u delu zadatka b).

U prvom delu zadatka sve kodne zamene


dobijenog koda imaju jednak broj cifara (4) to
je takoe evidentno sa stabla odluivanja.

a),b Da bi dekodirao niz kodnih cifara koje su


generisane iz prefiksnog izvornog koda,
)

dekoder izvora kree od poetka niza i dekodira


kodne cifre jednu po jednu. Ovaj proces je
ekvivalentan
procesu
razvijanja
stabla

Ako se svaka kodna zamena


prefiksnog koda zameni njenim
najkraim prefiksom koji nije
prefiks nijedne druge kodne
zamene,
dobija
se
ponovo
prefiksni kod.
Dokazati tvrenje i primeniti na
kod:
V = {000, 001, 011, 1001, 1011,
1101, 1110}

Kljunerei
Kod V je prefiksni (ima svojstvo prefiksa) ako
nijedna njegova kodna zamena nije prefiks neke
druge kodne zamene.
Prefiksni kod omoguava jednoznano dekodiranje.
Kod V omoguava jednoznano dekodiranje ako se
svaka
poruka
moe
jedinstveno
napisati
nadovezivanjem kodnih zamena.

0
1

0
0
000

001

011

V = {000, 001, 011, 1001, 1011,


1101,1110}

1
1001

1
1
1011

1101

1110

Neka je kod V={v1,, vk} nastao od


prefiksnog koda V={v1,,vk}, tako to je svaka
kodna zamena koda V zamenjena njenim
najkraim prefiksom koji nije prefiks nijedne
'

V
druge kodne zamene. Pretpostavlja se da V nije
prefiksni kod, tj. da postoje kodne zamene vi i
vj takve da je vi prefiks od vj.

Postoje etiri mogunosti:


vi = vi i vj = vj;

1
U ovom sluaju dobija se da V nije
.
prefiksni kod, jer je vi prefiks od
vj.

vi = vi i vj je prefiks od vj; vi je prefiks od


vj, a vj je prefiks od vj, odakle sledi da je vi
prefiks od vj, tj. V nije prefiksni kod.
vi je prefks od vi i vj=vj; dobija se da je vi
3
prefiks od vj, to je u suprotnosti sa
.
konstrukcijom koda V (svaka kodna
zamena zamenjuje se njenim najkraim
prefiksom koji nije prefiks nijedne druge
kodne
zamene
vi je
prefiks
od vi iizvV).
j je prefiks od vj; iz toga
4
to je vi prefiks od vj i vj prefiks od vj
.
sledi da je vi prefiks od vj, to je u
suprotnosti sa konstrukcijom koda V (kao
u sluaju
3)
U svakom
navedenom
sluaju pretpostavka da je

2
.

vi prefiks od vj postaje kontradiktorna, pa je


stoga V prefiksni kod.

V = {000, 001, 011, 1001, 1011, 1101,1110}


na
e
k
v
a
t
s
o
p
et
r
p
e
e
s
n
a
j
a
i
z
a
ob
k
d
o
d
a
k
t
no
a
d
d
o
a
h
z
e
et
r
k
p
v
a
t
s
om
o
n
p
e
z
i
m
Pri
kod V d:
ko
i

e
l ed
s
V = {000, 001, 01,100, 101, 110,
111}
Kod V je prefiksni.

Kod V je prefiksni.

Tanost
izvoenja
dokaza
potvruje
injenica da je kod V, nastao tako to je
svaka kodna zamena prefiksnog koda
zamenjena najkraim prefiksom koji nije
prefiks nijedne druge kodne zamene,
takoe prefiksni.

U pojedinim sluajevima kada nije


mogue
izvesti dokaz neke tvrdnje
regularnim tokom, veoma korisno moe
biti postavljanje antiteze a zatim
dokazivati suprotno od prethodno
zahtevanog.

a) Dokazati da se svaki prefiksni kod


moe dopuniti do potpunog
prefiksnog koda.
b) Neka je dat binarni kod
V={10,01,000,111} za alfabet od 4
slova sa verovatnoama (redom kojim
su navedene kodne zamene) , ,
3/16, 1/16.
Bez korienja tablica proceniti
entropiju izvora.
Pokazati da V nije optimalan kod.

Kljunerei
Kod V je prefiksni (ima
svojstvo prefiksa) ako nijedna
njegova kodna zamena nije
prefiks neke druge kodne
zamene.

Prefiksni kod je potpun ako se dodavanjem nove


kodne zamene gubi svojstvo prefiksa.
Neka su n1,...,na, b prirodni brojevi (a, b > 1). Da
bi postojao prefiksni kod V={x1,,xa} nad
alfabetom koda sa bazom b i takav da su duine
njegovih kodnih zamena
redom n1,...,na,
potrebno
je i dovoljno da vai Kraftova
a
nejednakost:
b ni 1 Kraftova nejednakst vai za
sve kodove koji omoguavaju
i 1
jednoznano dekodiranje.

Kljunerei
Entropija izvora predstavlja prosenu koliinu
sadraja informacije po simbolu emitovanom iz
izvora a zavisi od verovatnoe pojavljivanja
simbola u alfabetu.
| A | a
Ako je V optimalni binarni kod za izvor (A,P),
pi 1 p2 ... pa
, onda su kodne zamene va-1 i va
(koje odgovaraju verovatnoama pa-1 i pa) iste
duine.

Prefiksni kod se moe dopuniti do


potpunog prefiksnog koda.

a).

Treba dokazati da se svaki prefiksni kod moe


dopuniti do potpunog prefiksnog koda:

Neka je V = {v1,v2,,vk} prefiksni kod nad


bazom b, i neka je

d max ik1 | vi |
Kada se kod V dopuni svim reima duine
d, iji prefiksi nisu rei koda V, dobija se
prefiksni kod .

b). etiri slova alfabeta su: a1,a2,a3, a4.


P(a1)=1/2

P(a2)=1/4

P(a3)=3/16 P(a4)=1/16
Za entropiju izvora vai procena:

H n v * log 2 b
b).

V = {10, 01, 000, 111}

n v 2 * 1 2 * 1 3 * 3 3 * 1 2.75
2
4
16
16

H 2.75 bita

Greke nisu pronaene.

V nije optimalan kod jer je npr. kod


V1={10, 01, 00, 11} takoe prefiksni
2 je
kod, a zan vnjega
.
Ovaj kod daje i bolju procenu za
H izvora,
2
entropiju
bita.

Za izvor (A, P)
P = {0.3; 0.2; 0.15; 0.1; 0.1; 0.08;
0.05; 0.02}
konstruisati
binarne
kodove
metodom Fanoa i Hufmana i za svaki
kod odrediti
prosenu duinu kodnih zamena.
Uporediti
izvora.

duine

sa

entropijom

Kljunerei
Neka je (A,P) izvor bez memorije,
|A|=a, P={p1,,pa} a V kod ije su duine
kodnih zamena n1,...,na.
a
Veliina

n v pi ni
i 1

je prosena duina kodnih zamena koda V.


Entropija izvora predstavlja prosenu
koliinu sadraja informacije po simbolu
emitovanom iz izvora a zavisi od
verovatnoe simbola u alfabetu.

Postupak
Hufmana

Postupak Fanoa

Ako je V optimalan kod za izvor (A,P) i


bazu b, onda iz pi>pj sledi ni<=nj, gde su
ni i nj duine kodnih zamena koje
odgovaraju redom slovima izvora sa
verovatnoama pi i pj.

n v pi ni
i 1

PROSENA DUINA
KODNIH ZAMENA

H pi log 2 pi
i 1

ENTROPIJA IZVORA

V1 = {00,01,100,101,110, 1110,
11110, 11111}

n v1 =

f(i)
(0.3+0.2)*2+(0.15+0.10+0.10)*3+0.08*4+(0.05+
p
ni
i
i
0.02)*5
8
1 0.3 0 0
00
2
H

p
log
p

2
.
68
=2.72

i
2 i
0
2
1 i 1
01
2
0.2
0
100
3
3
0
0
1
101
3
4 0.1
0
1
110
3
5
5
0
1110
4
1
0.1
6
1
0
0
11110
5
1
7 0.1
11111
5
1
0

8
Postupak Fanoa

A P
1 0.3
2 0
0.2
3 0
4 0.1
5 5
6 0.1
0 0
7 0.1 1
8 0

Postupak

0.0

A 1 P1
1 0.3
2 0
0.2
3 0
4 0.1
5 5
0.1 0
6 0
1
78 0.1

A2 P 2
1 0.3
0
2
0.2
3
0
678 0.1
0
5
4
0.1 1
5
5

0.1
0

0.0

0.1

A 3 P3
1
0.3
0
2
0.2
45
0
0
3
0.2
678 0 1
0.1
5

Postupak
Hufmana

0.1
5

A 4 P4
1
0.3
3678 0
0.3
0
2
0
45 0.2 1
0
0.2
0

A5
P5
245 0.4
0
1
0
0.3
3678 0 1
0.3
0

A6 P6
13678 0.6 0
0
245
1

f (A)

ni

1 0.30 00 2
0.4
0 f(i)
0.20 10
2
Kodna zamena

2
Vsastavljena
0110, 01110,
2 = {00,10,010,110,111,
je
od
0.15 010
3

01111}
3
_
simbola
koji
su
n v2= indeksu tog
dodeljeni
4 0.10 110 3
0.10 111
3
slova u (0.3+0.2)*2+(0.15+0.10+0.10)*3+0.08*4+(0.05+0.0
svakom
koraku,
2)*5
8
5
idui
od
poslednjeg
0.08
0110 4
H

p
log
p

2
.
68
i
=2.72
izvora unazad,
pa je:
2 6 i

i 1

Postupak

0.05 0111
7 0.02 0
0111
8
1

5
5

Greke nisu pronaene.

I Hufmanov algoritam i postupak Fanoa


daju optimalni kod, i vai:
_

H nv H 1

Izvor emituje simbole a i b sa


verovatnoama 0.2 i 0.8.
Odrediti
optimalni
kod
za
odgovarajui izvor nad {a,b}3
(skup rei duine 3) i uporediti
srednju duinu kodnih zamena sa
entropijom izvora.

Postupak

Ako je V optimalan kod za izvor (A,P) i


bazu b, onda iz pi>pj sledi ni<=nj, gde su
ni i nj duine kodnih zamena koje
odgovaraju redom slovima izvora sa
verovatnoama pi i pj.

n v pi ni
i 1

PROSENA DUINA
KODNIH ZAMENA

H pi log 2 pi
i 1

ENTROPIJA IZVORA

Izvor nad {a,b}3 sastoji se od 23


elemenata:
{bbb, bba, bab, abb, aab, baa, aba,
aaa}. Oznaeni su redom sa 1, 2,..., 8.
Poto je p(a)=0.2 i p(b)=0.8, verovatnoe
pojedinih rei od 1 do 8 su:

P(1)=0.83=0.512
P(2)=P(3)=P(4)=0.82*0.2=0.128
P(5)=P(6)=P(7)=0.8*0.22=0.032
P(8)=0.23=0.008

A P
1 0.512
2 0.128
3 0.128
0.128
4
0.032
5
0.032
6 0.032 0
7 0.008 1
8

Postupak

A 1 P1
1 0.51
2
2
0.12
3
8
4 0.12
78 8
0.12 0
5
8 1
6 0.04
0.03
2

A2 P 2
1 0.512
2 0.128
3 0.128
0.128
4
0.064 0
56
0.04 1
78

A 3 P3
1
0.51
2
2
0.12
3
8
0
4
0.12
5678 8 1
0.12
8

0.10
Postupak 4
Hufmana

A 4 P4
1
0.51
45678 2
0.23
0
2
2
3
0.12 1
8
0.12
8

A 5 P5
1
0.512
23 0.256 0
45678 0.232 1
A6
1
2345678

P6
0.512 0
0.488 1

Optimalan kod prikazan je u sledeoj


tablici:

f (A)

ni

1
2
3
4
5
6
7
8

0.51
2

00

1
3
3
3
5
5
5
5

0.12
8

100
101

i 1

n v pi ni

n v =0.512*1+(0.128+0.128+0.

128)*3+(0.032+0.032+0.032
+0.008)*5 =2.184

110
0.12
1110
8
8
0
0.12
H pi log 2 pi 2.166
i 1
1110
8
1
0.03
1111
2
0
0.03
V={0, 100,101,
1111 110, 11100, 11101,
2
11110,11111}
1
0.03

Greke nisu pronaene.

n v 2.184
H 2.166
Prosena duina kodnih zamena je
veoma bliska donjoj granici entropiji
izvora.

HVALA
NA
PANJI

ZADACI
ZA
HOMEWORK

Odrediti koji su od sledeih kodova prefiksni:


a)V={1, 21, 22, 200, 2012}, (nad alfabetom B ={0,1,2});
b)V={000,001,010,0110,0111,1000,1001} (B ={0,1});
c)V={aa,ac,aab,abc} (B={a, b, c});
d)V={a, bc, bd, cda,cdb, cdd, dbca, dbcb} (B={a,b,c,d}).

U tekstovima
a). INENJERSKE ANALIZE i
b). TEORIJA KOMUNIKACIJA
Odrediti frekvenciju pojavljivanja slova, kodirati
optimalnim binarnim i optimalnim ternarnim kodom.
04/13/16

ih

You might also like