Documente Academic
Documente Profesional
Documente Cultură
Seminar ca la tablă 2
Problema 1
Fie 𝑋 = 𝑠1 , 𝑠2 , 𝑠3 , 𝑠4 , 𝑠5 , 𝑠6
cu 𝑃 = 0.03125, 0.03125, 0.5, 0.25, 0.125, 0.0625
Se cere o codare cu un cod Shannon-Fano. Alfabetul codului 𝑋 = 0,1 (binar)
𝑠1 𝑐1
𝑠2 𝑐2
𝑠3 𝑐𝑜𝑑𝑎𝑟𝑒 𝑐𝑜𝑚𝑝𝑎𝑐𝑡ă 𝑆ℎ𝑎𝑛𝑛𝑜𝑛−𝐹𝑎𝑛𝑜 𝑐3
𝑠4 𝑐4
𝑠5 𝑐5
𝑠6 𝑐6
Seminar ca la tablă 3
Procedura de codificare
• Ordonare după valoarea probabilităților (ordine descrescătoare)
• Împărțire în două submulțimi de probabilitate totală egală
• Alocare cod din alfabetul codului pentru fiecare submulțime
• Repetare până ce fiecare submulțime are un singur element
6
1 1 1 1 1 1 1 1 1 1
H S = − p si ∙ log 2 p si = −2 ∙ log 2 − log 2 − log − log 2 − log 2 = 1.9375bit/simbol
32 32 16 16 8 2 8 4 4 2 2
i=1
• Lungimea medie:
Seminar ca la tablă 5
Lungimea medie minimă, eficiența codului
• Lungimea medie minimă:
𝐻 𝑆 1.9375
ҧ
𝑙𝑚𝑖𝑛 = = = 1.9375
𝑙𝑜𝑔2 𝐷 𝑙𝑜𝑔2 2
• Eficienţa codului:
ҧ
𝑙𝑚𝑖𝑛 1.9375
𝜂= = =1
ҧ𝑙 1.9375
• Deci avem un cod absolut optimal, obţinut prin codare Shannon-Fano de codare
simbol cu simbol, în cazul în care probabilităţile de apariţie a simbolurilor sursei
sunt egale cu puteri negative ale lui 2, avem eficiență maximă egală cu 1
Seminar ca la tablă 6
Factor de compresie față de codul uniform
• Dacă s-ar fi codificat cu un cod uniform
𝑙 = 3, 𝑑𝑒𝑜𝑎𝑟𝑒𝑐𝑒 2𝑙 ≥ 6 → 𝑙 = 3
• Factorul de compresie
Seminar ca la tablă 7
Graful codării Shannon-Fano
S
1
0
S3 S’
1
0
S4 S’’
1
0
S5 S’’’
0 1
S6 S’’’’
1
0
S2 S1
Seminar ca la tablă 8
Problema 2
• Fie sursa 𝑺 = 𝒔𝟏 , 𝒔𝟐 , 𝒔𝟑 , 𝒔𝟒 , 𝒔𝟓 , 𝒔𝟔 cu,
𝑷 = 𝟎. 𝟎𝟓, 𝟎. 𝟏, 𝟎. 𝟑, 𝟎. 𝟐𝟓, 𝟎. 𝟐, 𝟎. 𝟏 𝑿 = 𝟎, 𝟏
Seminar ca la tablă 9
Procedura codării binare Huffmann
• Se ordonează simbolurile în ordinea descrescătoare a probabilităților
• Se comasează (unesc) ultimele două și se face un nou șir
• Se repetă procedura până ce râmân două elemente
• Se alocă câte un simbol (din alfabetul codului) pentru fiecare element
Seminar ca la tablă 10
Entropia sursei, lungimea medie a cuvântului de cod
• Entropia sursei: 6
𝐻 𝑆 = − 𝑝 𝑠𝑖 ∙ 𝑙𝑜𝑔2 𝑝 𝑠𝑖 =
𝑖=1
= −0.3 ∙ 𝐥𝐨𝐠 2 0.3 − 0.25 ∙ 𝐥𝐨𝐠 2 0.25 − 0.2 ∙ 𝐥𝐨𝐠 2 0.2 − 2 ∙ 0.1 ∙ 𝐥𝐨𝐠 2 0.1 − 0.05 ∙ 𝐥𝐨𝐠 2 0.05 = 2.3 𝑏𝑖𝑡/𝑠𝑖𝑚𝑏𝑜𝑙
• Lungimea medie:
6
Seminar ca la tablă 11
Lungime medie minimă, eficiență
• Lungimea medie minimă:
𝐻 𝑆 𝐻 𝑆 2.3
ҧ
𝑙𝑚𝑖𝑛 = = = = 2.3
𝑙𝑜𝑔2 𝐷 𝑙𝑜𝑔2 2 1
• Eficienţa:
ҧ
𝑙𝑚𝑖𝑛 2.3
𝜂= = = 0.9583
𝑙ҧ 2.4
Seminar ca la tablă 12
Graful asociat codării
Seminar ca la tablă 13
Problema 3
• Fie sursa 𝑺 = 𝒔𝟏 , 𝒔𝟐 , 𝒔𝟑 , 𝒔𝟒 , 𝒔𝟓 , 𝒔𝟔 cu 𝑷 = 𝟎. 𝟎𝟓, 𝟎. 𝟏, 𝟎. 𝟑, 𝟎. 𝟐𝟓, 𝟎. 𝟐, 𝟎. 𝟏
şi alfabetului codului 𝑿 = 𝑨, 𝑩, 𝑪
Seminar ca la tablă 14
Procedura codării
• Se ordonează simbolurile în ordinea descrescătoare a probabilităților
• Se comasează (unesc) ultimele trei și se face un nou șir
• Se repetă procedura până ce râmân trei elemente
• Se alocă câte un simbol din alfabetul codului pentru fiecare element
Seminar ca la tablă 15
Entropia sursei, lungimea medie a cuvântului de cod
• Entropia sursei:
7
𝐻 𝑆 = − 𝑝 𝑠𝑖 ∙ 𝐥𝐨𝐠 2 𝑝 𝑠𝑖 =
𝑖=1
= −0.3 ∙ 𝐥𝐨𝐠 2 0.3 − 0.25 ∙ 𝐥𝐨𝐠 2 0.25 − 0.2 ∙ 𝐥𝐨𝐠 2 0.2 − 2 ∙ 0.1 ∙ 𝐥𝐨𝐠 2 0.1 − 0.05 ∙ 𝐥𝐨𝐠 2 0.05 = 2.3 𝑏𝑖𝑡/𝑠𝑖𝑚𝑏𝑜𝑙
(este aceeași sursă ca în problema precedentă, simbolul cu probabilitate nulă nu intervine în formulă)
• Lungimea medie:
7
Seminar ca la tablă 16
Lungime medie minimă, eficiență
• Lungimea medie minimă:
𝐻 𝑆 𝐻 𝑆 2.3
ҧ
𝑙𝑚𝑖𝑛 = = = = 1.451
𝐥𝐨𝐠 2 𝐷 𝐥𝐨𝐠 2 3 1.5849
• Eficienţa:
ҧ
𝑙𝑚𝑖𝑛 1.451
𝜂= = = 0.90699 ≈ 0.9
𝑙ҧ 1.6
Seminar ca la tablă 17
Graful asociat codării
Seminar ca la tablă 18
Temă pentru acasă. Problemă propusă
• Să se realizeze în paralel câte o codare de tip Shannon-Fano și
Huffman cu alfabet binar pentru sursa de informație cu parametrii
𝑆 = 𝑠1 , 𝑠2 , 𝑠3 , 𝑠4 , 𝑠5 cu probabilitățile 𝑃 = 0.1,0.15,0.2,0.5,0.05
Seminar ca la tablă 19
Problema 4
• Fie un cod grup cu matricea de control:
10011
𝐻 = 01001
00110
Seminar ca la tablă 20
Soluție punctul a
• Dimensiunile matricei 𝑯 permit să se determine
𝒏 = 𝟓 şi 𝒎 = 𝟑 şi deci 𝒌 = 𝟐.
• După o atentă examinare a matricii de control ne dăm seama că
• Coloanele sunt diferite, poate corecta o eroare
• suma oricăror două coloane nu este diferită de suma oricăror altor două coloane, de
exemplu:
Seminar ca la tablă 21
Verificare cu margini
• Marginea Hamming care reprezintă condiţia necesară pentru corecţie a e erori
este satisfăcută pentru e=1:
𝑒
𝑒=1 𝑛=5
2𝑚 ≥ 𝐶5𝑖 𝐶50 + 𝐶51 =1+𝑛 2𝑚 ≥ 1 + 5 → 8 ≥ 1 + 5 = 6
𝑖=0
Seminar ca la tablă 22
Soluție punct b. Matrice generatoare
• Matricea de control se poate pune sub următoarea formă:
𝟏𝟎𝟏𝟏𝟎
𝑯 = [𝑰𝟑 𝑸] → 𝑮 = 𝑸𝑻 𝑰𝒌 =
𝟏𝟏𝟎𝟎𝟏
• Se poate verifica relaţia:
𝟏 𝟏
𝟏𝟎𝟎𝟏𝟏 𝟎 𝟏 𝟎𝟎
𝑯𝑮𝑻 = 𝟎𝟏𝟎𝟎𝟏 ⋅ 𝟏 𝟎 = 𝟎𝟎 = 𝟎
𝟎𝟎𝟏𝟏𝟎 𝟏 𝟎 𝟎𝟎
𝟎 𝟏
Seminar ca la tablă 23
Completare matrice de control (corecție) H
• Având 𝑘 = 2 simboluri de informație se pot genera 2𝑘 = 22 = 4 mesaje
informaționale (cum ar fi 00, 01, 10, 11)
• Matricea de control determină simbolurile de control pentru fiecare set
de simboluri de informație 𝑐 1
1 0 0 1 1 𝑐2 𝑐1 + 𝑖4 + 𝑖5
𝐻 ∙ 𝑣𝑇 = 0 1 0 0 1 ∙ 𝑐3 = 𝑐2 + 𝑖5 =0
0 0 1 1 0 𝑖4 𝑐3 + 𝑖4
𝑖5
• Rezultă 𝑐1 = 𝑖4 + 𝑖5 , 𝑐2 = 𝑖5 , 𝑐3 = 𝑖4 → 𝑣 = 𝑖4 + 𝑖5 𝑖5 𝑖4 𝑖5 𝑖6
• Pentru 𝑖5 𝑖6 = 1 0 → 1 0 1 1 0
Seminar ca la tablă 24
Completare matrice generatoare G
• Matricea generatoare generează cuvântul de cod direct din mesajul
informațional pe baza relației
1 0 1 1 0 𝑖4 𝑖4 𝑖5
𝒗 = 𝒊 ∙ 𝑮 → 𝑖4 𝑖5 ∙ = 𝑖4 + 𝑖5 𝑖5
1 1 0 0 1
Seminar ca la tablă 25
Cuvintele de cod
• Cuvintele de cod sunt următoarele:
C1 C2 C3 I4 I5
V1 0 0 0 0 0
V2 1 1 0 0 1
V3 1 0 1 1 0
V4 0 1 1 1 1
Seminar ca la tablă 26
Problema 5
• Se dă matricea H a unui cod grup
corector de erori. Se cere:
• a)să se determine numărul simbolurilor 1 0 0 0 0 0 0 1 0 1
de control (m),de informatie (k),lungimea 0 1 0 0 0 0 0 0 0 1
n a cuvintelor de cod, numărul de 0 0 1 0 0 0 0 1 0 1
simboluri ce se pot transmite cu ajutorul H= 0
acestui cod si numărul de erori care se
0 0 1 0 0 0 0 1 1
pot corecta; 0 0 0 0 1 0 0 1 1 0
• b)să se precizeze structura cuvintelor de 0 0 0 0 0 1 0 0 1 0
cod; 0 0 0 0 0 0 1 1 1 0
• c)să se scrie matricea generatoare G a
codului.
Seminar ca la tablă 27
Soluția punct a
• Se știe că matricea H are m linii si n coloane;rezultă m =7 și n = 10;k =
n-m = 10 -7 = 3. Cu cele trei simboluri de informative se pot transmite
un numar de simboluri 𝑵 ≤ 𝟐𝑲 = 𝟖. Pentru a determina numărul de
erori pe care le poate corecta codul, constatăm că:
• -toate coloanele sunt distincte,deci se poate corecta cel putin o eroare;
• -suma oricăror două coloane este diferită de suma oricăror altor două
coloane, deci se pot corecta și două erori.
Seminar ca la tablă 28
Soluția punct a (continuare)
• Nu se poate spune că suma oricăror trei coloane ale matricei H diferă
de suma oricăror alte trei coloane ale matricei, deci codul nu poate
corecta toate erorile triple
• Găsim suma a trei coloane egală cu suma altor trei 0
0
1
𝑧 = ℎ1 + ℎ8 + ℎ9 = ℎ3 + ℎ4 + ℎ6 = 1 .
0
1
0
Seminar ca la tablă 29
Interpretare corector identic
• Asta ar însemna două cuvinte de eroare ar avea același corector
Corectorul pentru cuvântul eroare:
𝜺𝟏 = [𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟎]
Seminar ca la tablă 30
Verificare cu margini Hamming și Varshamov-Gilbert
• Faptul ca acest cod corectează două erori se poate stabili si cu ajutorul
marginilor Hamming si Varshamov-Gilbert .Pentru 𝒆 = 𝟐 marginea
Hamming este satisfăcută cu prisosință:
𝒎 𝟕 𝟏 𝟐
𝟏𝟎 ∗ 𝟗
𝟐 − 𝟏 = 𝟐 − 𝟏 = 𝟏𝟐𝟕 > 𝑪𝒏 + 𝑪𝒏 = 𝟏𝟎 + = 𝟓𝟓
𝟐
• iar marginea Varshamov-Gilbert nu este satisfăcută de puțin:
𝒎 𝟎 𝟏 𝟐 𝟗∗𝟖 𝟗∗𝟖∗𝟕
𝟐 = 𝟏𝟐𝟖 ≥ 𝑪𝒏−𝟏 + 𝑪𝒏−𝟏 + 𝑪𝒏−𝟑 = 𝟏 + 𝟗 + + = 𝟏𝟑𝟎
𝟐 𝟑∗𝟐∗𝟏
• Nici una dintre cele două margini nu este insă satisfacută pentru 𝒆 = 𝟑:
𝟐𝒎 − 𝟏 = 𝟏𝟐𝟕 < 𝑪𝟏𝒏 − 𝑪𝟐𝒏 − 𝑪𝟑𝒏 = 𝟏𝟕𝟓
𝟐𝒎 = 𝟏𝟐𝟖 < 𝑪𝟔𝒏−𝟏 + 𝑪𝟏𝒏−𝟏 + 𝑪𝟐𝒏−𝟏 +𝑪𝟑𝒏−𝟏 +𝑪𝟒𝒏−𝟏 + 𝑪𝟓𝒏−𝟏 = 𝟑𝟖𝟐
Seminar ca la tablă 31
Soluție punctul b
• Matricea H dată corespunde unui cod sistematic la care pe primele sapte pozitii sunt
simbolurile de control si pe ultimele trei—simbolurile de informatie. :
𝜐 = 𝑪𝟏 𝑪𝟐 𝑪𝟑 𝑪𝟒 𝑪𝟓 𝑪𝟔 𝑪𝟕 𝒊𝟖 𝒊𝟗 𝒊𝟏𝟎
𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝟏𝟎𝟏
𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎𝟎𝟏
𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟏 𝒊𝒅𝒆𝒏𝒕𝒊𝒇𝒊𝒄â𝒏𝒅 𝒎𝒂𝒕𝒓𝒊𝒄𝒆𝒂 𝑸 𝟏𝟎𝟏
𝑯= 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 = 𝑰𝟕 𝑸 𝑸= 𝟎𝟏𝟏
𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟏 𝟎 𝟏𝟏𝟎
𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟎 𝟎 𝟏 𝟎 𝟎𝟏𝟎
𝟎 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏 𝟏 𝟏 𝟎 𝟏𝟏𝟎
Seminar ca la tablă 32
Completare punctul b
• Matricea de corecție are proprietatea că pentru cuvintele de cod
𝑐1
𝑐2
1 0 0 0 0 0 0 1 0 1 𝑐3
0 1 0 0 0 0 0 0 0 1 𝑐4
0 0 1 0 0 0 0 1 0 1 𝑐5
• 𝐻 ∙ 𝑣𝑇 = 0 → 0 0 0 1 0 0 0 0 1 1 ∙ 𝑐6 = 0
0 0 0 0 1 0 0 1 1 0 𝑐7
0 0 0 0 0 1 0 0 1 0 𝑖8
0 0 0 0 0 0 1 1 1 0 𝑖9
𝑖10
Seminar ca la tablă 33
Adică simbolurile de control satisfac
𝑐1 + 𝑖8 + 𝑖10 = 0 → 𝑐1 = 𝑖8 + 𝑖10
𝑐2 + 𝑖10 = 0 → 𝑐2 = 𝑖10
𝑐3 + 𝑖8 + 𝑖10 = 0 → 𝑐3 = 𝑖8 + 𝑖10
𝑐4 + 𝑖9 + 𝑖10 = 0 → 𝑐4 = 𝑖9 + 𝑖10
𝑐5 + 𝑖8 + 𝑖9 = 0 → 𝑐5 = 𝑖8 + 𝑖9
𝑐6 + 𝑖9 = 0 → 𝑐6 = 𝑖9
𝑐7 + 𝑖8 + 𝑖9 = 0 → 𝑐7 = 𝑖8 + 𝑖9
• Deci simbolurile de control sunt calculate în funcție de cele de info
𝜐 = 𝐶1 𝐶2 𝐶3 𝐶4 𝐶5 𝐶6 𝐶7 𝑖8 𝑖9 𝑖10
• 𝑣 = 𝑖8 + 𝑖10 𝑖10 𝑖8 + 𝑖10 𝑖9 + 𝑖10 𝑖8 + 𝑖9 𝑖9 𝑖8 + 𝑖9 𝑖8 𝑖9 𝑖10
Seminar ca la tablă 34
Soluție punctul c
• Utilizând relatiile (2.27) si (2.31) rezultă expresia matricei G:
𝟏 𝟎 𝟏 𝟎 𝟏 𝟎 𝟏 𝟏 𝟎 𝟎
𝑮= 𝟎 𝟎 𝟎 𝟏 𝟏 𝟏 𝟏 𝟎 𝟏 𝟎 .
𝟏 𝟏 𝟏 𝟏 𝟎 𝟎 𝟎 𝟎 𝟎 𝟏
Seminar ca la tablă 35
Completare punctul c
• Cu matricea generatoare se pot obține cuvintele de cod direct din mesajele
informaționale
1 0 1 0 1 0 1 1 0 0
𝑣 = 𝒊 ∙ 𝑮 = 𝑖8 𝑖9 𝑖10 ∙ 0 0 0 1 1 1 1 0 1 0 =
1 1 1 1 0 0 0 0 0 1
Seminar ca la tablă 37
Temă pentru acasă
• Fie matricea de control al unui cod corector de eroare
0 1 1 0 0 0
0 1
𝐻= 0 0 0 1
1 0 0 0 1 0
0 0 0 1 1 0
Seminar ca la tablă 38
Soluție manuală
Seminar ca la tablă 39
4
Seminar ca la tablă 40