03.06.2013 Views

Laborator 4. Coduri instantanee - STUD.usv.ro

Laborator 4. Coduri instantanee - STUD.usv.ro

Laborator 4. Coduri instantanee - STUD.usv.ro

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1. Int<strong>ro</strong>ducere<br />

1. Int<strong>ro</strong>ducere<br />

2. Codarea Shannon-Fano<br />

3. Codarea Huffman<br />

<st<strong>ro</strong>ng>4.</st<strong>ro</strong>ng> P<strong>ro</strong>cedeul de codare Huffman generalizat<br />

5. Exerciţii p<strong>ro</strong>puse<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> <st<strong>ro</strong>ng>4.</st<strong>ro</strong>ng><br />

<st<strong>ro</strong>ng>Coduri</st<strong>ro</strong>ng> <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng><br />

În comunicaţiile digitale, o p<strong>ro</strong>blemă importantă o reprezintă transmisia eficientă şi stocarea informaţiei.<br />

Pentru stocarea şi transmisia digitală a datelor este necesar ca informaţia să fie reprezentată într-o formă binară.<br />

În acest scop, sursa primară de informaţie cu alfabetul S = {s1, s2 ,..., sN} este adaptată statistic la canalul de<br />

transmisiuni, care acceptă simbolurile din mulţimea X = {x1, x2 ,..., xM}, numită alfabetul de la intrarea canalului sau<br />

alfabetul codului folosit. Fiecărui mesaj sk, k =1,N , i se ataşează un cuvânt de cod, ck, format dintr-o succesiune de<br />

simboluri xk∈X , de aşa manieră încât timpul necesar transmiterii informaţiei sursei primare să fie minim.<br />

Alfabetul codului cel mai utilizat este alfabetul binar ( X = { 0,<br />

1}<br />

, M=2).<br />

Definiţie: un cod se numeşte nesingular, dacă toate cuvintele de cod sunt distincte.<br />

Definiţie: un cod se numeşte unic decodabil, dacă fiecărei succesiuni de simboluri recepţionate îi corespunde<br />

o singură succesiune de mesaje ale sursei primare S.<br />

Deşi se pot utiliza coduri cel puţin unic decodabile, există si o subclasă a codurilor unic decodabile numite<br />

coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>. Aceste coduri prezintă p<strong>ro</strong>prietăţi utile pentru construcţia şi analiza lor şi sunt potrivite pentru<br />

implementarea p<strong>ro</strong>cesele de codare şi decodare.<br />

Definiţie: un cod se numeşte instantaneu, dacă nici un cuvânt de cod nu este prefix pentru celelalte cuvinte<br />

de cod.<br />

Evident, dacă un cod este instantaneu, el este şi unic decodabil, recip<strong>ro</strong>ca nefiind totdeauna adevărată.<br />

Definiţie: lungimea unui cuvânt de cod reprezintă numărul de simboluri din alfabetul codului, din care este<br />

format cuvântul respectiv.<br />

Pentru o sursă discretă de informaţie şi un alfabet de cod impus, se poate întocmi o mulţime de coduri<br />

<st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng> sau unic decodabile. În scopul comparării acestora şi a alegerii celui sau celor mai bune (eficiente), se<br />

consideră drept criteriu de comparaţie timpul necesar transmiterii informaţiei sursei codate.<br />

Un cod instantaneu va fi cu atât mai eficient, cu cât timpul necesar transmiterii informaţiei sursei discrete va fi<br />

mai mic. Este posibil să se întocmească o multitudine de coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng> de eficienţă maximă.<br />

Pentru a compara diverse coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>, se va defini lungimea medie a cuvintelor de cod, care este p<strong>ro</strong>porţională<br />

cu timpul mediu de transmitere a cuvintelor de cod.<br />

Cel mai eficient cod instantaneu care se obţine, este cel pentru care lungimea medie a cuvintelor de cod este<br />

minimă.<br />

Dacă l1, l2, …, lN sunt lungimile cuvintelor de cod, lungimea medie a acestora se calculează cu relaţia:<br />

l =<br />

N<br />

∑<br />

k = 1<br />

p<br />

