Documente Academic
Documente Profesional
Documente Cultură
Carte TIC PDF
Carte TIC PDF
Moto
Capitolul 1
1.1. TERMINOLOGIE
Informaia este orice mesaj care aduce o precizare ntr-o problem ce
comport un anumit grad de incertitudine([Io-81], p.15). n aceast accepiune,
informaia este o noiune fundamental, abstract, ca energia n fizic.
Informaia are sens numai n msura n care exist doi corespondeni: unul care o
genereaz (sursa de informaie-S) i altul care o recepioneaz (destinatarul-D, sau
utilizatorul U). Informaia poate fi transmis la distan sau stocat (memorat) n
vederea unei redri (citiri) ulterioare. Mediul fizic, mpreun cu echipamentul ce-l
conine, prin care se realizeaz transmiterea la distan a informaiei de la S la D se
numete canal de transmisiune (C). n cazul sistemelor cu stocare, rolul canalului este
luat de mediul de stocare (disc, band,etc).
Informaia, noiune abstract, pentru a putea fi transmis (stocat), trebuie
concretizat ntr-o manifestare fizic (curent, tensiune, und electromagnetic), capabil a
se propaga prin canal sau a putea fi stocat. Aceast mrime fizic purttoare de
informaie este semnalul.
Observaie : Prin semnal, n accepiunea cea mai general, se nelege orice manifestare
fizic capabil a se propaga printr-un mediu. Definiia anterior dat este deci restrictiv,
excluznd semnalele ce perturb semnalul purttor de informaie (semnalul util). Aceste
semnale perturbatoare formeaz zgomotul (perturbaia :N).
Sursele de informaie pot fi discrete (digitale, numerice) sau continue (analogice).
O surs de informaie este discret, dac ea genereaz informaia pornind de la
un numr finit de simboluri (mesaje). Exemplu : 0 i 1 snt cele dou simboluri utilizate
n transmisiuni.
Dac numrul simbolurilor generate de surs este infinit, sursa de informaie este
continu. Exemple de surse continue snt : semnalul vocal, semnalul de televiziune,
semnale de msur i control, etc.
Observaie : Att sursa ct i destinatarul se presupun a avea incluse traductoarele ce fac
transformarea informaiei n semnal i invers.
Prin sistem de transmitere a informaiei vom nelege ansamblul de elemente
(blocuri) interdependente ce concur la transferul informaiei de la surs la
destinatar.
=:[x( t ) y( t )]2
(1.1)
n care x(t), respectiv y(t), reprezint mesajul generat de surs, respectiv cel livrat
destinatarului; simbolul indic medierea temporal.
raportul semnal-zgomot ( ) :
=:
[y ( t )]2
[n( t )]2
(1.2)
pentru sisteme numerice
probabilitatea de eroare (probabilitatea recepionrii unui simbol eronat,rata erorii pe
bit): p.
Gradul de prelucrare al mesajului generat de surs n vederea transmiterii prin
canal (sau stocrii) este funcie de mai muli factori : surs, destinatar, canal (mediu de
stocare), gradul de fidelitate dorit, costul sistemului.
n cazul n care sursa i destinatarul snt fiine umane, prelucrarea mesajului poate
fi mai redus datorit limitelor fiziologice ale omului (vz, auz), fapt ce determin un
grad de fidelitate admis mai sczut.
n cazul transmisiunilor de date, deci cnd sursa i destinatarul snt maini
(calculatoare), complexitatea prelucrrii crete pentru atingerea fidelitii impuse de
aplicaie.
Creterea calitii transmisiei (stocrii) se face i prin mbuntirea canalului
(mediului de stocare), alegerea metodei folosite pentru atingerea scopului final fcndu-se
n urma comparrii preului terminalului (echipamentului folosit pentru prelucrare) i
Cs
Cc
Modulator
(unitate de
nscriere)
coder
Coder
Sincronizare
DCs
DCc
Canal
(mediu de
stocare)
coder
Detectia
Demodulator
semnalelor (unitate de
citire-redare)
coder
Decoder
Fig. 1.1. Schema-bloc a unui sistem tipic de transmitere digital (numeric) a
informaiei
Semnificaia blocurilor din fig. 1.1 este:
Bibliografie
[Sp - 83] - Al. Sptaru, Teoria transmisiunii informaiei, E.D.P. Bucureti,1983
[Sp - 87] - Al. Sptaru, Fondements de la thorie de la transmission de lnformation,
Presses
polytechniques romandes, Lausanne,1987
[St - 86] - V. Stoica, A. Mihescu, Teoria transmisiunii informaiei, Lito, I. P. Timioara,
1986
[Mu-79] - V.Munteanu, Teoria transmisiunii informaiei, Lito, I. P. Iai, 1979
[Ha-80] - R.Hamming, Coding and information theory, Prentice Hall, 1980
[Fo - 83] - P.G. Fontolliet, Systhemes de tlcommunications, Editions Georgi,
Lausanne, 1983
[We - 94] - G. Wade, Signal coding and processing, Cambridge University Press,1994
[Sk - 88] - B. Sklar, Digital communications, Prentice - Hall, 1988
[To - 92] - W. Tomasi, Advanced electronic communications, Prentice - Hall, 1992
[Io - 81] - D. Ionescu, Codificare i coduri, E.T. Bucureti, 1981
[Li - 83] - S. Lin, D. Costello, Error control coding, Prentice - Hall, 1983
U x i = si x i x j = , i j
i =1
(2.1)
unde prin s-a notat evenimentul sigur (mulimea total), iar prin evenimentul
imposibil.
Fie p(xi)=pi, probabilitatea de realizare (emisie) a simbolului xi. Toate cele m
probabiliti de emisie ale simbolurilor pot fi cuprinse n matricea probabilitilor de
emisie P(X) :
m
P( X ) = [p1L pi L p m ], cu p i = 1
i =1
(2.2)
Pentru o surs fr memorie, avem :
p(x i / x i 1, x i 2 ... ) = p( x i )
(2.3)
Pentru v.a. X ce modeleaz statistic o SDFM putem forma tabloul :
m
xi
X: , i = 1, m , p i = 1
pi
i =1
(2.4)
6
m j = x j1 x j 2 ... x j n
unde
p j = p ( x j1 )p ( x j 2 )... p ( x j n )
(2.6)
Sursa Xn conine un numr de mn mesaje mj distincte ce se pot forma cu alfabetul
sursei X.
Exemplul 2.1.
x1 x 2
Fie SDFM X
, p1 + p 2 = 1
p1 p 2
Extensia de ordinul doi (n = 2) a sursei X este :
x1x1 x1x 2 x 2x1 x 2x 2
.
X 2 : 2
p1p 2 p 2p1
p22
p1
X : 1 1 , i( x1 ) = i( x 2 ) = lod = 1 .
2
2 2
Dac log se alege n baza doi i constanta = 1 avem :
i(x1)
=
i(x2)
=
log22
1bit.
(2.11)
Unitatea astfel definit se numete bit. n acest caz, relaia (2.10.) devine :
=
i(xi)
-ldpi
(2.12)
unde prin ld s-a notat log2 .
Denumirea de bit provine din binary digit care nsemn n englez cifr
binar.
n afara log n baz 2 la nceputurile teoriei informaiei au fost folosite i alte
baze : e i 10. n aceste cazuri unitile de msur snt :
1
ln = ln e = 1nit = 1unitate natural ( hartley)
e
i reprezint alegerea lui 1 din e.
Observaie : Aceast denumire a fost dat n memoria lui R.V. Hartley care a introdus
primul noiunea de unitate de informaie (1928).
1
lg = lg10 = 1 dit = 1 unitate zecimal
10
reprezentnd alegerea lui 1 din10.
Relaiile dintre aceste trei uniti, innd cont de relaiile de trecere a unui log
dintr-o baz n alta, snt :
1 nit = 1,44 bii
1 dit = 3,32 bii
Multiplii bitului, folosii n informatic, snt :
1 octet (byte) (B) = 8 bii
1 K octet (KB)
= 210 octei
1 M octet (MB)
= 210 K octei
i =1
i =1
H( X ) =: p i i( x i ) = p i ldp i
(2.13)
Entropia H(X) reprezint incertitudinea medie ce exist apriori asupra emisiei.
Observaii :
Formula (2.13), stabilit de Claude Shannon n 1948 n lucrarea A mathematical
theory of communications prezint o analogie perfect cu formula entropiei
termodinamice stabilit de Boltzmann, fapt pentru care H(X) s-a numit entropie
informaional.
Formula lui Boltzmann constituie interpretarea probabilistic a principiului al
doilea al termodinamicii :
n
S = k p i log p i
i =1
unde k = 1,38 10-23J/ este constanta lui Boltzmann, iar p i este probabilitate ca sistemul
s se afle n starea i, din cele n posibile. Entropia termodinamic exprim gradul de
dezordine al particulelor ntr-un sistem fizic.
Formula lui Shannon exprim gradul de nedeterminare din punct de vedere
informaional al unui sistem.
A.N. Kolmogorov [Io - 81] arta : Expresia matematic a entropiei
informaionale este formal identic cu expresia entropiei din fizic ... Ar fi ns o
exagerare s considerm c toate teoriile fizice legate de noiunea de entropie conin n
sine de-a gata elementele teoriei informaiei. Ambele noiuni au n comun faptul c
msoar gradul de nedeterminare al unui sistem, dar aplicarea lor se gsete n sfere de
cunoatere complet diferite.
Relaia (2.13) este o expresie cantitativ a informaiei. Informaia, pe lng aspectul
cantitativ, are o serie de nuane calitative, neevideniate de formula lui Shannon. Invitm
cititorul interesat n aspecte privind latura calitativ a informaiei s consulte [Pe-82].
Formula (2.13) a fost definit n anumite condiii : sursa este o SDFM, deci din punct
de vedere matematic avem un sistem complet de evenimente i exist un echilibru final al
strilor (evenimentelor). Aceste condiii snt ndeplinite n mod obinuit n sistemele
tehnice care au servit drept modele lui Shannon dar nu snt ntotdeauna realizate n
sistemele biologice, sociale, economice, fapt pentru care aplicarea teoriei informaiei
trebuie fcut cu extrem de mare
atenie.
Proprietile entropiei
Continuitatea : H(X) este o funcie continu n raport cu fiecare variabil pi, fiindc
este suma unor funcii continue.
Simetria : H(X) este evident o funcie simetric n raport cu toate variabilele pi.
Aditivitatea. Informaia proprie este aditiv, deci i H(X), care reprezint media
informaiilor proprii este aditiv.
Entropia este maxim n cazul echiprobabilitii simbolurilor ; aceast valoare
maxim se mai numete cantitatea de decizie a sursei :D(X) :
10
Hmax(X)=:D(X)=ldm
(2.14)
Valoarea maxim a entropiei se obine determinnd valoarea maxim a funciei
(2.13) pentru care exist constrngerea.
m
p i = 1.
i =1
i =1
(2.15)
Condiia necesar de extrem se obine din :
(p i )
= 0, i = 1, m , sau:
p i
( p i )
p = ldp i lde + = 0
i
(2.16)
( p j )
= ldp j lde + = 0
p j
=
ldpj,
deci
pi
=
p j,
de
unde
rezult
c
ldpi
(2.17)
i, j = 1. m .
Propunem cititorului, ca exerciiu, s demonstreze c acest extrem este un maxim.
Rezult c Hmax(X) se obine dac
p1 = p2 =...=pm = 1/m ,
deci Hmax(X) = D(X) = ldm , q.e.d.
Acest rezultat poate fi dedus i intuitiv ; incertitudinea medie privitor la emisia
unui simbol este maxim atunci cnd emisia celor m simboluri este echiprobabil, deci
cnd este cel mai greu de prevzut care dintre simboluri va apare.
Exemplul 2.2.
Vom calcula i reprezenta entropia unei surse binare fr memorie :
1
0
X:
p q = 1 p
H( X ) = pldp (1 p)ld(1 p) .
Reprezentarea grafic a acestei funcii se d n figura 2.1.
1 H[biti]
p
1/2
1
Fig. 2.1 Reprezentarea grafic a entropiei unei surse binare fr memorie
Din graficul fig 2.1 se oserv c Hmax=1 bit se obine pentru p=q=1/2. Pentru
p1/2, H(X)<1; pentru p=0 sau p=1, H(X)=0 ceea ce era de ateptat pentru c n aceste
11
mn
j=1
j=1
mn
j=1
(2.21)
n care
mn
j1 =1 j 2 =1
j n =1
ji =1
j1 =1
j2 =1
jm =1
ji =1
H(X n ) = nH(X)
(2.23)
12
Exemplul 2.3.
Entropia extensiei de ordinul doi a unei surse binare fr memorie.
Fie sursa binar X din exemplul 2.1. i extensia X2 a acesteia. Aplicnd relaia
(2.13) pentru X2 se obine :
ldm.
(2.24)
13
M =:
1
TM
(2.25)
Unitatea de msur pentru debitul de momente este Baud (Bd).
[ M ]=Bd.
H( X )
H =:
= M H( X )
TM
(2.26)
Unitatea de msur este :
[ H ] = bii/secund.
Debitul de decizie ( D ) al unei surse (bit rate) este cantitatea de decizie a sursei
generat n unitatea de timp.
D
D =:
= M D = M ldm
TM
(2.27)
[ D ]=bii/s
Observaii :
D = M numai pentru surse binare (m =2). Din expresia (2.27), se observ c se poate
obine acelai D n dou situaii : lucrnd cu vitez mare i alfabet redus sau invers.
14
P( X ) = [ p i ]
(2.28)
P( Y ) = [q j ]
(2.29)
Prin qj s-a notat probabilitatea recepionrii simbolului yj : qj = p(yj). P(Y) este
matricea probabilitilor de recepie.
matricea de trecere (zgomot) a canalului, format din probabilitile simbolurilor de
ieire, condiionate de simbolurile de intrare : P(Y/X)
n
P( Y / X ) = [q j, i ] , q j / i = 1 , i = 1, m
j =1
(2.30)
Elementul qj/i , aflat la intersecia liniei i i a coloanei j, reprezint probabilitatea
recepionrii lui yj condiionat de emisia lui xi : qj/i = p(yj/xi).
Matricea de trecere este o matrice stocastic, avnd proprietatea c suma
elementelor oricrei linii este 1 :
n
q j/ i = 1 , i = 1, m
j=1
ceea ce intuitiv reprezint recepia cu certitudine a unui simbol yj, j = 1, n , dac s-a
emis un simbol xi , i = 1, m .
Matricea P(Y/X) reprezint modelarea din punct de vedere probabilistic a
canalului i ea se determin experimental.
Canalul realizeaz deci trecerea [X][Y] :
P(X)P(Y/X)P(Y)
trecere ce poate fi reprezentat prin graful din fig. 2.3.
15
q1/i
x1
y1
qj/i
xi
X:
pi
xi
yj
y j
Y:
q j
qn/i
xm
yn
P(X)
P(Y/X)
P(Y)
Dac se cunosc sursa, prin P(X) i canalul, prin P(Y/X), recepia se determin cu
relaia :
P(Y)
=
P(X)P(Y/X)
(2.31)
n care, P(X), P(Y), P(Y/X) au dimensiunile stabilite de (2.28), (2.29) i (2.30).
Se vede deci c recepia, P(Y), este dependent att de canal, P(Y/X), ct i de
modul n care canalul este utilizat de surs, P(X).
n urma recepionrii unui simbol yj , avnd P(X) i P(Y/X), se pot calcula toate
probabilitile aposteriori ale simbolurilor de intrare, condiionate de simbolul yj
recepionat, utiliznd formula lui Bayes :
p( x i ) p y j / x i
pi q j/ i
.
p xi / y j = pi/ j =
=
qj
p yj
(
)
( )
(2.32)
Toate aceste probabiliti pi/j vor determina matricea probabilitilor de intrare
condiionate de ieire :
p( x1 / y 1 ) p( x1 / y 2 ) L p( x1 / y n )
P( X / Y ) = p i / j = M
p( x / y ) p( x / y ) L p( x / y )
m
1
m 2
m
n
[ ]
(2.33)
Observaie : Matricea P(X/Y) este obinut prin calcul, spre deosebire de P(Y/X), care se
determin experimental (reprezint modelarea canalului).
16
Intrarea (X) i ieirea (Y) a unui canal pot fi privite ca un cuplu de v.a. (XY) :
cuplul intrare-ieire, caracterizat prin repartiia de probabilitate a cuplului : P(X,Y) .
yj
yn
P(X)
y1
x1
p1
P(X,Y) =
(2.34)
p(xi,yj) = pij
xi
xm
P(Y)
q1
qj
pi
qn
pm
1
0 p 2L0 q1 / 2 q 2/ 2 Lq n / 2
=
M
M
0 0 L p m q1 / m q 2 / m Lq n / m
(2.35)
Observaie :
n (2.35), spre deosebire de (2.31), P(X) se scrie sub form diagonal. Fcnd
nmulirea celor dou matrici din (2.35) rezult :
.
p(x i , y j ) = p ij = p i q j / i
(2.36)
Din probabilitile cuplului de v.a. se pot calcula probabilitile v.a. ca probabilitile
marginale, aa cum este ilustrat n (2.34.)
n
p i = p ij
j =1
(2.37)
m
q j = p ij
i =1
(2.38)
Cele cinci matrici de probabilitate, prin care s-a fcut descrierea statistic a
canalului, vor da natere entropiilor corespunztoare.
m
(2.39)
n
(2.40)
17
(2.41)
Cunoscnd simbolurile recepionate yj , nu putem afirma c a fost ndeprtat total
incertitudinea privitoare la simbolurile emise, datorit zgomotului din canal. Rmne o
incertitudine i dup ce s-au recepionat simbolurile yj. Valoare medie a acestei
incertitudini reziduale se noteaz cu H(X/Y) i reprezint entropia intrrii
condiionate de ieire ; ea se mai numete i echivocaie, fiind o msur a echivocului ce
mai exist asupra intrrii cnd se cunoate ieirea.
Cantitatea de informaie obinut despre xi cnd s-a recepionat yj, este conform
(2.12) :
.
i( x i / y j ) = ldp i / j
(2.42)
Valorea medie a cantitii de informaie obinut privitor la intrare cnd s-a
m
i =1
i =1
m n
j =1
i =1 j =1
H (X / Y ) = q j H (X / y j ) = q jp i / jldp i / j
care innd cont de (2.36), devine :
m n
H (X / Y ) = p ijldp i / j
i =1 j =1
(2.43)
Cunoscnd simbolurile de intrare P(X), nu putem cunoate cu certitudine
simbolurile ce se vor recepiona, datorit zgomotului din canal. Va rmne ntotdeauna o
incertitudine a crei valoare medie se noteaz cu H(Y/X) i reprezint entropia ieirii
condiionat de intrare ; ea se mai numete i eroare medie.
Raionnd asemntor ca n deducerea relaiei (2.43) se obine :
m n
H (Y / X ) = p ijldq j/ i
i = 1 j =1
(2.44)
Dac zgomotul din canal este nul (canal fr perturbaii), structura matricii de
zgomot este :
18
1 0L0
0 1L0
,
P( Y / X) =
M
0 0L1
(2.45) coninnd numai elementele de 0 i 1 ; la emisia unui simbol xi se tie cu
certitudine simbolul recepionat. n consecin :
H( X / Y ) = 0
H( Y / X ) = 0
(2.46)
Dac canalul este cu zgomot foarte mare (independent), nu se poate stabili nici o
relaie ntre emisie i recepie, acestea fiind independente, deci :
p i / j = p i
q j / i = q j
(2.47)
i ca urmare :
H (X / Y ) = H ( X )
H (Y / X ) = H ( Y )
(2.48)
Pentru un canal real, cnd zgomotul exist, dar nu este att de mare nct din
semnalul recepionat s nu se poat deduce nimic despre semnalul emis, entropiile vor
avea valori cuprinse ntre cele dou valori extreme :
0 H (X / Y ) H (X )
.
0 H (Y / X ) H (Y )
(2.49)
(2.50)
Nedeterminarea apriori asupra emisiei lui xi este i(xi). Prin recepia lui yj se
nltur o parte din aceast nedeterminare : i(xi/yj), diferena, dat de (2.50), constituind
informaia mutual.
nlocuind n (2.50) expresiile corespunztoare pentru i(xi), respectiv i(xi/yj) i
innd cont de (2.32), obinem :
19
i x i ; y j = ldp i + ldp i / j = ld
pi/ j
pi
= ld
p ij
piq j
(2.51)
Informaia mutual dintre xi i yj este reciproc :
i x i ; y j = i y j; x i
) (
(2.52)
Propunem cititorului, ca exerciiu, s demonstreze relaia (2.52).
Valoarea medie a informaiei mutuale se numete transinformaie i se noteaz
:
I(X;Y); ea reprezint informaia util transmis prin canal.
m n
p ij
.
I ( X; Y ) = p ijld
p iq j
i =1j =1
(2.53)
Observaie :
Dei i(xi ; yj) poate fi negativ, I(X;Y) este totdeauna o mrime pozitiv :
I(X;Y)0.
2.8.3 RELAII NTRE ENTROPII
Avem :
m n
H (X, Y) = p ijldp ij
i =1j =1
(2.41)
Exprimnd pij cu relaia (2.36), prelucrnd (2.41), se obnine :
m n
m n
m n
m n
i =1
i = 1j = 1
= p i ldp i p ijldq j / i
deci :
H (X, Y) = H (X ) + H (Y / X )
(2.54)
Procednd analog, se poate obine :
H (X, Y) = H (Y ) + H (X / Y )
(2.55)
Propunem cititorului s fac demonstraia relaiei (2.55.).
Fcnd prelucrri ale relaiei (2.53), obinem :
m n
n m
m n
20
(2.61)
I ( X; Y) = 0
2.8.4 CAPACITATEA CANALULUI DAT PRIN MATRICEA DE ZGOMOT
Definirea capacitii
Pentru a defini o msur a eficienei cu care se face transmisia informaiei
printr-un
canal, i pentru a gsi limita superioar a acesteia, C. Shannon a introdus noiunea de
capacitate
a canalului (C) :
C = max I (X; Y ) [ bii / simbol ]
p i p io
(2.62)
Maximalizarea transinformaiei se face n raport cu repartiia de probabilitate a
sursei [pi]. Maximul transinformaiei se obine pentru un anumit set de probabiliti [pio],
care astfel va defini o surs secundar, ce constituie intrarea n canal.
Deci, pentru a transmite pe canal valoarea maxim a transinformaiei (capacitatea
canalului), este necesar ca sursa primar s fie transformat (prin codare) ntr-o surs
secundar determinat de probabilitile [pio] care conduc la valoarea maxim a relaiei
(2.62) ; aceast prelucrare poart denumirea de adaptare statistic a sursei la canal.
Debitul maxim de informaie ce poate fi transmis prin canal este :
C
Ct =
; [ bii / s]
TM
(2.63)
Observaie : De multe ori capacitatea canalului se folosete n accepiunea de debit
maxim de informaie transmisibil prin canal (CtC).
21
(2.68)
Vom considera la intrare o surs binar oarecare :
x1 x 2
X:
, p1 + p 2 = 1.
p1 p 2
Vom calcula H(Y/X) pornind de la relaia (2.44.), unde elementele p ij se vor determina cu
(2.35)
p1p
p p1(1 p)
p 0 1 p
=
P( X, Y ) = P( X) P(Y / X) = 1
1 p p 2 p
p 2 (1 p )
0 p 2 p
(2.69)
Se obine :
22
(2.70)
Se observ c pentru un CBS, eroarea medie H(Y/X) nu depinde de surs P(X), ci numai
de zgomotul din canal P(Y/X).
nlocuind H(Y/X) cu expresia dat (2.70) n relaia (2.68), obinem :
C CBS = max H( Y) + pldp + (1 p)ld(1 p)
pi
(2.68.a)
Valoarea maxim a H(Y) se obine pentru echiprobabilitatea simbolurilor
recepionate :
q1 = q2 = 1/2. Aceste valori se obin ca probabiliti marginale din (2.69) :
1
q1 = p1(1 p) + p 2 p =
2
1
q 2 = p1p + p 2 (1 p) =
2
ceea ce implic : p1= p2 = 1/2. Rezult deci c valoarea maxim a transinformaiei se
obine cnd simbolurile snt utilizate cu aceeai probabilitate i ea determin capacitatea
CBS :
C CBS = 1 + pldp + (1 p )ld (1 p ) [bii / simbol]
(2.71)
[ ]
unde
1 p, i = j
q j/ i = p y j / x i = p
m 1 , i j
(2.72)
Aplicnd relaia de definiie a capacitii (2.62), se obine :
p
.
C CS = ldm + (1 p)ld(1 p ) + pld
m 1
(2.73)
23
y1 = 0
y3
p
p
y2 = 1
1- p - q
Fig. 2.4 Graful canalului cu tergeri
x2 = 1
(2.75)
valoare ce se atinge n cazul echiprobabilitii simbolurilor de la intrare.
Observaie : Erorile ce apar n cazul canalelor fr memorie snt erori independente,
cauzate de zgomotul termic. Legile de repartiie a erorilor ntr-un canal snt foarte
complexe i greu de stabilit, ele pot fi obinute prin modelarea rezultatelor experimentale
[An - 72],[Re-66].
Pentru un CBS, avnd p determinat, probabilitatea de apariie a t erori
independente ntr-un cuvnt de lungime n este dat de legea binomial
P( t ) = C tn p t (1 p )
n t
(2.76)
Probabilitatea de apariie a t erori i mai puin de t erori este dat de :
t
e= 0
e=0
P(e t ) = p(e) = C en p e (1 p )
ne
(2.77)
Exemplul 2.4
La intrarea unui canal binar de transmisiune se emit simbolurile 0 i 1.
Msurtori statistice au stabilit c datorit zgomotului din canal se eroneaz n proporie
de 10% ambele simboluri, procesul fiind invariant n timp. tiind c : simbolurile 0 i 1
se transmit n proporie de 3/7, emisia unui simbol este independent de simbolurile
24
anterior emise, se emit 1000 simboluri pe secund (durata fiecrui simbol este aceeai) ,
se cer :
a) Caracterizarea statistic a sistemului de transmisiune prin determinarea tuturor
repartiiilor de probabilitate.
b) Cantitatea de informaie obinut la emisia unui 0 i cantitatea medie de informaie a
sursei.
c) Redundana i eficiena sursei.
d) Debitul de informaie transmis util prin canal.
Soluie
a) Sursa (emitorul), respectiv receptorul vor fi modelate de v.a. discrete X, respectiv
Y, reprezentate de repartiiile de probabilitate :
y1 y 2
x1 x 2
X:
, q1 + q 2 = 1
, p1 + p 2 = 1, Y:
q1 q 2
p1 p 2
unde x1 i x2 desemneaz emisia simbolului 0, respectiv 1, iar p1 i p2 probabilitile de
emisie ale celor dou simboluri. n mod analog y1 i y2 reprezint recepia simbolului 0,
respectiv a lui 1, iar q1 i q2 probabilitile corespunztoare la recepie.
Modelarea canalului de transmisiune se va face prin determinarea matricii de
trecere (zgomot) a canalului P(Y/X) = [qj/i]. Reprezentarea grafic a acestui sistem de
transmisiune este dat n figura 2.5.
(0)
(0)
q1/1
y1
x1
X:
:Y
q2/1
(1)
(1) q1/2
x2
y2
q2/2
P(X)
P(Y/X)
P(Y)
Fig. 2.5 Reprezentarea grafic a sistemului binar de transmisiune din Exemplul 2.4
Cu datele din enunul problemei, avem :
p1 3
=
p2 7
p + p = 1
2
1
Rezolvnd sistemul se determin :
P( X) = [0,3 0,7]
Datele problemei indic eronare de 10% pentru ambele simboluri : q2/1 = q1/2 =
0,1
i deci transmiterea corect n proporie de 90% : q1/1 = q2/2 = 0,9. Matricea de trecere a
canalului va fi deci :
0,9 0,1
P( Y / X ) =
.
0,1 0,9
Se observ c P(Y/X) este o matrice stocastic, avnd suma pe linii egal cu 1,
ceea ce fizic nseamn c la emisia unui simbol xi se recepioneaz un simbol, acesta
putnd fi corect sau eronat. Recunoatem cu uurin tipul binar simetric al canalului (p =
0,1).
25
redundana relativ :
R
X = X = 0,12 sau 12%
D(X )
eficiena sursei :
H( X)
X =
= 0,88 sau 88%
D (X )
26
I ( X; Y ) = MI ( X; Y )
27
D = M ldm
(2.27)
Fizic, receptorul va trebui s poat distinge, n prezena zgomotului, dou
momente succesive al cror parametru caracteristic ia, n situaia cea mai defavorabil,
dou valori consecutive din cele m posibile.
O ilustrare grafic ale celor dou cerine este dat n figura 2.6.
m
m-1
m-2
4
3
2
1
(i-1)TM
iTM (i+1)TM
28
Rezoluia n timp
Orice canal real de transmisiune conine reactane ce se opun variaiilor brute ale
semnalului, ceea ce duce la un comportament inerial al canalului. Acest fenomen se
poate observa att n frecven ct i n timp.
n frecven : atenuarea canalului este funcie de frecven, acesta comportndu-se ca
un filtru trece jos (FTJ).
n timp : rspunsul la semnalul treapt unitate : (t) al canalului are o pant finit,
definit de timpul de cretere(tc) [Ma-83]. n cazul canalelor reale sau ideale, ntre tc i B
exist urmtoarea relaie empiric :
Bt c 0,35 0,45
(2.78) care arat c n cazul unui canal avnd banda B nu este posibil variaia
parametrilor semnalului cu orice vitez, aceasta fiind limitat de tc. n consecin i durata
1 0,4
TM ~ t c
~
M~B
B
M
(2.79)
(2.80)
Aceast relaie, cunoscut n literatur ca teorema lui Nyquist, a fost dedus n
ipoteza unui FTJ ideal de band B.
29
Puterea semnalului (PS) fiind limitat, este imposibil recunoaterea unui numr
de valori diferite ale lui m, n prezena zgomotului a crui putere este PN n punctul de
msur considerat.
n 1948 Shannon a demonstrat c limita teoretic pentru m, n ipoteza unui
zgomot alb gaussian este :
PS + PN
m max =
= 1+
PN
(2.83)
unde = PS/PN este raportul semnal-zgomot.
Capacitatea canalului de transmisiune
Se numete capacitatea (C ) unui canal de transmisiune considerat ca un FTJ
ideal avnd lrgimea de band B i raportul semnal-zgomot (zgomot gaussian),
valoarea maxim a debitului de decizie transmisibil prin canal :
(2.84)
Observaii :
n practica inginereasc raportul semnal/zgomot se exprim n dB :
[ dB] = 10 lg
n acest caz, relaia (2.78) se poate exprima ntr-o form foarte comod pentru
aplicaii :
1
C B[ dB]
3
(2.85)
Relaia (2.84), stabilit de Shannon n 1948, arat limita teoretic a debitului maxim
transmisibil pe un canal. n acelai an, tot el a artat i faptul c la aceast vitez
maxim de transmitere a informaiei este posibil o recepie fr erori : Pe0, n
cazul unei prelucrri optime a semnalelor (teorema a-II-a a lui Shannon pentru canale
cu perturbaii-asupra acesteia se va reveni n 5.1).
Relaia (2.84), dei este o limit teoretic. imposibil de atins n transmisiuni reale,
este deosebit de util n aplicaii, permind o comparaie i o evaluare a diferitelor
sisteme de transmisiune.
30
zon interzis
D>C
Limita teoretic D = C
2
B
B2
B1
Fig. 2.7 Reprezentarea grafic n sistemul B, a capacitii unui canal
Din relaia (2.84) rezult urmtoarele interpretri :
P P
C = lim C = lim Bld1 + S = S lde = ct
BN
B
B
0 N0
(2.86) Variaia capacitii cu banda este reprezentat n figura 2.8.
C
C
B
Fig. 2.8 Graficul de variaie al capacitii funcie de band
Rezult c nu este raional creterea capacitii pe seama creterii benzii peste o
anumit limit, deoarece sporul n capacitate este foarte sczut.
Aceeai capacitate poate fi obinut cu valori diferite ale lui i B : folosind o band
mic B1 i un canal cu raport semnal-zgomot foarte bun 1(situaia corespunztoare
sistemului 1 din figura 2.7) sau un canal puternic perturbat, cu 2 mic i o band mai
larg B2 (sistemul 2 din figura 2.7).
Relaia (2.84) este o relaie ce d o limit teoretic a debitului de decizie maxim
transmisibil. Pe canale reale : D max real < C. Aceast limit n transmisiune nu se obine
31
Dac D >C, transmisiunea nu mai este posibil n timp real ; n acest caz se poate
Surs de informaie
M/2
Canal de transmisiune
ld(1+)
D
2ldm
32
Rezoluia
n timp
Rezoluia
n amplitudine
Debit de momente
Lrgimea de band
1
M 2B
B
M=
TM
m valori pe moment
Raport semnal-zgomot
P
m 1+
= S
PN
2ldm ld(1+ )
Debit de decizie
Capacitate
D = M ldm
DC
C = Bld(1 + )
Exemplul 2.5.
O imagine static alb-negru (fotografie) este descompus de tubul video-captor
ntr-un numr de n = 4,8105 elemente. S-a constatat experimental c dac intensitatea
luminoas a fiecrui element de imagine se cuantizeaz cu 100 nivele, imaginea
reconstituit din aceste puncte pare suficient de natural. Se presupune c cele 100 de
nivele de gri snt echiprobabile. Se cer :
a) Ct este cantitatea medie de informaie furnizat de un element de imagine, dar de
ntreaga imagine ?
33
Democrit
Capitolul 3
CODAREA SURSEI.
CODAREA PENTRU CANALE FR PERTURBAII
3.1
34
ntr-o transmisiune real apar unul, dou sau toate aspectele, aplicaia fiind cea
care indic gradul de prelucrare necesar.
Codarea este operaia de punere n coresponden biunivoc a mesajelor unei
surse (S) cu mulimea cuvintelor de cod (C) constituite cu un alfabet X.
Fie sursa S i mulimea cuvintelor de cod C:
M
si
S:
,
, i = 1, M , p i = 1
p i = p(si )
i =1
(3.1)
ci
C:
, i = 1, M , p (c i ) = p (s i )
p i = p (c i )
(3.2)
unde ci este cuvnt de cod i reprezint o succesiune finit de simboluri ale
alfabetului codului X:
xj
X:
,
p j = p(x j )
(3.3)
j = 1, m,
pj =1
j=1
Prin codare sursa iniial S este transformat ntr-o surs secundar X ce constituie
intrarea n canal (fig. 3.1).
Codare
si
Cs
C
secretizar
e
Cc
xj
N
n
CANAL
Cu un alfabet X dat, pentru o surs S se pot realiza o multitudine de coduri. Tabelul 3.1
prezint o serie de coduri binare puse n corespondena unei surse S format din 4
simboluri.
Tab 3.1 Coduri binare asociate unei surse cuaternare (M=4)
S
A
B
C
D
E
F
s1
00
0
0
0
0
0
s2
01
01
10
10
100
10
s3
10
011
110
110
11
11
s4
11
0111
1110
111
110
110
n continuare vom defini o serie de coduri utilizate frecvent n aplicaii:
Cod uniform=codul la care toate cuvintele de cod au aceeai lungime
ex: codul A
Cod neuniform=codul la care cuvintele de cod nu au aceeai lungime.
ex:B,C,D,E,F
Cod unic decodabil(CUD)=codul pentru care la fiecare succesiune de cuvinte de
cod i corespunde o unic succesiune de simboluri ale sursei.
ex:A,B,C,D, snt CUD
35
E,F nu snt CUD deoarece cuvntul c4 110 poate fi decodat s4 sau s3s1.
Cod separabil(cu virgul)=CUD care utilizeaz simboluri de demarcaie ntre
cuvinte
ex: B-are pe 0 simbol ce indic nceputul cuvntului
C-are pe 0 pentru indicarea sfritului de cuvnt
Cod instantaneu(CI)=CUD la care nici un cuvnt de cod nu este prefixul altui
cuvnt.
ex: A,B,D
C nu este instantaneu pentru c are pe 0 prefix pentru toate
celelalte
cuvinte.
Orice cod poate fi reprezentat prin graful, arborele codrii, arbore asociat
mulimii cuvintelor de cod. Un astfel de arbore este reprezentat n urmtoarul exemplu
pentru codul D din tabelul 3.1:
10
0
110
0
0
0
1
3.2
111
3.3
36
un simbol al pcii: o ramur de mslin i aduce porumbelul lui Noe la sfritul Potopului.
Dup o veche legend, crucea rstignirii lui Hristos era din lemn de mslin i de cedru. n
plus n limbajul Evului Mediu mai este i un simbol de aur i iubire. n Islam mslinul
este un pom central, axa lumii, simbol al Omului universal, al Profetului. Copac
binecuvntat, el este asociat cu Lumina, ntruct untdelemnul de mslin alimenteaz
lmpile.....Mslinul simbolizeaz n definitiv Raiul celor alei.
n Grecia antic [Wi-90] pentru transmiterea la distan a mesajelor se folosea un
fel de telegraf realizat cu ajutorul unor tore prin care se realiza un cod ce permitea
transmiterea literelor alfabetului, fr a exista o compresie ca n cazul codului Morse.
n secolul al XVIII-lea, Amiralitatea Britanic folosea un sitem de cabine ce
transmiteau semnale pe 6 bii cu ajutorul unor felinare cu 6 obloane, ceea ce permitea
codificarea a M=26=64 mesaje. Acestea erau folosite pentru codificarea celor 26 litere, a
celor 10 cifre i a altor comenzi speciale, cuvinte comune sau fraze. Se realiza n acest
mod pe lng reprezentarea informaiei i o compresie ad-hoc. n [Wi-90] se arat c dou
din cele 28 de combinaii reprezentau comanda de executare sau achitare a
condamnatului. Este amintit situaia unui condamnat care a fost executat din cauza unei
erori fatale de transmitere a mesajului, exemplu ce reflect slbiciunea compresiei:
efectul erorilor asupra transmisiilor comprimate.
Acronimele, folosite din cele mai vechi timpuri constituie forme comprimate de
reprezentare a informaiei. Astfel pe mormintele funerare romane, unde costul gravrii
era deosebit de mare, se ntlnete frecvent STL (Sit Terra Levis), acronimul
corespunztor frazei tradus n romnete Aici odihnete. Ct despre utilizarea
acronimelor n ziua de azi putem defini epoca actual ca civilizaia acronimelor; fiecare
domeniu utilizeaz adevrate dicionare de acronime. S lum ca exemplu TTI (Teoria
Transmiterii Informaiei), SDFM(Surs Discret Fr Memorie), CAO (Cod Absolut
Optimal), CFP (Canale Fr Perturbaii), etc. Dintre alte coduri de reprezentare a
informaiei amintim sistemele de numeraie i codul genetic (ADN).
n continuare vom da cele mai utilizate coduri de reprezentare a informaiei n
comunicaiile numerice (transmisiuni de date, convertoare analog digitale).
3.3.2 CODUL MORSE
Acest cod, inventat de Samuel Morse n 1837, dei i-a pierdut mult din
actualitate, rmne i astzi codul universal al radiotelegrafitilor amatori sau
profesioniti (legturi maritime), mai ales n sistemele cu exploatare manual.
Caracterele alfanumerice (cele 26 de litere ale alfabetului latin, cele 10 cifre
zecimale) snt codificate prin trei simboluri: punct, linie, spaiu. Alfabetul Morse
realizeaz i o compresie ad-hoc punnd n coresponden la literele cu frecven maxim
cuvintele cele mai scurte.
37
U (
)
' L
'
R (
)
' P
'
E
W J
' B
'
D X
' C
'
N
K Y
' Z
'
G Q
' (
)
O CH
Fig. 3.2 Arborele corespunztor codului Morse
Mesajul SOS n cod Morse este . . . - - - . . . .
38
Combinaia
de cod
Numrul
combinaiei
11000
10011
01110
10010
10000
10110
01011
00101
01100
11010
11110
01001
00111
00110
00011
01101
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Litere
Cifre i
semne
speciale
Q
1
R
4
S
;
T
5
U
7
V
=
W
2
X
/
Y
6
Z
+
Retur de car (CR)
Linie nou (NL)
Liter (SL)
Cifr (SC)
Spaiu (SP)
Neutilizabil
Combinaia
de cod
11101
01010
10100
00001
11100
01111
11001
10111
10101
10001
00010
01000
11111
11011
00100
00000
39
0
1
0
2
SP
!
L(#)
$(X)
%
&
,
(
)
*
+
,
.
/
0
1
1
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
1
0
0
4
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
1
0
1
5
P
Q
R
S
T
U
V
W
X
Y
Z
^
-
1
1
0
6
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
Caractere de comand:
-pentru simboluri naionale
SP -Space
CR-Carriage Return
LF-Line Feed
EOT-End Of Trasmission
ESC-Escape
DEL- Delete
Acest cod este cel mai des utilizat n transmisiunile de date i teletex.
n multe situaii la cei 7 bii de date se adaug un al 8-lea, bitul de control al
paritii(opional) rezultnd codul ASCII-8, folosit pentru detecia erorilor impare.
3.3.5 CODUL BCD (BINARY CODED DECIMAL)
Este un cod uniform de 6 bii , utilizat n primele sisteme de calcul (generaia a
doua).
40
1
1
1
7
p
q
r
s
t
u
v
w
x
y
z
DEL
>
J
K
L
M
N
O
P
Q
R
!
S
*
]
;
Combinaia de cod
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1110
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1110
41
Informatii
(caractere)
BLANC
/
S
T
U
V
W
X
Y
Z
=
,
(
,
ANULARE
+
A
B
C
D
E
F
G
H
I
?
.
)
[
<
Combinaia de cod
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1110
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1110
IFS
DC4
1 1 0 0 12 FF
< * % @
IGS
ENQ NAK (
1 1 0 1 13 CR
)
- ,
SO
IRS
ACK
1 1 1 0 14
+ ;
> =
IUS
BEL
SUB
1 1 1 1 15 SI
| ? "
1
1
0
0
12
A
B
C
D
E
F
G
H
I
3.3.7CODUL GRAY
Caracteristic pentru acest cod este faptul c la o tranziie de la o valoare la
urmtoarea codul schimb numai un bit (vezi tab. 3.6).
Conversia din codul BN n codul Gray se face astfel: bitul cel mai semnificativ
(MSB) din codul binar este acelai cu MSB din codul Gray. Pornind de la MSB spre
bitul cel mai puin semnificativ (LSB), fiecare schimbare de bit (01 sau 10) din BN
produce un 1, fiecare trecere de la un bit la altul fr schimbare produce un 0 n codul
Gray.
Conversia din Gray n BN se face invers cu cea din BN n Gray: MSB este acelai
att n BN ct i n Gray. n continuare de la MSB spre LSB, urmtorul bit n BN va fi
complementul precedentului dac bitul corespunztor din Gray este 1 sau identic cu cel
precedent dac bitul din Gray este 0.
42
1
1
0
1
13
1
1
1
0
14
1
1
1
1
15
0
J
1
K S 2
L T 3
M U 4
N V 5
O W 6
P X 7
Q Y 8
R Z 9
Comment [REM1]: Page: 8
43
n = pi n i
i =1
(3.5)
innd cont c prin codarea fiecrui mesaj si i se pune n coresponden un cuvnt
de cod ci, avem:
p(ci)=pi
,
i=1,M.
p(si)=
(3.6)
Costul transmisiei va fi proporional cu n, deci se va urmri ca prin codare s se
realizeze nmin .ntrebarea care se pune este:
nmin =?
n ipoteza unei surse discrete fr memorie, cantitatea medie de informaie pe
simbol al sursei si este H(S) i ea este egal cu cantitatea medie de informaie pe cuvnt
de cod ci, deci:
M
i =1
(3.7)
Cantitatea medie de informaie pe liter a alfabetului codului xi este H(X):
m
j =1
j =1
H (X ) = p (x j)ldp (x j) = p jld p j
(3.8)
Vom avea :
H(S)=
(3.9)
de unde rezult:
n=
H (S)
H (X )
H(X)
(3.10)
Valoarea minim a lui n se obine pentru H(X)=Hmax(X)=D(X), ceea ce conduce la :
n min =
H(S)
ldm
(3.11)
44
Observaie: Relaia (3.11) este valabil numai n sitauia n care alfabetul X este fr
memorie ceea ce nu se ntmpl n orice situaie [Bo-94].
Relaiile (3.9) i (3.11) arat faptul c prin codarea unei SDFM , are loc
conservarea entropiei sursei S, aceasta fiind transformat ntr-o surs X de entropie
maxim, fapt ce justific denumirea acestui tip de compresie ca entropic sau fr
pierderi .
Eficiena codrii () se definete ca:
n min
H(S)
=
n
n ldm
(3.12)
O alt mrime, utilizat mai mult n tehnica compresiei, ce apreciaz eficiena
codrii este factorul de compresie (FC) definit ca raportul dintre lungimea codului n
codare uniform (nu) i lungimea medie a cuvntului obinut prin codare:
.
FC = n u
n
(3.13)
Codurile pentru care n = n min se numesc coduri absolut optimale (CAO). Pentru CAO,
Hmax(X)=D(X)=ld m,
deci simbolurile xj snt echiprobabile: p(xj )=1/m, j=1,m .
Dar: p(si)=p(ci), de unde rezult c pentru o surs SDFM (simbolurile xj snt
independente ):
1 ni
p (c i ) =
.
(3.14)
Dar:
i =1
i =1
1 ni M n
= m i =1.
i =1 m
i =1
M
p( s i ) = p( c i ) =
Relaia:
M
m ni = 1
i =1
(3.15)
este deci valabil pentru coduri CAO; ea arat legtura ce trebuie s existe ntre lungimile
ni i alfabetul codului m n cazul codurilor absolut optimale.
Observaie:
dac pentru un cod este ndeplinit relaia (3.15), nu rezult n mod obligatoriu
c acel cod este absolut optimal, dar ea afirm c pentru un alfabet dat (m),
pentru lungimi ni care satisfac relaia (3.15) se poate construi ntotdeauna un
CAO.
45
Exemplul 3.1
Fie sursa S codat n dou moduri.
s
s2
s3
s4
S: 1
0. 5 0. 25 0. 125 0. 125
n i1: 3
3
2 1
C2 : 0 10 110 111
n i2: 1 2 3
3
2 = 1.
3.5 TEOREME DE EXISTEN A CODURILOR
INSTANTANEE, RESPECTIV A CODURILOR UNIC
DECODABILE (INEGALITATEA LUI KRAFT,
RESPECTIV INEGALITATEA LUI Mc MILLAN)
Teorema T1: Condiia necesar i suficient de existen a codurilor instantanee este:
M
mni 1
i =1
(
3.16)
Aceast relaie este cunoscut sub denumirea de inegalitatea lui Kraft.
Demonstraie:
a) Necesitatea:
Vom arta c dac un cod este instantaneu de baz m, cuvintele avnd lungimile
n1n2....... nM, se verific relaia (3.16).
Codul poate fi reprezentat printr-un graf de ordinul m i talie nM. Codul fiind
instantaneu, nseamn c nici un cuvnt de cod nu trebuie s fie prefixul altui cuvnt de
cod, deci un cuvnt de cod odat identificat pe arbore nu este posibil s existe alte
cuvinte de cod pe ramurile incidente ale vrfului reprezentnd cuvntul de cod identificat.
Aceasta nseamn c pentru fiecare cuvnt de cod de lungime ni se exclud
n M n i vrfuri terminale ale arborelui.
m
Pentru codul dat totalul vrfurilor terminale excluse este:
M
m n M ni
i =1
46
i cum numrul total de vrfuri terminale pentru un arbore de talie nM este m n M , trebuie
M
m n M n i m n M , sau:
ca :
i =1
M
mni 1
i =1
b) Suficiena
Se va arta c dac este verificat inegalitatea lui Kraft, cu un alfabet cu baz m
i cu lungimile ni satisfcnd: n1 n2....... nM se poate constitui un cod instantaneu.
Se construiete graful de ordinul m i talie nM. Se ia un vrf al acestui graf ca i
cuvnt de cod de lungime n1, suprimndu-se n acest fel m n m n1 vrfuri terminale; dar
M
cum m n Mn i m n M , rmne cel puin un vrf terminal care poate fi luat drept cuvnt
i =1
m n M n1 + m n M n 2 m n M .
Se continu operaia pentru cuvintele de cod de lungime n3, n4.....
Teorema T2 : Teorema de existen a CUD. Teorema lui McMillan
Inegalitatea lui Kraft (3.16) este o condiie necesar i suficient de existen i pentru
CUD.
Demonstraia acestei teoreme se realizeaz analog cu teorema lui Kraft [Sp-71].
Teorema T1 , respectiv T2, dat de relaia (3.16) este o teorem de existen: ea
arat c pentru un alfabet m dat i cu lungimi ni ce satisfac relaia (3.16), se pot construi
coduri instantanee sau unic decodabile , fr a indica ns i algoritmul de codare.
47
ld pi
ld pi
+1
ldm
ldm
(3.19)
p ld p i
p ld pi
i
n i pi < i
+ pi
ldm
ldm
M
ni <
p i ld pi
i =1
pi ld pi
+ pi
ldm
i =1
i =1 ldm
i =1
H(S)
H(S)
n<
+1
ldm
ldm
(3.20)
Relaia (3.20) este valabil pentru orice surs fr memorie, n particular i
pentru extensia de ordinul n a sursei S, pentru care H(Sn)=nH(S), deci:
nH (S)
nH (S)
nn <
+ 1 , unde prin nn s-a notat lungimea medie obinut prin
ldm
ldm
codarea extensiei sursei S (Sn).
H(S) n n
H(S) 1
.
=n<
+
ldm
n
ldm n
(3.21)
Pentru n se obine:
H (S)
n=
=
.
ld m n min
(3.21a)
Relaia (3.21) constituie teorema I-a a lui Shannon sau teorema codrii
canalelor fr perturbaii i ecuaia arat c pentru orice surs S, printr-o codare pe
grupe de n simboluri, poate fi fcut o codare absolut optimal, dac n. Acest
rezultat era de ateptat innd cont c dac se codeaz pe grupe de simboluri rotunjirea se
refer la ntregul grup, deci rotunjirea aferent unui singur simbol este mai mic dect n
cazul codrii simbol cu simbol, deci ne vom apropia orict de mult de n min .
i =1
n i pi
pi
Exemplul 3.2
s
s2 , codat cu C ={0,1}
Fie S: 1
a
0.7 0.3
Rezult:
n min = H(S) = 0.88bii / simbol .
na=1, a=0.88.
Extensia de ordinul 2 a sursei este:
s1 s2 s2 s1 s2 s2
2 s1 s1
S : 0.49 0.21 0.21 0.09 , codat cu Cb: (1 01 000 001),
n acest caz: nb=1.8
48
18
.
= 0.9 < n a , deci se observ o scdere a lungimii
Relaia (3.21) devine: n n = n b =
n
n
2
medii pe simbol n cazul codrii pe grupe de dou simboluri. Propunem cititorului s
verifice mbuntirile eficienei codrii n cazul codrii pe grupe de n=3 simboluri.
1
/
2
1
/ 4 1 / 8 1 / 8
49
S se determine:
a) codul Shannon-Fano binar corespunztor sursei.
b) graful corespunztor codului.
c) eficiena codrii i factorul de compresie.
d) adaptarea statistic a sursei la canal, realizat prin codare.
Soluie:
a)
pi
Partiie
si
s1
1/2
0
s2
1/4
0
s3
1/8
1
1
s4
1/8
b) Graful corespunztor codului este:
0
0
1
0
1
0
10
0
1
ci
0
10
110
111
ni0
1
1
1
0
ni1
0
1
2
3
110
1
11
ni
1
2
3
3
111
c)
n = p i n i = 1 / 2 1 + 1 / 4 2 + 1 / 8 3 + 1 / 8 3 = 175
.
i =1
M
H (S)
=
=
H
(
S
)
.
pi ld pi = 175
n min ldm
i =1
175
.
= 1 = 100%,
c = n min =
175
.
n
deci codul este absolut optimal; acest lucru era uor de observat nc de la nceput
deoarece repartiia de probabilitate a sursei permite lungimi ni ntregi:
-ld p1=-ld 1/2=1=n1
-ld p2=-ld 1/4=2=n2
-ld p3=-ld 1/8=3=n3
-ld p4=-ld 1/8=3=n4
n
Fc = u unde nu se determin din relaia:
n
m nu = M
(
3.22)
deci
nu =
ldM
ldm
(3.22a)
Se obine nu=2, deci Fc=2/1.75=1.14.
d)Adaptarea statistic la canal presupune determinarea probabilitilor alfabetului
codului, deci a lui p(0) i p(1) care trebuie s fie ct mai apropiate. Codul fiind absolut
optimal p(0)=p(1)=1/2. Pentru a calcula aceste probabiliti vom utiliza relaiile :
50
p(0) =
pi n i 0
N0 =
i =1
M
M
+
N 0 N1 p n +
pi n i1
0
i
i
i =1
i =1
(
M
p(1) =
3.23)
p i n i1
N1 =
i =1
M
M
N 0 + N1
p i n i 0 + p i n i1
i =1
i =1
(
3.24)
unde N0 i N1 reprezint numrul mediu de 0respectiv de 1 folosite n codarea sursei.
Fcnd calculele, se obin : p(0)=p(1)=1/2, deci s-a realizat adaptarea statistic a
sursei la canal ceea ce nseamn c o asemenea surs va utiliza canalul la capacitatea sa,
n cazul unei transmisii.
Exemplul 3.4
a) S se codeze prin algoritm Huffman binar sursa:
s
s 2 s 3 s 4 s5 s6
S: 1
51
a)
si
s1
s2
s3
s4
s5
s6
pi
0.3
0.25
0.15
0.15
0.10
0.05
ci
00
10
11
010
0110
0111
R1
0.3
0.25
0.15
0.15 010
0.15 011
Restrngeri
R2
R3
0.3
0.4
0.3
0.3 00
0.25 10
0.3 01
0.15 11
b)
n = p i n i = 2.45
i =1
2.39
=
= 0.98 = 98%
2.45
3
n
.
Fc = u = 2.39 = 125
n
52
R4
0.6 0
0.4 1
si
s1
s2
s3
s4
s5
s6
s7
b)
pi
0.3
0.25
0.15
0.15
0.10
0.05
0.0
ci
1
2
00
01
020
021
022
R1
0.3
0.25
0.15 00
0.15 01
0.15 02
R2
0.45 0
0.3 1
0.25 2
n=0.31+0.252+0.152+0.152+0.103+0.053=1.85
H(S) 2.39
= 15
.
n min = ldm = 1584
.
15
.
= 0.81
=
185
.
n
Fc = nu unde n u se det er min din (3.22. a )
ldM
ld 6
2.584
= 163
. ,
n u = ldm = ld 3 = 1584
.
deci nu se ia 2.
nlocuind n formula factorului de compresie, se obine: Fc =
2
. .
= 133
15
.
53
conform arborelui Huffman curent. Dac caracterul se afl n arbore, se transmite codul
corespunztor acestuia. Dac acest caracter nu se gsete n arbore, se transmite codul
corespunztor caracterului de avarie pentru a indica cutarea n alt arbore.
Aplicaii performante ale acestui tip de codare se gsesc n sisteme de baze de
date la nivelul driverului.
54
Arbore iniial:
Arbore dupa a:
Ramur stnga
codat cu 0
Arbore dup b:
Arbore dup c:
Interschimbare
noduri
Nod frunz
(corespunde
caracterelor
folsite n mesaj)
Ramur dreapta
codat cu 1
Numrul de
ordine al
nodului n
arbore
Frunz 0
Arbore dup b:
7
Caracter asociat
frunzei
1
55
Fig 3.3 Evoluia arborelui Huffman FGK n cazul codrii mesajului abcb...
Secvena binar obinut este a0b00c11 (a,b,c reprezint cei8 bii ai codului
ASCII )
Pseudocodul procedurii de reactualizare arbore al variantei FGK este :
{ q=frunza corespunztoare simbolului si dac acesta este n arbore, sau frunza goal
dac nu este n arbore;
if ( q este frunz 0) { substitui frunz 0 cu un nod printe cu doi copii frunze 0
numerotate n ordinea copil stnga 1, copil dreapta 2, printe 3 ;
incrementez numrul de ordine al celorlalte noduri;
q=copil drept tocmai creat;}
while ( q nu este nod rdcin)
{ incrementez pondere nod q;
schimb q cu nodul cu cel mai mare numr de ordine i cu pondere mai mic;
q=printe nod q; }
}
56
. + 1 / 4 16
. + 3 / 8 14
. = 145
.
n M = p1 n1 + p2 n 2 + p 3 n 3 = 3 / 8 14
Se observ c nM< n*, deci codarea este mai eficient dac codm pentru fiecare
stare n parte.
Observaii:
dac numrul strilor este mare, lungimea medie scade din ce n ce mai puin, iar
numrul codurilor diferite crete, astfel nct codarea strii staionare devine mai
practic [Ha-80].
cititorul interesat n realizrile moderne ale compresiei surselor Markov este sftuit s
consulte lucrarea [Wi-90].
primul eantion din fiecare pas este stocat mpreun cu cuvntul de cod ce reprezint
lungimea pasului (ri).
datele statistice necesare codrii pot fi obinute experimental (analiza statistic a
sursei) i ele vor da p(ri).
58
A={a1, a2,......aM}, unde ai reprezint irul de acelai tip alb sau negru de lungime
ri. Repartiia de probabilitate corespunztoare , obinut n urma unei analize statistice a
imaginii este:
P( ri ) = [ p i ],
i = 1, m ,
, p i = 1.
i =1
(pas)
este:
H (A ) = p i ldp i
[bii/pas].
i =1
(3.26)
Aceti pai pot fi codai optimal folosind algoritmul Huffman binar, rezultnd
pentru sursa A o lungime medie:
H(A)n<H(A)+1.
(3.27)
mprind relaia (3.26) la numrul mediu de eantioane pe pas ( r ):
M
r = p i ri
[eantioane(pixeli)/pas]
i =1
(
3.28)
H(A ) + 1
H( A) n
= Db <
r
r
r
obinem:
(3.29)
Db =
n
r
(3.30)
Pentru o imagine tipic faximile, corespunztoare unei imagini meteo [Wa-94], se
H( A)
obine n cazul utilizrii acestui tip de compresie :
0.2 bii/pixel, fa de 1
r
obinut n cazul necomprimrii.
Observaie:
o modelare mai bun a acestei surse de informaie (faximile) poate fi fcut utiliznd
un model Markov de ordinul nti caz n care compresia obinut este i mai bun.
Exemplul 3.7 [Wa-94]:
Standardul pentru faximile al grupului 3 al CCITT (Hunter i Robinson, 1980) are
o rezoluie de 1728 de eantioane/linie pentru documente n format A4, deci numrul
maxim al cuvintelor de cod/linie este de 1728. Acest numr mare de cuvinte de cod face
impracticabil utilizarea unui cod Huffman clasic, fapt pentru care a fost propus un
cod Huffman modificat, pentru care fiecare pas avnd lungimea ri>63 este divizat n doi
pai: unul avnd valoare N64 (unde N este un ntreg ) cuvntul rdcin, iar cellalt
partea terminal, coninnd pai cu valori cuprinse ntre 0 i 63. Deoarece irurile snt
independente, se codeaz independent irurile albe i cele negre, obinndu-se un debit
59
mai sczut (deci i o compresie mai bun). Tabelul 3.10 prezint codul Huffman
modificat utilizat n faximile.
Tab. 3.10 Codul Huffman modificat utilizat pentru faximile.
Cuvinte de cod
ri
Alb
Negru
ri
Alb
0
00110101
0000110111
32
00011011
1
000111
010
33
00010010
2
0111
11
34
00010011
3
1000
10
35
00010100
4
1011
011
36
00010101
5
1100
0011
37
00010110
6
1110
0010
38
00010111
7
1111
00011
39
00101000
8
10011
000101
40
00101001
9
10100
000100
41
00101010
10
00111
0000100
42
00101011
11
01000
0000101
43
00101100
12
001000
0000111
44
00101101
13
000011
00000100
45
00000100
14
110100
00000111
46
00000101
15
110101
000011000
47
00001010
16
101010
0000010111
48
00001011
17
101011
000011000
49
01010010
18
0100111
0000001000
50
01010011
19
0001100
00001100111
51
01010100
20
0001000
00001101000
52
01010101
21
0010111
00001101100
53
00100100
22
0000011
00000110111
54
00100101
1
23
0000100
00000101000
55
01011000
24
0101000
00000010111
56
01011001
25
0101011
00000011000
57
01011010
26
0010011
00001100101
58
01011011
0
27
0100100
00001100101
59
01001010
1
28
001000
00001100110
60
01001011
0
29
00000010
00001100110
61
00110010
1
30
00000011
00000110100
62
00110011
0
31
00011010
00000110100
63
00110100
1
60
Negru
000001101010
000001101011
000011010010
000011010011
000011010100
000011010101
000011010110
000011010111
000001101100
000001101101
000011011010
000011011011
000001010100
000001010101
000001010110
000001010111
000001100100
000001100101
000001010010
000001010011
000000100100
000000110111
000000111000
000000100111
000000101000
000001011000
000001011001
000000101011
000000101100
000001011010
000001100110
000001100111
ri
64
Alb
11011
128
10010
192
0010111
256
0110111
320
00110110
384
00110111
448
01100100
512
01100101
576
01101000
640
01100111
704
011001100
768
011001101
832
011010010
896
011010011
1024
011010101
1088
011010110
1152
011010111
1216
011011000
1280
011011001
1344
011011010
1408
011011011
1472
010011000
1536
010011001
1600
010011010
1664
011000
1728
010011011
EOL
00000000000
1
Negru
000000111001
1
000000111010
0
000000111010
1
000000111011
0
000000111011
1
000000101001
0
000000101001
1
000000101010
0
000000101010
1
000000101101
0
000000101101
1
000000110010
0
000000110010
1
000000000001
Observaie:
n cazul compresiei realizat prin codare cu lungime variabil (codare Huffman), prin
nlturarea redundanei transmisia devine mult mai vulnerabil la erori. n general
(dar nu n toate situaiile ) o eroare aprut n transmisie se va propaga ducnd la
pierderea sincronizrii, i implicit la o decodare incorect. Figura 3.5 (b) indic faptul
c nu se pierde sincronizarea aprnd doar un pixel eronat n linia codat, spre
deosebire de figura 3.5(c) n care o eroare duce prin propagare la o decodare fals a
ntregii linii.Pentru reducerea efectelor acestui fenomen nedorit n sensul limitrii
propagrii erorii pe mai multe linii se transmite la sfritul fiecrei linii un cuvnt
sincronizator (EOL).
61
5A
1
2N
0
5A
2A
1
1N
1 0
25A
1 0
-a
25A
1 0
-b
-c
3N
5A
3N
1
2A
3N
7A
6N
4A
1
Fig. 3.5 Efectul unei erori n transmisie asupra codului Huffman modificat
a) secven transmis
b), c) secvene recepionate afectate de o eroare
62
n=ld
M
(3.31)
La nceputul fiecrui pas se transmite (stocheaz) un cuvnt pe k bii reprezentnd
valoarea fiecrui eantion din pas; n continuare se transmit cei n bii reprezentnd
lungimea pasului respectiv.
Exemplul 3.9
Pentru compresia imaginilor bitonale alb (A) i negru (N) ntlnite n faximile
aceast metod este extrem de simpl i destul de eficient, dei inferioar codrii
Huffman. Un sistem faximile cu 1728 eantioane pe linie genereaz iruri identice avnd
ri=100 sau mai mare (n general pentru iruri de A), astfel nct se justific codarea pailor
cu n=8 bii (fig. 3.6).
00000101
00000010
00000111
00000011
00000111
sensul datelor
0
0
0
0
0
3
7
-irul de date la intrare
7
0
S
3
7
-irul de date comprimat
C
X
S
Fig. 3.7 Compresie pentru texte
irul format din 7 0 a fost comprimat prin transmiterea lui CXS.
5
5
63
si
pi
ciV
ciH
s1
1/2
0
0
s2
1/4
10
10
s3
1/8
110
110
s4
1/8
1110
111
Se obine lungimea medie i factorul de compresie:
n
n V = p i n i = 1 / 2 1 + 1 / 4 2 + 1 / 8 3 + 1 / 8 4 = 187
.
i =1
nu
2
=
107
. .
.
n V 187
Codul Huffman corespunztor este prezentat n ultima coloan a tabelei de codare
(CiH). n acest caz avem:
.
n H = 175
FcV =
2
.
114
.
175
Se remarc pentru sursa n discuie obinerea unui factor de compresie destul de
bun comparativ cu valoarea maxim,obinut prin codare Huffman.
FcH =
Observaie:
pentru anumite aplicaii poate fi avantajoas utilizarea codrii cu virgul, comparativ
cu codarea Huffman, datorit simplitii implementrii i a comportrii mai bune n
prezena perturbaiilor (spre deosebire de codul Huffman, codul cu virgul se
autoresincronizeaz dup apariia unei erori).
aceste avantaje snt pltite cu reducerea eficienei codrii (respectiv a factorului de
compresie), comparativ cu codurile optimale, dei n multe situaii aceast reducere
poate fi mic.
3.7.5 TEHNICI DE DICIONAR[WI-90]
Fiierele text se caracterizeaz prin repetarea frecvent a unor subiruri. Numeroi
algoritmi de compresie constau n detectarea i eliminarea acestor iruri care se repet.
Tehnicile de dicionar construiesc dicionarul subirurilor comune, fie din mers,
fie ca un pas separat. La fiecare subir aflat n dicionar i se pune n coresponden un
cuvnt de cod, iar mesajul se transmite prin subiruri aflate n dicionar, codate
corespunztor.
Funcie de dimensiunile mesajelor de la intrare, respectiv de la ieire, tehnicile de
dicionar pot fi clasificate n urmtoarele tipuri:
fix-fix: subirurile din dicionar au aceeai lungime i snt codate uniform.
fix-variabil: subirurile snt uniforme, dar se codeaz neuniform, de exemplu prin cod
Huffman.
variabil-fix: la intrarea compresorului subirurile snt neuniforme dar se codeaz
uniform.
variabil-variabil: lungimile subirurilor din dicionar snt variabile i codarea este
neuniform.
64
Algoritmul LZ-77
Algoritmul LZ-77 folosete urmtorii doi parametri:
NZ[1,), lungimea unui buffer fereastr care se va deplasa peste mesajul transmis
FZ[1,N-1], lungimea maxim a irului codat cu F<<N.
Valorile tipice folosite n practic snt N213 i F24, ambii exprimai ca puteri ale
lui 2, ceea ce favorizeaz implementarea algoritmului.
Algoritmul implic un RD (buffer) fereastr de lungime N prin care mesajul este
deplasat de la dreapta la stnga. Primele N-F elemente formeaz blocul Lempel i conine
cele mai recente N-F litere transmise, iar urmtoarele F elemente formeaz blocul Ziv ce
conin
e urmtoarele F litere ce urmeaz a fi transmise (fig. 3.8).
Lempel
Ziv
a
b
c
a
b
a
b
c
a
b
a
a
Ieire
Intrare
mesaj
mesaj
1
2
N-F N-F+1
N
Fig. 3.8 Ilustrarea algoritmului LZ-77
65
1
0
0
0
a
a
b
2
0
0
0
a
b
a
Buffer Lempel
3 4 5
0 0 0
0 0 0
0 0 a
b a a
a a b
c a b
7
0
0
a
b
a
a
8 9
0 a
a a
b a
a c
c a
d a
Ziv
10 11 12
a b a
b a a
a b a
a b a
b a d
d a d
Algoritmul LZ-78
Varianta LZ-78 este similar cu varianta LZ-77 cu diferena c blocul Lempel este
un dicionar n continu cretere de dimensiune dZ teoretic nelimitat, iar irurile snt
numerotate de la 0 la d-1. In plus nu exist nici o limitare a lungimii blocului Ziv.
Pentru o mai uoar nelegere a algoritmului considerm urmtoarea figur:
66
Lempel
0
1
2
3
4
5
a
b
ab
c
bc
Ieire mesaj
d=6
Fig. 3.9 Ilustrarea algoritmului LZ-78
67
68
aa
11
69
1/2(1-0)
0
1/3(1-0)
1/2
a
1/2(1/2-0)=1/4
0
a
1/2(5/12-1/4)=1/12
1/4
a
1/2(1/3-1/4)=1/24
1/4
a
b
1/3(1/2-0)=1/6
1/4
b
1/18
1/3
b
1/36
7/24
b
1/6(1-0)
5/6
1
c
1/12
5/12
1/2
c
1/36
7/18
5/12
c
1/72
23/72
1/3
c
Intervalul
unde este
23/72
Litera
corspondent
[0,1/2)
[1/4,5/1)
[1/4,1/3)
[23/72,
1/3)
O nou problem este cum vom coda numrul subunitar transmis. O modalitate ar
fi s alegem un minim al intervalului reinut i n momentul cnd intervalul reinut este
70
mai mic dect respectivul minim s transmitem un numr coninut n intervalul precedent.
Numrul transmis nu va fi un numr subunitar ci un ntreg reprezentnd un multiplu al
cuantei minime, multiplu care se gsete n intervalul reinut. Astfel de exemplu dac
considerm intervalul minim 1/128 pentru codarea anterioar vom transmite de exemplu
40 (40/128 se gsete n intervalul [23/72,1/3) ) n binar pe 5 bii.
pe iruri
Compresia
Ireversibil
71
algoritmi
Bibliografie.
[Wi-90] R. N.Williams, Adaptive data compression, Kluwer Academic Publishers, 1990.
[Wa - 94] G. Wade, Signal coding and processing,Cambridge University Press, 1994
[Kn-85] D. E. Knuth, Dynamic Huffman coding, Journal of Algorithms 6, 1985, 163180.
[Ga-80] R. G. Gallager, Variation on a theme by Huffman, IEEE Transactions on
Information Theory, IT-24, 1978, 668-674.
[Lu-93] W.W. Lu, M.P. Gough, A fast-adaptive Huffman coding algorithm, IEEE
Transactions on Communications, Vol 41, No 4, 1993, 535-543.
[He-87] G. Held, T. R. Marshall, Data compression-techniques and applications,
Hardware and software considerations, John Wiley and Sons, 1987.
[Ap-91] S. Apiki, Lossless data compression, Byte, March 1991, 309-314, 386-387.
[Ha-80] R. W. Hamming, Coding and information theory, Prentice-Hall, 1980.
[Gr-89] G. L. Graef, Graphics formats, Byte, September 1989, 305-310.
[We-84] T. A. Welch, A Technique for high-performance data compression, Computer,
June 1984, 8-19.
72
[Zi-77] J. Ziv, A. Lempel, A universal algorithm for sequential data compression, IEEE
Transactions on Information Theory, vol. IT-23, No 3, May 1977, 337-343.
[Bo-95] M. Borda, C. Vduva, Algoritmi de compresie fr pierderi. Programe utilitare i
studiu comparativ, a XXVI-a Ses.de com. t., A.T.M,vol.4,Buc,nov. 1995.
[Bo-94] M. Borda, S. Zhan,A new algorithm associated to Huffman source coding, Acta
Technica Napocensis, Nr. 1, 1994,Cluj-Napoca,p.6164.
[S-80] M. Smpleanu, Circuite pentru conversia datelor, E. T. , Bucureti, 1980.
[Io-81] D. Ionescu, Codificare i coduri, E. T., Bucureti, 1981.
[Co-82] L. Coculescu, C. Poinariu, Teleprelucrarea datelor, E. M., Buc., 1982.
[Na-84] I. Naforni, M. Naforni, Telegrafie i Transmisiuni de date, I.P. Timioara,
1984.
[Fo-83] P. G. Fontoillet, Systemes de telecommunications, Lausanne, 1983
[Sp-71] Al. Sptaru, Teoria Transmisiunii Informaiei, E. T., Bucureti, 1971
[Sp-83] Al. Sptaru, Teoria Transmisiunii Informaiei, EDP, Bucureti, 1983.
[St - 88] R.Stoian, Compresie de date.Algoritmi de predicie, Ed.t. Enc., Buc, 1988
[Ch - 95] J. Chevalier, A. Gheerbrant, Dicionar de simboluri, vol. 2, Ed. Artemis, Buc.,
1995
73
Dorina omului de a comunica confidenial s-a pus din cele mai vechi
timpuri.Primele texte cifrate cunoscute dateaz de circa 4000 de ani i provin din Egiptul
antic, fiind destinate s pstreze secretul unor date de interes politic, militar, economic
sau religios.
Exist date privind utilizarea scrierii cifrate n Grecia antic nc din secolul al
V-lea .e.n. Pentru cifrare se folosea un baston n jurul cruia se nfura, spiral lng
spiral, o panglic ngust din piele, papirus sau pergament, pe care, paralel cu axa se
scriau literele mesajului. Dup scriere panglica era derulat, mesajul devenind
indescifrabil. El putea fi reconstituit numai de persoana care avea un baston identic cu cel
utilizat la cifrare. n sec.al IV-lea .e.n. n Grecia se cunoteau 16 scrieri cifrate. Istoricul
grec Polybius (sec.II .e.n.) este inventatorul unui tabel de cifrare ptrat de dimensiune
5x5, tabel aflat la baza elaborrii unui numr mare de sisteme de cifrare utilizate i azi.
i n Roma antic secretul informaiilor politice i militare se fcea utiliznd
scrierea secret. Amintim cifrul lui Caesar, folosit nc din timpul rzboiului galic.
n perioada Renaterii, odat cu trezirea interesului pentru civilizaia antic, s-au
redescoperit lucrrile n domeniul criptografiei din antichitate. Extinderea relaiilor
diplomatice dintre diferitele state feudale au determinat o puternic dezvoltare a
secretizrii informaiei. Curile regale i n special statul papal dispuneau de criptanaliti
de mare valoare dintre care amintim pe Giambattista della Porta, Vigenere, Cardan (n
sec.XVI) i Rossignol(sec.XVIII), cel mai abil descifrator din Europa lui Ludovic al XIIIlea i al XIV-lea.
Apariia telegrafului i a radioului din sec.al XIX-lea precum i cele dou
rzboaie mondiale din acest secol au fost stimulente puternice n dezvoltarea metodelor i
tehnicilor de criptare [An-86].
Dezvoltarea i creterea continu a utilizrii calculatoarelor, practic n toate
domeniile vieii, existena i evoluia puternic a reelelor teleinformatice la nivel naional
i internaional, existena unor bnci de date puternice, apariia i dezvoltarea comerului
electronic, a potei electronice secrete indic o cretere extraordinar a volumului i
importanei datelor transmise sau stocate i implicit a vulnerabilitii acestora. Protecia
informaiei n aceste sisteme vizeaz:
eliminarea posibilitilor de distrugere voit sau accidental
asigurarea caracterului secret al comunicrii pentru a preveni posibilitatea ca persoane
neautorizate s extrag informaii
74
Criptanaliz
S
M
E(M)
k1
D(C)
k2
U
x
k2
k1
K
75
M
M
DK
EK
Protejarea lui Dk
Fig. 4.2 Protecia datelor.
2. Autentificarea datelor : un utilizator neautorizat s nu fie capabil s substituie textul
cifrat C cu un text fals C, fr ca acest lucru s fie detectat(fig.4.3).
M
EK
S
Protejarea lui Ek
DK
C
Intrus
Fig.4.3 Autentificarea datelor.
CS
DEMOD
CC
MOD
Dec
CC
Canal
Dec
CS
76
4.2.
Exemplul 4.2
Mesajul :
A SOSIT TIMPUL , se cifreaz : 11 3443344244
444223535413 .
Observaie: Codul poate fi schimbat prin rearanjarea literelor n ptratul 5x5.
4.2.3 CIFRUL LUI TRITHEMIUS
Este un cifru polialfabetic. Alfabetul este dispus pe 26 de linii numerotate de la 0
la 25, unde numrul de ordine al liniei indic numrul de caractere cu care se deplaseaz
ciclic alfabetul spre dreapta. Linia numerotat cu 0 constituie tocmai alfabetul n ordinea
iniial. Acest cifru poate fi utilizat astfel: primul caracter se cifreaz selectndu-l din linia
1, al doilea din linia a 2-a i aa mai departe.
Tab.4.3Cifrul lui Trithemius
0 A B C D E F G
1 B C D E F G H
2 C D E F G H I
3 D E F G H I J
4 E F G H I J K
5 F G H I J K L
6 G H I J K L M
7 H I J K L M N
8 I J K L M N O
9 J K L M N O P
10 K L M N O P Q
11 L M N O P Q R
12 M N O P Q R S
13 N O P Q R S T
14 O P Q R S T U
15 P Q R S T U V
16 Q R S T U V W
17 R S T U V W X
18 S T U V W X Y
19 T U V W X Y Z
20 U V W X Y Z A
21 V W X Y Z A B
22 W X Y Z A B C
23 X Y Z A B C D
24 Y Z A B C D E
25 Z A B C D E F
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
Exemplul 4.3
Mesajul: A SOSIT TIMPUL ,se cifreaz: B URWNZ AQVZFX.
78
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
4.2.4
CIFRUL VIGENERE
Acest cifru utilizeaz cifrul Trithemius i un anumit cuvnt cheie. Cheia dicteaz
alegerea liniilor n criptarea i decriptarea fiecrui caracter din mesaj.
Exemplul 4.4
Cuvnt cheie M O N A M O N A M O N A
Text n clar
A S O S I T T I M P U L
Text cifrat
M G B S U H G I Y D H L
O variant a acestui cifru este cifrul Vigenere cu cheie n clar (cheie de
ncercare).
Cheie de ncercare indic linia sau liniile de nceput pentru primul sau primele caractere
ale textului n clar ca n exemplul 4.4. Apoi caracterele textului n clar snt folosite ca i
chei pentru alegerea liniilor n criptare.
Exemplul 4.5
Relum exemplul 4.4 dar alegem litera M ca cheie de ncercare. Obinem:
Cuvnt cheie M A S O S I T T I M P U
Text n clar
A S O S I T T I M P U L
Text cifrat
M S G G A B M B U B J F
Observaie: Se remarc introducerea unei reacii n procesul de criptare, textul cifrat
fiind condiionat de coninutul mesajului.
O alt variant a cifrului Vigenere este: cifrul Vigenere cu autocheie (cheie
cifrat).
Dup criptarea cu cheie de ncercare, fiecare caracter succesiv al cheii n secven se
obine de la caracterul cifrat al mesajului i nu de la textul n clar.
Exemplul 4.6
Cuvnt cheie M M E S K S L E M Y N H
Text n clar
A S O S I T T I M P U L
Text cifrat
M E S K S L E M Y N H S
Observaie:
Dei fiecare caracter utilizat ca i cheie poate fi gsit din caracterul anterior al textului
cifrat, el este funcional dependent de toate caracterele anterioare ale mesajului,
inclusiv de cheia de ncercare. Urmare a acestui fapt este efectul de difuziune a
proprietilor statistice ale textului n clar asupra textului cifrat, ceea ce face ca
analizele statistice s devin foarte grele pentru un criptanalist.
n baza standardelor actuale, schemele de cifrare Vigenere nu snt foarte sigure;
contribuia important a lui Vigenere const n faptul c a descoperit c pot fi
generate secvene nerepetitive ca i cheie prin utilizarea a nsui mesajului sau a unor
pri ale acestuia.
79
C=E(M)
D(C)
k-cheie de criptare
k
k
E-bloc de criptare
(encryption)
D-bloc de decriptare
Fig.4.5 Schema bloc a unui sistem de criptare(decryption)
cu chei simetrice
80
k
g1
gm-1
go=
1
LSB
T este matricea caracteristic a RDR
81
C2
C1
g2=
1
C0
SP2
SP1
SP0
g0=
1
Dac considerm starea iniial a registrului 101 secvena pseudoaleatoare se poate obine
urmrind evoluia registrului:
Tact
1
2
3
4
5
6
7
C2
1
0
0
1
1
1
0
RD
C1
0
1
0
0
1
1
1
C0
1
0
1
0
0
1
1
Secven pseudoaleatoare(SP)
SP2
SP1
SP0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
Observaii:-la tactul 8 registrul va conine sevena iniial 101 deci procesul se repet.
-secvena pseudoaleatoare are o lungime de 7 bii.
Pentru obinerea unor chei de lungime n foarte mare, pornind de la RDR avnd un
numr relativ mic de celule (m) se poate nsuma modulo 2 ieirile a dou sau mai multe
RDR(fig.4.7).
82
S01
g11
gm1=
1
go1=1
k1
k2
S02
g12
gm2=
1
go2=1
T1 1 = I1 , T2 2 = I 2
(4.11)
m
m
n1 = 2 1 -1 , n 2 = 2 2 -1
Pentru ca relaia (4.10) s fie indeplinit, trebuie ca:
T1n = I1 i T2n = I 2
(4.12)
Cel mai mic n care satisface aceast condiie este cel mai mic multiplu comunal
numerelor n1i n2
n=c.m.m.c. {n1,n2}
(4.13)
Dac n1i n2 snt numere prime:
n=n1n2
(4.13.a)
83
p1=numrul
ieirilor RDR1
p2= 2 p1 =numrul
ieirilor RDR2
RDR2
RDR1
x1
y1
MUX
yp2
k
xp1
Fig. 4.8 Sistem neliniar cu multiplexare pentru obinerea unor secvene
pseudoaleatoare
In cazul sistemului prezentat n fig.4.8, secvena k obinut prin
multiplexare nu mai este n dependen liniar cu strile celor dou RDR.
Exemplul 4.8
Prin particularizarea p1=2 i p2=4, vom exprima ieirea k a multiplexorului,
evideniind astfel neliniaritatea introdus prin multiplexare.
x2
k
x1
0
0
y1
0
1
y2
1
0
y3
1
1
y4
k=(1+x1) (1+x2)y1+(1+x1)x2 y2+x1(1+x2)y3+x1x2 y4
4.3.4 ALGORITMUL DES
Algoritmul DES(Data Ecryption Standard) este un algoritm de criptare cu chei
simetrice. Structural este constituit ca o combinaie de algoritmi de tip transpoziie i
substituie. Dup cum arat i numele este un standard de criptatre. Acest standard a fost
adoptat de National Security Agency (NSA) din SUA. Iniial sistemul a fost propus s
lucreze cu un cuvnt cheie de 128 de bii dar din motive strategice s-a redus lungimea lui
la 64 (de fapt la 56) de bii. Experiii NSA au realizat c o cheie de 128 de bii este prea
greu de spart chiar i pentru ei.
n continuare vom prezenta standardul de criptare DES, mai precis o variant a sa
rmnnd la latitudinea cititorului s neleag logica dup care acest algoritm a fost
construit.
Pentru o mai bun nelegere a shemei de cifrare vom urmari pe rnd:
generarea cheii de cifrare
rutina de criptare
funcia de criptare /decriptare
84
85
22
04
Cuvnt cheie
(64 de bii)
Matrice de transpoziie
MT1
Matrice C0
(28 bii)
Matrice D0
(28 bii)
Deplasare matrice
stnga
Matrice C1
Deplasare matrice
stnga
Matrice D1
Deplasare matrice
stnga
Deplasare matrice
stnga
K1
48 bii
Matrice
transpozii
e
K15
48 bii
Matrice D15
Matrice C15
Deplasare matrice
stnga
Deplasare matrice
stnga
Matrice C15
Matrice D15
Matrice
transpozii
e
K16
48 bii
Matrice
transpozii
e
86
87
Rutina de criptare
Aceast rutin corespunde prezentrii din figura 4.10.
Bloc de intrare n clar(64 de
bii)
Matrice iniial de
transpoziie IP
L0
R0
Xor
K1
Funcia DES f
L1=R0
Xor
K2
Funcia DES f
L2=R1
Xor
K3
Funcia DES f
L15=R14
Xor
K16
Funcia DES f
L16=R14
88
36
40
35
39
28
32
27
31
20
24
19
23
12
16
11
15
04
08
03
07
Xor este un bloc care realizeaz un sau exclusiv ntre biii celor dou blocuri de
intrare.
funcia DES f este o funcie de dou variabile. Prezentarea ei corespunde figurii 4.11.
matricea de transpoziie de la ieire(IP -1) este inversa lui IP.
Exor
S1
S2
S3
S4
S5
S6
S7
S8
f (R,K) 32 bii
Fig4.11 Funcia f DES de criptare/decriptare
89
S1
14
00
04
15
S2
15
03
00
13
S3
10
13
13
01
S4
07
13
10
03
S5
02
14
04
11
S6
12
10
09
04
S7
04
13
01
06
32 01 02 03 04 05 04 05 06 07 08 09
08 09 10 11 12 13 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 01
Blocul corespunztor cheii i cel corespunztor lui R expandat sunt intrrile ntr-un
bloc sau exclusiv. Noul bloc obinut este mprit n 6 sub-blocuri de 8 bii fiecare,
sub-blocuri care sunt prelucrate prin blocurile Si , i = 1,8 . Prelucrrile blocurilor
substituie Si difer ntre ele i corespund urmtoarelor matrici:
04
15
01
12
13
07
14
08
01
04
08
02
02
14
13
04
15
02
06
09
11
13
02
01
08
01
11
07
03
10
15
05
10
06
12
11
06
12
09
03
12
11
07
14
05
09
03
10
09
05
10
00
00
03
05
06
07
08
00
13
01
13
14
08
08
04
07
10
14
07
11
01
06
15
10
03
11
02
04
15
03
08
13
04
04
14
01
02
09
12
05
11
07
00
08
06
02
01
12
07
13
10
06
12
12
06
09
00
00
09
03
05
05
11
02
14
10
05
15
09
00
07
06
10
09
00
04
13
14
09
09
00
06
03
08
06
03
04
15
09
15
06
03
08
05
10
00
07
01
02
11
04
13
08
01
15
12
05
02
14
07
14
12
03
11
12
05
11
04
11
10
05
02
15
14
02
08
01
07
12
13
08
06
15
14
11
09
00
03
05
00
06
00
06
12
10
06
15
11
01
09
00
07
13
10
03
13
08
01
04
15
09
02
07
01
04
08
02
03
05
05
12
14
11
11
01
05
12
12
10
02
07
04
14
08
02
15
09
04
14
12
11
02
08
04
02
01
12
01
12
11
07
07
04
10
01
10
07
13
14
11
13
07
02
06
01
08
13
08
05
15
06
05
00
09
15
03
15
12
00
15
10
05
09
13
03
06
10
00
09
03
04
14
08
00
05
09
06
14
03
01
15
14
03
10
04
15
02
15
02
05
12
09
07
02
09
02
12
08
05
06
09
12
15
08
05
03
10
00
06
07
11
13
01
00
14
03
13
04
01
04
14
10
04
14
00
01
06
07
11
13
00
05
03
11
08
11
08
06
13
11
00
04
11
02
11
11
13
14
07
13
08
15
04
12
01
00
09
03
04
08
01
07
10
13
10
14
07
03
14
10
09
12
03
15
05
09
05
06
00
07
12
08
15
05
02
00
14
10
15
05
02
06
08
09
03
01
06
02
12
90
S8
13
01
07
02
02
15
11
01
08
13
04
14
04
08
01
07
06
10
09
04
15
03
12
10
11
07
14
08
01
04
02
13
10
12
00
15
09
05
06
12
03
06
10
09
14
11
13
00
05
00
15
03
00
14
03
05
12
09
05
06
07
02
08
11
91
4.4
Ek1
Dk2
k1
k2
Dk2(C)=M
k1-cheie public
k2-cheie secret
orice pereche (k1,k2) trebuie s fie calculabil uor plecnd de la o cheie unic i
secret .
n sistemele cu cheie public, protecia (confidenialitatea) i autentificarea snt
realizate prin transformri distincte .
C
M
M
EB
DB
B
A
Fig.4.10
92
DA
EA
DA
EB
C
DB
EA
B
Protecie
Autentificare
Fig.4.12 Protecie i autentificare n criptosisteme cu chei publice
Utilizatorul A va aplica mai nti transformarea secret DA asupra mesajului M,
dup care va transmite lui B criptograme :
C=EB(DA(M)).
Receptorul B obine pe M aplicnd criptogramei propria-i funcie de descifrare DB
i apoi transformarea public a lui A, EA:
EA(DB(C))=EA(DB((EB(DA(M))))= EA(DA(M))=M
Semntura digital n criptosisteme cu chei publice
Fie B un receptor al unui mesaj semnat de A. Semntura lui A trebiue s aib
urmtoarele proprieti:
B s fie capabil s valideze semntura lui A.
93
94
ED(mod(n))=1
(4.15)
putem scrie:
deci:
Exemplul 4.8
Vom utiliza un cifru cu p=47 i q=97.
n=pq=47x97=3713
alegnd D=97, E va fi 37 pentru a satisface relaia ExDmod((p-1)(q-1))=1,
E=[(p-1)(q-1)+1]/D,
Astfel pentru a coda mesajul:A SOSIT TIMPUL vom coda mai nainte fiecare liter a
alfabetului. De exemplu A=00,B=01....
Mesajul va deveni: 0018 1418 0819 1908 1215 2011
n continuare vom coda fiecare numr de 4 cifre avnd grij s fie mai mic dect n:
0018Emod(n)=001837mod(3713)=3091,
1418Emod(n)=141837mod(3713)=0943,...
Astfel mesajul criptat devine: 3091 0943 3366 2545 0107 2965.
La decriptare se va calcula pe rnd:
3091Dmod(n)=3091 97mod(3713)=0018...obinnd mesajul iniial.
Dac pn acum ne-am referit doar la secretizare, odat principial metoda
neleas se poate intui uor aplicabilitatea ei n autentificare i n domeniul semnturilor
digitale.
95
Totui o problem care mai aparea n dezvoltarea unui astfel de algoritm este cea
a calculului valorilor sistemului: a numrului n, i a celor dou chei E i D,calcul care se
va face la nivel de zeci de digii pentru a asigura un nivel de scretizare mare. Se poate
spune c lucrnd cu operanzi pe 512 bii sistemul este deocamdat imposibil de spart.
Sistemul de criptare cu chei publice RSA este cel mai important dintre sistemele
cu chei publice oferind un mare nivel de secretizare, fiind standardizat n domeniul
semnturilor digitale. RSA este recunoscut ca cea mai sigur metod de cifrare i
autentificare disponibil comercial imposibil de spart chiar i de ageniile
guvernamentale. Metoda are un mare avantaj prin faptul c nu sunt disponibile ci
furiate de atac la sistemul de criptare, cum sunt cunoscute la alte metode. Algoritmul
este utilizat pentru protejarea i autentificarea datelor, parolelor, fiierelor de ctre o serie
de firme productoare de sisteme de programare i echipamente ca DEC, Lotus, Novell,
Motorola precum i o serie de instituii importante (Departamentul Aprrii SUA,
Boeing,reeua bancar SWIFT, guvernul Belgiei) [Pa-94].
4.5 CONCLUZII
In proiectarea unui sistem de criptografie se va avea n vedere posibilitatea
cunoaterii metodei de criptare de ctre intrus, cheia fiind cea care ofer gradul de
securitate.
Orice sistem orict de sigur ar fi poate fi sever compromis dac nu se opereaz
corect cu el. Principala problem n construcia unui sistem sigur este inventivitatea
protilor. Ca exemplu amintim cazul mainii Enigma din cel de-al doilea rzboi
mondial. Transmisiunile criptate prin respectivul sistem, transmisiuni care n cazul unor
utilizrii corecte ar fi fost imposibil de spart la tehnologia din acea vreme, au fost
descifrate datorit diletantismului operatorilor.
In proiectarea unui sistem de criptare trebuie s se aib n vedere :
gradul de securitate necesar:
-n schimbarea cheilor
-n transmisiunea propiuzis
costul schimbrii metodei,cheii n cazuri de compromis a lor
viteza algoritmului
costul sistemului n raport cu costul interceptrii mesajelor
Pentru a mri gradul de securitate a unui sistem de criptare mai simplu, un
utilizator poate s aib n vedere:
neutilizarea formulelor de adresare cunoscute ca i obinuite
suspendarea pe ct posibil a cuvintelor de legtur
scurtarea ct mai mult a mesajelor transmise
modificarea cheii ct mai des
schimbarea limbii utilizate astfel modificndu-se i statistica ei
alterarea pe ct posibil a unor reguli gramaticale
folosirea sinonimelor pentru a nu apare repetri de cuvinte
96
Bibliografie
[An-86] I. Angheloiu, E. Gyorfi, V. Patriciu, Securitatea i protecia informaiei n
sistemele electronice de calcul, E.M, Bucureti, 1986
[Pa-94] V.V.Patriciu, Criptografia i securitatea reelelor de calculatoare, E.T., Bucureti,
1994
[Sp-87] Al. Sptaru, Fondements de la theorie de la transmission de lnformation,
Presses Polytechniques Romandes, Lausanne, 1987
[Sk-88] B. Sklar, Digital Communications, Prentice-Hall Int. Inc.,1988
[Ba-91] J.F. Baylin, R. Maddoox, J. Mc. Cermac, World satellite TV and scrambling
methods, Baylin Publications,1991
[Ta-88] A.S. Tanenbaum, Computer network, Prentice-Hall Inc., 1988
[Cr-92] V. Cristea, N. pu, Calculatoare personale,Ed. Teora 1992
[Be-82] H. Beker, F. Piper, Cipher systems. Wiley, 1982.
[Br-88] G. Brassard, Modern cryptology: a tutorial., Spinger-Verlag, 1988.
[De-82] D. Denning, Cryptography and data security, Addison-Wesley, Publishing
Company,
1982.
[Me-82] C. Meyer and S. Matyas, Cryptography: A new dimension in computer security,
1982.
[Pa-87] W. Patterson, Mathematical cryptology for computer scientists and
mathematicians,
Rowman & Littlefield, 1987.
[Pf-89] C. Pfleeger, Security in computing, Prentice-Hall, 1989.
[Pr-84] W. Price, D. Davies, Security for computer networks, John Wiley & Sons, 1984.
[Ru-86] R. Rueppel, Design and analysis of stream ciphers, Springer-Verlag, 1986.
[Sa-90] A. Saloma, Public-key cryptography, Springer-Verlag, 1990.
Moto : Calea spre adevr este presrat cu erori.
Cine nu cade n ele, nu le pipie, nu lupt
cu ele i nu le nltur pn la urm cu
propriile sale fore, nu ajunge la adevr.
Constantin Tsatsos
97
Capitolul 5
ne (D)
P(E ) 2
(5.1)
unde :n este lungimea cuvintelor de cod
e (D)
98
-transmiterea cu debit mic, caz n care se vede din fig. 5.1 c e(D) crete, deci
P(E) scade ; este neutilizat n practic datorit folosirii ineficiente a canalului.
-utilizarea unor lungimi n ale cuvintelor de cod mari, ceea ce nseamn
introducerea deliberat de redundan nainte de transmitere ; aceasta este calea utilizat
n practic pentru protecie la perturbaii (folosirea codurilor redundante pentru protecie
la erori).
Vom ilustra n continuare printr-un exemplu simplu necesitatea introducerii
redundanei pentru realizarea deteciei sau coreciei erorilor :
Exemplul 5.1
Fie sursa S = {s1, s2 } echiprobabil. n ipoteza transmiterii pe un canal binar
simetric avnd p cunoscut, vom analiza dou situaii :
a) Codare neredundant : rezult lungimea cuvintelor de cod : n=m=1, unde prin m am
notat numrul simbolurilor informaionale (cele utilizate nemijlocit n codarea
informaiei) i deci codul C1={0,1}. n acest caz n urma transmiterii prin CBS vom
recepiona tot simboluri 0 i 1, nefiind posibil a face distincie dac simbolul este
corect sau eronat, probabilitatea de eroare fiind n aceste caz :P1(E)=p.
b) Codare redundant : n loc de un singur simbol de informaie, vom transmite n=3
simboluri, deci vom introduce k=n-m=3-1=2 simboluri redundante (de control), astfel
nct codul obinut va fi :
C2={000,111}.
Intrare
Ieire
000
001
010
100
CBS
110
101
011
111
000
111
99
Fig. 5.2 Reprezentarea intrrii i ieirii unui CBS pentru codarea {000,111}
La transmiterea printr-un CBS se obine situaia ilustrat n fig 5.2.Se observ c
din cele 8 secvene posibile de la ieirea CBS, numai dou corespund secvenelor de cod,
deci n celelate 6 se face detecia erorii. Dac se adopt ca regul de decizie criteriul
alegerii majoritare, adic se vor considera ca bune secvenele ce conin doi de 0 i un 1
sau doi de 1 i un 0 admind c ele corespund secvenelor 000 i 111, este posibil
corecia i n celelalte situaii detectate ca eronate.
Evident, deciziile luate la recepie snt supuse unui risc ce poate fi evaluat. Chiar
i n situia recepionrii secvenelor de cod 000 i 111 exist riscul ca acestea s provin
din eronarea celor trei bii. n ipoteza erorilor independente, valoarea acestui risc este
p3=p3. n mod analog (invitm cititorul s fac aceast judecat) se calculeaz riscul
apariiei a dou erori ntr-un cuvnt de lungime trei p2=3p2(1-p).
Valoarea total a riscului n acest caz (probabilitatea de eroare dup decodare )
este:
P2(E)=p2+p3=3p2(1-p)+p 3=p2(3-2p) 3p2.
Se observ reducerea riscului iniial de la P1(E)=p la P2(E)= 3p2 .
Se pune o a doua ntrebare :
Care este preul pltit pentru obinerea unei probabiliti a erorii orict de
mici pe seama creterii redundanei?
Rspunsul la ntrebare se va obine raionnd dup cum urmeaz. Dac dorim s
o
1
D i=
T bi
(5.2)
unde Tbi este durata unui bit informaional, atunci prin adugarea celor k simboluri
redundante (fig 5.3), se obine :
nT bc = mT bi
(5.3)
n care s-a notat cu Tbc durata corespunztoare unui bit dintr-un cuvnt codat de lungime
n.
1
2
. . .
m
Tbi
mTbi
Tbc
1 2
. . .
nTbc
Fig 5.3 Ilustrarea relaiei ntre duratele biilor de informaie i a biilor codai
n cazul pstrrii debitului de informaie nemodificat prin codare
100
R=
m
n
(5.5)
poart denumirea de rat de codare .
Relaia (5.3) poate fi scris sub forma :
Dc =
T bc
Di
R
> Di
(5.6) deci prin codare, la pstrarea D i = ct., se obine o cretere a debitului codat D c .
tiind relaia de direct proporionalitate dintre D i band (B) rezult c preul pltit
prin codare pentru protecie la erori, la pstrarea unui D i =ct, este creterea benzii
de transmitere (spaiului de stocare ) i implicit o cretere a zgomotului la recepie. n
cazul n care nu este posibil mrirea benzii, se procedeaz la utilizarea unor procedee de
codare i modulaie ce produc o compresie a benzii (modulaii m-are de faz, modulaie
trellis [Sk-88]).
Observaie :
ntreaga discuie fcut n acest paragraf s-a fcut n ipoteza unei puteri constante
la emisie i fr analiza efectului sistemului de modulaie i a formei semnalelor
transmise (modulaia i deciziile statistice constituie obiectul prii a doua a cursului).
n cadrul unui sistem complet de transmisie (stocare ) a informaiei, locul blocului
de codare a canalului (Cc) se situeaz ca n fig. 5.4.
Cs
coder
E
coder
secretizare
Cc
coder
Modulator
(unitate de
scriere)
coder
n
N
Cs
decoder
D
decoder
secretizare
101
Cc
decoder
Canal
(mediu de
stocare)
coder
Controlul erorilor n transmisie sau memorare, se poate face principial pe trei ci:
prin detecie de erori, caz n care sistemul necesit canal de ntoarcere prin care s se
fac anunarea emitorului c s-au detectat erori i c este necesar retransmitere
(ARQ - automatic repeat request).
prin corecie de erori (FEC- forward error correction), n care codul corector de erori
corecteaz automat erorile detectate la recepie, sistemul corespunztor este
unidirecional (fig 5.4); acest tip de transmisiune corespunde sistemelor de memorare,
comunicaiilor spaiale, etc.
prin corecie i detecie automat de erori (sisteme ARQ hibride ), la care codul
corector de erori va corecta combinaiile eronate ce intr n capacitatea sa de corecie,
restul combinaiilor eronate fiind evideniate de sistemul ARQ; snt utilizate n
transmisiuni radio (prin satelit, comunicaii celulare ).
n figura 5.5 snt prezentate trei din cele mai utilizate procedee ARQ :
SR(selective repeat )
retransmitere
ACK
NAK
ACK
ACK
eroare
N=5
1 2 3 4 5 6 3 4 5 6 7 8 9 10 11 7
ACK NAK
ACK
ACK
b
napoi 5
1 2 3 4 5 6 3 4 5 6 7 8 9
eroare
eroare
102
1
0
8 9
11 12 7
10
11
retransmisie
12
NAK
ACK
ACK
NAK
NAK
10
11
ACK
c
1
erori
10
erori
103
Observaii :
toate cele trei metode ARQ expuse au aceeai P(E), dar eficiene diferite.
expresiile eficienei sistemelor ARQ snt determinate n [Li-83] n ipoteza canalului
cu reacie fr erori, iar n [Be-64] pentru scheme n care i canalul de reacie este
zgomotos.
Comparaia strategiilor de control a erorilor
O analiz n detaliu a comparaiei strategiilor de control este facut n [Li-83].
Sistemele ARQ comparativ cu FEC au o structur mult mai simpl. Sistemele
ARQ snt adaptive n sensul c informaia este retransmis de fiecare dat cnd apar erori.
Dac ns canalul este foarte zgomotos, retransmisiile devin foarte frecvente, fapt ce
justific utilizarea, n asemenea situaii, a sistemelor hibride ARQ+FEC [Bot-95].
104
a M1 a M2
unde a ij {0,1 }
a1n v1
... a 2n v 2
... ... ...
... a Mn v M
pentru codurile binare .
...
105
Cc =
(5.11)
(5.12)
Ponderea i distana de cod
106
d (v i , v j ) =: a ki a kj
k =1
(5.13)
unde : vi=(a1i,a2i,...,ani)
vj=(a1j,a2j,...,anj)
(5.15)
Deoarece, conform (5.14), distana dintre dou cuvinte de cod este ponderea altui
cuvnt de cod, rezult c :distana de cod (d) este egal cu ponderea minim a codului
:
d=wmin
(5.16)
Observaii :
relaia (5.16) este foarte util n aplicaii, dat fiind comoditatea calculului ponderilor.
din calculul distanei de cod i a ponderilor se exclude cuvntul cu toate simbolurile
nule .
107
p( E / r ) =: p( v v / r ) .
(5.17)
Probabilitatea de eroare a decoderului se poate exprima i sub forma :
p ( E ) = p( E / r ) p( r )
r
(5.18)
derivat ca probabilitate marginal din probabilitatea cuplului (E,r) :
p(E,r)=p(E/r)p(r) .
Conform relaiei (5.18), vom avea o probabilitate minim de eroare la decodare
dac p(E/r) va fi minim, dat fiind c p(r) este independent de decodare. Deoarece
^
p( r / v ) = p( ri / vi ) ,
i =1
(5.20)
unde ri,vi snt componentele cuvntului recepionat, respectiv a cuvntului de cod
transmis.
Decoderul care face estimarea secvenei recepionate prin maximizarea relaiei
(5.20) se numete decoder dup probabilitatea condiionat maxim (MLD).
n
(5.21)
unde vi snt componentele lui v.
Deoarece ldx este o funcie cresctoare monoton cu x, maximizarea relaiei
(5.21) este echivalent cu maximixarea logaritmului funciei respective :
108
(5.22)
Observaie :
dac cuvintele de cod v nu snt echiprobabile, decoderul MLD nu este totdeauna
optimal, dat fiind c n relaia (5.20) p(ri / v i ) vor fi ponderate de p(v) ; n numeroase
aplicaii nu se cunosc la recepie p(v), fapt pentru care decodarea MLD rmne decodarea
practic cea mai bun.
n cazul unui CBS, pentru care p (ri / v i ) =p ,dac ri v i i (1-p) dac ri = v i ,
pentru un cod bloc de lungime n, relaia (5.22) se scrie :
p
max ld p(r/v)=max {d(r,v)ldp+[n-d(r,v)]ld(1-p)}=max [d(r,v)ld
+nld(1-p)] .
1 p
(5.23)
p
Dat fiind c ld
<0 , pentru p<1/2 i nld(1-p) este o constant pentru orice v,
1 p
^
regula MLD de decodare pentru un CBS estimeaz v ca acel cuvnt v care minimizeaz
d(r,v), fapt pentru care decoderul MLD se mai numete i decoder de distan minim.
max ld p(r/v)=min d(r,v)
(5.24)
n consecin un decoder MLD determin distana dintre r i toate cuvintele de
cod posibile vi i selecteaz acel vi pentru care d(r,vi) este minim ( i = 1, M ). Dac acest
minim nu este unic, alegerea ntre mai multe cuvinte vi este arbitrar.
n fig.5.6 este ilustrat principiul decoderului de distan minim (MLD). Fie v1 i
v2 dou cuvinte de cod aflate la o distan d(v1,v2)=5.
v2 d
r1
v1
a
r2
v2
v1
b
r3
v2
c
v1
r4
v2
d
109
110
cele dou cuvinte decodate se selecteaz acela corespunztor numrului minim de erori
corectate n afara celor s poziii anulate.
Exemplul 5.2
Fie codul 0000 0101 1010 1111. Se determin uor c d=2, de unde, conform
relaiei (5.28) rezult c vor putea fi corectate s=1 erori de tergere (anulare).
Fie cuvntul 0101 transmis. La recepie presupunem c s-a detectat un simbol de
anulare
r= x101
nlocuim x cu 0; se obine r1=0101=v2, deci d(r1,v2)=0. nlocuim x cu 1; se obine
^
r2=1101 C; determinm d(r2,v2)=1, d(r2,v3)=3, d(r2,v4)=1 r =v2.
111
21 g 22 ... g 2n g 2
G=
(5.32)
...
... ... ... . . .
g m1 g m 2 ... g mn g m
unde gij GF(2) , deci snt simboluri binare .
n consecin , legea de codare va fi dat de relaia :
g1
g
v=iG= [ i1 i 2 ... i m ] 2 =i1g1+i2g2+...+imgm .
gm
(5.33)
Dac se dorete obinerea unei structuri sistematice :
v=[i c]
(5.34.a)
sau
v=[c I]
(5.34.b)
matricea generatoare G va trebui s aib una din cele dou forme canonice :
G=[Im P]
(5.32.a)
G=[P Im]
(5.32.b)
n acest caz relaia de codare (5.33), se scrie :
P[kk]
Im
1 0 ... 0 | p11 p12 ... p1k
0 1 ... 0 | p
p 22 ... p 2k
21
=
v=[i c]= iG= [ i1 i 2 ... i m ]
. . . . |
.
.
.
.
0 0 ... 1 | p m1 p m 2 ... p mk
112
= i1 i 2 ... i m
j=1
j =1
j=1
i j p j1 i j p j2 ... i j p jk .
(5.33.a)
c2=f2(ij)
ck=fk(ij)
c1=f1(ij)
Din relaia (5.33.a) se observ c cele m simboluri informaionale se gsesc
nemodificate n structura cuvntului de cod v, iar cele k simboluri de control notate cu ci,
snt combinaii liniare ale simbolurilor informaionale :
ci=fi(ij) , i = 1, k , j = 1, m .
(5.35)
Relaiile (5.35) snt cunoscute sub denumirea de ecuaii de codare sau de
m
verificare a paritii (parity-check equations) ; sumele snt sume modulo-2.
j=1
Exemplul 5.3
Fie codul C(5,3) n care legea de codare este :
c1 = i1 i 2
c2 = i2 i 3
Vom determina matricea generatoare n structura canonic G, innd cont de
relaiile de codare astfel :
i2
i3
c1
c2
gi
i1
1
0
0
1
0
g1=v1
0
1
0
1
1
g2=v2
0
0
1
0
1
g3=v3
1 0 0 1 0
G = 0 1 0 1 1 . Din combinaiile liniare ale celor trei vectori liniar
0 0 1 0 1
independeni ai codului (gi) , vom obine celelalte patru cuvinte de cod nenule :
v4= g1+g2
= [ 1 1 0 0 1]
v5= g1+g3
=[ 1 0 1 1 1]
v6= g2+g3
=[ 0 1 1 1 0]
v7= g1+g2+g3 =[ 1 1 1 0 0]
Din proprietile spaiilor vectoriale binare (Anexa A.8) se tie c dac avem un
spaiu C de dimensiune m, atunci exist ntotdeauna i spaiul nul (ortogonal ) al acestuia
113
h11 h12
h
h 22
H= 21
.
.
h k1 h k 2
... h1n
... h 2n
= [h 1 h 2
...
.
... h kn
. . . hn ]
(5.36)
unde hij GF(2) , iar hi , i = 1, n reprezint coloanele matricei de control.
Ortogonalitatea spaiilor C i C* implic ortogonalitatea matricilor G i H :
GHT=HGT=0
(5.37)
unde T reprezint transpusa matricei respective.
n cazul unor coduri liniare sistematice i pentru matricea H se impun formele
canonice corepondente :
H=[PT I k]
(5.37.a)
H=[Ik PT] .
(5.37.b)
Relaia de codare (5.33) valabil n spaiul C devine n spaiul nul C :
HvT=0
(5.38)
5.7.2 DIMENSIONAREA UNUI COD BLOC LINIAR CORECTOR DE ERORI
Dimensionarea unui cod bloc const n determinarea mrimilor m,k i n necesare
pentru codificarea unei surse avnd M mesaje n vederea coreciei unui numr de t erori.
Numrul simbolurilor de informaie (m) este determinat de numrul mesajelor
sursei (M) pentru coduri binare relaia de dimensionare a lui m este :
2m M
(5.39)
2k C n ,
i
i=0
(5.40)
relaie cunoscut sub denumirea de margine Hamming .
k > 1+
2t 1
C in 1 ,
i =1
(5.41)
numit margine Varamov-Gilbert .
114
Pentru corecia unei singure erori, cele dou margini conduc la aceeai relaie, care
constituie asfel condiia necesar i suficient pentru construcia unui cod corector de
o eroare :
2k 1 + n .
(5.42)
5.7.3 CODURI PERFECTE I CVASIPERFECTE
Se numesc coduri perfecte (strns mpachetate, fr pierderi) codurile care
satisfac relaia [An-72] :
t
C in = 2 k 1 .
i =1
(5.43)
Codurile perfecte pot corecta exact t erori, dar nici o configuraie particular
avnd un numr mai mare de t erori.
Numrul codurilor perfecte este restrns ; cunoscute pn n prezent snt codurile
Hamming cu n=2k-1, codul binar cu repetare cu n impar i dou coduri Golay [An-72].
Coduri cvasiperfecte snt codurile care corecteaz toate combinaiile de t erori i
o parte N C in combinaii de t+1 erori cu condiia ca (pentru coduri binare ) :
t
C in + N = 2 k 1
i =1
(5.44)
Codurile perfecte i cvasiperfecte asigur o probabilitate maxim a recepiei
corecte n cazul transmisiei prin canale simetrice cu erori independente.
5.7.4 SINDROMUL ERORII
Fie recepia unui cuvnt r, afectat de erori :
r=v+e ,
(5.45)
unde v reprezint cuvntul de cod transmis, iar e este cuvntul eroare ; + este suma
modulo-2 i indic erori de tip aditiv.
n cazul reprezentrii matriceale ,e este de forma :
e= [e1 e 2 ... e n ] ,
(5.46)
unde ei este 1 dac pe poziia i apare o eroare i 0 n rest (pentru coduri binare
evident).
La recepie se verific legea de codare :
HrT=S
(5.47)
unde S se numete sindrom (al erorii) i reprezint o matrice coloan cu k elemente.
nlocuind pe r cu expresia (5.45), relaia (5.47) se rescrie :
S=H(v+e)T=HvT+HeT=HeT
(5.48)
ceea ce indic faptul c sindromul nu depinde de cuvntul v transmis, ci doar de eroarea
de pe canal (e).
115
Dac S=0, nseamn c nu exist erori, sau erorile nu snt detectabile. n cazul
n care prin eronare v se transform tot ntr-un cuvnt de cod, relaia de codare fiind
satisfcut, nu poate fi fcut detecia erorii. Exist un numr de 2m-1 situaii de erori
nedetectabile, corespunztor unor cuvinte de cod, altele dect cel real transmis.
Dac S=0, se face detecia erorii, n cazul unui sistem ARQ cerndu-se
retransmitere. Dac se dorete corecia erorii (FEC), atunci, pentru codurile binare, este
necesar determinarea poziiilor eronate din structura lui S. Numrul de sindroame
distincte i nenule (sindromul nul corespunde lipsei erorii) este 2k-1, deci din numrul
total de erori posibile 2n-1 vor putea fi corectate doar 2k-1.
5.7.5 CAPACITILE DE DETECIE ,RESPECTIV CORECIE I
PROBABILITATEA DE EROARE A UNUI COD BLOC LINIAR
Fie codul bloc liniar C(n,m) detector de erori. Numrul total de erori (Nte ) este :
Nte=2n-1,
(5.49)
iar numrul erorilor nedetectabile :
Nen=2m-1
(5.50)
Capacitatea de detecie, conform relaiei (5.11) va fi :
N
N N en = 1 N en = 1 2 m 1 1 2 m = 1 2 k .
Cd = ed = te
N te
N te
N te
2n 1
2n
(5.51)
n mod asemntor, folosind relaia de definiie (5.12) se poate calcula capacitatea
de corecie Cc, cu observaia c trebuie s se in seama dac codul este perfect sau cvasi
perfect.
n cazul unui cod C(n,m) detector de erori, utilizat pe un CBS, probabilitatea
unei erori nedetectabile (Pn) se calculeaz innd cont c eroarea este nedetectabil dac
prin eronare se obine un alt cuvnt de cod nenul al lui C. n acest caz avem [Li-83] :
n
Pn = A i (1 p ) n i ,
i =1
(5.52)
unde s-a notat cu Ai numrul de cuvinte de cod de pondere i din mulimea C. Numerele
A0, A1,..., An formeaz distribuia ponderilor lui C.
Observaie :
Pentru un cod C(n,m) de distan de cod d, rezult c A0, A1,..., Ad-1 snt zero.
Teoretic putem calcula distribuia ponderilor pentru orice cod liniar (n,m)
examinnd cele 2 m cuvinte de cod. Totui pentru n,m de valoare mare, calculul devine
practic imposibil, astfel nct exceptnd cteva coduri liniare scurte, pentru numeroase
coduri cunoscute nu s-a deteminat nc distribuia ponderilor, deci nu se cunoate nici Pn.
Este posibil ns determinarea limitei superioare a probabilitii unei erori
nedetectate [Li-83]:
116
n
Pn 2 k C in p i (1 p) n i = 2 k 1 (1 p) 2 k ,
i =1
(5.53)
n
deoarece 1 (1 p) 1.
Relaia (5.53) arat c exist coduri liniare (n,m) pentru care Pn descrete
exponeial cu numrul biilor de control (k).
Observaie :
Dei numrul codurilor bloc liniare este extrem de mare, numai o clas restrns de
coduri s-au dovedit a avea Pn satisfcnd limita superioar 2-k (codurile Hamming de
ex.).
Un cod bloc C(n,m) corector de t erori, exceptnd codurile perfecte, poate
corecta numeroase combinaii de t+1 erori i chiar mai multe. Numrul combinaiilor
corectabile este 2k. n cazul transmisiei pe un CBS, probabilitatea de eroare a unui bloc la
decodare este limitat superior de [Li-83] :
n
P C in p i (1 p ) n i
i = t +1
(5.54)
P n formula (5.54) reprezint probabilitatea de decodare eronat a unui bloc. n
cazul codurilor perfecte, relaia (5.54) se realizeaz la limit. Pentru a determina
probabilitatea de eronare a unui bit dup decodare pd (BER- bit error rate) se pleac de la
relaia de definiie a pd :
numrul de bii eronai dup decodare
=
pd =
numrul total de bii transmisi
(5.55)
= Pd
n
unde reprezint numrul de bii eronai dintr-un bloc eronat de lungime n. Valoarea lui
este funcie de statistica erorilor de pe canal i tipul de cod utilizat. Pentru erori
independente, n cazul codurilor corectoare de o eroare =23, iar pentru coduri
corectoare de t=2 erori, =3-4 [Wa-94].
=
117
118
D2
D3
v2
v3
e2
e3
.
ej
.
e2k
e2+v2
e2+v3
ej+v2
e2k+v2
...
Di
...
D2m
vi
v2 m
...
e2+vi
e2+v2m
ej +v3
...
ej+vi
ej +v2m
e2k+v3
...
e2k+vi
e2k+v2m
119
dimensionale ce nu snt cuvinte de cod i care au ponderea minim ( se vor nota cu e2, ...,
e2k ). Fiecare clas, deci elementele fiecrei linii se vor obine din vi+ej , i = 2,2 m .
Modul de alctuire al tabelului precum i decodarea se bazeaz pe algoritmul
distanei minime (MLD). Erori de decodare apar numai dac combinaiile de erori
nu snt cuprinse n
tabelul elementelor principale (generatoare ).
Pentru un CBS, probabilitatea unei erori de decodare (la nivel de cuvnt ) este [Li83]:
n
P = 1 i p i (1 p) n i ,
i= 0
(5.59)
unde numerele 0,1,...,n formeaz distribuia ponderilor elementelor principale (din
coloana ntia din stnga ) iar p este probabilitatea de eronare a unui bit pe CBS.
Exemplul 5.4
Pentru codul C(5,3) analizat n Exemplul 5.3 vom forma tabelul corespunztor
dispunerii standard. Prima clas (prima linie ) va fi format din cele 8 cuvinte de cod,
primul fiind cel cu toate elementele nule. n continuare se selecteaz 2k=2n-m=25-3=22=4
combinaii posibile de erori cu pondere minim. Dat fiind faptul c e1 este (0 0 0 0 0),
rezult c vom alege nc trei combinaii de pondere 1, fie acestea e2=(1 0 0 0 0), e3=(0 1
0 0 0) i e4=(0 0 1 0 0). Tabelul corespunztor dispunerii standard este :Tab 5.2 :
Tab 5.2 Dispunerea standard pentru codul C(5,3)
00000
10000
01000
00100
10010
00010
11010
10110
01011
11011
00011
01111
00101
10101
01101
00001
11001
01001
10001
11101
10111
00111
11111
10011
01110
11110
00110
01010
11100
01100
10100
11000
120
Tab 5.3 Tabel de decodare pe baz de sindrom pentru codul liniar C(n,m)
ei
e1
e2
.
e3
Si
S1
S2
.
S3
Exemplul 5.5
S se decodeze pe baz de sindrom codul liniar C(5,3) din Exemplul 5.3.
Pentru a putea calcula sindroamele conform relaiei (5.47), vom determina la
nceput expresia matricii H. Matricea generatoare a fost determinat avnd expresia :
1 0 0 1 0
G= 0 1 0 1 1 =[ I3 P ]
0 0 1 0 1
deci este n form canonic, astfel nct, conform (5.37.a) H va fi de forma :
1 1 0 1 0
H=
.
0 1 1 0 1
I2
PT
Sindroamele corespunztoare celor trei combinaii de erori corectabile e2=(1 0 0 0
0),e3=(0 1 0 0 0) i e4=(0 0 1 0 0) snt:
1
1
0
S1= ,S2= ,S3= .
0
1
1
Tabelul de decodare pe baz de sindrom va fi :
Si
ei
00
00000
10
10000
11
01000
01
00100
5.7.8 COMPARAIA CODURILOR BLOC DETECTOARE I CORECTOARE
DE
ERORI
Aprecierea eficienei unui cod trebuie fcut din punctul de vedere al aplicaiei
(utilizatorului ), care fixeaz gradul de fidelitate dorit (fie prin precizarea probabilitii
121
(1 P1)
N1
>
(1 P2 ) N 2
<
C2
(5.61)
unde P1, P2 snt probabilitile de decodare eronat prin codurile C1 i C2 i se determin
cu (5.54) la limit :
P1 =
n1
t +1 t +1
i
n i
C in 1 p1 (1 p1) 1 C n11 p1 1
i = t 1 +1
122
(5.62)
P2 =
n2
t +1 t +1
i
n i
C in 2 p 2 (1 p 2 ) 2 C n22 p1 2
i = t 2 +1
Aproximaiile n relaiile (5.62) s-au fcut n baza ipotezei unui CBS cu p<<1 .
Faptul c probabilitile de eronare ale unui bit pe canal snt diferite pentru cele
dou coduri se datoreaz debitelor codate diferite, care necesit benzi diferite la recepie ;
conform relaiilor (2.74) i (5.61) avem :
1
1 n1
B1= D c1 =
Di
2
2 m1
1
1 n2
B2= D c 2 =
Di
2
2 m2
C1
>
1 N 2 P2
<
C2
sau
C1
P1
> m1
P2
< m2
C2
(5.64)
nlocuind n (5.64) P1 ,P2 cu expresiile aproximate date de (5.62), avem :
C1
t +1 t +1 >
m 2C n1 p11
<
t +1 t +1
m1C n2 p 22
2
C2
(5.65)
Q(y 1 ) =
y1
2
1 2y
e
dy
2
(5.68)
123
(5.63)
t +1
m 2C n1
1
m 1 t 1 +1 >
P
m2
t +1
Q( 2
) ]
m 1C n2 [ Q( 2 S
o n
o
2
<
n
N0 D i 1
N0 D i 2
C
PS
] t 2 +1
(5.69)
Comparaia codurilor detectoare de erori
Judecnd ca n cazul codurilor corectoare de erori, se determin cu (5.69) cu
t +1
t +1
codat
Gc
necodat
(E0/N0)
[dB]
lim
c nc
Fig 5.7 Graficul ctigului obinut prin codare funcie de sau E0/N0.
E0 = energia medie pe bit, N0=densitate spectral de putere de zgomot
G c p = ct = nc c
(5.70)
Din graficul de variaie a lui Gc se vede c exist o anumit valoare limit a raportului
semnal-zgomot (lim) sub care probabilitatea de eroare n cazul transmisiei necodate este
mai mic dect n cazul transmisiei codate. O explicaie intuitiv a acestui fapt rezid din
aceea c un cod pentru protecie la erori este redundant, deci pentru D i =ct, D c crete,
aceasta ducnd la creterea benzii i implicit a zgomotului deci o scdere a , avnd drept
consecin o cretere a probabilitii de eroare.
n concluzie, pentru a avea o probabilitate a erorii la utilizator impus de aplicaie,
se poate aciona n dou moduri :
prin creterea raportului semnal zgomot (prin creterea puterii la emisie, utilizarea
unor sisteme de modulaie eficiente)
124
utiliznd coduri pentru protecie la erori, evident cu preul creterii benzii ; n general,
aceast metod se dovedete mai economic n numeroase aplicaii.
125
0
.
S= [ h1 . . . h n ] e i =hi ,
.
0
(5.75)
deci n cazul apariiei unei singure erori, sindromul indic n binar natural poziia erorii ;
prin decodificare binar-natural zecimal se poate determina din S cuvntul eroare e.
Corecia erorii se face uor cu :
v=r+e=(v+e)+e=v
(5.76)
S vedem ce se ntmpl n cazul n care apar t=2 erori, fie acestea pe poziiile i i
j:
(5.77)
deci dac apar dou erori, codul eroneaz suplimentar, introducnd o eroare pe o a treia
poziie k.
Probabilitatea de eronare a unui bloc pentru acest cod se determin cu (5.54)
particulariznd pentru t=1 :
n
n (n 1) 2
P = C in p i (1 p) n i C 2n p 2 (1 p) n 2
p .
2
i=2
(5.78)
Amintim c (5.78) a fost determinat n ipoteza erorilor independente i a unui
CBS cu probabilitatea de eronare p .
Probabilitatea de eronare a unui bit dup decodarea Hamming se obine cu (5.55) :
pd = P .
n
Am vzut c pentru codul Hamming corector de o eroare, dac apar t=2 erori,
codul Hamming introduce pe a treia eroare, deci n cazul decodrii eronate a unui bloc,
numrul cel mai probabil de erori este : =3, astfel nct :
126
pd =
3
3 n (n 1) 2 3
P=
p ( n 1) p 2
n
n
2
2
(5.79)
Coduri Hamming modificate
Pentru a nltura dezavantajul codului Hamming corector de o eroare (acela de a
erona suplimentar la depirea capacitii de corecie a codului t>1) i a-l face mult mai
util n aplicaii practice, acest cod a fost modificat n sensul creterii distanei minime de
la d=3 la d=4, ceea ce permite i detecia erorilor duble, care au probabilitatea maxim
de
apariie ntr-o transmisiune (evident dup erorile simple). Aceast modificare este
posibil att prin extindere ct i prin scurtarea codului iniial. Vom prezenta n
continuare, pe scurt ambele variante.
(5.80)
Matricea de control se modific sub forma :
0 H
H =
1 1
(5.81)
unde H este matricea Hamming (5.74).
Sindomul n acest caz va fi :
c0
0 H c1 S 1
=
=
S = H v T =
1 1 . S 2
a n
(5.82)
unde S1 i pstreaz semnificaia de la codul Hamming corector de o eroare, iar S2 este
un simbol binar ce poate lua valoarea 0 sau 1, cu ajutorul cruia se va putea face
detecia erorilor pare (S2=0).
Putem avea urmtoarele situaii :
S1 = 0
127
S1 0
Exemplul 5.6
Codul H(8,4) cu paritate impar , folosit n sistemele teletext este dat de matricea de
control:
0 0 0 0 1 1 1 1
0 1 1 0 1 1 0 0
H*=
0 0 1 1 1 0 1 0
1 1 1 1 1 1 1 1
Structura unui cuvnt de cod n acest caz este :
v = [c0 c1 a 2 c3 a 4 a 5 a 6 c7 ]
Relaia de codare, fiind cu paritate impar, devine :
H v T =1 .
Relaiile de codare se determin din :
c 0
c
1
0 0 0 0 1 1 1 1 a 2 1
0 1 1 0 1 1 0 0 c 1
3 = .
0 0 1 1 1 0 1 0 a 4 1
1 1 1 1 1 1 1 1 a 5 1
a
6
c7
Rezult :
c1=a5+a4+a2+1
c3=a6+a4+a2+1
c7=a6+a5+a4+1
c0=c1+a2+c3+a4+a5+a6+c7+1
Sindromul va fi determinat de relaia :
S = H r T + 1 .
sindromul este diferit de zero i conine un numr impar de 1. Dac apar erori duble,
sindromul va fi diferit de zero dar numrul unitilor pe care le conine este par.
Decodarea se desfoar astfel [Li-83]:
S=0, implic lipsa erorilor sau imposibilitatea deteciei acestora .
S0 i coninnd un numr impar de 1, semnific existena unei singure erori ;
corecia se face adunnd la cuvntul recepionat cuvntul eroare corespunztor
sindromului.
S0 i coninnd un numr par de 1, se face detecia erorilor duble.
Codurile Hamming prescurtate i-au gsit aplicaii importante n protecia
memoriei interne a calculatoarelor. Aceste coduri au fost studiate i propuse pentru
aplicaii n protecia memoriei calculatoarelor de Hsiao [Hs-70], care a dat un algoritm
de obinere a matricii de control H0 astfel nct s aib urmtoarele proprieti :
fiecare coloan s aib un numr impar de 1
numrul total de 1 s fie minim
numrul de 1 din fiecare linie a lui H0 s fie egal sau ct mai apropiat i egal cu
valoarea medie a numrului de uniti pe linie.
Respectarea celor trei cerine conduce la obinerea unei matrici H0 cu d4,
precum i un numr minim de nivele logice n formarea biilor de control i ai
sindromului i implicit un hardware redus n implementare.
n aplicaii n computere, aceste coduri snt codate i decodate n paralel, innd
cont c problema vitezei este problema cea mai critic a proceselor on-line n operaiile
de memorare.
Exemplul 5.7 [We-94].
Pentru protecia memoriilor pe 16 bii, Hsiao a propus un cod optimal H0(22,16)
corector de o eroare i detector de erori duble (d=4), obinut dup cum urmeaz :
se pleac de la codul perfect H(63,57) cu n=26-1
se scurteaz codul nlturnd cele 31 de coloane ce conin un numr par de 1,
obinndu-se codul :
H(63-31,57-31)= Hs(32,26).
deoarece se dorete protejarea memoriilor pe 16 bii, deci m=16, vor fi nlturate nc
10 coloane, respectnd condiiile de optimalitate n sensul obinerii unui hardware
minim
[Hs-70].
Se obine n final codul Hamming prescurtat optimal avnd H0(22,16) :
1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0
0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0
H0 =
.
0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1
0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1
0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1
Utilizarea acestui cod n protecia memoriei pe 16 bii a calculatoarelor este dat
n fig.5.8.
ntr-un ciclu de nscriere a memoriei se genereaz 6 bii de paritate care se
stocheaz ntr-o memorie de control (check memory).
129
ntr-un ciclu de citire (read cycle) se genereaz noii bii de paritate din datele
recepionate i acetia snt comparai cu cei din memoria de control. Dac este detectat
o eroare, blocul H(22,16) ntrerupe unitatea central .
eroar
e
ntreruperi
U.C
erori
multiple
H(22,6)
corector /
detector
Memorie de control
Memorie de date
(RAM)
Magistral de date 16
bii
Magistral de adrese
Fig 5.8 Codul H(22,16) utilizat pentru protecia memoriei calculatoarelor pe 16 bii
Formatul datelor pentru codul H(22,16) este :
Date
bii de control
Byte 1
Byte 0
6
n mod asemntor se determin pentru protecia memoriei pe 32 de bii codul
Hamming prescurtat H(39,32) [Hs -70].
Exemplul 5.7 Fie protecia la erori a unei transmisiuni digitale realizat cu un cod
Hamming corector de o eroare, avnd m=4.
a) Dimensionai codul, determinai relaiile de codare folosind matricile H i G i
concepei schemele bloc de codare i decodare astfel nct viteza de prelucrare s fie
maxim. Ct este distana de cod i cum poate fi determinat ?
b) Este r =[1 1 0 1 1 0 1 ] cuvnt de cod? Dac nu, determinai cuvntul corect din care
provineMSB
n ipoteza eronrii unui singur bit.
c) Ct este probabilitatea de eroare dup decodare dac transmisiunea se face pe un CBS
avnd p=10 -2 ?
d) Repetai punctul b n ipoteza decodrii bazat pe dispunerea standard, respectiv pe
baz de sindrom. Discuie.
e) Analizai posibilitile de cretere a distanei de cod de la 3 la 4. Discuie .
Soluie :
a) Cu m=4 utiliznd relaia (5.71) se determin k :
n=2k-1=m+k k=3 ,
de unde rezult codul H(7,4) .
130
2 3 4 5 6 7
0 0 1 1 1 1
1 1 0 0 1 1 .
0 1 0 1 0 1
Pentru determinarea matricei generatoare corespunztoare, se determin o form
canonic a lui H, iar apoi forma canonic corespunztoare a lui G, dup care prin
rearanjarea coloanelor se obine structura lui G.
3 5 6 7
4 2 1
3 5 6 7
4 2 1
1
1
1 0 0 0 | 0 1 1
0 1 1 1 | 1 0 0
0 1 0 0 | 1 0 1
H= 1 0 1 1 | 0 1 0 G =
0 0 1 0 | 1 0 1
1 1 0 1 | 0 0 1
0 0 0 1 | 1 1 1
PT
I3
I4
P
1 2 3 4 5 6 7
1 1 1 0 0 0 0
1 0 0 1 1 0 0
.
G=
0 1 0 1 0 1 0
1 1 0 1 0 0 1
Observaie :
Corectitudinea calculului se verific testnd ortogonalitatea celor dou matrici :
relaia (5.37). Propunem cititorului verificarea acestui rezultat.
Relaiile de codare (5.38), respectiv (5.33) vor conduce la exprimarea
simbolurilor de control funcie de simbolurile de informaie.
Structura cuvntului de cod conform (5.72) este :
v = [ c1 c2 a 3 c 4 a5 a 6 a7 ]
Relaia de codare cu ajutorul matricii de control (5.38) este :
c1
c
2
0 0 0 1 1 1 1 a 3
c 4 = a 5 + a 6 + a 7
0 1 1 0 0 1 1 c = 0 c = a + a + a .
2
3
6
7
4
c = a + a + a
1 0 1 0 1 0 1 a 5
3
5
7
1
a
6
a
7
Relaia de codare folosind matricea generatoare, (5.33), conduce la obinerea,
evident a acelorai relaii de codare :
131
[a 3
a5
a6
1
1
a7 ]
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
= [c1 c 2 a 3 c 4 a 5 a 6 a 7 ] .
0
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
r1
r
2
r3 S1
r4 = S 2
r5 S 3
r6
r
7
r4 + r5 + r6 + r7 = S1
r2 + r3 + r6 + r7 = S2
r + r + r + r = S
3
1 3 5 7
132
c1
c2
c4
S1
S2
S3
RD
RD
v
a3
a5
a6
r6
r7
a5
a6
r1
r2
r3
r5
r6
c2
c1
a7
r4
r7
a3
c4
a7
r1
e1
r2
e2
r3
e3
r4
e4
e5
r5
e6
Decodificator BN-Z
a
Fig 5.9 Schema bloc a unitii de codare (a) i decodare (b) pentru codul H(7,4)
b) Pentru a vedea dac r este sau nu cuvnt de cod se testeaz (5.47) :
HrT=S
1
1
0 0 0 1 1 1 1 0 1
0 1 1 0 0 1 1 1 = 0 = h ;
5
1 0 1 0 1 0 1 1 1
0
1
prin decodificarea lui h5 se determin cuvntul eroare :
e=[0 0 0 0 0 1 0 0]. Corecia const n v=r+e=[1 1 0 1 1 0 1 ]+[0 0 0 0 1 0 0 ]=[1 1 0 1 0
0 1].
c)pd se determin cu relaia (5.79) :
3
p d ( n 1) p 2 = 1,5 6 p 2 = 9 10 4 10 3 , deci a sczut de aproximativ 10 ori
2
comparativ cu situaia neutilizrii codului.
133
e7
d)pentru codul n discuie, mulimea cuvintelor de cod este format din 2m=16 combinaii
de cte 7 bii.
[0 0 0 0 0 0 0], [1 1 0 1 0 0 1], [0 1 0 1 0 1 0], [1 0 0 0 0 1 1], [1 0 0 1 1 0 0 ], [0 1 0 0 1 0
1],
[1 1 0 0 1 1 0], [0 1 0 1 1 1 1], [1 1 1 0 0 0 0], [0 0 1 1 0 0 1], [1 0 1 1 0 1 0], [0 1 1 0 0 1
1],
[0 1 1 1 1 0 0] , [1 0 1 0 1 0 1], [0 0 1 0 1 1 0], [1 1 1 1 1 1 1].
Pentru a putea forma dispunerea standard, se aleg din restul de 2n-2m=27-2 4 =112
combinaii de 7 bii un numr de 2k=8 combinaii de pondere minim exceptnd
combinaia cu toate elementele nule, vom alege cele 7 combinaii de pondere unitar
(Tab. 5.4).
Secvena r=1 1 0 1 1 0 1 se identific a fi la intersecia liniei 6 i a coloanei 2, deci
cuvntul decodificat este 1 1 0 1 0 0 1.
Observaie : Deoarece tabelul conine toate combinaiile posibile
corespunztoare unei singure erori, va putea fi corectat orice eroare singular.
Pentru decodarea pe baz de sindrom, formm tabelul 5.5.
Tabelul 5.5 Tabel de decodare pe baz de sindrom pentru codul H(7,4)
ST
000
001
010
011
100
101
110
111
e
0000000
1000000
0100000
0010000
0001000
0000100
0000010
0000001
Se vede din Tab 5.5 c pentru ST=[ 1 0 1], cuvntul eroare este e=[0 0 0 0 1 0 0 ] deci
corecia se face :
v=r+e=[1 1 0 1 1 0 1 ]+[0 0 0 0 1 0 0 ]=[1 1 0 1 0 0 1].
e) Creterea distanei de cod de la 3 la 4 am vzut c poate fi fcut n dou moduri : prin
extensie i prin scurtare.
Extensia codului H(7,4) se obine utiliznd matricea H* dat de (5.81) i un cuvnt de
structur (5.80)
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
, v = [ c0 c1 c2 a 3 c 4 a5 a 6 a7 ] .
H =
0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1
Relaiile de codare pentru c1,c2, c4 snt aceleai cu ale codului de baz H(7,4), la
acestea adugndu-se i:
c0=c1+c2+a3+c4+a5+a6+a7.
Fie recepia urmtoarelor secvene :
134
0
(S1=0,S2=0)
0
0
0
*
H r2= 1 S1= 0 , S2=1, deci exist o eroare pe poziia 1, corectabil ; rezult :
1
1
v=r2+[0 1 0 0 0 0 0 0 ]=[0 1 1 0 1 0 0 1]
0
0
*
H r3= 0 S1 = 0 , S2=1 deci c0 este eronat rezult v=r3+[1 0 0 0 0 0 0 0 ]=[0 1 1 0 1 0
1
0 1]
0
1
0
*
H r4= 1 S1= 1 , S2=0, deci exist dou erori necorectabile ; s-a fcut ns detecia
1
0
erorilor pare.
Scurtarea codului
Se tie c scurtarea unui cod de baz H(n,m) se face pe baza reducerii numrului
simbolurilor de informaie, deci n cazul dat, unde m este fixat (4) nu se poate pleca de la
codul H(7,4) ci de la codul perfect imediat superior H(15,11) :
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
H=
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
H0=
0 1 0 1 0 1 0 1
1 0 0 1 0 1 1 0
avnd dimensiunile compatibile cu formatul datelor (m=4) i cerinele ce asigur d=4.
n acest caz structura cuvntului de cod este de forma :
v0= [c1 c 2 c 3 a 4 c5 a 6 a 7 a 8 ] .
Relaiile de codare n acest caz se determin cu:
0
0
H0v0T=0 ;
0
0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1
c5 = a 6 + a 7 + a 8
c = a 4 + a7 + a8
3
c2 = a 4 + a 6 + a8
c1 = a 4 + a 6 + a 7
c1
c
2
c3
a 4 =0
c5
a 6
a
7
a 8
0
0
H0r2T= ; deoarece sindromul S conine un singur 1, nseamn c exist o singur
0
1
eroare ; valoarea sindromului arat c ea se afl pe poziia c1, deci cuvntul corect este :
v=r2+[1 0 0 0 0 0 0 0 ] =[1 1 1 1 0 0 0 0 ].
136
0
0
H0r3T= ; deoarece sindromul S conine un numr par de 1, nseamn c erorile snt
1
1
duble, neputnd fi corectate ; s-a fcut ns detecia erorii .
5.7.10 ALTE CODURI BLOC LINIARE
ai = 1
i =1
(5.85)
criteriul de paritate (even parity) :
n
ai = 0 .
i =1
(5.86)
Acest cod poate detecta toate erorile impare.
Redundana relativ a codului este :
k 1
Rr= =
n n
Exemplul 5.8
Pentru secvena informaional 1 0 1 1 0 1 1 s se determine valoarea bitului de
paritate utiliznd cele dou criterii de paritate.
Pentru criteriul de paritate impar :
1 0 1 1 0 1 1 c =1 ,
deci c are valoarea 0.
n cazul criteriului de paritate par :
1 0 1 1 0 1 1 c=0 ,
deci c va lua valoarea 1.
Cuvintul de cod n cele va fi n cele dou cazuri :
[ 1 0 1 1 0 1 1 0 ], [ 1 0 1 1 0 1 1 1 ] .
137
R1
i11
i21
...
ip1
C1v
Exemplul 5.9
Fie blocul :
R2
R3
R4
R5
R6
R7
Cio
R1
v1
1
0
1
1
0
0
1
1
v2
0
1
1
0
1
1
0
1
v3
1
1
0
0
1
0
0
01
v4
0
0
1
0
1
0
1
0
v5
0
1
1
0
0
1
1
1
Ckv
1
0
1
0
1
0
1
01
Codarea s-a realizat conform criteriului de paritate impar. Presupunem apariia
unei erori n (v3,R4) ; aceasta va afecta C30 i C4v, deci va putea fi corectat.
138
Rr =
(5.87)
Cd =
unde
ld 2 n ldC m
n
ld 2 n
n ldC m
n
n
N te N en
N
= 1 en ,
N te
N te
Nen= C m
n -1
Nte=2n-1 .
Numrul total de mesaje codificabile este : M= C m
n .
n acest caz , Cd se exprim :
Cd = 1
Cm
n 1
2n 1
(5.88)
Exemplul 5.10
Fie codul C(2,5) : 1 1 0 0 0 , 0 0 0 1 1 , 0 0 1 0 1 , 0 0 1 1 0 , 0 1 0 0 1 , 0 1 0 1 0 , 0
1 1 0 0 , 1 0 0 0 1 , 1 0 0 1 0 , 1 0 1 0 0, deci pot fi codificate un numr maxim de 10
mesaje (M=10).
Redundana, respectiv capacitatea de detecie a codului se calculeaz cu (5.87),
respectiv (5.88) .
5 ld10 5 3,32
Rr =
=
= 0,336 = 33,6%
5
5
10 1 22
Cd = 1
=
= 0,7 = 70%
25 1 31
139
h( x ) =
xn +1
.
g( x)
(5.95)
140
xg( x ) 0 g L g
0
k 1 g k L 0
=
G[mxn]=
.
M
M
M
M
M
M
M
M
m 1
g1 L g k
0 L g0
g ( x ) 0
x
(5.97)
Pentru obinerea unei structuri sistematice, la care informaia s se
gseasc nemodificat, pe poziiile cele mai semnificative, se procedeaz dup cum
urmeaz :
xki(x)= i0xk+i1xk+1+. . . +im-1xn-1
x k i( x )
r( x )
,
= q (x ) +
g( x )
g( x)
v(x)=xki(x)+r(x) = q(x)g(x)= a0+a1x+. . .
+ak-1xk-1 +akxk+. . .
+an-1xn-1
(5.98)
deci se obine un cuvnt de cod ciclic, multiplu al lui g(x) format din simbolurile de
informaie aflate pe primele m poziii, cele mai semnificative : xki(x) i din k simboluri de
control determinate de r(x) care reprezint restul mpririi lui xki(x) la g(x), deci un
polinom de grad cel mult k-1.
Relaia de codare (5.98) folosit pentru obinerea unui cod ciclic sistematic poate
fi prelucrat pentru obinerea unei relaii de tipul Hv T=0. Relaia (5.98) se nmulete cu
h(x), i n baza ortogonalitii dintre h(x) i g(x) - relaia (5.94) avem :
v(x)h(x)=q(x)g(x)h(x) = 0
(5.99)
Produsul v(x)h(x) = 0 poate fi scris analog cu produsul scalar a doi vectori :
(a 0 a1 L a n 1 ) ( 0 0 L0 h m h m 1L h1 h 0 ) = 0
(a 0 a1 L a n 1 ) ( 0 0 L h m h m 1 h m 2L h1 h 0 0 ) = 0
( a 0 a1 L a n 1 ) ( h m h m 1 L h 0 L0 0 ) = 0
(5.100)
Observaie : S-au scris din cele n ecuaii date de permutrile ciclice numai cele k=n-m
liniar independente.
Sistemul (5.100) poate fi scris i sub forma :
141
0
L 0
0
0
0
L hm
h m h m 1 L h 0
(5.101)
care se vede c este de forma :
HvT=0
unde H se identific ca fiind :
0
0
H[kxn] =
M
h m
(5.102)
h m 1 L h 1
h m 1 h m 2 L h 0
hm
L hm
h m 1 L
h0
h 0 a0
0 a1
=0
M
0 a n 1
hm
h m 1 L h1
h m 1
h m 2 L h0
h0
0
.
Exemplul 5.11
Fie codul (7,4) cu polinomul generator g(x)=x3+x+1 .
Matricea generatoare a codului, conform relaiei (5.97) este :
1 1 0 1 0 0 0
0 1 1 0 1 0 0
G=
0 0 1 1 0 1 0
0 0 0 1 1 0 1
x7 + 1
= x 4 + x 2 + x + 1 , de unde,
(
)
gx
conform relaiei (5.102), rezult structura matricei de control :
0 0 1 0 1 1 1
H= 0 1 0 1 1 1 0
1 0 1 1 1 0 0
Polinomul h(x) se determin din : h(x)=
1 0 1 1 1 0 0 a 4
a0 = a2 + a3 + a 4
a 5
a
6
ntreaga discuie privitor la codarea codurilor ciclice s-a fcut presupunnd
existena unui polinom generator g(x) de gradul k . Se pune ntrebarea :
142
Cum trebuie s fie g(x) pentru a putea corecta un numr maxim de t erori
independente ?
Rspunsul la aceast ntrebare poate fi dat dac apelm la teoria cmpurilor finite
(cmpuri Galois i extensii ale cmpurilor Galois [Anexa A]), care constituie suportul
matematic al codurilor ciclice.
Din legea de codare a codurilor ciclice tim c v(x) trebuie s fie un multiplu al
lui g(x), care la rndul su, conform (5.94), trebuie s fie divizor la lui xn+1 = 0.
Pentru realizarea acestor cerine se procedeaz dup cum urmeaz :
Se aleg un numr de r rdcini ale lui xn+1=0 pe care le notm :
i=i GF(2k) , i = 0 , n 1 sau i = 1, r
(5.103)
Aceste rdcini i snt elemente primitive () ale extensiei de ordinul k a cmpului
Galois binar, ordin determinat de relaia :
n=2k-1 k .
(5.104)
Extensia GF(2k) este generat de un polinom primitiv p(x) de gradul k, determinat
cu (5.104) (Tabelul 5.7). Tabele cuprinznd reprezentarea diferitelor cmpuri GF(2k)
generate de polinoame primitive de gradul k se gsesc n Anexa A.10.
ak ak-1 . . . a0
1
2
3
11
111
1011
1101
10011
11001
100101
101001
101111
110111
111011
111101
4
5
Se determin g(x) ca cel mai mic multiplu comun al polinoamelor minimale ale
rdcinilor i :
g(x)=c.m.m.m.c{m1(x),. . . ,mr(x)}.
(5.105)
Dac toate cele r polinoame snt relativ prime ntre ele, atunci :
143
g(x)= m i ( x ) .
i =1
(5.105.a)
mi(x) = ( x + i )( x + i2 ) . . . ( x + i2 ) .
(5.106)
Pentru corecia unui numr de maxim t erori, se impune alegerea unui numr de
r=2t rdcini i GF(2k), ceea ce determin obinerea unui cod avnd distana minim
[An-71]:
d 2t+1.
(5.107)
2
k1
n cazul codurilor ciclice binare, dac este o rdcin i 2, 2 ,... 2 snt tot
rdcini i deci n formarea polinomului generator este suficient selectarea
rdcinilor impare :
1 = , 3 = 3 ,L , 2t 1 = 2t 1 .
(5.108)
n continuare vom da enunul ctorva teoreme (fr demonstraie), utile n
verificarea calculului efectuat pentru determinarea polinomului g(x) [An-71]:
Gradul oricrui polinom minimal mi(x) este mai mic sau cel mult egal cu k (ordinul
extensiei)
gradul mi(x) k
(5.109)
Gradul polinomului generator g(x) este mai mic sau cel mult egal cu kt (amintim c,
gradul polinomului generator este egal cu numrul simbolurilor de control k, de
aceast dat notaia nefiind folosit n accepiunea de extensie a cmpului Galois).
gradul lui g(x) = numrul simbolurilor de control = n-m kt
(5.110)
n care k semnific ordinul extensiei GF(2k) .
Numrul de termeni nenuli ai lui g(x) este egal cu distana de cod :
d 2t+1
(5.111)
Codurile ciclice binare, corectoare de t erori independente, obinute n modul
anterior descris snt cunoscute sub denumirea de coduri BCH (Bose-ChauduriHocquenghem). Se pot
determina tabele ce conin polinoamele generatoare pentru coduri BCH pentru diferite
lungimi (n) i erori corectabile (t) [Li-83] :
144
Tabelul 5.8
n=31
n
gk gk-1 . . . g0
4
1
1 3
1
3
1 7 7
15
11
1
2 3
7
2
7 2 1
5
3
2 4 6 7
1
7
7 7 7 7 7
31
26
1
4 5
21
2
3 5 5 1
16
3
1 0 7 6 5 7
11
5
5 4 2 3 3 2 5
6
7
3 1 3 3 6 5 0 4 7
Observaie :coeficienii polinomului generator snt dai n octal, trecerea la
exprimarea binar fiind imediat.
Codarea codurilor BCH poate fi fcut n dou moduri :
utiliznd relaia (5.92) pentru cod nesistematic sau (5.98) pentru cod sistematic.
utiliznd relaia (5.101) n care structura matricii de control se determin impunnd ca
v(x) s aib rdcini pe 1=, 3=3, ..., 2t-1=2t-1 ; n acest caz avem :
v( i ) = a 0 0i + a1 1i +L+ a n 1 ni 1 = 0
i = 1, 3, 5, ..., 2t -1
(5.112)
Obinem :
0
0
H=
M
3 n-1
`3 6
L ( )
2
2t -1
2t 1)( n 1)
2t 1 ( ) L (
L n-1
(5.113)
Observaie :
fiecare element este exprimat n k bii, deci dimensiunea matricii de control
este : [tkn]
Exemplul 5.12
S se proiecteze codurile BCH de lungime n = 15 corectoare de t = 1, t = 2 i t = 3
erori. S se determine polinoamele generatoare i relaiile de codare. Determinai
cuvintele de cod pentru o secven informaional la alegere.
145
Soluie
Se dimensioneaz cmpul Galois n care se situeaz cuvintele de cod, utiliznd (5.104)
n = 2k 1
15 = 2 k 1 k = 4 GF( 2 4 )
Elementele lui GF(2k) snt clasele de resturi modulo p(x), un polinom primitiv de
gradul k = 4. Se selecteaz din Tab. 5.7:
p( x ) = x 4 + x + 1
Elementele primitive ale cmpului GF(24) pot fi reprezentate polinomial sau
matricial. Reinem c pentru orice cmp Galois avem (Anexa A.10) :
n = 1
Elementele cmpului GF(2 4) generat de p(x) = x4 + x + 1snt date n tabelul 5.9.
Pentru t = 1 se alege 1 = GF(24)
Polinomul minimal al acestei rdcini este conform relaiei (5.106.) :
)(
)(
m1 ( x) = ( x + ) x + 2 x + 4 x + 8 = x 4 + x + 1
g( x) = m1 ( x) = x 4 + x + 1
Se observ obinerea unui polinom de gradul 4, deci numrul simbolurilor de control va fi
k=4 (k folosit aici n accepiunea de numr al simbolurilor de control ). Dimensiunea
codului BCH de n = 15, t = 1, va fi : H(15,11,1), n care 11 = m reprezint numrul
simbolurilor de informaie, iar 1 = t numrul erorilor corectabile.
Polinomul generator n acest caz (t = 1) este un polinom primitiv (cel ce a generat
GF(24)).
Tabelul 5.9. Cmpul GF(24) generat de p(x) = x4 + x + 1
Reprezentare polinomial
0 i i
Reprez. matricii T
0
0
0000
1
1
1000
0100
0010
2
2
0001
3
3
4
1100
1+
0110
5
+ 2
6
2
3
0011
+
1101
1+
+ 3
7
2
8
1010
1
+
9
3
0101
+
2
10
1110
1 + +
0111
11
+ 2 + 3
2
3
12
1111
1+ + +
1011
1
+ 2 + 3
13
14
1001
1
+ 3
146
H=
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
Structura cuvntului de cod, n varianta sistematic este :
v=
a 0 a1 a 2 a 3
a 4 a 5 a 6 a 7 a 8 a 9 a10 a11 a12 a13 a14
14243
1444444
424444444
3
m = 11 simboluri de informaie
k =4 simboluri de control
1 =
3 = 3
( )( )( )
m ( x) = ( x + )( x + )( x + )( x + ) = x
m 1 ( x) = ( x + ) x + 2 x + 4 x + 8 = x 4 + x + 1
3
12
24
+ x3 + x 2 + x + 1
g = 112
131 012
130 012
031
7
2
1
sau corespunztor n octal g=7 2 1 .
Se remarc i n cazul lui g(x) respectarea condiiei (5.110) : 8 4 2. Numrul
termenilor nenuli ai lui g(x) este 5, deci conform (5.107) codul este corector de dou erori
147
(calculul este corect). Dimensiunea codului este H(15, 7, 2), structura cuvntului de cod
fiind :
H(15,7,2) =
0 3 6 L 52
Propunem cititorului, ca exerciiu, determinarea relaiilor de codare precum i
dimensionarea codului corector de t = 3 erori i calcularea lui g(x).
Alegnd secvena informaional :
ca n cazul t = 1.
i(x) = 1
x k i(x) = x 8
v( x) = x8 + x 7 + x 6 + x 4 + 1 sau 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1
MSB
148
Codurile ciclice reprezint clasa celor mai utilizate coduri pentru detecia erorilor
att independente ct i a pachetelor de erori.
n continuare vom exprima capacitatea de detecie a codurilor ciclice, pornind de
la relaia de definiie (5.11)
N
N N en
N
,
C d = ed = te
= 1 en
N te
N te
N te
(5.11)
unde Nen este determinat de acele combinaii de erori care conduc la un alt cuvnt de cod,
deci pentru care cuvntul eroare este un multiplu (M) al lui g(x) :
e( x ) = Mg( x )
Fie un pachet de erori de lungime l, situat ntre poziiile i i j : l = j - i
e( x) = e jx j +L+ ei x i = x i e j x j i +L+ e i
(5.116)
Vom analiza n continuare cele trei situaii ce pot aprea : lungimea pachetului l
mai mic, egal i mai mare dect gradul polinomului generator k.
dac l < k ,nseamn c e(x) nu poate fi un multiplu al lui g(x), deci Nen = 0, de unde
rezult Cd = 1 ; n acest caz vor fi detectate toate pachetele de erori cu lungimi mai
mici dect k.
dac l = k, exist o singur combinaie de erori ce poate corespunde polinomului
generator : e(x) = g(x), deci Nen = 1;
n acest caz
N te = 2l 1 , deoarece e i = e j = 1
1
Cd = 1
= 1 2 l +1 = 1 21 k
l 1
2
(5.117)
dac l > k, nu vor fi detectate acele erori care sunt multipli ai lui g(x) :
e( x ) = Mg( x ) = m ( x )g( x )
unde m(x) este un polinom de grad cel mult l - k ; se determin :
N en = 2l k 1
N te = 2l 1
Cd = 1
2 l k 1
2 l 1
= 1 2 k
(5.118)
Observaie : capacitatea de detecie a codurilor ciclice depinde numai de gradul
polinomului
generator (k), asupra lui g(x) neimpunndu-se nici o alt condiie.
15). n reeaua IBM/360 polinomul folosit n CRC - 16 este g( x ) = x16 + x15 + x 2 + 1 [Na
- 84].
Protecia la erori a sincronizrii de date n grupul primar european (varianta modern)
se face cu CRC - 4 [Si - 52].
Standardul 11469/1 - 80, echivalent cu ISO 4335 - 79 pentru transmisiuni de date cu
proceduri de control al legturii de nivel nalt (HDLC - High Data Link Control),
stabilete structura mesajului i a secvenei de verificare (fig.5.10)
sens de transmitere
FLC
Delimitator
01111110
FCS
16 bii
Date
.......
Comand
8 bii
Adres
8 bii
Delimitator
01111110
i(x) = m bii
v(x) - n bii = m+16
Fig. 5.10 Formatul cadrului n HDLC
Cei m bii informaionali (date + comand + adres) sunt reprezentai de
polinomul i(x) i snt cuprini ntre ultimul bit al delimitatorului de nceput de mesaj i
primul bit al FCS. Secvena de control CRC - 16, n cadrul HDLC se numete secven de
verificare a cadrelor i se noteaz FCS (Frame Checking Sequence). Secvena format
din doi octei de control la nivel de cadre FLC (Frame Level Control) sunt utilizai pentru
implementarea protocolului la nivel de legtur.
Delimitatorii precizeaz marginea cadrului. Dac un delimitator nu este inserat
corect ntre dou cadre, atunci receptorul le va interpreta ca pe unul singur. Dac recepia
primului cadru se face fr erori, starea registrului de deplasare cu reacie RDR (utilizat
n codare i decodare ciclic) este 0 i ea coincide cu starea iniial corect a RDR pentru
nceperea unei noi mpriri, i deci receptorul nu va detecta lipsa delimitatorului pentru
separarea celor dou cadre. Aceast problem apare pentru c starea RDR este aceeai
(nul) nainte de recepia fr erori a unui cadru i dup verificarea acestuia. Evitarea
acestui neajuns se face prin modificarea FCS astfel nct cele dou configuraii ale RDR
n cele dou situaii anterior menionate s difere.
Polinomul generator g(x) este folosit pentru divizarea polinomului M(x) :
g( x) = x16 + x12 + x 5 + 1
(5.119)
150
M( x) = x16 i( x) + x m L( x)
(5.120)
15
L( x ) = x j
unde
j= 0
(5.121)
este utilizat pentru inversarea primilor 16 bii de rang superior din x16i(x), determinnd
iniializare RDR cu 1 n toate poziiile binare.
La emisie se transmite mesajul original i(x) la care se concateneaz restul inversat
al mpririi lui xki(x) la g(x) :
v( x ) = x16 i( x ) + FCS
(5.122)
unde FCS este complementul fa de 1 al restului r(x) obinut din :
x16 i( x ) + x m L( x)
g( x)
(5.123)
deci :
= q ( x) +
r ( x)
g( x)
FCS = r ( x) = r ( x) + L( x)
(5.124)
Adunarea polinomului xmL(x) la polinomul x16i(x) este echivalent cu fixarea
restului iniial pe 1. Complementarea fa de 1 a restului r(x) de ctre emitor, dup
efectuarea mpririi, asigur c mesajul recepionat fr erori va genera la receptor un
rest unic diferit de 0, ceea ce pemite protecia n cazul lipsei delimitatorului de sfrit de
mesaj.
La recepie se efectueaz mprirea :
x16 v( x ) + x16 + m L( x)
g( x)
]+x
x16 x16 i( x) + x m L( x) + r ( x)
g( x)
16
L( x)
g( x)
L( x)
= x16 q( x) + x16
g( x)
(5.125)
Dac transmisia nu este afectat de erori, restul mpririi efectuate la recepie este
tocmai rest
x16 L( x)
g( x)
Prin aceast metod att emitorul ct i receptorul inverseaz primii 16 bii mai
semnificativi, operaie realizat prin iniializarea RDR cu 1 n toate poziiile
binare.Restul, dup recepia unui bloc lipsit de erori este diferit de 0 i are configuraia :
,
0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1
MSB
ceea ce permite la recepie ca dou cadre corecte, mpreun cu FCS - urile proprii
concatenate datorit lipsei delimitatorului dintre ele s nu fie considerate unul singur.
151
( )
v( i ) = v i = 0
(5.112)
Pentru codurile BCH, se iau n considerare doar rdcinile impare : i = 1,2t 1 ,
n baza teoremei exprimate de relaia (5.108).
La recepie, se verific legea de codare (5.112), care pentru erori de tip aditiv, se
exprim
( )
r( i ) = v( i ) + e( i ) = e( i ) = e i =
Si
(5.126)
i = 1, 3, ..., 2t -1.
Pentru cele 2t rdcini, expresia sindromului S este :
S=(S1 S2 . . . S2t)
(5.127)
n cazul codurilor binare, pentru corecia erorii este suficient determinarea
poziiei acestora din expresia sindromului.
S vedem cum poate sindromul Si s indice poziia erorii. Pentru aceasta
presupunem un cuvnt eroare oarecare; fie acesta cu dou erori pe poziiile 2 i 4:
e( x) = x 2 + x 4
Expresia sindromului Si, conform relaiei (5.126), este :
( ) ( ) + ( ) = ( ) + ( )
Si = e i = i
i 4
2 i
4 i
= X1i + X 2i
unde prin Xk s-a notat locatorul erorii, adic aceea expresie care indic poziia erorii :
Xk = j ,
i
k = 1, t
(5.128) Se vede deci c simbolul si poate fi exprimat de :
j = 0, n -1
Si = X k i
k=1
(5.129) deci determinarea poziiei erorilor (a lui Xk) nu este altceva dect rezolvarea
unui sistem de ecuaii neliniare (5.129) cu necunoscute Xk. Exist numeroase metode de
rezolvare a unor sisteme de ecuaii neliniare, toate putnd constitui algoritmi de decodare
algebric pentru coduri ciclice. n cele ce urmeaz vom expune unul dintre primii i
totodat cei mai eficieni algoritmi practici de decodare : algoritmul Peterson, cu cutare
Chien.
152
Observaie :
Abordarea codrii i decodrii codurilor ciclice poate fi fcut att n timp ct i n
frecven. n prezenta expunere ne vom ocupa de abordare n domeniul timp, urmnd ca
asupra celei de-a doua modaliti (n frecven) s facem o prezentare n paragraful
destinat codurilor Reed - Solomon (RS).
Algoritmul Peterson cu cutare Chien const n urmtorii pai :
1. Calcularea sindromului erorii :
S = ( S1 , S3 , L, S 2e 1 )
( )
si = r i = X ki
, i =1,2t
k =1
( x) = ( x + X k ) = x t + 1 x t 1 +L+ t
k =1
(5.130)
Coeficienii i vor fi determinai funcie de sindroamele Si calculate anterior.
Locatorii Xk sunt rdcini ale polinomului (x), deci :
( X k ) = 0, k = 1, t
(5.131)
nlocuind n (5.131) pe x cu Xk, obinem :
X k t + 1 X k t 1 +L+ t = 0
(5.132)
nmulind pe (5.132.) cu X ki i nsumnd dup indicele k, avem :
t
k =1
k =1
k =1
X k t + i + 1 X k t + i 1 +L+ t X k i = 0
(5.133)
Identificnd pe s i (relaia (5.129), putem scrie :
S t + i + 1S t + i 1 +L+ t Si = 0 , i =1,t
(5.134)
Se observ c (5.134) reprezint un sistem liniar de t ecuaii cu t necunoscute.
Rezolvarea acestui sistem se face aplicnd regula lui Cramer astfel :
se calculeaz determinantul :
St
S t 1 L S1
S t +1
St L S2
D=
M
S 2t 1
S 2t
L St
(5.135)
dac D0, atunci sistemul are soluie unic, dat de :
Dj
D
D
t = 1 , L,
, L, t
D
D
D
(5.136)
153
iX k
i =1
=1
(5.137)
indicele i artnd poziia eronat. Eroarea poate apare pe toate cele n poziii, numrul
maxim al erorilor corectabile fiind t.
n algoritmul Chien, cutarea simbolului eronat ncepe de la rn - 1, caz n care Xk
se nlocuiete cu (n - 1) :
i
1 i1
i
=
=
=
n
Simbolul rn - j va interveni n ecuaia de cutare (5.137) sub forma :
i( n 1)
i n
i1
( ) = i n i j = i j
n consecin, ecuaia de cutare Chien (5.137) va fi :
i n j
i i j = 1
i =1
, j = 1, n
(5.138)
154
r = 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1
MSB
Care va fi cuvntul la ieirea decoderului, dac decodarea se face dup algoritmul
Peterson i cutare Chien ?
Soluie
r( x) = x14 + x12 + x8 + x 7 + x 6 + x 4 + 1
Aplicm paii algoritmului anterior descrii.
Calcularea sindromului erorii :
S1 = r ( ) = 14 + 12 + 8 + 7 + 6 + 4 + 1 = 5
( )
S 3 = r 3 = 42 + 36 + 24 + 21 + 18 + 12 + 1 = 4
:
1 = S1 = 5
S + S13 4 + 15
2 = 3
=
=
= 11
5
S1
5
Cutarea Chien ncepnd cu r14, cu relaia (5.138) :
j=1
111 + 2 21 = 5 + 11 2 = 1,
ceea ce nseamn c simbolul rn-j este eronat, deci r15 - 1 = r14 este eronat.
1 1 2 + 2 2 2 = 9 1
j= 2
j= 3
j=4
11 4 + 2 2 4 1
j= 5
11 5 + 2 2 5 1
11 3 + 2 2 3 = 5 3 + 11 6 = 8 + 17 = 1,
deci rn- j = r15 3 = r12 este eronat.
M
j = 14
11 5 + 2 2 5 1
Cuvntul eroare este deci : e = [1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ]
155
Cuvntul
decodat
va
fi
v = r + e = [1 0 1 0 0 0 1 1 1 0 1 0 0 0 1] + [1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ] =
= 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1
MSB
Ck-1
gk=1
Ck-2
C1
...
gk-1
gk-2
C0
g2
g1
M
st iC k 1 = g 0st i 1C0 + g1st i 1C1+L+g k 1st i 1C k 1
(5.140)
unde stiCj, respectiv sti - 1Cj reprezint starea celulei Cj la momentul i, respectiv i - 1.
Acest sistem poate fi scris matriceal :
S i = TS i 1
(5.140)
156
unde:
st iC j
S i = M
st i Ck 1
0
0
, iar T = M
0
g 0
st i 1C j
S i 1 =
M
st i 1C k 1
0
0 1 ...
0
M
M M
M
0 0 ...
1
g1 g 2 ... g k 1
1
...
(5.141)
este matricea caracteristic a RDR.
Dac starea iniial a RDR este S0 = 0, evoluia acestuia va fi : S0, TS0, . . ., TnS0 =
S0, deci dup un numr de n pai RDR ajunge n starea din care a plecat ; acest n poart
denumirea de perioad a RDR. Pentru ca fiecare stare a RDR s fie precedat de o stare
unic, este necesar s existe T-1, ceea ce impune ca g0 = 1.Numrul total de stri nenule a
RDR n numr de 2k - 1, pot fi generate ntr-un ciclu sau mai multe.
Polinomul caracteristic al matricei T se definete ca :
x 1
0 ...
0
0
0 x 1 ...
0
0
=
( x) = det T xI = M
0
g0
0
g1
0 ... x
g 2 ... g k 1
1
x
= g 0 + g1x+ ...+ g k 1 x k 1 + x k
(5.142)
deci polinomul caracteristic al matricei T este polinomul generator g(x), acesta
determinnd n mod unic RDR.
Matricea caracteristic T este o rdcin a polinomului generator :
g ( T) = 0
(5.143)
Perioada matricei caracteristice T, sau lungimea ciclului este cel mai mic
ntreg n pentru care :
T n = T0 = I
(5.144)
Fie
0
0
U=
M
1
starea
(5.145)
Cele n stri nenule ale RDR snt :
T 0 U = U, TU, T 2U, . . . , T n U = U
(5.146)
Dac notm :
157
iniial
RDR
i = TiU
(5.147)
i dac T este o rdcin a lui g(x) i i este rdcin a lui g(x) :
( ) ( )
g i = g Ti U = 0
(5.148)
Din teoria claselor de resturi modulo un polinom g(x) de gradul k se tie c n este
maxim dac g(x) este primitiv (T se numete element primitiv al cmpului GF(2k)
generat de g(x) de gradul k, primitiv.)
n = 2k 1 ,
deci RDR genereaz toate strile nenule ntr-un singur ciclu dac g(x) este primitiv.
Registru de deplasare cu reacie cu sumatoare modulo - 2 interioare
ntrega discuie fcut pentru RDR din figura 5.11 rmne valabil i n cazul
RDR cu sumatoare modulo - 2 interioare (figura 5.12)
C0
g0
g =1
C1
...
g1
g2
Ck-2
gk-2
Ck-1
g k-1
k 2 0 1 ... 0
T= M
0 0 ... 1
g1
g 0
0 0 ... 0
(5.149)
RDR prezentate n figura 5.11 i 5.12 se numesc echivalente, pentru c au acelai
polinom caracteristic.
158
Ck-2
C1
...
gk-1
C0
gk-2
S2
g1
S1
g2
2
K
1
Fig.5.13 Schema bloc a unui coder ciclic sistematic realizat cu RDR cu exterioare
Spre deosebire de schema din figura 5.11., n schema acestui coder apar o serie de
modificri : introducerea unui semnal de intrare la care vor fi livrate simbolurile
informaionale i[an - 1 ....an - m], sumatorul modulo-2 S2 i comutatorul k.
Introducerea semnalului de intrare conduce la modificarea ecuaiei de funcionare
a RDR
n regim autonom :
Si = TS i 1 + a i U
(5.150)
unde ai reprezint simbolul introdus la intrare la momentul i.
Comutatorul k este pe poziia 1 timp de m tacte ct se introduc n RDR
simbolurile de informaie, urmnd ca dup m tacte s treac pe poziia 2 timp de k
tacte,timp n care RDR va calcula simbolurile de control prin mprire xki(x):g(x). La
ieire se va obine cuvntul de cod ciclic n structur sistematic :v(x) = xki(x) + r(x),
unde r(x) reprezint rest xki(x):g(x).
Pe durata ultimelor k tacte, comutatorul k fiind pe poziia 2, ieirea lui S2 va fi pe
0, dat fiind c cele dou intrri ale sale snt comune. Aceasta nseamn c la sfritul celor
n tacte starea RDR va fi 0 (deci toate celulele vor fi n zero).
159
2
a0U + a1TU + ... + an - 1Tn - 1U
m +k=
=n
a0
S n = 0 = a 0 U + a1TU+L+a n 1T n 1U
(5.151)
Relaia (5.151) se poate pune i sub forma produsului matriceal :
a0
a
U TU ....T n 1U 1 = 0
M
a n 1
(5.151.a)
relaie de forma :
H vT = 0 ,
de unde identificarea structurii matricii de control :
H = U TU ... T n1U
(5.152)
0
M
n care U = , iar T este determinat cu relaia (5.141).
0
1
160
C0
C1
...
Ck-2
Ck-1
2
g0=1
g =1
g1
g2
gk-2
g k-1
P
Ieire
i [an-1 .
Intrare
i [an-1 . . . anFig. 5.14 Schema-bloc a unui coder ciclic sistematic realizat cu RDR cu interioare
]
Modificrile fa de schema dat n figura 5.12 snt : apariia sumatorului modulo2 S care permite introducerea pe durata primelor m tacte a simbolurilor de informaie,
poarta P care este deschis pe durata primelor m tacte i blocat pe ultimele k tacte,
comutatorul k care este pe
poziia 1 pe durata primelor m tacte i pe poziia 2 pe durata ultimelor k tacte.
Funcionarea schemei este dat de relaia (5.150.) :
Si = TS i 1 + a i U
(5.150)
cu observaia c :
st i C k 1
Si = M
st i C 0
(5.151)
g k 1
U = M
g 0
(5.152)
La sfritul celor m tacte (ct dureaz introducerea simbolurilor de informaie), n
celulele RDR va fi ncrcat tocmai restul mpririi rest[xki(x):g(x)] = r(x), deci dup
urmtoarele k tacte registrul va fi n starea Sn = 0.
Procednd analog cu cazul dat n figura 5.13, relaia de codare :
i = 0 0 0 1 .
MSB
161
Pentru secvena i dat, cuvntul de cod ciclic sistematic, exprimat cu (5.98) este :
i( x ) = 1
x k i( x) = x 3
r ( x) = rest
x3
x3 + x + 1
exprimat matriceal :
= x + 1, deci
v( x) = x 3 + x + 1 sau
v = 0 0 0 1 0 1 1 .
MSB
Schema-bloc a coderului ciclic cu RDR cu sumatoare modulo - 2 exterioare i
funcionarea schemei sunt date n figura 5.15.
tn + 1
tn
tn
T
K
intrare i
C2
C1
C0
ieire v
1
a6
a6
0
0
a6
2
1
a5
a5
a6
0
a5
3
a4
a4 + a6
a5
a6
a4
4
a3
a3+ a5+ a6
a4 + a6
a5
a3
5
0
a3+ a5+ a6
a4 + a6
a2= a4+ a5+ a6
6
2
0
0
a3+ a5+ a6
a1= a3+ a4+ a5
7
0
0
0
a0= a3+ a5+ a6
(b)
C1
C2
C0
Intrare
K 1
Ieire [a6a5a4a3a2a1a0]
(a)
Funcionarea schemei din figura 5.15.a., dat de tabelul din figura 5.15.b., am
vzut c poate fi descris matriceal prin relaia Hv T = 0 , unde H are expresia (5.152.),
iar T i U sunt date de (5.141), respectiv (5.145).
Matricea caracteristic T a RDR este :
0 1 0 0 1 0
T = 0 0 1 = 0 0 1 ,
g 0 g1 g 2 1 1 0
0
iar U = 0 , ceea ce conduce la expresia matricii H :
1
162
0 0 1 0 1 1 1
H = 0 1 0 1 1 1 0 . Cu aceast expresie a lui H, relaia Hv T = 0
1 0 1 1 1 0 0
conduce la:
a 2 = a 4 + a 5 + a 6
,
a1 = a 3 + a 4 + a 5
a = a + a + a = a + a + a + a + a = a + a + a
2
3
4
4
5
6
3
4
3
5
6
0
evident aceleai cu cele anterior determinate.
Pentru i=[0 0 0 1], se verific cu uurin fie utiliznd tabelul de funcionare, fie
relaiile de codare, obinerea cuvntului de cod T=[0 0 0 1 0 1 1].
Schema-bloc a coderului ciclic cu RDR cu interioare i funcionarea schemei sunt
date n figura 5.16
C0
2
C1
Ieire
v=[a6a5a4a3a2a1a0]
C2
(a)
1
P
K
Intrare
i=[a6a5a4a3]
tn
intrare i
a6
a5
a4
a3
tn+1
tn
T
P
C0
C1
C2
ieire v
1
a6
a6
0
a6
2
ON
a5
a5+ a6
a6
a5
3
deschis
a4+ a6
a4 + a6+ a5
a5+ a6
a4
4
a3 + a5+ a6 a3 + a4+ a5
a4 + a5+ a6
a3
5
blocat
0
a3 + a5+ a6
a3 + a4+ a5 a2 = a4 + a5+ a6
6
OFF
0
0
a3 + a5+ a6 a1 = a3 + a4+ a5
7
0
0
0
a0 = a3 + a5+ a6
(b)
Fig. 5.16 Schema-bloc (a) i funcionarea (b) coderului ciclic cu RDR cu
interioare
pentru g(x) = x3 + x + 1 i m = 4
Din tabelul de funcionare se vede c restul r(x) al mpririi lui xki(x) la g(x) este
calculat n RDR la sfritul celor m = 4 tacte,el fiind golit din registru pe durata ultimilor
k = 3 tacte, cnd poarta P este blocat.
Matricea caracteristic a RDR n acest caz este dat de (5.149) :
g k 1 1 ... 0
g
0 ... 0 0 1 0
k2
= 1 0 1 ,
T= M
0 ... 1 1 0 0
g1
g 0
0 ... 0
163
a 2
T
Hv = 1 1 1 0 0 1 0 a 3 = 0 a 0 + a1 + a 2 + a 5 = 0
a + a + a + a = 0
1 0 1 1 1 0 0 a 4
2
3
4
0
a
5
a
6
Prelucrnd sistemul de ecuaii se obin relaiile de codare : a0, a1, a2 funcie de
simbolurile de informaie identice, evident, cu cele date n tabelul din figura 5.16.b.
Propunem cititorului, ca exerciiu, s determine cuvntul de cod v pentru secvena
informaional dat, fr a particulariza relaiile anterior determinate.
gk=1
g =1
Ck-1
Ck-2
C1
...
gk-1
gk-2
C0
g2
g1
Fig. 5.17 Schema-bloc a unui decoder ciclic pentru detecia erorii realizat cu RDR
cu exterioarer - cuvntul recepionat ; S - sindromul erorii, reprezint starea
RDR la momentul n
Sindromul S, constnd din starea RDR la momentul n : Sn 0 nu constituie restul
r(x)/g(x) ci o form modificat a acestuia, permind ns detecia erorii.
164
Decoder ciclic pentru detecia erorii realizat cu RDR cu interioare (fig. 5.18)
Detector S 0
r
+
+
C0
+
+
g0=1
+
+
C1
+
+
g1
Ck-2
g2
+
+
gk-2
Ck-1
gk-1
gk=1
)(
x2 + 1
+31 +
r1 ( x) / g( x) = x 6 + x 3 + x + 1 / x 3 + x + 1 = x134+2x4
,
g( x )
q( x)
deci r( x) = x 2 + 1
ceea ce nseamn c r1(x) este corect, fapt ce va trebui s fie evideniat de starea 0 a
RDR la sfritul celor n = 7 tacte.Schema-bloc i funcionarea decoderului ciclic realizat
cu RDR cu exterioare este (figura 5.19) :
Detector S 0
r
C2
a)
C0
C1
+
tn + 1
tn
T
1
2
3
4
5
6
7
r
1
1
0
0
1
0
1
1
C2
2
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
C1
2
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
165
C0
2
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
2
0
0
0
0
0
1
0
b)
C0
+
g1=1
g0=1
C2
g3=1
tn + 1
tn
T
C1
C1
C2
1
2
1
2
1
0
0
0
0
2
1
0
0
0
3
0
0
1
0
4
1
0
0
0
5
0
1
1
0
6
1
0
0
1
7
0
0
1
0
b)
Fig. 5.20 Schema-bloc (a) i tabelul de funcionare (b) al decoderului ciclic realizat
cu RDR cu interioare pentru g(x) = x3+ x + 1.
Se observ c pentru r1, starea RDR la n = 7 este (1 0 1) i corespunde tocmai
restului r(x)/g(x).
1
1
0
0
1
0
1
1
C0
2
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
2
0
0
0
1
0
1
0
RM
1
P2
RDR (RS)
P2*
RDR (RS)
Fig. 5.21 Schema-bloc general a unui decoder ciclic pentru corecie la erori
Semnificaia blocurilor din figur este :
RM - registru de memorie (n celule)
RDR(RS) - registru sindrom (un RDR identic cu cel utilizat la codare)
D - detector al unei stri fixe (unice) a RS atunci cnd simbolul eronat este n ultima
celul a RM
C- celul de corecie
P1 , P2, P1*, P2*- pori ce asigur funcionarea n tandem a celor dou decodere
Funcionarea schemei din figura 5.21 :
Pe durata (1,n) : P1 - deschis P1*- blocat ,
P2 - blocat
P2*- deschis
ceea ce asigur introducerea cuvntului recepionat n RM i simultan n primul decoder.
Pe durata (n + 1, 2n) : P1 - blocat
P1*- deschis ,
P2 - deschis P2*- blocat
fapt ce determin posibilitatea coreciei simbolului eronat n celula de corecie C, atunci
cnd detectorul D indic o anumit stare fix a RS ; n acelai timp se recepioneaz
urmtorul cuvnt care se ncarc simultan n RM, devenit disponibil pe msur ce
corecteaz cuvntul anterior ncrcat, i n decoderul al doilea.
167
deosebindu-se de codul Hamming grup studiat n 5.7.9 prin faptul c este un cod
sistematic. Structura cuvntului de cod este :
v = a 0 a1La k 1 a k La n 1
4244
3 14243
14
k simboluri de m simboluri
de inf ormaie
control
(5.98)
Dup cum am artat n 5.8.2 (vezi exemplul 5.12. i tabelul 5.8.), codurile ciclice
(BCH) corectoare de o eroare (t = 1) avnd lungimea n ce satisface relaia (5.71) snt
tocmai codurile Hamming ciclice corectoare de o eroare i am vzut c pentru acestea
polinomul generator este chiar polinomul primitiv de gradul k ce genereaz pe GF(2k).
Codarea se poate realiza cu RDR cu exterioare sau interioare, utiliznd schemele
din figura 5.13 respectiv 5.14. Relaiile de codare se obin cu :
Hv T = 0,
unde H = U TU ... T n 1U
(5.152)
n care T i U se determin funcie de schema realizat, aa cum s-a indicat n 5.8.7.
n cele ce urmeaz vom detalia decodarea pentru corecia erorii, determinnd acea
stare fix a registrului sindromului pus n eviden de detectorul D n cazul n care
simbolul eronat ajunge n ultima celul a RM din decoderul prezentat n figura 5.21. Vom
analiza pe rnd cele dou situaii de realizare a codrii/decodrii cu RDR.
Decoder cu RDR cu exterioare.
Presupunem c n transmisie a aprut o eroare pe poziia ri
e = [ 0Le i L0]
, i = 0, n 1 :
(5.153)
n acest moment (n), simbolul eronat ri se gsete n celula i + 1 a RM :
RM
t=n
r0
r1
...
ri
...
rn - 1
1
...
i+1
...
168
este starea registrului RS n acel moment. Pentru aceasta lsm RS s evolueze liber (
fr intrare, P1 fiind blocat) :
n:
S = TiU
n + 1 : TS = T i + 1U
M
1
0
n + ( n i 1) : T n i 1S = T n i 1T i U = T n T 1U = IT 1U = T 1U =
M
0
(5.154)
deoarece T este matricea unitate de ordinul k, iar T-1U este [1 0 ... 0]T.
Deci, n cazul unui decoder cu RDR cu exterioare, starea fix a RS este [1 0 ...
0],ceea ce nseamn c toate cele k celule, exceptnd pe C0, vor fi n 0. Aceast stare va fi
detectat de D care va da la ieire un 1 ce se va nsuma n celula de corecie C cu ri :
ri + 1 = ( a i + 1) + 1 = a i
(5.155)
determinnd schimbarea valorii bitului, deci corecia acestuia.
Observaie : apariia acestei stri (1 0 ... 0) pe durata (1,n) ar conduce la corecii false, de
unde
necesitatea ca P2 s fie blocat pe aceast perioad.
Decoder cu RDR cu interioare
n cazul RDR cu interioare starea RDR indic tocmai restul mpririi (spre
deosebire de RDR cu exterioare), deci n momentul n care simbolul eronat ajunge n
ultima celul a RM, cuvntul eroare e(x) corespunde lui xn - 1, ceea ce nseamn c starea
registrului RS este dat de :
rest
x n1
= starea fix a RS
g( x)
(5.156)
Exemplul 5.16
Fie codul Hamming ciclic corector de o eroare H(7,4) avnd g(x) = x3 + x + 1, a
crui codare a fost analizat n exemplul 5.14.
Fie cuvntul transmis :
v= 0 0 0 1 0 1 1.
a 6 a 5 a 4 a 3 a 2 a1 a 0
Presupunem eronarea lui a4 (i = 4), deci recepia lui :
r = [0 0 1 1 0 1 1].
Vom ilustra pentru acest r procedeul de corecie al erorii n cele dou variante descrise
anterior (figura 5.22 i figura 5.23).
169
D
comanda de la P2
D0
&
r
C2
C1
C0
a)
T
1
2
3
4
5
6
7
8
9
r
0
0
1
1
0
1
1
-
C2
0
0
1
1
1
1
1
0
0
C1
0
0
0
1
1
1
1
1
0
RS
C0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
-
2
0
0
1
1
0
1
1
-
3
0
0
1
1
0
1
1
4
0
0
1
1
0
1
5
0
0
1
1
0
RM
7
0
0
1
6
0
0
1
1
D0
b)
Fig. 5.22 Schema-bloc a RS (a) i funcionarea decoderului din figura 5.21,
particularizat pentru codul Hamming ciclic (7,4) avnd g(x) = x3 + x + 1
i RDR realizat cu exterioare
comanda de la P2
D0
&
C0
C2
C1
a)
170
0
1
T
1
2
3
4
5
6
7
8
9
r
0
0
1
1
0
1
1
-
C0
0
0
1
1
0
0
0
1
1
C1
0
0
0
1
1
1
1
1
0
RS
C2
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
-
2
0
0
1
1
0
1
1
-
3
0
0
1
1
0
1
1
4
0
0
1
1
0
1
5
0
0
1
1
0
6
0
0
1
1
RM
7
0
0
1
D0
0
1
b)
Fig. 5.23 Schema-bloc a RS (a) i funcionarea decoderului din figura 5.21,
particularizat pentru codul Hamming ciclic (7,4) avnd g(x) = x3 + x + 1
i RDR realizat cu interioare
n cazul RDR cu interioare, starea fix a RS este determinat de (5.156), deci pentru
codul dat va fi :
x6
= x 2 + 1 , ceea ce corespunde la (1 0 1).
g( x )
Se observ obinerea acestei stri la tactul 9, moment la care simbolul eronat (a4)
se afl n ultima celul a RM.
rest
Codul Golay este, alturi de codul Hamming corector de o eroare, un cod perfect ;
aceste dou coduri snt singurele coduri binare perfecte corectoare de erori.
Parametrii codului Golay snt :
n = 23, m = 12, k = 11, t = 3
(5.157)
Find un cod perfect, numrul sindroamelor nenule este egal cu cel al erorilor
corectabile, deci este satisfcut relaia (5.43) pentru t = 3.
t
C in = 2k 1
i =1
(5.43)
(5.159)
Deoarece lungimea cuvintelor de cod este n = 23, polinomul generator g(x), de
grad 11, va trebui s aib aceeai perioad n = 23, deci toate rdcinile sale s aib
acelai ordin 23.
Din cele N = 211- 1 elemente ale lui GF(2 11), vom alege o rdcin i care s fie
rdcin a lui :
xn + 1 = 0
(5.160)
i n acelai timp rdcin a lui g(x). nlocuim pe i n (5.160) i innd cont de (5.159)
obinem:
i n = N = 1
(5.161)
de unde rezult :
i=
N 211 1
=
= 89
n
23
(5.162)
Pentru a obine un numr minim de simboluri de control se impune condiia ca
g(x) s fie un polinom minimal al lui = 89. Funcie de alegerea lui p(x) generator al
GF(211) se obin [Sp - 87] :
g1 ( x) = 1 + x 2 + x 4 + x 5 + x 6 + x10 + x11
(5.163)
sau :
g 2 ( x) = 1 + x + x 5 + x 6 + x 7 + x 9 + x11
(5.164)
cele dou polinoame gsindu-se, evident,printre divizorii lui x23 + 1 :
x 23 + 1 = (1 + x)g1 ( x)g 2 ( x)
(5.165)
Decodarea poate fi fcut utiliznd tabelul de coresponden conform 5.7.7
(tabelul de decodare pe baz de sindrom ) sau apelnd la relaia :
HvT=0,
unde
H = 0
1 L n 1 .
(5.166)
Elementele i snt reprezentate de tabelul claselor de resturi modulo p(x) de
gradul 11, fiecare element fiind reprezentat de o matrice de 11 bii.
Din observarea polinoamelor generatoare g1(x),g2(x) se vede c numrul
termenilor nenuli este 7, deci conform (5.111), codul are distana de cod :
d=2t+1=7 t=3
172
173
= T - t (I + e n t jT j ) U
j =1
(5.173)
unde T reprezint matricea caracteristic a RDR utilizat la codare, iar U matricea de
intrare n RS (ambele exprimate funcie de tipul RDR utilizat).
Cnd primul simbol eronat rn-t ajunge n ultima celul a RM, respectiv dup t-1
tacte, starea RS este :
l 1
T t 1S = T 1(I + n t jT j )U .
j =1
(5.174)
Exemplul 5.17
S se proiecteze un cod Fire corector de pachete de erori de lungime l=3 i s se
determine schemele bloc ale unitilor de codare i decodare cu RDR cu sumatoare
exterioare.
Soluie:
Alegem g1(x) un polinom primitiv de gradul p=5 :
g1(x)=1+x2+x5.
Polinomul generator al codului, conform (5.167) va fi :
g(x)= (x 2l 1 + 1)g1 (x) =(x5+1)( 1+x2+x5)= 1+x2+x7+x10.
Polinomul g1(x) fiind primitiv, rezult c perioada sa este maxim i este :
np=2p-1=2 5-1=31.
Lungimea n a codului (5.168) este :
n=c.m.m.m.c {5 , 31} =5*31=155 ,
din care simbolurile de control snt n numr de (5.169) :
k=p+2l-1=5+5=10 ,
restul de m=145 fiind simboluri de informaie.
Schema bloc a coderului/decoderului Fire realizat cu RDR cu sumatoare
exterioare este :
174
c9
c8
c7
c6
c5
c4
c3
c2
c1
c0
a
Ieire
v [a154 . . . a0]
RM
r
1
155
P1
P2
D (Detector)
c9
c8
c7
c6
c5
c4
c3
c2
c1
c0
b
RS
Fig. 5.24 Schema bloc a coderului (a) i a decoderului (b) pentru codul Fire avnd
g(x)=1+x2+x7+x10,corector de pachete de lungime l=3
Vom analiza expresia sindromului dat de (5.174) pentru pachete de lungimi :
l=1, l=2 i l=3.
l=1
Starea RS cnd simbolul eronat este n ultima celul (155) a RM este :
L
0 L 0 0 1
0 1 0
0 0 1
L
0 L 0 0 0
M = M ,
T 1U = M
1 L 1 0 0
L
0 0 0
1 0 1 0 0 0 0 1 0 0 1 0
deci detectorul D sesizeaz starea 1 a celulei C0 a RS i strile 0 ale celorlalte celule.
l=2
175
Starea RS care trebuie detectat cnd primul simbol eronat al pachetului este n
ultima celul a RM este :
1 0 1
0 1 1
1
2
T U + T U = 0 + 0 = 0 ,
M M M
0 0 0
deci detectorul D sesizeaz strile 1 ale celulelor C0 i C1 ale RS, restul celulelor fiind n
0.
l=3
Starea RS ce trebuie detectat este :
1 0 1 0
0 1 0
0 0 1 1
T 1U + T 2 U + T 3U = + + = ,
0 0 0 0
M M M M
0 0 0 0
ceea ce nseamn c pentru un pachet de erori de forma 1 0 1 simbolul =0, deci starea
detectat a RS este :
0
0
1
,
0
M
0
iar pentru un pachet de forma 1 1 1, =1, starea detectat fiind:
0
1
1
.
0
M
0
5.8.9 CODURI REED-SOLOMON
Definirea codurilor Reed-Solomon
Codurile Reed-Solomon,descoperite n 1960, snt o varietate de coduri BCH
nebinare (biii snt inlocuii cu caractere ), deosebit de convenabile n multe aplicaii
orientate pe caracter.
176
2
2k 2
,
GF( 2k ) = 0 1 L
0 1 2 3 L n 1
(5.177)
unde este un element primitiv al cmpului GF(2k).
Parametrii unui cod Reed-Solomon corector de t erori snt :
lungimea cuvntului (n), dat de relaia:
n=2k-1 ,
(5.178)
unde k reprezint extensia cmpului Galois binar : GF(2k).
Avem :
n=m+k
(5.179)
unde m reprezint numrul caracterelor informaionale, iar k pe cel al caracterelor de
control.
numrul caracterelor de control (k) se determin cu relaia :
k=2t
(5.180)
distana de cod
dmin =2t+1.
Relatia (5.180) indic eficiena mare a acestor coduri, comparativ cu codurile
binare BCH la aceeai redundan relativ puterea de corecie este mai mare.
Exemplul 5.18
Codul BCH(15,7) conform relaiei (5.110) :
k=kt
poate corecta t=k/k =8/4=2 erori.
Codul RS(15,7) conform relaiei (5.180) poate corecta t=k/2=8/2=4 caractere
eronate, la aceeai redundan relativ k/n=8/15.
Codarea i decodarea codurilor RS snt foarte asemntoare cu cele de la codurile
binare BCH, care de fapt constituie un caz particular al codurilor RS pentru q=2.
Vom analiza codarea i decodarea codurilor RS att n domeniul timp, ct i n
domeniul frecven [Bl-92].
177
Codarea
x 2t i( x)
g( x )
v=(2 4 1 3 3 2 1)=(3 5 1 4 4 3 1).
x2ti(x)
rest
178
MSC
Observaie :Tabele ale polinoamelor generatoare pentru coduri RS de diferite lungimi n
i t se gsesc n Anexa A.12.
Codarea n frecven [Bl-92]
Exprimarea n domeniul frecven se obine utiliznd transformata Fourier n
cmpuri Galois. Domeniul frecven ofer n anumite situaii (n special la decodare) o
serie de avantaje computaionale sau de implementare (utilizarea unor algoritmi rapizi de
calcul ai transformatei Fourier, utilizarea procesoarelor digitale de semnale -DSP).
Transformata Fourier discret (TFD) a vectorului v (5.175) este un vector V de
lungime n cu simboluri Vk GF(2k) date de relaia :
n 1
Vk =: ikvi
i= 0
(5.182)
unde este un element primitiv al cmpului GF(2k).
Polinomul asociat unui cuvnt de lungime n n domeniul frecven este :
n 1
V (x ) = V kxk
k=0
(5.183)
Transformata Fourier discret invers (TFDI) se definete :
1 n 1
v i =: ik Vk ,
n k=0
(5.184)
deci,innd cont de (5.183) putem scrie :
1
v i = V ( i ) .
n
(5.185)
Cuvntul de cod trebuie s fie divizibil cu g(x), deci are aceleai rdcini cu g(x):
v(p)=v0+v1 +. . . +vn-1 n-1=Vp=0
.
(5.186)
v(p+2t-1 )=v0+v1 p+2t-1+. . . +vn-1 (p+2t-1)(n-1) =Vp+2t-1 =0,
deci primele 2t componente ale vectorului V snt nule.
179
Exemplul 5.20
Pentru codul RS(7,3) din exemplul 5.19 am determinat :
S i = r ( i ) = Yk X ik ;1 i 2 t
k =1
(5.187)
2.Determinarea coeficienilor ai polinomului erorilor (x) funcie de sindroamele Si
calculate la 1, cu relaia :
S t + i + 1S t + i 1 +...+ tS i = 0 , i = 1, t
Tabelul coeficienilor =f(Si) valabil pentru coduri BCH nu poate fi utilizat
pentru coduri RS, deoarece nu mai este valabil relaia 2k=k2. n continuare vom da un
tabel al coeficienilor pentru t=1 i t=2 ; cititorul poate determina cu uurin expresiile
coeficienilor i pentru t > 2.
180
i
1=S2/S1
1=(S1S4+S3S2)/(S22 +S1S3)
2 =(S2S4+S32)/ (S22 +S1 S3 )
t
1
2
n-j
i ij = 1 , j = 1, n Xk=
i =1
S i = r ( i ) = Yk X ik
k =1
(5.187)
unde locatorii Xk au fost determinai la 3, iar sindroamele Si au fost calculate la 1.
Relaia (5.187) reprezint un sistem liniar de t ecuaii cu t necunoscute Yk :
.................................
Y X t + Y X t + ...Y X t = S
1 1
2 2
t t
t
(5.188)
D'
D' D'
(5.189)
n care :
X1
D =
X12
X 2 ... X t
X 22 ... X 2t
X1t
X t2
... X tt
(5.190)
iar Dj j = 1, t snt determinanii caracteristici ai sistemului (5.188).
n tabelul 5.13 snt date expresiile coeficienilor Yk pentru k=1 i k=2, tabelul
putnd fi uor completat pentru k>2 utiliznd relaiile (5.188)-(5.190)
181
Yk
S2
Y1 = 1
S2
Y1 =
Y2 =
S1X 2 + S 2
X1X 2 + X12
S1X1 + S 2
X1X 2 + X 22
5.Corecia erorii
Corecia caracterului rn-j a crui poziie Xk a fost determinat la pasul 3 se face
cu :
vn-j=rn-j+Yk.
(5.191)
Exemplul 5.21
Fie cuvntul recepionat RS(7,3) cu g(x) determinat la exemplul 5.19 :
r=( 0 5 2 4 4 3 1) cel mai semnificativ caracter fiind cel din stnga.
S se determine dac r este eronat sau nu. n caz afirmativ, aplicnd algoritmul Peterson
cu cutare Chien, s se determine cuvntul corect din care provine.
Soluie:
1.
2.
3.
4.
182
Y2 =
S1X1 + S2
X1X 2 + X 22
=3
v6=r6+Y1=0+2=3
v4=r4+Y2=+3=1
Cuvntul de cod corect este :
5.
v=( 3 5 1 4 4 3 1 ).
Algoritmul Berlekamp-Massey
Dezvoltri ale algoritmului Peterson au adus Berlekamp i Massey [Bl-92].
Algoritmul se poate implementa att n timp ct i n frecven, fiind preferat abordarea
n frecven pentru coduri puternic corectoare de erori (t>5), datorit vitezei sporite de
procesare. Dup cum se va vedea n continuare, n domeniul frecven se lucreaz cu
vectori de dimensiune 2t, pe cnd n timp dimensiunea vectorilor este n ; n fiind de obicei
mult mai mare decit 2t, rezult pentru abordarea n timp un volum mult mai mare de
procesare i implicit timpi de decodare mai mari.
n cele ce urmeaz vom da o prezentare schematic a algoritmului Berlekamp n
frecven, demonstraiile fiind omise pentru a nu ncrca prea mult expunerea. Cititorul
interesat poate gsi toate demonstraiile n [Bl-92].
Fie recepia unui cuvnt afectat de t erori de tip aditiv :
ri = v i + e i ;0 i n 1
(5.192)
unde ei 0 pe poziiile, n numr de t, eronate i zero n rest.
Aplicnd TFD relaiei (5.192),se obine :
R i = Vi + E i ;0 i n 1 .
(5.193)
Aa cum s-a artat n (5.186) primele 2t componente ale vectorului V snt nule
deci :
S k = R k = E k ;0 k 2t 1 .
(5.194)
Aceast relaie arat c la recepie se pot determina uor din cuvntul recepionat
transpus n frecven,2t componente ale cuvntului de eroare n acelai domeniu.
Ideea utilizat de algoritmul Berlekamp este de a genera celelalte n-2t
componente ale cuvntului eroare prin evoluia liber a unui registru de deplasare cu
reacie iniializat cu primele 2t componente ale acestuia.
Algoritmul permite determinarea polinomului locator al erorii (x) care este
tocmai polinomul registrului de deplasare cu reacie iniializat cu primele 2t componente
Sk:
t
(x) =: ( x i + 1) .
i =1
(5.195)
Dac i este o poziie eronat, atunci i este o radcin a polinomului locator :
(i)=0.
(5.196)
Conform (5.184), componentele vectorului eroare n timp snt:
183
1 n 1 ik
E k = E( i ) 0 .
n k =0
(5.197)
Dac i nu este o poziie eronat, i nu este o radcin a polinomului locator,
ei =
deci:
(i) 0,
(5.198)
iar valoarea erorii n domeniul timp va fi :
e i = E ( i ) = 0 .
(5.199)
Rezult c :
( i )E ( i ) = 0; i = 0, n 1 ,
(5.200)
deci (x)E(x) trebuie s fie un multiplu al polinomului:
n
x n + 1 = (x + i )
i=0
(5.201)
sau :
E j = k E j k ,
k =1
j = 0, n 1
(5.203)
Sistemul (5.203) poate fi divizat n dou subsisteme :
t
E j = k E j k ,
k =1
j = 0,2 t 1
(5.203.a)
sistem cu t coeficieni cunoscui Ei i necunoscute coeficienii polinomului locator
k,respectiv:
t
E j = k E j k ,
k =1
j = 2t , n 1
(5.203.b)
care determin celelalte n-2t componente ale vectorului eroare n domeniul frecven,
obinute prin evoluia liber a RDR.
Evoluia liber a acestui registru de deplasare cu reacie, pentru lungimi n mari
ale cuvintelor de cod, conduce la timpi de calcul inacceptabili de mari.
Acest neajuns este nlturat dac se procedeaz n felul urmtor :
Se rescrie relaia (5.202) sub forma :
184
(x)E( x) = (x)(x n + 1)
(5.204)
'( x)E (x) + (x)E ' ( x) = ' (x)(x n + 1) + nx n 1 (x) + ' (x)
(5.205)
Punnd x=,rezult :
' ( i ) E( i ) = n i ( i )
(5.206)
de unde,conform (5.184) avem :
1
i ( i )
,
E ( i ) =
n
' ( i )
(5.207)
deci tocmai componentele vectorului eroare n domeniul timp.
Calculul polinoamelor ( x ), ( x ) se face pe baza teoremei lui Berlekamp i
Massey, care se enun astfel :
n orice cmp fie v0,v1,...,v2t-1 date iar A(x) i B(x) dou polinoame. n condiiile
iniiale
ei =
(r ) =
1
(1 r ) x B(r 1) (x )
B (x ) r
( r ) (x ) 1
x (r 1) ( x )
( r ) = 1
(1 r ) x A (r 1) (x )
A (x ) r
1, daca r 0, sau2L r 1 r 1
unde r =
0, altfel
(5.209)
r
= r E r 1 k ,
k =0
(5.210)
mrime ce mai poart numele de discrepan ntre ieirea calculat a RDR i valorile
cunoscute ale ieirii,
L r = max(L r 1, r L r 1) ,
(5.211)
determin cele dou polinoame. Cu alte cuvinte : (2t ) (x) = ( x) i (2t ) (x) = ( x) .
Dei s-a discutat de cazul n care polinomul generator era format cu p=0, acest algoritm
se poate aplica i n cazul general n care p 0,cu unele modificri :
la iniializare A(0)(x)=-x-p-1
185
la calculul discrepanei:
r
r = r E r 1 k + p
k =0
Iniializare
(0) ( x) = 1, B(0) ( x) = 1, (0) ( x) = 0, A (0) (x) = x 1, L 0 = 0
Ek=S k; k = 0,2 t 1
r=0
r=r+1
r = r E r 1 k
k=0
=0
NU
NU
DA
DA
2l.>r-1
=1
L=r-L
=0
(r ) ( x ) 1
x (r 1) (x )
(r ) =
1
(1 r ) x B(r 1) (x )
B (x ) r
(r ) (x ) 1
(r) =
1
A ( x ) r
NU
x ( r 1) ( x )
(1 r ) x A ( r 1) ( x )
r=2e
186
DA
Daca (i)=0
vi=ri+i(i)/()
n caz contrar ci nu este eronat
Exemplul 5.22
Vom decoda cuvntul recepionat din exemplul 5.21 utiliznd algoritmul
Berlekamp-Massey.
r=( 0 5 2 4 4 3 1)
MSC
1.Calculul sindroamelor S i = E i , i = 1,2t
S1=r()=3
S2=r(2)=5
S3=r(3)=5
S4=r(4)=0
S=(3,5,5,0)
Iniializarea algoritmului :
E1=S1=3
E2=S2=5
E3=S3=5
E4=S4=0
A(x)=xp-1=1,(x)=1,(x)=0,B(x)=1
L=0,r=0
Iteraia r=1
= 0 E1 = 3
0; L = r L = 1
1 = 1
1 3x (x) 1 + 3x
4
=
0 B(x) 4
(x) 1 3x (x) 3x
=
A (x ) = 4
0 B(x) 0
Iteratia r=2
(x )
B( x) =
187
= 0E 2 + 1E1 =
0;2L > r 1
2 = 0
(x ) 1 x ( x ) 1 + 3x + 5x 1 + 2x
= 4
B( x) = 0 x B(x ) =
4x
x
( x ) 1 x (x ) 3x
A (x ) = 0 x B(x ) =
0
Iteraia r=3:
= 0 E 3 + 1E 2 = 4
0;2L r 1
3 = 1, L = r L = 2
( x) 1 4 x ( x) 1 + 3x + x 2
B( x) = 3
=
0 B( x ) 3 + 5x
( x) 1 4 x ( x) 3x
A ( x ) = 3
=
0 B( x ) 6 x
Iteraia r=4:
= 1 E 3 + 2 E 2 = 2
0;2L > r 1
3 = 0
( x) 1 2x ( x ) 1 + 3x + 3x 2
=
B( x) =
x B( x ) 3 x + 5x 2
0
( x) 1 2x ( x ) 3x + x 2
=
A ( x ) =
x B( x ) 6 x 2
0
Aadar cele dou polinoame snt :
(x)=1+3x+3 x2,
(x)=3 x+x2.
(6)=()=1+4+5=0.
( 5 ) 0
( 4 ) = 1 + 6 + 2 = 0
( 3 ) 0
( 2 ) 0
( 1) 0
( 0 ) 0
188
'(x) = i ( j x + 1)
iE
6
i j
4
'( x) = ( x + 1) + 4 ( 6x + 1) = 6 + 4 = 3
( 6 ) = ( ) = 6
( 4 ) = 2
v 6 = r6 +
6 6
3
4 2
= 0 + 2 = 2
= + 3 = 1
3
Cuvntul corectat este :
v=( 3 5 1 4 4 3 1 )
v 4 = r4 +
a0
a1
ak
.
+
.
b0
. .
b1
bk
189
b0
b1
b2
b3
Aplicaii
190
Prel. i
corecie erori
Calculator de
comand i
control
Conv.D/A
Filtre
Afiaje i
panou
comand
Ieire
analogic
Memorie
Fig 5.28 Schema bloc a unui player CD
Calculatorul de comand are, printre altele, rolul de a programa ordinea de
redare a pieselor muzicale n funcie de opiunile furnizate de asculttor de pe panoul de
comand.
Protecia la erori n cazul nregistrrii sunetului pe CD se realizeaz utiliznd un
cod RS(7,3).
a) Care este secvena la ieirea decoderului RS, dac doza laser de citire furnizeaz
secvena :
r=[0 2 0 4 2 0 0] ?
MSC
b) tiind c banda de frecven a sunetului este cuprins ntre (5-20000)Hz i c
eantionarea se face la limit Nyquist, s se determine debitul de informaie al sursei
codate (sursa codat se presupune echiprobabil) precum i capacitatea canalului de
transmisiune pe ieirea audio digital ?
c) Ct este capacitatea de memorie a unui CD, dac durata unui disc este de 74 minute ?
Soluie
a) Codul utilizat fiind RS(7,3), se determin cu uurin c fiecare caracter GF(23), deci
se va exprima cu k=3 bii.
Se determin :
s1=r() = 3
s2=r(2) = 6
s2=r(3) =
s4=r(4) = 5
Deoarece s22+s1s3= 12+40, rezult c secvena recepionat este afectat de dou
erori (t=2).
Folosind formulele de calcul ale coeficienilor i din Tab.5.13 se determin
1= 3
191
2=
Folosind relaia de cutare Chien, se determin c poziiile r1 i r0 snt eronate,deci :
X1=
X2=0=1
n consecin erorile apar pe poziii de control, deci secvena informaional la
ieirea decoderului RS (n ipoteza c decodarea se face dup algoritmul Peterson i
cutare Chien) este:
i=[0 2 0]=[0 0 0 | 0 1 0 | 0 0 0]
MSC
o
D = f e n cuv nt = 0,84 Mb / s = C
b)
f e = 2f M = 2 20 10 3 = 40 kHz
n cuv nt = 7 3 = 21 bii
c) Perioada de eantionare determin durata unui cuvnt codat, deci durata transmiterii a
n=21 de bii.
1
Te =
= 25 s
fe
Capacitatea de memorie a unui CD se calculeaz uor aplicnd regula de trei simpl :
21 bii
24 s
74 60 s
Intrare n
coder
Tipul
Ieire din
coder
Intrare n
decoder
m+k=n
m+k=n
m+k=n n
n
Ieire din
decoder
codului
bloc
sistematic
nesistemat
ic
convo- sistematic
luional
m
m
......
nesistemat
ic
m
m
m+k=n n
n
.....
M
m
......
N
n
n
......
M
.....
m
m
......
N
193
....
M
n
m
m
.....
convoluionale R este de obicei mic (valori tipice sunt 1/2, 1/3, 3/4), reflectnd
redundana relativ ridicat a acestora.
Aa cum s-a artat n 5.1., valoarea lui R influeneaz debitul codat:
Di
DC =
R
ceea ce justific creterea lrgimii de band necesare transmisiei n cazul codrii
convoluionale, de unde posibilitatea aplicrii pentru transmisiuni pe canale la care
lrgimea de band nu este critic.
Dac secvena informaional este de lungime finit, coninnd un numr de L blocuri,
secvena codat este de lungime : n(L+M). n acest caz rata de code va fi :
mL
.
R=
n( L + M)
(5.213)
Dac L>>M, rezult : L/(L+M) 1, deci expresia (5.213) valabil pentru coduri
convoluionale este identic cu expresia (5.5) pentru coduri bloc.
Dac R = 1/2, rezult m = 1, deci practic la intrare informaia nu se mai mparte n
blocuri, ci se proceseaz continuu, de unde i denumirea de coduri continue.
Denumirea de coduri convoluionale provine din faptul c obinerea celor k
simboluri de control pentru codurile sistematice, a celor n bii din structura codat
nesistematic, se obin prin convoluia numeric dintre secvena informaional (i) i
polinomul generator (g).
5.9.2 CODAREA
n cazul codurilor convoluionale fiecare din cele k simboluri de control (pentru
coduri sistematice), respectiv toate cele n simboluri pentru varianta nesistematic se obin
din K simboluri informaionale prin nmulirea secvenei informaionale cu polinoamele
generatoare corespunztoare (figura 5.30)
i(1)(x)
(2)
i (x)2
1
K1
1 2
K
1m
...
i(2) (x) 2 K1
K2
c(1)(x)
i(m) (x)
m
i(1) (x)
RDI
v
c(2) (x)
(k)
c (x)
i(m)(x)
RDI
1 2
K
...
K2
u(1)(x) u(2) (x)
u(n)(x)
v
194
a)
b)
Fig. 5.30 Schema bloc a unui coder convoluional sistematic (a) i nesistematic (b)
Spre deosebire de codurile bloc, la codurile convoluionale att informaia ct i
procesul de codare se desfoar continuu, fapt pentru care n cazul reprezentrii
polinomiale, polinoamele vor fi continue.
1
(1) (1)
(1)
i ( ) ( x) = i 0 + i1 x + i 2 x 2 +...
( 2) ( x) = i( 2) + i ( 2) x + i ( 2) x 2 +...
0
M
m
( m ,) ( m)
( m)
i ( ) ( x) = i 0 + i1 x + i 2 x 2 +...
1
(1) (1)
(1)
c( ) ( x) = c0 + c1 x + c 2 x 2 +...
2
( 2) ( 2)
( 2)
c( ) ( x) = c0 + c1 x + c 2 x 2 +...
M
k
( k) ( k)
( k)
c( ) ( x) = c 0 + c1 x + c 2 x 2 +...
(5.214)
1
(1) (1)
(1)
u ( ) ( x) = u 0 + u1 x + u 2 x 2 +...
2
( 2) ( 2)
( 2)
u ( ) ( x) = u 0 + u1 x + u 2 x 2 +...
M
n
( n) ( n)
( n)
u ( ) ( x) = u 0 + u1 x + u 2 x 2 +...
(5.215)
195
(1) ( 2)
( m) (1) ( 2)
( m)
(1) ( 2)
( m ) (1) ( 2)
i 0 i 0 L i 0 i1 i1 Li1 L i 0 i 0 L i 0 c0 c 0 L c0
144244
3 144244
3 144244
3 144244
3
m
m
m
k
14444
4244444
3
m+k =n
144244
3 144244
3
m
k
14444
4244444
3
m+k=n
cod sistematic
(1) ( 2)
( n) (1) ( 2)
( n)
u 0 u 0 L u 0 u1 u1 L u1 L
1442443 1442443
cod nesistematic
(j)
Simbolurile de control c (x), respectiv simbolurile codate u(i) (x) se determin prin
nmulirea polinomului informaional i(x) cu un polinom generator g(j)(x), nmulire ce
reprezint convoluia numeric dintre i i g(j).
Numrul polinoamelor generatoare necesar codrii este :
m k, pentru coduri sistematice
(5.216)
m n, pentru coduri nesistematice .
(5.217)
Dintre aceste polinoame generatoare, cel puin unul trebuie s aib gradul K - 1,
dat fiind c la determinarea unui simbol de control c(j) sau u(j) trebuie s participe K
simboluri informaionale:
( j)
( j)
( j)
g ( ) ( x) = g 0 + g1 x +L+ g k x k +..., k K -1 .
(5.218)
n acest caz, pentru un cod sistematic, avem :
j
j
j
c( ) ( x) = i( x)g ( ) ( x),
(5.219)
sau
c( ) = i g ( )
(5.219.a)
unde reprezint convoluia numeric dintre i i g, toate operaiile fiind modulo - 2.
Termenul de ordinul l al convoluiei este:
j
( j)
( j)
( j)
( j)
( j)
c l = i l i g i = i l g 0 + i l 1g1 +L+ i l k g k
i=0
(5.220)
unde il-i = : 0 pentru l< i.
196
u( ) = i g( ) .
(5.221.a)
Relaiile de code (5.219) i (5.221), ct i corespondentele lor convoluionale sunt
liniare, ceea ce justific ncadrarea codurilor convoluionale n categoria codurilor
liniare.
Realizarea unui coder convoluional se poate face extrem de simplu utiliznd un
RD cu k celule i un numr de sumatoare modulo - 2 avnd intrrile de la RD conform
polinoamelor generatoare g(j)(x).
j
Exemplul 5.26
S se proiecteze i s se realizeze codarea pentru codul convoluional avnd
parametrii :
R = 1/2 i K = 3 att n variant sistematic ct i n variant nesistematic. Determinai
secvena codat dac secvena informaional este : i = 0 1 1 0 1 0 0 .
LSB
Soluie
R = m/n=1/2, deci un cuvnt de cod este format din dou simboluri dintre care
unul este de informaie (m = 1) i cellalt de control ( k = 1) (pentru cod sistematic).
Lungimea de constrngere fiind K = mM = 3 i m fiind 1, rezult c pentru code
sunt necesari 3 bii (trei blocuri) de informaie. Gradul maxim al polinoamelor
generatoare va fi deci K -1 = 3 - 1 = 2.
cod sistematic : avem un singur polinom generator : mk = 11=1 i acesta trebuie s
fie de gradul 2 ; alegem :
g( x) = 1 + x 2
sau 1 + x + x 2
2
g ( ) ( x) = 1 + x + x 2 sau 1 + x
Observaii :
n cazul codurilor nesistematice, funcie de modul de alegere al polinoamelor
generatoare, pot aprea erori catastrofice. O eroare este definit catastrofic dac
un numr finit de erori n transmisiune produc un numr infinit de erori la decodare.
O condiie necesar i suficient [Sk - 88] pentru apariia erorilor catastrofice n cazul
codurilor cu R= 1/n este ca polinoamele generatoare s aib factor comun.
1
2
Astfel, g ( ) ( x) = 1 + x 2 i g ( ) ( x) = 1 + x au factor comun pe 1 + x, deci determin
un cod catastrofic.
197
1 + x 2 = (1 + x)(1 + x).
)(
c( x) = i( x)g( x) = x + x 2 + x 4 1 + x 2 = x + x 2 + x 3 + x 6
v = 0 0 |11 | 11 | 01 | 10 | 00 | 01 .
i 0 c 0
(
u( ) ( x) = i( x)g( ) ( x) = ( x + x
)( )
+ x )(1 + x + x ) = x + x
1
1
u( ) ( x) = i( x)g( ) ( x) = x + x 2 + x 4 1 + x 2 = x + x 2 + x 3 + x 6
2
+ x6
Secvena de cod va fi :
v = 0 0 |11 | 10 | 10 | 00 | 01 | 11 .
u (1) u ( 2)
0 0
198
tn
T
tn+1
i
1
2
3
4
5
6
7
0
1
1
0
1
0
0
C1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
tn
v
C2
1(i)
0
1
1
0
1
0
0
2(c)
0
1
1
1
0
0
1
C1
C2
2 K
2
a)
tn+1
tn
T
C1
C2
1
2
3
4
5
6
7
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
tn
v
1(u(1) ) 2(u(2))
0
0
1
1
1
0
1
0
0
0
0
1
1
1
C1 C2
1
K
b)
Fig. 5.31 Schema-bloc i funcionarea coderului convoluional
R = 1/2, K = 3 sistematic a) i nesistematic b)
Observaii :
Orice secven informaional trebuie terminat cu o succesiune de (K - 1)
zerouri, necesare aducerii la zero a RD utilizat pentru codare.
Din exemplul dat, se remarc extrema simplitate a realizrii codurilor convoluionale,
avantaj n utilizarea practic a acestora.
n exemplul dat, lungimea secvenei informaionale este mic : L = 5, fapt pentru care
rata de codare R nu se mai poate calcula cu (5.5), ci trebuie aplicat relaia (5.212)
mL
1 5
5
m 1
R=
=
=
= 0,31 < R =
=
n( L + M) 2(5 + 3) 16
n 2
Dac secvena ar fi avut o lungime mai mare, de exemplu L = 500, atunci cele
dou relaii pentru determinarea lui R ar fi fost practic identice :
mL
500
1 m
R=
=
=
n( L + M) 2(500 + 3) 2 n
199
( i ) = (i
i 1 i i 2 L i i K +1 )
(5.222)
evoluia RD fiind in lan Markov, n sensul c trecerea dintr-o stare n alta este
determinat numai de starea anterioar :
i +1
i
i 1
0
i +1
i
P X ( ) / X ( ) , X ( ) ,L , X ( ) = P X ( ) / X ( ) .
(5.223)
Diagrama de stri cuprinde strile posibile ale RD precum i structura codat
generat la trecerea dintr-o stare n alta. Din orice stare exist doar dou tranziii,
corespunztoare emisiilor lui 0, respectiv 1, deci nu este posibil ca ntr-o singur tranziie
s se ajung dintr-o anumit stare n orice alt atare.
Exemplul 5.27
Vom determina diagramele de stri corespunztoare celor dou coduri date n
Exemplul 5.26
RD utilizat la code are k -1 = 2 celule, deci vor exista 4 stri distincte ale acestuia
:
a = 00 , b = 10 , c = 01 , d = 11.
b=10
1/11
b=10
1/11
0/00
1/11
1/10
a=00
0/00
1/10
0/01
d=11
1/10
0/00
1/01
a=00
0/01
1/00
0/11
0/01
c= 01
0/10
c= 01
200
d=11
a)
b)
Fig. 5.32 Diagramele de stri corespunztoare codului convoluional R = 1/2, K= 3
sistematic (a) i nesistematic (b).
Pe fiecare arc ce leag dou stri snt trecute simbolul informaional i structura
codat: i/v.
Graful de codare (tree diagram)
Dei diagrama de stri caracterizeaz complet coderul , ea nu permite
determinarea istoriei n timp a acestuia. Graful de codare adaug diagramei de stri i
dimensiunea timp.
Graful se deseneaz ncepnd cu starea iniial (t0) nul a RD
(starea a). Din aceast stare pleac dou ramuri, una n sus, corespunztoare emisiei lui 0
i cealalt ramur n jos, corespunztoare emisie lui 1. La momentul t1 din fiecare ramur
vor porni alte dou ramuri corespunztoare emisiei lui 0, respectiv 1, .a.m.d. Adugarea
dimensiunii timpului la diagrama de stri permite descrierea funcionrii n timp a
coderului.
Dac lungimea secvenei informaionale (L) este mare, numrul ramurilor crete
exponenial : 2L, duce la limitri n utilizarea practic a grafului.
201
Exemplul 5. 28
Vom face graful corespunztor codului sistematic din Exemplul 5.26 pe care vom
evidenia evoluia coderului pentru secvena informaional :
i = [ 0 1 1 0 1]
00
00
a 11
00
a
11 11
b
00
01
a
00 10
c
11
b 11 01
10
d
00
a
d 00
01
a 11
00
c 10 00
11
11
b 01
01
b
b
10
11
c 01
d 10 10
d 00
00 11
a
a 00
01
a 11
11
01
b
00
c
10
00
01
c
10
b 11 10
d 00
11
01 11
b
a 00
01
c 10 11
00
0
1
11
d
t0
t1
0
t2
1
b 01
c 10
10
01
d 10
10
d
01
t3
1
t4
0
t5
1
202
203
t1
t0
t2
00
00
00
00
t3
01
11
11
11
10
t4
00
00
01
01
11
11
10
t5
10
10
a)
00
01
11
11
t1
t0
00
t2
00
00
10
00
00
00
01
01
01
11
10
11
10
11
10
00
01
11
11
11
10
t3
t4
00
00
01
01
11
10
11
10
b)
01
01
10
11
01
01
01
00
00
00
10
11
10
11
10
11
204
t5
t1
t0
00
t2
00
00
10
00
11
11
11
11
00
t3
t4
00
00
11
11
11
00
11
00
c)
01
01
10
11
01
01
01
10
10
10
10
01
10
01
10
01
205
t5
206
d
3
d
4
1 + x + x2
d
5
(5.227)
receptorul decide c r provine din vi.
Aceast regul de decodare poate fi implementat foarte simplu. n 1967, Viterbi
a artat c pentru un CBS (deci pentru un decoder hard), decodarea se poate realiza
alegnd pentru r secvena vi ce are distana Hamming minim fa de r, deci utiliznd un
decoder de distan Hamming minim. n 1969, Omura a demonstrat c algoritmul
Viterbi este de fapt algoritmul de decizie dup probabilitatea condiionat maxim
(MLD). n acest caz relaia (5.227) este echivalent cu relaia:
207
d H (r, v i ) < d H r, v j , i j
(5.228)
Algoritmul Viterbi opereaz pe trellis cadru cu cadru, pe un numr finit de cadre,
pentru a gsi drumul utilizat la codare. La fiecare nod el calculeaz distanele dintre
secvena recepionat i toate secvenele de pe trellis, cumulnd distana de la un nod la
altul (distan cumulat). n cadrul K, n fiecare nod intr dou ramuri, deci vor fi dou
distane cumulate pentru fiecare nod, dintre care se reine drumul cu distan minim
(supravieuitorul). Dac ntr-un nod exist dou drumuri de distane egale, se alege unul
(supravieuitorul) la ntmplare. Cu supravieuitorii din nodul K se analizeaz cadrul K
+1, .a.m.d. Se continu analiza pe attea cadre pn cnd rmne un singur drum care va
fi considerat ca secven corect.
Se numete fereastr de decodare (w) numrul de cadre pe care se face
decodarea. w trebuie s fie suficient de mare pentru a asigura o decizie corect asupra
celui mai vechi cadru transmis.
Obinerea unui drum unic este o variabil aleatoare. Simulri pe calculator au
demonstrat c :
w ( 4 5)K
(5.229)
produc deteriorri neglijabile comparativ cu o memorie infinit (w) a decoderului,
fapt pentru care decodoarele Viterbi practice au ferestre de decodare dimensionate dup
relaia (5.229).
Exemplul 5.30
Aplicnd algoritmul Viterbi s se decodeze secvena recepionat :
r = (11 11 00 01 00 11 00 01 11 00 00 )
tiind c parametri codului sunt : R = 1/2, k = 3, g1(x) = 1 + x2 i g2(x) = 1 + x + x2. Am
presupus n r dou erori, situate n poziiile subliniate.
Soluie
Vom considera trellisul din figura 5.34.c. Decodarea va ncepe cu calcularea
distanelor cumulate n fiecare nod dintre secvena recepionat i toate secvenele de pe
trellis. Dup K = 3 cadre, n fiecare nod vom avea dou drumuri, din care pentru cadrul K
+ 1 se vor selecta doar supravieuitorii ( corespunztori distanelor minime n fiecare
nod).
Se observ c n figura 5.35. c avem dou noduri n care intr drumuri de distane
egale, alegerea supravieuitorului fcndu-se la ntmplare. Aceeai situaie o ntlnim n f,
g, h, i; se observ c pentru figura h s-au ilustrat dou alegeri posibile.
n figura 5.35.h se obine un drum unic corespunztor primelor 5 cadre, respectiv
9 cadre n figura 5.35.k. n exemplul dat a fost ilustrat posibilitatea coreciei a 2 erori pe
durata a 12 cadre analizate. Fereastra de decodare w a fost de 12 cadre, deci semnific
208
10
11
00
01
00
b)
11
11
11
10
10
11
00
11
11
1
4
01
01
3
1
10
3
5
1
01
10
00
10
01
11
11
11
01
2
c)
00
10
10
01
00
01
11
00
11
00
01
10
00
01
01
4
3
4
3
00
00
11
11
11
00
1
01 1
10
10
01
01
2
3
Fig.5.36 Decodare Viterbi pentru o secven cu trei erori n prima lungime de
constrngere
Se observ din figura 5.36.c. imposibilitatea coreciei a trei erori situate n prima
lungime de constrngere. n cazul codurilor convoluionale, capacitatea de corecie nu
poate fi exprimat la fel de simplu ca n cazul codurilor bloc, ea depinznd de distribuia
erorilor.
209
0 1 2 3
4 5 6 7
1
Fig. 5.37 Ilustrarea grafic a deciziei hard
(cu 2 nivele) i a deciziei soft (cu 8 nivele)
n cazul decodrii hard, demodulatorul trimite decoderului un singur simbol (0
sau 1). n cazul decodrii soft cu 8 nivele de cuantizare, demodulatorul transmite
decoderului pentru fiecare interval de timp T cte 3 bii ce descriu un interval T, ceea ce
echivaleaz cu a transmite decoderului o anumit msur a gradului de ncredere. Astfel
transmiterea codului 111 semnific transmiterea la decoder a lui 1 cu un grad foarte
mare de ncredere, n timp ce transmiterea lui 100 semnific faptul c 1 are un grad de
ncredere foarte sczut. n cazul decodrii soft nu se mai utilizeaz distane Hamming ci
distane de decizie soft ntre cuvntul recepionat i toate cuvintele de cod posibile[Wa 54].
Pentru un canal gaussian i decodare soft cu 8 nivele (3 bii), se obine o cretere
cu 2 dB a ctigului de codare comparativ cu decodarea hard ; ctigul de codare pentru
decizie analogic (cu un numr infinit de nivele de cuantizare) este de 2,2 dB, ceea ce
nseamn c n cazul deciziei soft cu 8 nivele exist o pierdere de doar 0,2 dB. Acest
argument justific, n cazul decizie soft, cuantizarea cu maxim 8 nivele. Preul pltit
pentru ctigul de 2 dB este dimensiunea sporit a memoriei necesare decodrii (i posibil
i pierderi de vitez) [Sk- 88]. Decodarea soft este utilizat frecvent n algoritmul Viterbi,
deoarece produce doar o simpl cretere a volumului de calcul [Wa - 94].
210
RDI
.... k i(x)
g(x)
RDI
.... k
i(x) 1
i0
g(x)
ei(x)
c(x)
e$ 0,i
c(x)
c(x)
.... k
s(x)
Aj
A1
ec(x)
emitor
DLP
canal
receptor
Aj >
j=1
211
i0
J
2
RS
(5.233)
(5.234)
c( x) = g( x) i( x)
s( x) = c( x) + c( x) = c( x) + ec ( x) + c( x) + g( x)e i ( x)
s( x) = ei ( x)g( x) + ec ( x)
(5.235)
Din expresia (5.235) se observ c sindromul erorii nu depinde de cuvntul
transmis ci numai de cuvntul eroare : ei(x) i ec(x) i de g(x).
Codurile convoluionale, aa cum am vzut sunt coduri continue, deci
reprezentarea lor polinomial va fi fcut cu polinoame infinite :
212
s( x ) = s n x n
n =0
(5.236)
Funcie de g(x), codurile convoluionale se mpart n coduri direct ortogonale
(CDO) i coduri i coduri indirect ortogonale (CIO).
Se numete cod direct ortogonal (CDO) codul ce permite obinerea n mod direct
a unui set de J ecuaii si ce sunt ortogonale pe un simbol dat.
Un set de J ecuaii este ortogonal pe un simbol dat, dac toate ecuaiile conin
acel simbol i orice alt simbol se gsete n cel mult o singur ecuaie .
Exemplul 5.32
S se analizeze funcionarea decodrii cu logic de prag pentru codul
convoluional :
R = 1/2, K = 7, g(x)=1 + x2 + x5+ x6.
Soluie
Exprimm polinomul sindromului erorii conform relaiei (5.235) :
s( x ) = 1 + x 2 + x 5 + x 6 e i ( x ) + e c ( x )
(5.237)
Coeficientul de ordinul n al polinomului s(x) va fi :
s n = e n,i + e n 2,i + e n 5,i + e n 6,i + e n,c
(5.238)
Primii 7 coeficieni : s 0, ..., s6 vor fi nscrii n RS.
Se determin sistemul de ecuaii :
s0 = e 0, i + e 0,c
s1 = e1, i + e1, c
s 2 = e 2, i + e 0 ,i + e 2, c
s3 = e 3,i` + e1,i + e 3, c
s 4 = e 4, i + e 2, i + e 4,c
s = e + e + e + e
5,i
3, i
0,i
5, c
5
s6 = e 6, i + e 4,i + e1,i + e 0, i + e 6, c
(5.238.a)
Din cele 7 ecuaii ale sistemului (5.238.a) identificm c ecuaiile s0, s 2, s5, s6 snt
ortogonale pe i0 deoarece conin pe e0,i n toate ecuaiile i orice alt simbol nu se afl dect
n maxim o ecuaie :
A1 = s0 = e0,i + e 0,c
213
Observaie : Alegerea lui g(x) trebuie fcut cu atenie astfel nct s nu fie micorat
capacitatea de corecie a codului dat de :
d K 2t + 1
J
(5.241) t max =
2
de unde rezult :
J = d K 1
(5.242)
Schema bloc a decoderului cu logic de prag este :
i(x)
RDI
i6
i5
i4 i
g0=1 g2=1
3 i2
i 1 i 0
g5=1 g6=1
c(x)
c(x)
s(x)
g6 g5
g2
g0
s6 s5 s 4 s3 s 2 s 1 s0
A4 A3
A
DLP2
RS
A1
214
s1 = e1,i + e1,c
s 2 = e 2,i + e 2,c
(5.244)
Sistemul (5.244) nu este un sistem ortogonal pe i0 , dei ecuaiile s0, s 3, s4 i s5 l
conin toate pe e0,i, deoarece s4 i s 5 l conin amndou i pe e1,i. Pentru a-l ortogonaliza,
se procedeaz la combinarea ecuaiilor s1 i s 5. Obinem n acest fel un sistem ortogonal
pe i0 :
215
A1 = s 0 = e 0,i + e 0,c
A 3 = s 4 = e 4, i + e1,i + e 0,i + e 4, c
A 4 = s1 + s5 = e 0, i + e 2, i + e 5, i + e1,c + e 5, c
(5.245)
i 5 i 4 i 3 i 2 i 1 i 0
g0
g3
g4
g5
g5 g4 g3
g0
s 5 s 4 s 3 s 2 s1 s 0
RS
DLP
Fig. 5.40 Decoder cu logic majoritar pentru codul
indirect ortogonal R =1/2, K = 6, i g(x) = 1+x3+x4+x5
n Tabelul 5.16 sunt prezentate cele mai importante coduri indirect ortogonale
pentru
R = 1/2 [Wa - 94].
Tabelul 5.16 Tabel al celor mai importante coduri indirect ortogonale pentru R = 1/2
g(x)
J
K
Ai
3
4
5
4
1+x +x +x
6
s0, s3, s4, s1+ s5
6
s0, s6, s7, s9
1+x6+x7+x9+x10+x11
12
s1+ s3+ s10
s4+ s8+ s11
8
s0, s11, s13, s16, s17
1+x11+x13+x16+x17+x19+x20+x21
22
s2+ s3+ s6+ s19
s4+ s14+ s20
s1+ s5+ s8+ s15+ s21
Observaie : Comparnd Tabelul 5.15 i Tabelul 5.16 se remarc avantajul codurilor
indirect
ortogonale : la aceeai putere de corecie (J) au K mult mai mici.
216
217
(a)
a0(1 a1(1 a2(1 a3(1 a4(1 a5(1 a6(1 a0(2 a1(2 a2(2 a3(2 a4(2 a5(2 a6(2
)
a0(3 a1(3 a2(3 a3(3 a4(3 a5(3 a6(3 a0(4 a1(4 a2(4 a3(4 a4(4 a5(4 a6(4
)
(b)
x
x
x
x
a0(1 a0(2 a0(3 a0(4 a0(5 a1(1 a1(2 a1(3 a1(4 a1(5 a2(1 a2(2 a2(3 a2(4
)
a2(5 a3(1 a3(2 a3(3 a3(4 a3(5 a4(1 a4(2 a4(3 a4(4 a4(5 a5(1 a5(2 a5(3
)
M=7 coloane
citire
1
6
11
16
21
26
31
2
7
12
17
22
27
32
3
8
13
18
23
28
33
4
9
14
19
24
29
34
5
10
15
20
25
30
35
Fig. 5.42 ntreesere bloc : NM ; la ieire secvena livrat este 1,6,11,16,21,26, ...
Caracteristicile ntreeserii bloc snt :
Orice pachet de erori de lungime b M va conduce la erori singulare independente la
intrarea n decoderul de la recepie.
ntrzierea produs prin ntreesere (lund n discuie prelucrrile produse att la emisie
ct i la recepie) este de aproximativ 2NMT (T este durata unui simbol).
N=5
linii
218
Mai precis, pentru a putea ncepe transmisia (imediat dup ncrcarea primului simbol al
ultimei coloane : 31 n fig. 5.42) este suficient umplerea memoriei n N(M-1)+1 celule.
Acelai numr minim de celule este necesar pentru nceperea decodrii la recepie.
Rezult n consecin c ntrzirea minim n prelucrare (la emisie i recepie) este :
2NM-2N + 2.
Memoria necesar este de NM celule ; n general memoria implementat att la
emisie ct i la recepie este dubl : 2NM, ceea ce permite simultan ncrcarea unui bloc
i golirea celuilalt.
n cazul n care codul bloc este corector de erori singulare, numrul coloanelor
blocului (M) se alege astfel nct s depeasc lungimea pachetului de erori : b M.
Numrul de linii (N) este funcie de tipul de cod utilizat : n cazul codurilor bloc : N >
n (lungimea codului bloc), iar pentru coduri convoluionale N > K (lungimea de
constrngere). n acest fel un pachet de erori de lungime b=M va determina cel mult o
eroare ntr-un cuvnt de cod, sau n orice lungime de constrngere K va fi cel mult o
eroare. Dac se utilizeaz coduri corectoare de t erori, alegerea lui M se face : M > b/t.
ntreeserea convoluional a fost propus de Ramsei (1970) i Fornay (1971). Structura
propus de Fornay este prezentat n fig. 5.43.
1
1
1
1
1 ...
M-1
2 k
2
k2 2
2 k2
k1
1
1
1 M-2
dC
C
Coder
Canal
M-1
M-1
1
M-2
M-1
Decoder
1
M
M
1 ...
M-1
M-1
dI
I
Fig.5.43 Schema bloc a unui sistem de ntreesere convoluional realizat cu RD
C-coder pentru erori independente, dC-decoderpentru erori independente
I-bloc de ntreesere, dI-bloc de dentreesere
Caracteristicile ntreeserii convoluionale snt foarte asemntoare cu ale
ntreeserii bloc. Avantajul esnial al ntreeserii convoluionale este c ntrzierea total
(emisie-recepie) este jumtate din cea de la ntreeserea bloc : N(M-1)/2 (n desenul din
fig. 5.43 N=M), deci i memoria necesar este redus la jumtate.
5.10.2. CONCATENAREA
Un cod concatenat este un cod ce utilizeaz dou nivele de codare : unul interior
(C1-inner) i altul exterior (C2-outer)(fig.5.44).
C2
(n2,m2)
C1
(n1,m1)
Canal
coder concatenat
dC1
(n1,m1)
dC2
(n2,m2)
decoder concatenat
219
I
ntreesere
C1
convoluional
modulator
Canal
dC2
dC1
Viterbi
dI
demodulator
220
Erorile ce apar pot fi asimilate cu pachete de erori, deoarece afecteaz mai muli
bii. nalta fidelitate a sistemului se datoreaz unei scheme de corecie bazat pe
concatenarea a dou coduri Reed Solomon ntreesute (CIRC - cross interleave Reed
Solomon-code). Prin ntreesere
datele snt redistribuite n timp astfel nct digiii aparinnd eantioanelor nvecinate s fie
mprtiai n timp, ceea ce conduce la faptul c pachetele de erori vor aprea ca erori
independente (singulare). Protecia la erori se realizeaz prin coduri RS prescurtate.
n aplicaiile audio digitale, o eroare nedectat este foarte serioas deoarece d
pocnituri, aceasta spre deosebire de eroarea detectat, care nu este att de suprtoare,
deoarece ea poate fi mascat.
Schema bloc a sistemului CIRC este prezentat n fig. 5.46.
I1
C2
RS(28,24)
I2
C1
RS(32,28)
I3
dI1
dC2
RS(28,24)
dI2
dC1
RS(32,28)
dI3
Fig. 5.46 Schema bloc a sistemului de codare i ntreesere n sistemul audio digital
pe CD (CIRC)
Sistemul CIRC realizeaz controlul erorilor printr-un sistem ierarhic :
1. Decoderul asigur un anumit nivel al erorilor corectabile.
2. Dac capacitatea de corecie este depit, decoderul asigur un anumit nivel de
corecie al tergerilor.
3. Dac nivelul tergerilor este depit, decoderul ncearc s mascheze eantioanele
deteriorate prin interpolarea eantioanelor vecine nedeteriorate.
4. Dac capacitatea de interpolare este depit, decoderul aplic surdin (mute)
sistemului pe durata eantioanelor deteriorate.
221
B1
2
2Tc
2Tc
2Tc
cadrul i+1
cadrul i
24
24
28 (b)
28
4BC
24B
24B
4BC
(c)
28
1
4BC
B2p,i
28
28 (d)
4BC
B2p+1,i+1
(e)
222
a) I1- eantioanele pare snt separate de eantioanele impare cu dou durate de cadru
(2Tc) pentru a putea uura mascarea erorilor necorectabile dar detectabile, prin
procesul de interpolare (pe baza eantioanelor nvecinate corecte)
b) C2 - este un coder RS(28,24) : la cei 24B se adaug 4 octei de control (4BC). Codul
RS(28,24) este un cod prescurtat : n=2k-1=28-1=255 : RS(255,251). Reamintim c
prin prescurtare se pstreaz aceeai capacitate de control a codului, deci d=5, ceea ce
corespunde coreciei de maximum 2 caractere (octei) eronate.
c) I2 - Fiecare din cei 28B este ntrziat diferit astfel nct mprtierea erorilor dintr-un
cuvnt s se fac pe cuvinte diferite (ntreeserea I2).C2 i I2 au rolul de a corecta
pachete de erori i erori independente, pe care C1 nu le poate corecta.
d) C1 - este un coder RS(32,28), derivat ca i C2 prin prescurtarea codului RS(255,251),
avnd deci aceeai distan d=5.
e) I3 - face ntreeserea ncruciat ntre octeii pari (B2p,i) ai unui cadru i octeii impari
ai cadrului urmtor (B2p+1,i+1). Prin acest procedeu, doi octei consecutivi vor aparine
la cuvinte de cod distincte.
C1 i I3 vor corecta majoritatea erorilor singulare i vor detecta pachetele lungi de erori.
Desfurarea prelucrrilor la partea de decodare este prezentat n fig. 5.48.
dI1
dI2
dI3
B1
B1
D1
D2
D3
dC1
dC2
etichet de tergere
B24
D27
B32
223
2. dC1 - decoder RS(28,24) ; dI3 i dC1 snt proiectate pentru a corecta un singur octet
(caracter) eronat dintr-un bloc de 32B i pentru a detecta pachetele lungi de erori.
Dac apar erori multiple, decoderul dC1 le las nemodificate, atand celor 28B o
etichet de tergere (erasure flag) transmis pe liniile figurate punctat.
3. dI2 - liniile de ntrziere D1, . . . ,D27 determin mprtierea erorilor pe un numr de
cuvinte la intrarea n decoderul dC2, ceea ce face ca numrul erorilor pe cuvnt de cod
al lui C2 s fie redus, deci C2 s le poat corecta.
4. dC2 - corecteaz pachetele de erori necorectate de dC1. Dac erorile nu pot fi
corectate de dC2 , ele trec nemodificate la dI3, asociindu-le o etichet de tergere
(liniile punctate B1,. . .,B24).
5. dI1 - erorile necorectate, dar detectabile (au etichet) vor fi mascate prin interpolare
din eantioanele vecine corecte.
Interpolare i surdin (mute). Eantioanele ce nu pot fi corectate de dC2
cauzeaz distorsiuni audibile (pocnete). Funcia interpolatorului (realizat de dI1) este
de a insera eantioane noi, estimate din eantioanele vecine nealterate, n locul
eantioanelor incorecte. Dac apar pachete de erori cu b > 48 cadre i dou sau mai multe
eantioane succesive nu snt corectate, sistemul intr n surdin (mute), pentru cteva ms,
insesizabil pentru urechea uman [Sk-88],[Od-76].
(B) este proporional cu debitul de momente M , iar acesta invers proporional cu durata
impulsului B~1/T , deci cu ct impulsurile n secvena codat vor fi mai nguste cu att
banda necesar de transmisie va fi mai mare i invers.
224
NRZ - L (Non Return to Zero Level) : un 1 este reprezentat printr-un nivel fix de
durat T, iar un 0 prin cellalt nivel, avnd de asemenea durata T; nu exist tranziii,
de unde denumirea de NRZ (fr ntoarcere la zero).
Datorit simplitii sale, este printre codurile cele mai utilizate n transmisiuni de
date ; este folosit n generarea i interpretatrea datelor de ctre terminale i este, de
obicei, baza de generare a oricrui alt cod de canal.
NRZ - M (Non Return to Zero Mark) : la transmiterea lui 1 exist o tranziie la
nceputul bitului ; la transmiterea lui 0 nu se produc modificri.
NRZ - S (Non Return to Zero Space) : la transmiterea lui 0 exist o tranziie la
nceputul bitului ; la transmiterea lui 1 nu se produc modificri.
Observaie : Codurile NRZ - M i NRZ - S snt versiuni difereniale ale codului NRZ - L
n codrile difereniale, semnalul este decodat prin punerea n eviden a
tranziiilor i nu prin determinarea valorilor absolute ale elementelor de semnal (obinute
225
226
HDB - 3 (High - Density - Bipolar - 3). Acest cod, aa cum semnific i denumirea sa
:cod bipolar de mare densitate, nltur cea mai mare deficien a codului AMI, care
este lipsa informaiei de sincronizare. Algoritmul de codare al HDB-3 este urmtorul :
orice secven s avnd un numr de zerouri consecutive 3 se codeaz AMI
orice secven de 4 zerouri consecutive se codeaz astfel :
0 0 0 0 a 0 0 b , unde
b este +1 sau -1i este identic cu markerul anterior (cu viol de bipolaritate) iar
a este 0 dac n este impar i a =1 n AMI dac n este par, unde n reprezint numrul
markerilor emii de la sfritul ultimei secvene de 4 zerouri consecutive.
Nerespectarea algoritmului evideniaz cu uurin apariia erorilor n
transmisiune.
Codarea cuaternar (m=4) este codarea n care numrul nivelelor este n=4. Fiecare
din cele 4 nivele de codare poate fi exprimat cu ajutorul unui grup format din 2 bii
(dibit). Astfel, pentru cele 4 nivele de codare vom avea corespondena:
- 3A 00
- A 01
+ A 10
+3A 11
Rezult c debitul de momente este de dou mai mic dect viteza de transmitere a
informaiei.
Reprezentarea prin mai multe nivele de amplitudine (n general m=2n), asigur
D > M pentru codurile multinivel i D < M codurile bifazice (exceptnd Miller) i RZ.
din punct de vedere al capacitii de sincronizare, formele NRZ, RZ i AMI au
capacitate slab de sincronizare, iar formele bifazice au o bun capacitate de
sincronizare.
din punct de vedere al numrului pragurilor de decizie, necesit 1 prag formele NRZ,
RZ i formele bifazice, deci asigur cea mai bun protecie la perturbaii ; 2 praguri
227
AMI i HDB-3 i (m-1) praguri codurile m-are, ceea ce duce la scderea proteciei la
zgomot.
din punct de vedere al sensibilitii la polaritatea absolut a semnalului, formele
difereniale snt insensibile, deci se pot inversa firele unei perechi.
Exemplul 5.35
Exemplificarea formelor de codare expuse n 5.11.2 o vom face pentru secvena
binar :
1010100001100001
228
NRZ-L
NRZM
RZ
BL
BM
BS
BL-dif
Miller
AMI
HDB
+A
Cod cuaternar
-A
-3A
Fig. 5.49 Exemplificarea codrilor n BB
229
Bibliografie
[Sp-83] Al. Sptaru, Teoria transmisiunii informaiei, E.D.P., Bucureti, 1983
[Sp-87] Al. Sptaru, Fondements de la theorie de la transmission de linformation,
Presses Polytechniques Romandes, Lausanne, 1987
[Sp-71] Al. Sptaru, Teoria transmisiunii informaiei, E.T., Bucureti, 1971
[An-72] I. Angheloiu, Teoria codurilor, E.M., Bucureti, 1972
[Li-83] S. Lin, D. Costello, Error control coding, Prentice-Hall, 1983
[Pe-72] W. Peterson, E. Weldon, Error correcting codes, The MIT Press, 1972
[Ha-80] R. Hamming, Coding and information theory, Prentice-Hall, 1980
[Bl-92] R. Blahut, Algebraic Methods for Signal Processing and Communication
Coding, Springer-Verlang, 1992
[Wa-94] G. Wade, Signal coding and processing, Cambridge University Press,1994
[Sk-88] B. Sklar, Digital communications, Prentice-Hall, 1988
[Cu-72] G. Cullmann, Codage et transmission de linformation, Editions Eyrolles, Paris,
1972
[Io-81] D. Ionescu, Codificare i coduri, E.T., Bucureti, 1981
[Ma-83] A. Mateescu, Manualul inginerului electronist, Transmisuni de date, E.T, 1983
[Pr-83] W. Price, D. Barber, Teleinformatica-Reele de calculatoare i protocoalele lor,
E.T., Bucureti, 1983
[Be-64] R. Benice, A. Frey, An analysis of retransmission systems, IEEE Transactions
on
Comm. Tech., COM-12, p.135-145, December, 1964
[St-86] V. Stoica, A. Mihiescu, Teoria transmisiunii informaiei, I.P. Timioara, 1986
[Fo-83] P. Fontolliet, Systemes de telecommunications, Editions Georgi, Lausanne,
1983
[Hs-70] M. Hsiao, A class of optimum odd-weight column SEC-DEC codes, IBM J. Res.
Dev., 14 Jully, 1970
[Ev-82] M. Evans, Nelson matrix, Electronics, 2 June, 1982
[Ho-59] A. Hocquenghem, Codes corecteurs derreurs, Cliffres, 2, 1959
[Bos-60] R. Bose,D.R.Chandhuri, On a class of error correcting binary group codes, Inf.
Control, 3, p. 68-70, March, 1960
[Re-60] I. Reed, G. Solomon, Polynomial codes over certain finite fields, J. Soc. Ind.
Appl. Math. ,8, p. 300-304, June 1960
[Bot-94] V. Bota, L. Alexandru. Eficiena legturilor ARQ-hibride utiliznd coduri
ciclice concatenate corectoare de erori, A XXVI-a sesiune de comunicri tinifice,
ATM,Vol4,1995
[Ch-64] R. Chien, Cyclic decoding procedure for the BCH codes, IEEE Trans. Inf.
Theory,
IT-10, p. 357-363, October 1964
[For-65] G. Forney, On decoding binary BCH codes, IEEE Trans. on Inf. Theory, IT-11,
p. 580-585, October 1965
230
[Ma-71] J. Massey, Shift register synthesis and BCH decoding, IEEE Trans. on Inf.
Theory, IT- 17, p. 464-466, July 1971
[Ch-81] C. Chen, High-speed decoding of BCH codes, IEEE Trans. on Inf.Theory, IT2, p. 254-256, March 1981
[Pa-74] A. Patel, S. Hong, Optimal rectangular code for high density magnetic tapes,
IBM, J. Res.Dev., 18, p 579-588, November 1974
[Pa-80] A. M. Patel, Error recovery scheme for the IBM 3850 mass storage system, IBM
J.
Res. Dev., 24, p.32-44, January 1980
[Na-84] I. Naforni, M. Naforni, Telegrafie i transmisiuni de date, I.P. Timioara,
1984
[Qu-87] Qualcomm, Inc., Q1401, Viterbi decoder device information, 1987
[Om-69] J.K. Omura, On the Viterbi decoding algorithm, IEEE Trans. on Inf. Theory,
vol. IT-15, p 177-179, January 1969
[For-66] G.D. Forney Jr, Concateneted codes, MIT Press, Cambridge Mass, 1966
[Od-76] J.P. Odenwalder, Error control coding handbook, Linkabit Corporation, San
Diego, California, July 15, 1976
[Ra-88] M.Radu, .a., Telefonie numeric, E.M., Bucureti 1988.
231