Sunteți pe pagina 1din 5

10.

Algoritmul de codare Shannon-Fano

10.1.Esenţa codării surselor discrete

În cazul transmisiunii informaţiei printr-un sistem discret


fără perturbaţii (figura 10.1), la conectarea sursei la canal
apar următoarele probleme:
- sursa de informaţie S generează mesajele Si cu un
anumit set de probabilităţi P(Si);
- canalul de transmisie acceptă la intrare numai anumite
simboluri Ai corespunzător unui alfabet A, iar pentru a folosi
canalul la capacitate maximă, setul optim de probabilitate
trebuie să fie P(Ai).

Sursă Canal Utilizator

Figura 10.1. Exemplu de conectarea a sursei la canal fară perturbaţii

Rezultă că nu este posibilă cuplarea directă a sursei la


canal din anumite cauze:
- incompatibilităţii mesajelor Si ale sursei cu simbolurile
Ai admise de canal;
- setului de probabilităţi P(Si) cu care sursa generează
mesajele, diferit de setul optim P(Ai) necesar utilizării
canalului la capacitatea sa maximă.
Din aceste cauze, apare necesitatea efectuării unei
operaţii de codare conform căreia fiecărui mesaj Si i se
atribuie un anumit cuvânt de cod Ci, format din simbolurile Ai
ale canalului. (figura 10.2). În construirea cuvintelor de cod Ci
simbolurile Ai trebuie utilizate cu setul optim de probabilitate
P(Ai).
Sursă Codor Canal Decodor Utilizator

Figura 10.2. Exemplu de conectare a sursei la canalul cu perturbaţii

În sisteme de transmisiune digitale fiecare simbol al


sursei se codifică cu ajutorul unui cuvânt de cod binar.
La codarea surselor discrete se pot utiliza 2 tipuri de
cuvinte de cod: uniforme şi neuniforme. Cuvintele de cod
uniforme conţin acelaşi număr de simboluri binare pentru
oricare simbol codat. Un cuvânt de cod tipic acestui grup este
cuvântul de codul ASCII (American Standard Code for
Information Interchange) elaborat pentru utilizarea în
comunicaţii telegraf. La apariţia primelor maşini de calcul,
firma IBM a utilizat acest cuvânt de cod în calitate de standard
pentru codarea informaţiei. Fiecare combinaţie a acestui
cuvânt de cod conţine opt simboluri binare, ceea ce permite
utilizarea a 256 de combinaţii de cod. În prezent toate
mesajele text, transmise prin internet, se codează prin
utilizarea acestui cuvânt de cod.
Pentru cuvinte de cod neuniforme, combinaţiile de cod
au lungime diferită. Astfel, mesajele care se întâlnesc mai des
(cu probabilitate de apariţie mai mare) se codează prin
combinaţii de cod cu lungimi mai scurte, iar mesajele utilizate
mai rar (cu probabilitate mai mică) se codează cu combinaţii
de cod mai lungi. Această proprietate permite compresia
informaţiei, adică micşorarea entropiei sursei de mesaj. Aşa
cuvinte de cod se mai numesc coduri cu prefix, deoarece în
componenţa lor nu se conţin combinaţii de cod care constituie
începutul unei alte combinaţii. Acest lucru permite
identificarea simplă a mesajului la recepţie. Cuvinte de cod
neuniforme se obţin la utilizarea algoritmelor de codare
Shannon-Fano şi Huffman.
10.2.Parametrii codului compact

Codarea surselor discrete cu ajutorul cuvintelor de cod


neuniforme permite mărirea eficienţei transmisiunii prin
reducerea redundanţei sursei, adică obţinerea unui cuvânt de
cod cât mai compact. Pentru a caracteriza un cuvânt de cod
se utilizează următorii parametri:
• Lungimea cuvântului de cod n i – numărul de simboluri
în componenţa cuvântului de cod C i ;
• Lungimea medie a cuvintelor de cod:
M
n =  p in i . (10.1)
i =1
• Lungimea medie minimă a cuvintelor de cod:
H (S )
nmin = , (10.2)
log 2 N
unde H(S ) este entropia sursei. Dacă N=2, atunci relaţia
(10.2) devine:
nmin = H(S) . (10.3)
• Eficienţa unui cuvânt de cod este:
nmin H (S )
= = . (10.4)
n n logN
Dacă  = 1 atunci cuvântul de cod este absolut optimal.
• Redundanţa unui cuvânt de cod este:
 = 1 − . (10.5)

10.3. Codarea Shannon-Fano

Algoritmul de codare Shannon-Fano cuprinde următorii


paşi:
1. Simbolurile sursei se aranjează în ordine
descrescătoare a probabilităţilor lor:
p(S1 )  p(S 2 )  ...  p(Sn ) . (3.7)
2. Toate simbolurile conform acestei ordini se împart în
două grupe de probabilitate egală sau dacă nu este posibil,
de probabilităţi cât mai apropiate.
3. Se atribuie 0 fiecărui simbol din grupa superioară şi
1 fiecărui simbol din grupa inferioară.
4. Grupele obţinute se împart la rândul lor în câte două
subgrupe având probabilităţile totale cât mai apropiate între
ele.
5. Fiecărei subgrupe superioare i se atribuie 0, iar
fiecărei subgrupe inferioare i se atribuie 1.
6. Fiecare subgrupă obţinută se împarte din nou în alte
două subgrupe şi procesul continuă până când în fiecare
subgrupă rămâne doar câte un singur element, epuizând
astfel simbolurile sursei.
7. Cuvântul de cod corespunzător unui simbol de sursă
se obţine prin citirea din stânga în dreapta a simbolurilor 0 şi
1 atribuite la fiecare etapă de împărţire.
Exemplu: Fie sursa S cu tabloul simbolurilor
S = [S1; S2; S3; S4; S5; S6]
şi tabloul probabilităţilor
P = [0,1; 0,3; 0,15; 0,2; 0,05; 0,2].
Algoritmul de codare Shannon-Fano pentru sursa S este dat
în tabelul 10.1.
Tabelul 10.1. Algoritmul de codare Shannon-Fano

Lungimea
Simbolur.

Probabilit.

cuvântul.
sursei Si

Cuvântul

de cod
Etapele

de cod
p(Si)
atribuirii

I II III IV
S2 0,3 0 0 00 2
S4 0,2 0 1 01 2
S6 0,2 1 0 10 2
S3 0,15 1 1 0 110 3
S1 0,1 1 1 1 0 1110 4
S5 0,05 1 1 1 1 1111 4

S-ar putea să vă placă și