( s )<br />

k lk<br />

Definiţie: un cod se numeşte absolut optimal, dacă eficienţa acestuia este maximă.<br />

P<strong>ro</strong>prietăţile unui cod optimal:<br />

Pentru orice sursă discretă S = {s1, s2 ,..., sN}, un cod binar (M=2) fără prefix, optimal în raport cu minimizarea<br />

lungimii medii a cuvintelor de cod, are următoarele p<strong>ro</strong>prietăţi:<br />

1. Dacă p ( si<br />

) > p(<br />

s j ) , atunci li ≤ l j ;<br />

2. Ultimelor două simboluri de cea mai mică p<strong>ro</strong>babilitate din alfabetul sursei le corespund cuvinte de cod de<br />

aceeaşi lungime;<br />

3. Dacă există două sau mai multe cuvinte de cod de aceeaşi lungime, atunci două dintre aceste cuvinte diferă<br />

numai prin ultimul simbol.<br />

Definiţie: se numeşte eficienţa unui cod şi va fi notată cu η , raportul dintre marginea inferioară a lungimii<br />

medii a cuvintelor de cod şi lungimea medie a acestora, adică:


Teoria Transmiterii Informaţiei<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> 4<br />

2<br />

( S)<br />

H<br />

η =<br />

l log M<br />

Definiţie: se numeşte redundanţa unui cod şi va fi notată cu ρ, mărimea complementară eficienţei, adică:<br />

ρ = 1 −η<br />

N<br />

biti<br />

H ( S)<br />

= −∑<br />

p(<br />

sk<br />

) log p(<br />

sk<br />

) < > ent<strong>ro</strong>pia sursei<br />

k = 1<br />

mesaj<br />

Din punct de vedere fizic, ent<strong>ro</strong>pia măsoară informaţia medie pe mesaj, respectiv nedeterminarea medie a<br />

sursei respective.<br />

2. Codarea Shannon-Fano<br />

Codarea Shannon-Fano se bazează pe ideea că pentru simboluri furnizate cu p<strong>ro</strong>babilităţi echip<strong>ro</strong>babile se vor<br />

obţine cuvinte de cod de lungime egală. Se descrie în continuare metoda Shannon-Fano de obţinere a codurilor<br />

<st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>.<br />

Se consideră că sursa S va furniza k simboluri, , i = 1,<br />

k , şi p<strong>ro</strong>babilităţile asociate fiecărui simbol,<br />

( s ) i 1,<br />

k<br />

p i<br />

, = .<br />

Fie p( s ) ≥ p(<br />

s ) ≥ ... ≥ p(<br />

sk<br />

) , i = 1,<br />

k<br />

1 2<br />

În cazul codării binare cele k simboluri sunt împărţite în două subgrupuri, notate 0 S şi S 1 , astfel încât suma<br />

p<strong>ro</strong>babilităţilor mesajelor incluse în 0 S să fie egală cu suma mesajelor p<strong>ro</strong>babilităţilor incluse în S 1 .<br />

Fiecărui subgrup i se atribuie simbolul “0” sau “1”, (sau invers). Fiecare subgrup 0 S şi S 1 , se divide mai<br />

departe in două subgrupuri S 00 şi S 01 , respectiv în S 10 şi S 11,<br />

astfel încât suma p<strong>ro</strong>babilităţilor mesajelor incluse în<br />

cele patru submulţimi să fie aceeaşi. Se atribuie submulţimilor S 00 şi S10 ca al doilea simbol "0", iar submulţimilor<br />

S 01 şi S 11 ca al doilea simbol "1" (sau invers).<br />

Se p<strong>ro</strong>cedează în mod analog până se obţin submulţimi care conţin un singur mesaj. Se observă că fiecare<br />

submulţime are suma p<strong>ro</strong>babilităţilor mesajelor incluse egală cu o putere întreagă a lui (1/2).<br />

Deoarece la fiecare partiţionare în două submulţimi atribuirea mesajelor "0" şi "1" este arbitrară, rezultă că prin acest<br />

p<strong>ro</strong>cedeu se pot obţine o multitudine de coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>, dar toate absolut optimale.<br />

Exemple:<br />

1. Se consideră o sursa discretă de informaţie S care furnizează 8 simboluri şi p<strong>ro</strong>babilităţile asociate fiecărui<br />

simbol:<br />

2 −<br />

p s = p s = ,<br />

1<br />

( 1)<br />

( 2 )<br />

2<br />

( 3)<br />

( 4 ) 2 −<br />

s = p s =<br />

4<br />

( ) ( ) ( ) ( ) 2 −<br />

s = p s = p s = p s =<br />

p ,<br />

p .<br />

5<br />

6<br />

7<br />

8<br />

mesaje p<strong>ro</strong>babilităţi Partiţii Cuvinte de cod<br />

s 1<br />

1<br />

2 − s<br />

0<br />

0<br />

1<br />

00<br />

01<br />

s<br />

s<br />

s<br />

s<br />

s<br />

s<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

1<br />

2 −<br />

s i<br />

2<br />

2 − 0 100<br />

2<br />

2 −<br />

0 1 101<br />

4<br />

2 − 0 1100<br />

4<br />

2 −<br />

0 1 1101<br />

4<br />

2 − 0 1110<br />

4<br />

2 −<br />

1<br />

1<br />

1 1 1111


Teoria Transmiterii Informaţiei<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> 4<br />

2. Se consideră o sursa discretă de informaţie S care furnizează 8 simboluri şi p<strong>ro</strong>babilităţile asociate fiecărui<br />

simbol:<br />

p ( s1<br />

) = 1/<br />

2 , p ( s2<br />

) = p(<br />

s3<br />

) = 1/<br />

8 ,<br />

p ( s ) = p(<br />

s ) = p(<br />

s ) = 1/<br />

16 , ( s ) = p(<br />

s ) = 1/<br />

32<br />

4<br />

3. Codarea Huffman<br />

5<br />

6<br />

p .<br />

7<br />

8<br />

mesaje p<strong>ro</strong>babilităţi Partiţii Cuvinte de cod<br />

s 1/2 0 0<br />

1<br />

s 1/8<br />

2<br />

0 100<br />

0<br />

s 1/8<br />

1 101<br />

3<br />

s 4<br />

s 5<br />

1/16<br />

1/16 1<br />

0<br />

0<br />

1<br />

1100<br />

1101<br />

s 6<br />

1/16 1 0 1110<br />

s 7<br />

s<br />

1/32<br />

1/32<br />

1 0<br />

1<br />

1<br />

11110<br />

11111<br />

8<br />

În acest paragraf se descrie clasa codurilor <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng> cunoscute sub denumirea de coduri Huffman<br />

Algoritmul de codare p<strong>ro</strong>pus de Huffman încearcă să atribuie fiecărui simbol un cuvânt de cod de lungime<br />

p<strong>ro</strong>porţională cu cantitatea de informaţie transmisă de acel simbol.<br />

<st<strong>ro</strong>ng>Coduri</st<strong>ro</strong>ng>le Huffman sunt importante pentru că sunt coduri compacte. Algoritmul Huffman va p<strong>ro</strong>duce coduri<br />

cu lungimea medie a cuvintelor de cod cea mai mică posibilă, pentru un număr dat de simboluri ale sursei şi un alfabet<br />

al codului. De asemenea prin reodonarea adecvată a simbolurilor vor rezulta coduri care au cea mai mica dispersie<br />

posibilă.<br />

Acest p<strong>ro</strong>cedeu se bazează pe ideea de a partiţiona mulţimea mesajelor sursei S = {s1, s2 ,..., sN} în<br />

S să fie cât mai ap<strong>ro</strong>piată de suma<br />

submulţimile 0 S şi S 1 , astfel încât suma p<strong>ro</strong>babilităţilor mesajelor incluse în 0<br />

p<strong>ro</strong>babilităţilor mesajelor incluse în S 1 .<br />

La rândul lor, submulţimile 0 S şi S1 pot fi partiţionate în submulţimile S 00 şi S 01 , respectiv în S 10 şi S 11<br />

astfel încât suma p<strong>ro</strong>babilităţilor mesajelor incluse în cele patru submulţimi să fie cât mai ap<strong>ro</strong>piate posibil. P<strong>ro</strong>cedeul<br />

se continuă în mod similar până când se obţin submulţimi ce conţin un singur mesaj.<br />

În felul acesta, pentru orice distribuţie a sursei S ce urmează a fi codată se va obţine un cod compact, adică<br />

lungimi medii ale cuvintelor de cod ce nu mai pot fi micşorate prin nici un alt p<strong>ro</strong>cedeu de codare.<br />

Pentru ca partiţiile să satisfacă condiţiile menţionate, se p<strong>ro</strong>cedează astfel:<br />

1) Se ordonează mulţimea mesajelor sursei S în ordinea descrescătoare a p<strong>ro</strong>babilităţilor, obţinându-se astfel<br />

mulţimea ordonată R0= {s1, s2 ,..., sN}, cu p( s1<br />

) ≥ p(<br />

s2<br />

) ≥ ... ≥ p(<br />

sk<br />

) , cu schimbarea eventuală a indicilor mesajelor<br />

pentru realizarea ordonării respective;<br />

2) Se reunesc ultimele două mesaje (de p<strong>ro</strong>babilităţile cele mai mici) într-un nou mesaj, notat cu r1, căruia i<br />

se alocă o p<strong>ro</strong>babilitate egală cu suma p<strong>ro</strong>babilităţilor mesajelor componente. Se ordonează din nou mesajele în<br />

ordinea descrescătoare a p<strong>ro</strong>babilităţilor, formându-se astfel prima sursă restrânsă R1= {s1, s2 ,..., r1,…}, , cu<br />

p ( s1)<br />

≥ p(<br />

s2<br />

) ≥ ... ≥ p(<br />

r1<br />

) ≥ ...<br />

3) Se reunesc ultimele două mesaje din sursa restrânsă R1 într-un nou mesaj r2, de p<strong>ro</strong>babilitate egală cu suma<br />

p<strong>ro</strong>babilităţilor mesajelor componente. Se ordonează mesajele în ordine descrescătoare, formându-se astfel sursa<br />

restrânsă R2. În mod analog, din R2 se formează sursa restrânsă R3 şi aşa mai departe, până când se obţine o sursă<br />

restrânsă formată numai din două mesaje, Rn= {rn, rn-1}, cu p ( rn<br />

) ≥ p(<br />

rn<br />

−1)<br />

. De fapt, rn va fi S0 şi rn-1 va fi S1 sau<br />

invers.<br />

Din modul de formare a surselor restrânse Ri, rezultă că mulţimea S a mesajelor poate fi partiţionată în două<br />

r p r sunt cele mai ap<strong>ro</strong>piate posibil. La rândul lor,<br />

submulţimi rn, rn-1 astfel încât p<strong>ro</strong>babilităţile p ( ) şi ( )<br />

n<br />

3<br />

n−1


Teoria Transmiterii Informaţiei<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> 4<br />

submulţimile rn, rn-1, pot fi partiţionate în alte două submulţimi, de p<strong>ro</strong>babilităţile cele mai ap<strong>ro</strong>piate posibil.<br />

Partiţionările se continuă până se obţin submulţimi care conţin un singur mesaj.<br />

4) Cuvintele de cod corespunzătoare fiecărui mesaj se obţin astfel:<br />

- submulţimii rn i se alocă simbolul "0" (sau "1");<br />

- submulţimii rn-1, i se alocă simbolul "1" (sau "0");<br />

-la fiecare partiţionare se alocă arbitrar celor două submulţimi "0" sau "1", operaţia continuându-se<br />

până se obţin submulţimi ce conţin un singur mesaj sk, k =1,N .<br />

Deoarece alocarea lui "0" şi "1" este arbitrară la fiecare partiţionare, rezultă că unei surse S i se pot ataşa o<br />

multitudine de coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>, toate, însă, având aceeaşi lungime medie a cuvintelor de cod, care nu mai poate fi<br />

micşorată prin nici un alt p<strong>ro</strong>cedeu de codare a mesajelor luate individual.<br />

Prin acest p<strong>ro</strong>cedeu de codare se pot realiza 2N−1 coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>, toate având toate aceeaşi lungime<br />

medie a cuvintelor de cod.<br />

Prin definiţie, se numeşte cod compact, codul care realizează lungimea medie minimă a cuvintelor de cod.<br />

Deoarece prin p<strong>ro</strong>cedeul de codare Huffman se obţine cea mai mică lungime medie a cuvintelor de cod,<br />

înseamnă că prin acest p<strong>ro</strong>cedeu se obţin coduri <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng> compacte. Evident, un cod absolut optimal este şi<br />

compact, recip<strong>ro</strong>ca nefiind totdeauna valabilă.<br />

Exemple:<br />

1. Se consideră o sursa discretă de informaţie S care furnizează 5 simboluri şi p<strong>ro</strong>babilităţile asociate fiecărui<br />

simbol:<br />

p ( s ) 0.<br />

2 , p ( s ) 0.<br />

4 , ( ) 0.<br />

1 s p , ( ) 1 . 0 p s , ( ) 0.<br />

2 s<br />

1 =<br />

2 =<br />

3 =<br />

4 =<br />

4<br />

p .<br />

1.a) Pentru această sursă se efectuează codarea Huffman, plasând întâi mesajele sursei restrânse pe poziţiile<br />

cele mai jos posibile în listă şi apoi pe poziţiile cele mai de sus posibile.<br />

Rezultă schema de codare şi cuvintele de cod asociate :<br />

5 =<br />

Pentru acest cod, lungimea medie şi dispersia sunt definite de relaţiile:<br />

l<br />

σ<br />

N<br />

= ∑<br />

k = 1<br />

p<br />

N<br />

2<br />

1 = ∑<br />

k=<br />

1<br />

biti<br />

mesaj<br />

( s ) l = 2.<br />

2 < ><br />

p<br />

k<br />

k<br />

2<br />

( s )( l − l)<br />

= 1.<br />

88<br />

k<br />

k<br />

simbol p<strong>ro</strong>babilităţi Codare Huffman<br />

s 1 p ( s1<br />

) = 0.<br />

2 01<br />

s 2 p ( s2<br />

) = 0.<br />

4 1<br />

s ( ) 0.<br />

1 s p 0010<br />

3<br />

4<br />

3 =<br />

s ( s ) 0.<br />

1<br />

5<br />

p 0011<br />

4 =<br />

s ( ) 0.<br />

2 s<br />

p 000<br />

5 =


Teoria Transmiterii Informaţiei<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> 4<br />

1.b) Pentru cazul în care în codarea Huffman mesajele sursei restrânse se plasează pe poziţiile cele mai de sus<br />

în listă, se obţine schema de codare din figura următoare:<br />

simbol p<strong>ro</strong>babilităţi Codare Huffman<br />

s 1 p ( s1<br />

) = 0.<br />

2 10<br />

s 2 p ( s2<br />

) = 0.<br />

4 00<br />

s ( ) 0.<br />

1 s p 010<br />

Pentru acest cod, lungimea medie şi dispersia sunt:<br />

l<br />

N<br />

p(<br />

sk<br />

) lk<br />

= 2.<br />

2<br />

biti<br />

< ><br />

mesaj<br />

σ<br />

= ∑<br />

k = 1<br />

N<br />

2<br />

2 = ∑<br />

k = 1<br />

p<br />

2<br />

( s )( l − l)<br />

= 0.<br />

16<br />

k<br />

k<br />

5<br />

3<br />

4<br />

3 =<br />

s ( s ) 0.<br />

1<br />

5<br />

p 011<br />

4 =<br />

s ( ) 0.<br />

2 s<br />

p 11<br />

Codul Huffman din exemplul 1b are dispesia mai mică decât codul obţinut în exemplul 1a.<br />

Deşi din punct de vedere informaţional, cele două coduri sunt identice, în practică se preferă folosirea celor de<br />

dispersie minimă, din motive de transmisie.<br />

<st<strong>ro</strong>ng>4.</st<strong>ro</strong>ng> P<strong>ro</strong>cedeul de codare Huffman generalizat<br />

În acest caz, alfabetul codului conţine mai mult de două simboluri. P<strong>ro</strong>cedeul de codare este asemănător celui<br />

din cazul binar, parcurgându-se următoarele etape:<br />

1) Se ordonează mesajele sursei ce urmează a fi codată în ordinea descrescătoare a p<strong>ro</strong>babilităţilor;<br />

2) Dacă alfabetul codului conţine M ≥ 3 simboluri, se reunesc ultimele M mesaje (de p<strong>ro</strong>babilităţile cele mai<br />

mici) într-un singur mesaj, căruia i se alocă p<strong>ro</strong>babilitatea egală cu suma p<strong>ro</strong>babilităţilor mesajelor componente. Se<br />

ordonează din nou mesajele în ordinea descrescătoare a p<strong>ro</strong>babilităţilor, formându-se astfel prima sursă restrânsă R1.<br />

P<strong>ro</strong>cedându-se în mod analog, se formează sursa restrânsă R2 din R1, R3 din R2 şi aşa mai departe, până când se<br />

obţine o sursă restrânsă care conţine M mesaje. Pentru ca ultima sursă restrânsă să conţină M mesaje că<strong>ro</strong>ra să li se<br />

aloce arbitrar cele M mesaje din alfabetul codului, înainte de a realiza restrângerile respective, se face următorul<br />

raţionament:<br />

- la formarea primei surse restrânse, reunindu-se M mesaje într-un singur mesaj, va rezulta un număr de<br />

mesaje egal cu N −M +1 = N − (M −1) ;<br />

- a doua sursă restrânsă va conţine, prin reunirea ultimelor M mesaje, un număr de mesaje egal cu N − 2M + 2<br />

= N − 2(M −1) ;<br />

- raţionându-se în mod analog, după n restrângeri, ultima sursă restrânsă va conţine un număr de mesaje egal<br />

cu N − n(M −1) , care trebuie să fie egal cu numărul M al mesajelor din alfabetul codului, adică<br />

N − M<br />

M = N − n(<br />

M −1)<br />

⇒ n =<br />

M −1<br />

n (numărul de restrângeri) trebuie să fie un număr întreg pozitiv,<br />

- Dacă sursa S ce urmează a fi codată are un număr N de mesaje care nu verifică relaţia anterioară, se va<br />

adăuga la sursa respectivă un număr de mesaje, până când această relaţie este satisfăcută. Mesajelor adăugate li se vor<br />

aloca p<strong>ro</strong>babilităţi nule, astfel că sursa iniţială nu va fi alterată, deoarece mesajele de p<strong>ro</strong>babilităţi nule nu vor fi<br />

furnizate niciodată.<br />

3) La fiecare partiţie în M submulţimi se alocă arbitrar cele M mesaje din alfabetul codului. Deoarece alocarea<br />

celor M mesaje din alfabetul codului se face arbitrar, rezultă că prin acest p<strong>ro</strong>cedeu va rezulta o multitudine de coduri<br />

<st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng>, toate cu aceeaşi lungime medie a cuvintelor de cod, care nu mai poate fi micşorată prin nici un alt<br />

p<strong>ro</strong>cedeu de codare, adică toate codurile astfel obţinute vor fi <st<strong>ro</strong>ng>instantanee</st<strong>ro</strong>ng> şi compacte.<br />

5 =


Teoria Transmiterii Informaţiei<br />

<st<strong>ro</strong>ng>Laborator</st<strong>ro</strong>ng> 4<br />

Exemple:<br />

1. Se consideră o sursa discretă de informaţie S care furnizează 6 simboluri şi p<strong>ro</strong>babilităţile asociate fiecărui<br />

simbol:<br />

p ( s ) 0.<br />

1,<br />

p ( s ) 0.<br />

2 , ( ) 0.<br />

3 s p , ( ) 15 . 0 p s , ( ) 0.<br />

05 s p , ( ) 2 . 0 s<br />

3 =<br />

5 =<br />

6 = p .<br />

Dacă alfabetul codului este X ={ x1 , x2 , x3 }, să se realizeze o codare Huffman generalizată.<br />

Înainte de a realiza codarea, se verifică dacă este satisfăcută relaţia<br />

N − M<br />

M = N − n(<br />

M −1)<br />

⇒ n =<br />

M −1<br />

Va trebui adăugat un nou mesaj, fie acesta s7 , de p<strong>ro</strong>babilitate nulă, adică ( 7 ) 0 = s p .<br />

Pentru realizarea codării, se p<strong>ro</strong>cedează după cum se arată în figura următoare:<br />

1 =<br />

5. Exerciţii p<strong>ro</strong>puse:<br />

2 =<br />

1. Se consideră sursa discretă, completă şi fără memorie caracterizată de distribuţia:<br />

⎛ s1<br />

S : ⎜<br />

⎝0.<br />

1<br />

Să se realizeze codarea binară Huffman.<br />

s2<br />

0.<br />

2<br />

s3<br />

0.<br />

3<br />

s4<br />

0.<br />

15<br />

s5<br />

0.<br />

05<br />

s6<br />

⎞<br />

⎟<br />

0.<br />

2⎠<br />

4 =<br />

2. O sursă discretă de informaţie furnizează mesajele →<br />

1<br />

6<br />

s acest, s → dispersia, s → definite, s → şi,<br />

s5 → cod, s6 → astfel, s7 → lungimea, s8 → pentru, s9 → medie, s10 → sunt, cu p<strong>ro</strong>babilităţile: 0.014, 0.041, 0.27,<br />

0.001, 0.005, 0.004, 0.6, 0.05, 0.013 respectiv 0.002.<br />

Să se descifreze secvenţa recepţionată:<br />

111110111101011011010011010101111001101010101011010100<br />

dacă la emisie s-a efectuat o codare binară Huffman folosindu-se simbolurile alfabetului codului în ordinea “0” şi apoi<br />

“1”.<br />

⎛ s1<br />

S : ⎜<br />

⎝0.<br />

014<br />

s<br />

2<br />

0.<br />

041<br />

s<br />

3<br />

0.<br />

27<br />

s<br />

4<br />

0.<br />

001<br />

s<br />

5<br />

0.<br />

005<br />

s<br />

6<br />

0.<br />

004<br />

s<br />

7<br />

0.<br />

6<br />

s<br />

8<br />

0.<br />

05<br />

3. O sursă discretă de informaţie furnizează mesajele →<br />

1<br />

s<br />

2<br />

9<br />

0.<br />

013<br />

s10<br />

⎞<br />

⎟<br />

0.<br />

002⎠<br />

s un, s → maximă, s → cod, s → este,<br />

s5 → se, s 6 → acestuia, s 7 → numeşte, s 8 → eficienţa, s 9 → absolut, s 10 → dacă, s 11 → optimal cu<br />

p<strong>ro</strong>babilităţile 0.4, 0.3, 0.2, 0.04, 0.03, 0.02, 0.004, 0.003, 0.002, 0.0009 respectiv 0.0001.<br />

Să se descifreze secvenţa recepţionată:<br />

x1 x3 x4 x2 x4 x4 x1 x4 x4 x3 x4 x4 x4 x2 x4 x4 x4 x1 x4 x4 x2 x4 x3 x4 x1 x2<br />

dacă la emisie s-a efectuat o codare Huffman utilizând simbolurile alfabetului codului în ordinea x1, x2, x3, x<st<strong>ro</strong>ng>4.</st<strong>ro</strong>ng><br />

⎛ s1<br />

S<br />

: ⎜<br />

⎝0.<br />

4<br />

s<br />

2<br />

0.<br />

3<br />

s<br />

3<br />

0.<br />

2<br />

s<br />

4<br />

0.<br />

04<br />

s<br />

5<br />

0.<br />

03<br />

s<br />

6<br />

0.<br />

02<br />

s<br />

7<br />

0.<br />

004<br />

s<br />

8<br />

0.<br />

003<br />

s<br />

9<br />

0.<br />

002<br />

2<br />

s<br />

10<br />

0.<br />

0009<br />

3<br />

3<br />

s11<br />

⎞<br />

⎟<br />

0.<br />

0001⎠<br />

4<br />

4

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

Saved successfully!

Ooh no, something went wrong!