Sunteți pe pagina 1din 71

CAPITOLUL 4

CODAREA SURSELOR DISCRETE DE INFORMAIE


PE CANALE PERTURBATE
4.1. Detecia i corecia erorilor
n cazul transmiterii informaiei la distane relativ mari i/sau cu puteri relativ
mici, efectul perturbaiilor nu mai poate fi neglijat. n
acest
caz
succesiunea
simbolurilor recepionate nu va mai coincide cu succesiunea simbolurilor transmise.
n cele ce urmeaz, se va considera c pe canalul de transmisiuni se introduc
numai perturbaii aditive, adic, datorit perturbaiilor, un simbol transmis se poate
transforma n oricare din simbolurile alfabetului codului folosit. n cazul cel mai
frecvent ntlnit n aplicaii, alfabetul codului este definit prin mulimea X={0,1}.
Dac se transmite unul din cele dou simboluri pe un canal perturbat, fie acesta xX,
atunci, n cazul recepionrii eronate, va rezulta simbolul x ' = x 1, unde
reprezint simbolul sumei modulo 2.
ntr-adevr, dac s-a transmis x=0, se va recepiona x ' = 0 1 = 1, iar dac s-a
transmis x=1, se va recepiona x ' = 1 1 = 0 .
n general, numrul de erori n secvena recepionat depinde de calitatea
canalului i de viteza de transmitere. Cu ct calitatea canalului va fi mai slab i viteza
de transmitere mai mare, cu att numrul de erori n secvena recepionat va fi mai
mare.
Dup modul cum perturbaiile de pe canalele de transmisiuni afecteaz
simbolurile din cuvntul transmis, se disting:
a) canale la care fiecare simbol poate fi perturbat independent i
b) canale n care durata perturbaiilor este mai mare dect durata
corespunztoare unui simbol din alfabetul codului, caz n care erorile apar grupate,
determinnd aa numitele pachete de erori.
Se va analiza mai nti cazul n care fiecare simbol poate fi perturbat
independent.
n transmisiile pe canale perturbate se urmresc dou probleme principale:
a) detecia erorilor;
b) corecia erorilor.
n cazul deteciei erorilor se pune problema realizrii unei astfel de transmisii,
nct la recepie s existe posibilitatea de a se decide dac ceea ce s-a recepionat este
corect sau nu, fr pretenia localizrii eventualelor erori din secvena recepionat.
131

n cazul coreciei erorilor se pune problema realizrii unei astfel de transmisii,


nct la recepie s existe posibilitatea coreciei automate a eventualelor erori din
secvena recepionat.
Deoarece operaia de detecie a erorilor este mai simpl dect cea de corecie a
acestora, echipamentul folosit n cazul deteciei este mai puin sofisticat. n cazul cnd
este posibil numai detecia erorilor, se va cere retransmiterea secvenei ori de cte ori
se detecteaz erori. n felul acesta, simplitatea echipamentului folosit n cazul deteciei
erorilor este pltit de necesitatea unui canal cu dublu sens, (ntr-un sens realizndu-se
transmisia, iar n sens invers cerndu-se eventualele necesiti de retransmitere),
precum i un timp mai mare pn la realizarea unei recepii corecte. Sunt situaii cnd
numai detectarea erorilor este complet nesatisfctoare. Astfel de situaii apar cnd
informaia este stocat pe un suport fizic (banda magnetic, dischet, disc etc). Dac
pe anumite poriuni suportul fizic este deteriorat (de exemplu, apar zgrieturi), la o
eventual citire a informaiei, dei se detecteaz erori, orice cerere de retransmitere
(citire repetat) nu va conduce la reconstituirea informaiei corecte.
n transmisiile curente se realizeaz corecia unui numr de e erori sau mai
puine care apar cel mai frecvent pe canalul de transmisiuni i detecia unui numr mai
mare de e erori.
Pentru detecia i/sau corecia erorilor se folosesc numeroase tipuri de coduri. O
prim clasificare a lor se poate face funcie de structura cuvintelor de cod. Din acest
punct de vedere, codurile se mpart n coduri bloc i nonbloc (recurente sau
convoluionale).
n cazul codurilor bloc, toate cuvintele au aceeai lungime, de exemplu, n
simboluri 0 i/sau 1 pentru codurile binare.
n cazul codurilor nonbloc, cuvintele nu mai sunt reprezentate prin blocuri
formate din n simboluri, transmiterea informaiei realizndu-se sub forma unei
succesiuni continue de simboluri.

4.2. Relaii deterministe ntre numrul de erori detectabile sau


corectabile i distana Hamming
Fie X={0,1} alfabetul codului. n cazul codurilor bloc, considernd c toate
cuvintele au lungimea n, nseamn c se pot ntocmi 2n cuvinte distincte. Mulimea
acestora se va nota cu M n2n .
Fie x i y dou cuvinte din aceast mulime, de forma x a1a2... an i y b1b2...
bn, cu ai, bi X, i = 1, n .
Prin definiie, se numete distan Hamming ntre cele dou cuvinte numrul de
necoincidene dintre acestea.
Dac se noteaz cu d(x,y) distana Hamming dintre cele dou cuvinte, conform
definiiei, se poate scrie:
132

d( x, y) =

(ai bi )

i= 1

(4.1)

Aa, de exemplu, dac x110011 i y101010, numrul de necoincidene este


egal cu 3, iar cu relaia (4.1) rezult
d( x , y ) = (1 1) + (1 0 ) + ( 0 1) + ( 0 0 ) + (1 1) + (1 0 ) = 3 .
Se poate verifica uor c distana Hamming astfel definit, respect proprietile
oricrei metrici, adic:
(4.2)
d( x , y) 0
d( x, x ) = 0

(4.3)

d( x, y) d( x, z) + d( z, y), ( ) x, y, z M n2n

(4.4)

Dac pe un canal de transmisiuni perturbaiile determin e erori, atunci, dac se


transmite cuvntul x Mn2n , se va recepiona cuvntul y M n2n , care se afl la
distana Hamming egal cu e de cuvntul transmis.
Se pune problema cum trebuie ntocmite cuvintele de cod, astfel nct la
recepie s fie posibil fie detecia erorilor, fie corecia acestora. Pentru aceasta, se
presupune o surs discret de informaie ce poate furniza mesajele din mulimea
S={s0, s1, ..., sN-1}. Dac mesajelor li se ataeaz cuvinte de cod distincte de aceeai
lungime, atunci numrul k al simbolurilor binare din fiecare cuvnt de cod se
determin cu relaia:
2k > N

(4.5)

n relaia (4.5) se alege numrul ntreg pozitiv k, cel mai mic, care o satisface.
Cele k simboluri se numesc informaionale.
Mulimea cuvintelor astfel formate se va nota cu M k2k . Dac se transmite un
cuvnt x M k2k , se va recepiona pe un canal perturbat un cuvnt y M k2k ,
neputndu-se realiza detecia i cu att mai puin corecia erorilor.
Dac perturbaiile de pe canalul de transmisiuni pot cauza cel mult e erori,
pentru a se putea realiza detecia acestora, fiecare cuvnt de cod se va forma dintr-un
numr n>k simboluri binare, astfel nct din mulimea de 2n cuvinte posibile distincte,
de lungime n, s se aleag drept cuvinte de cod, un numr de 2k, astfel nct distana
Hamming dintre acestea s satisfac relaia:
d( x , y ) e + 1
(4.6)
Mulimea cuvintelor de cod care satisface relaia (4.6) se va nota cu M n2k .
Fie x M n2k un cuvnt de cod care se transmite pe un canal pe care pot s apar
cel mult e erori. Dac cuvntul recepionat este x/, atunci acesta nu va aparine
mulimii M n2k .
133

ntr-adevr, dac cuvntul x ar aparine mulimii M n2k , atunci, conform relaiei


(4.6), se poate scrie relaia:
d( x , x ' ) e + 1
(4.7)
Pe de alt parte, deoarece pe canalul de transmisiuni pot s apar cel mult e
erori, rezult:
d( x , x ' ) e
(4.8)

Comparnd (4.7) cu (4.8) rezult o contradiie, deci presupunerea c x aparine


mulimii cuvintelor de cod M n2k este fals.
La recepie se cunoate mulimea cuvintelor de cod M n2k , dar nu se tie care
cuvnt de cod a fost transmis. Dac se recepioneaz un cuvnt ce aparine mulimii
M n2k , se decide c acesta nu conine erori, iar dac nu aparine acestei mulimi, se
decide c n cuvntul recepionat s-au introdus erori, deci se realizeaz detecia
erorilor. Deoarece distaele Hamming dintre cuvintele de cod satisfac relaia (4.6), iar
pe canal pot s apar cel mult e erori, rezult c prin eronarea unui cuvnt de cod,
acesta nu se poate transforma n alt cuvnt de cod.
Relaia (4.6) se numete relaie determinist ntre numrul de erori detectabile
i distana Hamming. Distana minim, Dmin, dintre cuvintele de cod pentru detecia a
e erori sau mai puine, conform relaiei (4.6), este:
D min = e+ 1

(4.9)

Pentru a stabili o relaie determinist ntre numrul de erori corectabile i


distana Hamming, se presupune c transmisia se realizeaz pe un canal binar simetric
cu graful reprezentat n figura 4.1.

Fig.4.1. Graful unui canal binar simetric

Se reamintete c p reprezint probabilitatea de recepionare eronat a unui


simbol binar, iar 1-p probabilitatea recepionrii corecte.
Dac se transmite pe un astfel de canal un cuvnt de cod x M n2k , la recepie,
n medie, un numr de np simboluri vor fi eronate, n timp ce, n medie, un numr de
n-np simboluri vor fi recepionate corect. Rezult atunci c probabilitatea de a se
recepiona cuvntul x pe un canal binar simetric, caracterizat de parametrul p, dac sa transmis cuvntul de cod x, se poate determina cu relaia:
p( x ' | x ) = p np .( 1 p ) n np

134

(4.10)

Pe de alt parte, np=d(x,x) i deci relaia (4.10) se poate scrie, echivalent, sub
forma:
'

'

p( x ' | x ) = p d( x ,x ) .( 1 p ) n d( x ,x )
Pentru toate canalele reale, binar simetrice, este ndeplinit condiia:
0p<

1
2

(4.11)

(4.12)

Dac relaia (4.12) este satisfcut, funcia p(x|x) dat de relaia (4.11) este
monoton descresctoare. innd cont de acest fapt, rezult c la recepionarea
cuvntului x se va decide c s-a transmis acel cuvnt de cod care se afl la distana
Hamming minim de cuvntul recepionat. Dac pe canalul de transmisiuni pot s
apar cel mult e erori, pentru a exista un singur cuvnt de cod la distana Hamming
minim de cuvntul recepionat, cuvintele de cod se aleg astfel nct s fie satisfcut
relaia:
(4.13)
d( x, y) 2e + 1, ( ) x, y M n2k
ntr-adevr, dac se transmite cuvntul de cod x pe un canal pe care pot s apar
e erori, cuvntul recepionat x se va afla la distana Hamming fa de cuvntul de cod
transmis ce satisface relaia:

d( x, x ' ) = e
(4.14)
Se presupune c ar mai exista un cuvnt de cod y M n2k la aceeai distan
Hamming fa de acelai cuvnt recepionat x, adic:
d( x ' , y) = e
Conform relaiei (4.4), se poate scrie:

d( x , y) d( x , x ' ) + d( x ' , y),


sau, innd cont de (4.14), (4.15) i (4.16), rezult:
d( x , y) 2e

(4.15)

(4.16)

(4.17)

Comparnd relaiile (4.13) i (4.17), rezult o contradicie, deci presupunerea


existenei a dou cuvinte de cod x i y la aceeai distan Hamming de cuvntul
recepionat este fals.
n concluzie, dac transmisia se realizeaz pe un canal binar simetric (cu p<1/2)
i pe acesta apar cel mult e erori, atunci, alegndu-se cuvintele de cod astfel nct s
fie respectat relaia (4.13), la recepionarea unui cuvnt de cod se va decide c s-a
transmis acel cuvnt de cod care este la distana Hamming minim de cuvntul
recepionat. Comparnd cele dou cuvinte, se pot localiza poziiile erorilor i, deci, se
poate realiza corecia acestora.
Relaia (4.13) se numete relaie determinist ntre numrul de erori
corectabile i distana Hamming. Distana minim, Dmin, dintre cuvintele de cod
pentru corecia a e erori sau mai puine, conform relaiei (4.13), este
135

Dmin = 2e + 1

(4.18)

Din analiza efectuat se constat c att n cazul deteciei erorilor, ct i n


cazul coreciei acestora, la cele k simboluri informaionale vor trebui adugate m
simboluri, numite de control, astfel nct, dac lungimea cuvintelor de cod este n,
atunci:
n= m+k
(4.19)
Numrul simbolurilor de control ce trebuie adugate la simbolurile
informaionale depinde de numrul de erori care trebuie detectate, respectiv de
numrul de erori care urmeaz a fi corectate.
n cazul deteciei a e erori sau mai puine se va aduga un numr de simboluri
de control, astfel nct din cele 2n cuvinte distincte de lungime n, s se poat alege 2k
cuvinte de cod ntre care distana Hamming minim s respecte relaia (4.9).
n cazul coreciei a e erori sau mai puine se va aduga un numr de simboluri
de control, astfel nct din cele 2n cuvinte distincte de lungime n, s se poat alege 2k
cuvinte de cod, ntre care distana Hamming minim s respecte relaia (4.18).

4.3. Definirea matricei de control i generatoare n cazul


codurilor bloc, liniare, binare
Pentru o scriere mai compact, n continuare, cuvintele de cod se vor scrie sub
form matriceal, adic:

[v ] = [a 1 a 2 . . . a n ], a i {0,1},

(4.20)

Notaia, [v] nu este ntmpltoare, deoarece, aa cum se va arta ulterior,


mulimea cuvintelor de cod formeaz un subspaiu vectorial.
La emisie, instalaia numit codor determin cele m simboluri de control,
cunoscute fiind cele k simboluri de informaie. Pentru simplificarea implementrii
codorului, simbolurile de control se determin prin combinaii liniare ale simbolurilor
informaionale, formndu-se astfel codurile bloc liniare.
Determinarea simbolurilor de control, n cazul codurilor bloc, liniare, binare se
poate efectua cel mai simplu din urmtorul sistem de ecuaii liniare:

h 11 a 1 h 12 a 2 . . .h 1n a n = 0
h 21 a 1 h 22 a 2 . . .h 2n a n = 0


h m1 a 1 h m 2 a 2 . . .h mn a n = 0
unde hij{0,1}.

136

(4.21)

Dac cele m ecuaii din sistemul (4.21) sunt liniar independente, atunci se pot
determina oricare m simboluri ai{0,1}, dac celelalte k=n-m simboluri binare sunt
cunoscute.
Sistemul de ecuaii (4.21) poate fi scris compact, sub form matriceal, dac se
face notaia:

h 11 h 12 ...h 1n
h h ...h
2n
21 22
not.[H]

h m1 h m2 ...h mn

(4.22)

Cu (4.20) i (4.22) sistemul de ecuaii (4.21) se poate scrie compact, sub forma:
[H][v ]T = [0]

(4.23)

unde [v]T este transpusa matricei [v].


n relaia (4.23) produsul celor dou matrice se efectueaz clasic, nlocuindu-se
numai suma clasic cu suma modulo 2.
Matricea [H] definit cu relaia (4.22) se numete matrice de control, aceasta
avnd un numr de linii egal cu numrul simbolurilor de control i un numr de
coloane egal cu lungimea cuvintelor de cod.
Ecuaia matriceal (4.23) fiind echivalent cu un sistem de m ecuaii liniar
independente, rezult c rangul matricei [H] este egal cu m. n aceste condiii
nseamn c prin transformri elementare asupra acestei matrice, aceasta poate fi

10. . .0 q 11 q 12 . . . q 1k
01. . .0 q q . . . q
21 22
2k
[H] =
= [I m Q ]

00. . .1 q m1 q m 2 . . . q mk
adus totdeauna la forma:
unde [Im] este matricea unitate de ordinul m, iar q {0,1}
ij
Prin definiie, o matrice de forma:
g 11 g 12 ... g 1n
g g ... g
21 22
2n
[G] =
, g ij {0,1}

g k 1 g k 2 ... g kn

(4.24)

(4.25)

se numete matrice generatoare a codului bloc, liniar, dac este satisfcut relaia:

[v ] = [i 1 i 2 . . . i k ][G],

137

(4.26)

unde [v] este cuvntul de cod ce satisface relaia (4.23), iar ij{0,1}, j = 1, k , sunt
simbolurile de informaie, cunoscute.
Produsul matriceal din relaia (4.26) se efectueaz clasic, nlocuindu-se numai
suma clasic cu suma modulo 2. Deoarece din relaia (4.26) trebuie s rezulte 2k
cuvinte de cod distincte, este necesar ca liniile matricei generatoare s fie liniar
independente, adic rangul acesteia trebuie s fie egal cu k. n aceste condiii
nseamn c prin transformri elementare, aceasta poate fi adus totdeauna la forma:
p 11 p 12 . . . p 1 m 10 . . .0
p p . . . p 01. . .0
21 22
2m
= [ PI ]
[G] =
k

p p . . . p 00 . . .1
k1

k2

(4.27)

km

unde [Ik] este matricea unitate de ordinul k, iar p {0,1} .


ij
Matricea generatoare are un numr de linii egal cu numrul simbolurilor de
informaie i un numr de coloane egal cu lungimea cuvintelor de cod.
Prin definiie, un cod bloc liniar se numete sistematic, dac simbolurile
informaionale sunt plasate grupat fie la sfritul cuvntului de cod, fie la nceputul
acestuia.
Dac matricea de control este adus la forma (4.24) sau matricea generatoare la
forma (4.27), codul obinut va fi sistematic, deoarece din relaia (4.23), respectiv
(4.26), vor rezulta cuvinte de cod de forma:
[v ] = [c1 c 2 ... c m i 1 i 2 ... i k ]

(4.28)

unde cj{0,1}, j = 1, m , sunt simbolurile de control, iar il{0,1}, l = 1, k , simboluri


informaionale.
nlocuind (4.26) n relaia (4.23), rezult:
[H][G]T [i 1 i 2 ... i k ]T = [0]
(4.29)
Deoarece ecuaia matriceal (4.29) este adevrat pentru orice matrice [i1i2...ik],
rezult urmtoarea legtur ntre matricea de control i generatoare:
(4.30)
[H][G]T = [0]
Dac matricele [H] i [G] sunt aduse la formele (4.24), respectiv (4.27), atunci
se poate uor deduce una, dac cealalt este cunoscut.
ntr-adevr, nlocuind (4.24) i (4.27) n (4.30), rezult:

[Q] = [P]T
Transpunnd ambii termeni ai relaiei (4.31), se poate scrie:

(4.31)

[P] = [Q]T
(4.32)
Cu relaia (4.31) se poate deduce matricea de control, dac este cunoscut
matricea generatoare, iar cu relaia (4.32) se poate deduce matricea generatoare, dac
este cunoscut matricea de control.
138

Liniile matricei de control sau generatoare pot fi considerate vectori cu n


componente. Mulimea tuturor vectorilor cu n componente ce pot lua valoarea 0 sau 1
este egal cu 2n. Definindu-se pentru aceti vectori operaia de sumare modulo 2, de
forma:

[v 1 ] [v 2 ] = [a 1 a 2 ... a n ] [b 1 b 2 ... b n ] =
= [a 1 b 1 a 2 b 2 ... a n b n ]

(4.33)

i multiplicarea clasic cu scalarii 0, respectiv 1, din cmpul format din aceste dou
elemente n care suma se efectueaz modulo 2, iar produsul n mod clasic, cele 2n
cuvinte posibile formeaz un spaiu vectorial n dimensional.
Din relaia (4.26) rezult c liniile matricei generatoare sunt cuvinte de cod.
Dac se noteaz aceste linii cu [v1], [v2],...,[vk], din relaia (4.26) rezult:

[v ] = i 1 [v 1 ] i 2 [v 2 ]...i k [v k ]

(4.34)

Conform relaiei (4.34) rezult c orice cuvnt de cod este o combinaie liniar
a liniilor matricei generatoare. Pe de alt parte, mulimea combinaiilor liniare a
liniilor unei matrice determin spaiul linie al acesteia.
Cu aceast observaie rezult c un cuvnt este cuvnt de cod, dac i numai
dac se afl n spaiu linie a matricei generatoare. n felul acesta, mulimea cuvintelor
de cod formeaz un subspaiu vectorial k dimensional. Din relaia (4.23) rezult c
orice vector corespunztor unui cuvnt de cod este ortogonal pe vectorii
corespunztori spaiului linie al matricei de control.
Prin definiie, se numete spaiul nul al unui subspaiu vectorial, mulimea
vectorilor ortogonali pe vectorii din subspaiul vectorial.
Prin definiie, spaiul nul al spaiului linie al unei matrice se numete spaiul nul
al acesteia.
Cu aceast observaie rezult c mulimea cuvintelor de cod aparine spaiului
nul al matricei de control.

4.4. Definirea corectorilor cuvintelor recepionate n cazul


codurilor bloc, liniare, binare
Fie

[v ] = [a 1 a 2 ... a n ], a i {0,1}, i = 1, n
cuvntul de cod transmis pe un canal pe care apar perturbaii aditive i fie
[v ' ] = [a 1' a '2 . . . a 'n ], a 'i {0,1}, i = 1, n

(4.35)

(4.36)

cuvntul recepionat.
Prin definiie, se numete cuvnt eroare suma modulo 2 dintre cuvntul de cod
transmis i cuvntul recepionat.
Notnd cu [E] cuvntul eroare, conform definiiei, se poate scrie:
139

[E] = [v ] [v ' ]
(4.37)
Adunnd modulo 2 cuvntul de cod [v] n ambii membri ai relaiei (4.37),
rezult:
[v ' ] = [v ] [E]
(4.38)
Conform relaiei (4.38), perturbaiile P de pe canalul de transmisiuni C sunt
sugerate n figura 4.2.

Fig.4.2. Reprezentarea unui canal cu perturbaii aditive

Din aceast reprezentare rezult c perturbaiile aditive care apar pe canalele de


transmisiuni pot fi simulate prin generarea cuvintelor eroare, care se adun modulo 2
la cuvintele de cod.
Conform relaiei (4.37), rezult c structura matriceal a cuvntului eroare este
de forma:

[E] = [e1 e 2 ... e n ]

(4.39)

unde ei=1, dac pe poziia i s-a introdus eroare i ej=0, dac pe poziia j nu s-a introdus
eroare. Uneori, cuvntul eroare se scrie sub forma:

[E] = [... i ... j ... k ...],

(4.40)

unde i=j=k=1, specificndu-se astfel c pe poziiile i,j i k s-au introdus erori,


restul elementelor fiind nule, specificndu-se astfel c pe celelalte poziii nu s-au
introdus erori.
Instalaia de la emisie, numit codor, se implementeaz dup relaia:
[H][v ]T = [0]
(4.41)
Ecuaia matriceal (4.41) este echivalent cu un sistem de m ecuaii liniar
independente, din care se deduc cele m simboluri de control, cunoscute fiind cele k
simboluri informaionale.
Instalaia de la recepie, numit decodor, se implementeaz dup relaia:
(4.42)
[Z] = [H][v ' ]T
unde [Z] se numete corectorul cuvntului recepionat.
innd cont de structura matricei de control [H], definit prin relaia (4.22) i
structura matriceal a cuvntului recepionat [v], definit prin relaia (4.36), rezult
din (4.42) c structura matriceal a corectorului este de forma:

140

z1
z
2

.
[Z] = , z i {0,1}, i = 1, m
(4.43)
.
.
z
m
Dac n relaia (4.42) se nlocuiete (4.38) i se ine cont de (4.41), se poate
scrie o relaie echivalent pentru calculul corectorului:
(4.44)
[Z] = [H][E]T
Dac corectorul calculat cu relaia (4.42) rezult diferit de matricea nul, adic:
[Z] [0],
(4.45)

se decide c s-a recepionat un cuvnt eronat, deoarece, dac ar fi fost un cuvnt de


cod, conform relaiei (4.41), ar fi trebuit s rezulte [Z]=[0].
n felul acesta, decodorul poate realiza detecia erorilor, dac matricea de
control se alege astfel nct s rezulte corectori diferii de matricea nul ori de cte ori
se recepioneaz un cuvnt eronat.
Pentru corecia erorilor, matricea de control trebuie astfel ntocmit, nct s
rezulte corectori diferii de matricea nul i, n plus, distinci pentru toate combinaiile
posibile ale cuvintelor eroare generate pe canalul de transmisiuni. n felul acesta se
poate stabili o bijecie ntre mulimea cuvintelor eroare ce pot aprea pe un canal de
transmisiuni i mulimea corectorilor calculai cu relaia (4.44).
Calculnd corectorul unui cuvnt recepionat, se identific cuvntul eroare
corespunztor i, conform relaiei (4.37), cuvntul de cod transmis se deduce cu
relaia:
(4.46)
[v] = [v ' ] [E]
n cazul n care corectorul unui cuvnt recepionat este egal cu matricea nul, se
decide c n cuvntul recepionat nu sunt erori, deoarece n acest caz toate
componentele cuvntului eroare fiind nule, conform relaiei (4.44), rezult ntr-adevr
un corector cu toate elementele nule.
Trebuie subliniat faptul c produsul a dou matrice [H] i [E]T poate s conduc
la un corector cu toate elementele nule, dei [E]T nu are toate elementele nule. n acest
caz se va decide c s-a recepionat un cuvnt fr erori, dei cuvntul recepionat este
eronat. Erorile care au fost introduse n acest caz pe canalul de transmisiuni au
transformat cuvntul de cod transmis n alt cuvnt de cod.
Pentru eliminarea acestui neajuns, matricea de control trebuie astfel ntocmit,
nct, dac pe canal pot s apar e sau mai puine erori, s rezulte cuvinte de cod,
conform relaiei (4.41), cu distana Hamming minim ntre ele egal cu 2e+1. n felul
acesta, sumarea modulo 2 a unui cuvnt eroare ce poate conine maxim e uniti la
cuvntul de cod transmis, nu va putea s-l transforme n alt cuvnt de cod i, n plus,
141

la recepionarea unui cuvnt eronat, acesta se va afla la distana Hamming minim de


un singur cuvnt de cod, adic vor rezulta corectori distinci, diferii de matricea nul,
pentru cuvintele eroare ce pot s apar pe canalul de transmisiuni.

4.5. Relaii ntre coloanele matricei de control pentru detecia


erorilor
Aa cum a rezultat din analiza efectuat n paragraful precedent, pentru detecia
erorilor matricea de control trebuie astfel ntocmit, nct s rezulte corectori diferii
de matricea nul ori de cte ori se recepioneaz un cuvnt eronat.
Pentru a stabili relaiile ntre coloanele matricei de control n scopul deteciei
erorilor, se va considera pentru nceput cazul apariiei unei erori pe o poziie oarecare
n cuvntul de cod transmis.
Cuvntul eroare corespunztor acestei situaii este de forma:

[E i ] = [. . . i . . .]

(4.47)

unde i = 1, ( )i = 1, n , specificndu-se c pe poziia i s-a introdus o eroare, restul


elementelor din cuvntul eroare fiind nule, specificndu-se astfel, c pe celelalte
poziii nu s-au introdus erori.
n scopul simplificrii scrierii, se noteaz cu [h1], [h2],...,[hn] coloanele matricei
de control, adic, conform relaiei (4.22), se poate scrie:

[H] = [h 1 h 2 . . . h n ]

(4.48)

nlocuind (4.47) i (4.48) n relaia (4.44) i notnd cu [Zi] corectorul rezultant,


se obine:

[Z i ] = [h i ], ( )i = 1, n
Pentru detecia acestei erori este necesar ca [Zi][0], adic:

(4.49)

[h i ] [0]; ( )i = 1, n
(4.50)
Cu alte cuvinte, rezult c pentru detecia unei erori, indiferent de poziia pe
care aceasta apare n cuvntul de cod transmis, este necesar ca matricea de control s
fie astfel ntocmit, nct toate coloanele acesteia s fie diferite de matricea nul.
Se presupune, n continuare, posibilitatea apariiei a dou erori, caracterizate
prin cuvntul eroare:
[E ij ] = [. . . i . . . j . . .], ( )i , j = 1, n , i j

(4.51)

nlocuind (4.48) i (4.51) n relaia (4.44) i notnd cu [Zij] corectorul rezultant,


se poate scrie:
[Z ij ] = [h i ] [h j ], ( )i, j = 1, n, i j

Pentru detecia celor dou erori este necesar ca [Zij][0], adic:

142

(4.52)

[h i ] [h j ] [0], ( )i, j = 1, n , i j

(4.53)

Cu alte cuvinte, rezult c pentru detecia a dou erori distincte matricea de


control trebuie astfel ntocmit, nct suma modulo 2 a oricror dou coloane distincte
s fie diferit de matricea nul. Reunind concluziile de mai sus, rezult c pentru
detecia a dou erori sau mai puine matricea de control trebuie astfel ntocmit, nct
suma modulo 2 a oricror dou coloane sau mai puine s fie diferit de matricea nul.
Raionnd n mod analog, se poate conchide c, n general, pentru detecia a e
erori sau mai puine este necesar ca matricea de control s fie astfel ntocmit, nct
suma modulo 2 a e coloane sau mai puine s fie diferit de matricea nul.
Pe de alt parte, s-a demonstrat n 4.2 c pentru detecia a e erori sau mai
puine, ntre cuvintele de cod trebuie s existe o distan Hamming minim egal cu
e+1 (relaia 4.9).
Se poate demonstra c, dac aceast condiie este satisfcut, atunci este
necesar ca suma modulo 2 a oricror e coloane distincte din matricea de control s fie
diferit de matricea nul.
ntr-adevr, fie dou cuvinte de cod de forma:

[v a ] = [a 1 a 2 ... a n ]

(4.54)

[v b ] = [b 1 b 2 ... b n ]

(4.55)

pentru care sunt satisfcute relaiile:


[H][v a ]T = [0]

(4.56)

[H][v b ]T = [0]

(4.57)

Distana Hamming dintre aceste cuvinte se poate calcula cu relaia:


d( v a , v b ) =

(a i b i )

i= 1

(4.58)

Conform relaiei generale (4.34), dac [va] i [vb] sunt cuvinte de cod, atunci i
suma modulo 2 a acestora, determin un nou cuvnt de cod, adic, dac

[v a ] [v b ] not [v c ] = [a 1 b 1 , a 2 b 2 , ... , a n b n ],

(4.59)

rezult:
[H][v c ]T = [0]
(4.60)
Comparnd relaia (4.58) cu (4.59), nseamn c distana Hamming dintre dou
cuvinte de cod este egal cu numrul de uniti din alt cuvnt de cod.
Prin definiie, se numete pondere a unui cuvnt numrul de uniti din
cuvntul respectiv.
Cu aceast definiie se poate afirma c distana Hamming minim dintre
cuvintele de cod este egal cu ponderea minim a cuvintelor de cod, exceptnd
143

cuvntul de cod de pondere nul. nseamn atunci c, dac distana Hamming minim
dintre cuvintele de cod este e+1, ponderea minim a cuvintelor de cod este e+1,
exceptnd cuvntul de cod format numai din zerouri (adic de pondere nul).
Dac [v] este un cuvnt de cod de pondere e+1, din relaia:
(4.61)
[H][v ]T = [0]
rezult c suma modulo 2 a e+1 coloane din matricea de control este nul. Dac
ponderea e+1 este minim, nseamn c suma modulo 2 a e coloane din matricea de
control trebuie s fie diferit de matricea nul, c.c.t.d.

4.6. Relaii ntre coloanele matricei de control pentru corecia


erorilor
Aa cum s-a artat n 4.4, pentru corecia erorilor matricea de control trebuie
astfel ntocmit, nct s rezulte corectori diferii de matricea nul i, n plus, distinci
pentru toate combinaiile posibile ale cuvintelor eroare ce pot s apar pe canalul pe
care se realizeaz transmisiunea.
Pentru a stabili relaiile ntre coloanele matricei de control n scopul coreciei
erorilor, se va considera pentru nceput cazul apariiei unei erori pe poziiile i,
respectiv j, oarecare, cu ij. Cnd eroarea apare pe poziia i, corectorul [Zi] este dat de

[Z j ] = [h j ], ( ) j = 1, n, j i

(4.62)

relaia (4.49). Cnd eroarea apare pe poziia ji, corectorul [Zj] va fi de forma:
n scopul coreciei acestei erori este necesar s fie ndeplinite condiiile:

[Z j ] [0] [h j ] [0]
(4.63)

[Z i ] [Z j ] [Z i ] [Z j ] [0] [h i ] [h j ] [0]
Condiiile (4.63) conduc la concluzia c, pentru corecia unei erori, matricea de
control trebuie astfel ntocmit, nct suma modulo doi a dou coloane distincte sau
mai puine s fie diferit de matricea nul.
Se presupune n continuare posibilitatea apariiei a dou erori caracterizate prin
cuvintele eroare:
[Z i ] [0] [h i ] [0]

[E ij ] = [. . . i . . . j . . .]

(4.64)

cu i=j=1, ij i
[E lk ] = [. . . l . . . k . . .]

(4.65)

cu l=k=1, lkij.
Corectorul corespunztor cuvntului eroare [Eij] se va calcula cu relaia (4.52),
n timp ce corectorul corespunztor cuvntului eroare [Elk] cu relaia:
144

[Z lk ] = [h l ] [h k ]

(4.66)

Pentru corecia a dou erori este necesar s fie ndeplinite condiiile:

[Z ij ] [0] [h i ] [h j ] [0]

[Z lk ] [0] [h l ] [h k ] [0]

(4.67)

[Z ij ] [Z lk ] [Z ij ] [Z lk ] [0]

[h i ] [h j ] [h l ] [h k ] [0]

oricare ar fi i, j, l, k = 1, n i ijlk.
Pentru corecia a dou erori sau mai puine este necesar ca pe lng relaia (4.67) s fie
ndeplinite condiiile:
[Z ij ] [Z i ] [h j ] [0]

[Z ij ] [Z j ] [h i ] [0]

(4.68)
,
[Z lk ] [Z i ] [h l ] [h k ] [h i ] [0]
[Z lk ] [Z j ] [h l ] [h k ] [h j ] [0]
rezult c pentru corecia a dou erori sau mai puine este necesar ca suma modulo 2 a
patru coloane sau mai puine trebuie s fie diferit de matricea nul.
Raionnd n mod analog, se poate conchide c, n general, pentru corecia a e
erori sau mai puine este necesar ca matricea de control s fie astfel ntocmit, nct
suma modulo 2 a 2e coloane sau mai puine s fie diferit de matricea nul. Pe de alt
parte, s-a demonstrat n 4.2 c pentru corecia a e erori sau mai puine ntre cuvintele
de cod trebuie s existe o distan Hamming minim egal cu 2e+1 (relaia 4.18). Se
poate demonstra c, dac aceast condiie este satisfcut, atunci i suma modulo 2 a
oricror 2e coloane este diferit de matricea nul.
ntr-adevr, dac distana Hamming minim dintre cuvintele de cod este 2e+1,
rezult c ponderea minim a cuvintelor de cod este 2e+1 i deci suma modulo 2 a 2e
coloane oarecare este diferit de matricea nul.

4.7. Margini inferioare asupra numrului simbolurilor de


control, n cazul coreciei erorilor
Dac pe canalul de transmisiuni pot s apar cel mult e erori, se pune problema
determinrii numrului de simboluri de control ce trebuie adugate simbolurilor
informaionale pentru corecia erorilor.
Numrul minim de simboluri de control necesar coreciei a e erori sau mai
puine se numete margine inferioar a numrului simbolurilor de control.
Dintre marginile cele mai utilizate se amintete marginea Hamming i
marginea Vararmov-Gilbert.
145

Pentru stabilirea marginii Hamming se ine cont de faptul c matricea de control


trebuie astfel ntocmit, nct s rezulte corectori diferii de matricea nul i, n plus,
distinci pentru toate posibilitile de apariie a cuvintelor eroare care conin e sau mai
puine erori.
Dac n cuvntul de cod transmis, de lungime n, apare o eroare, indiferent pe ce
poziie, se pot ntocmi cuvinte eroare distincte, n numr de:

N 1 = C1n
(4.69)
Dac n cuvntul de cod de lungime n apar dou erori distincte, se pot ntocmi
cuvinte eroare distincte, n numr de:
N 2 = Cn2
(4.70)
n general, dac n cuvntul de cod de lungime n apar e erori distincte, se pot
ntocmi cuvinte eroare distincte, n numr de:
N e = C ne
(4.71)
Lund n considerare i cuvntul eroare format numai din zerouri, specificnd
cazul transmisiei fr erori, rezult c n cazul apariiei a e erori sau mai puine
numrul cuvintelor eroare corespunztoare se poate determina cu relaia:

N = 1 + N 1 + N 2 + . . .+ N e =

C ni

i= 0

(4.72)

Pe de alt parte, din relaia (4.43) rezult c se pot forma 2m corectori distinci.
Pentru a se realiza o bijecie ntre mulimea cuvintelor eroare posibile i mulimea

2
m

C ni

i= 0

(4.73)

corectorilor este necesar s fie ndeplinit condiia:


Numrul ntreg pozitiv m, cel mai mic, care satisface relaia (4.73), definete
marginea Hamming. Marginea Hamming astfel obinut reprezint numai o condiie
necesar i nu totdeauna i suficient pentru corecia a e erori sau mai puine. Acest
lucru se datoreaz faptului c exist cuvinte eroare distincte, de aceeai pondere,
crora le corespund corectori identici.
n cazul particular al apariiei unei singure erori, fiecrui cuvnt eroare de
pondere unu i va corespunde un corector distinct, deoarece cele n coloane ale matricei
de control sunt distincte.
Cu alte cuvinte, relaia (4.73) devine necesar i suficient pentru e=1, de forma:

2m 1 + n
(4.74)
Deoarece un cuvnt de cod este format din k simboluri informaionale i m
simboluri de control, rezult:
n= k+m
(4.75)
146

Cu (4.75) relaia (4.74) devine:

2m 1 + k + m
(4.76)
n relaia (4.76) se va alege numrul ntreg pozitiv m, cel mai mic, care o
satisface.
Pentru stabilirea marginii Vararmov-Gilbert se ine cont de faptul c pentru
corecie a e erori sau mai puine matricea de control trebuie astfel ntocmit, nct
suma modulo 2 a oricror 2e coloane sau mai puine s fie diferit de matricea nul. n
stabilirea acestei margini se presupune c primele n-1 coloane ale matricei de control
satisfac aceast condiie, punndu-se problema, n continuare, de a se determina
condiiile pe care trebuie s le satisfac ultima coloan [hn]. Pentru corecia a e erori
sau mai puine coloana [hn] trebuie s satisfac condiiile:
[h n ] [0]

(4.77)

[h n ] [h i 1 ], ( ) i 1 = 1, 2 , . . . , n 1

(4.78)

[h n ] [h i1 ] [h i 2 ] not [l i1 i ], ( )i 1 , i 2 = 1, ( n 1), i 1 i 2

(4.79)

-----------------------------------------

[h n ] [h i1 ] [h i 2 ]... [h i 2e 1 ] not [l i1i 2 ...i 2 e 1 ],

(4.80)

oricare ar fi i 1 , i 2 , . . . , i 2e 1 = 1, ( n 1) i i1i2 ... i2e-1.


Din relaiile (4.77) (4.80) rezult c [hn] trebuie s fie diferit de [0], [h i1 ],
[l i1i 2 ], , [l i1i 2 ...i 2 e 1 ]. Pentru a determina o astfel de coloan trebuie ca numrul
simbolurilor de control m, s fie suficient de mare, astfel nct din cele 2m coloane
distincte ce pot fi formate s se poat elimina coloana [0] (n numr de Cn0 1 = 1),
coloanele [h i1 ] (n numr de C1n 1 ), coloanele [l i1i 2 ] (n numr de Cn2 1 ) .a.m.d. pn la
coloanele [l i1i 2 ...i 2 e 1 ] (n numr de Cn2e11 ) i s mai rmn cel puin o coloan care s
fie [hn].
2 >
m

2e 1

C in 1

i= 0

(4.81)

Rezult atunci condiia:


Numrul ntreg pozitiv m, cel mai mic, care satisface aceast relaie stabilete
marginea Vararmov-Gilbert.
Condiia (4.81) este suficient i nu totdeauna necesar, deoarece n stabilirea
acesteia s-a considerat c toate combinaiile coloanelor de forma l i1i 2 , ..., l i1i 2 ...i 2 e1 sunt
distincte.

147

Cu alte cuvinte, pot fi imaginate coduri corectoare de e erori sau mai puine
care necesit un numr de simboluri de control, m, mai mic dect cel care rezult din
relaia (4.81).

4.8. Tabele de decodare


Aa cum s-a artat n 4.4, instalaia de la recepie, adic decodorul, se
implementeaz dup relaia:
[Z] = [H][v ' ]T

(4.82)

Relaia (4.82) este echivalent cu:


[Z] = [H][E]T

(4.83)

Se pune problema dac odat determinat corectorul cuvntului recepionat cu


relaia (4.82), nu se poate deduce din (4.83) cuvntul eroare care, adunat apoi modulo
2 la cuvntul recepionat s determine cuvntul de cod transmis. Acest lucru nu se
poate realiza, deoarece matricea de control fiind dreptunghiular, avnd un numr de
linii m i un numr de coloane n>m, nu are invers.
Depirea acestui obstacol se poate realiza dac se ine cont c la recepionarea
unui cuvnt se va decide c s-a transmis acel cuvnt de cod care se afl la distana
Hamming minim fa de cuvntul recepionat (v.4.2). Aceasta este echivalent cu
identificarea cuvntului eroare de pondere minim care realizeaz acelai corector ca
al cuvntului recepionat. n scopul deducerii unui astfel de cuvnt eroare, se folosesc
tabelele de decodare.
Un tabel de decodare conine dou coloane. n prima coloan se scriu cuvintele
eroare posibile n ordinea cresctoare a ponderilor, iar n coloana a doua se nscriu
corectorii corespunztori, calculai cu relaia (4.83). Dac n procesul calculului
corectorilor rezult un corector care a mai fost obinut anterior dintr-un cuvnt eroare
de pondere mai mic, atunci cuvntul eroare de pondere mai mare este eliminat din
tabel. Tabelul de decodare se consider complet cnd prin acest procedeu se obin toi
cei 2m corectori distinci.
Odat ntocmit tabelul de decodare, pentru corecia erorilor dintr-un cuvnt
recepionat se procedeaz astfel:
- se calculeaz cu relaia (4.82) corectorul cuvntului recepionat;
- se identific n tabelul de decodare cuvntul eroare (evident de pondere
minim) care determin acelai corector;
- se adun modulo 2 cuvntul eroare identificat la cuvntul recepionat,
rezultnd astfel cuvntul de cod transmis.
Pentru fixarea ideilor se consider un cod bloc, liniar, binar, caracterizat de
matricea de control:

148

10 0 0 11
[H] = 0 10 10 1. Dac cuvntul recepionat este [v]=[101111], s se determine

0 0 1110
cuvntul de cod transmis.
Tabelul de decodare este de forma:

Cuvinte eroare
1 000000
2 100000
3 010000
4 001000
5 000100
6 000010
7 000001
8 110000
9 101000
10 100100

[Z]T
000
100
010
001
011
101
110
110
101
111

Linia nti a tabelului corespunde cuvntului


eroare de pondere zero. Liniile 27 corespund cuvintelor
eroare de pondere unu. Deoarece n liniile 8 i 9 celor
dou cuvinte eroare de pondere doi le corespund
corectorii din linia a aptea, respectiv a asea, obinui
din cuvinte eroare de pondere unu, aceste cuvinte eroare
se elimin din tabel.
Numrul corectorilor distinci este egal cu
m
3
2 =2 =8. Corectorul cuvntului recepionat se calculeaz
cu relaia:

1
0
10 0 011 1
1
[Z] = [H][v ' ]T = 010101 = 0 [Z]T = [101]

1
0 01110 1
1
1

Cuvntul eroare identificat din tabelul de decodare corespunde liniei a asea.


nseamn c s-a transmis cuvntul de cod
[v] = [v ' ] [E] = [101111] [000010] = [101101] .
n general, structura cuvintelor eroare care compun tabelul de decodare
determin structura erorilor ce pot fi corectate. n exemplul de mai sus se pot corecta
toate erorile singulare. Deoarece corectorul [Z]T=[111] poate rezulta i din alte cuvinte
eroare de pondere doi nseamn c, dac corectorul unui cuvnt recepionat coincide
cu cel din linia a zecea, se va decide c n cuvntul recepionat au aprut erori pe
poziiile 1 i 4, dei cele dou erori pot aprea i pe alte poziii.
Prin definiie, se numete cod perfect codul care poate corecta toate
combinaiile de e erori sau mai puine, dar nici o combinaie de e+1 erori.
Conform definiiei, nseamn c, n cazul unui cod perfect, n tabelul de
decodare vor exista C0n = 1 cuvinte eroare de pondere zero, un numr de C1n = n
cuvinte eroare de pondere unu, un numr de C2n cuvinte eroare de pondere doi
.a.m.d., un numr de Cen cuvinte eroare de pondere e, toate posednd corectori
distinci.

149

Datorit acestei particulariti, marginea Hamming (relaia 4.73) devine o


condiie necesar i suficient pentru codurile perfecte.
Pn n prezent se cunosc coduri perfecte corectoare de o eroare i codul Golay,
corector de 3 erori sau mai puine, n care lungimea cuvintelor de cod este n=23, iar
numrul simbolurilor de control este m=11, deoarece:
211 = C023 + C123 + C223 + C323

(4.84)

4.9. Codor i decodor Hamming corector de o eroare


Fie k numrul simbolurilor informaionale necesare transmiterii unei informaii.
Conform relaiei (4.76), numrul simbolurilor de control, m, ce trebuie adugate
n scopul coreciei unei erori, se determin din relaia:

2m m + k + 1
(4.85)
S-a demonstrat n 4.6 c pentru corecia unei erori matricea de control trebuie
astfel ntocmit, nct toate coloanele acesteia s fie diferite de matricea nul,
[h i ] [0], i = 1, n i, n plus, suma modulo 2 a oricror dou coloane distincte s fie,
de asemenea, diferit de matricea nul, adic [h i ] [h j ] [0], oricare ar fi
i, j = 1, n, i j. .
Pentru a satisface aceste cerine, Hamming a propus ntocmirea matricei de
control dup urmtoarea regul: coloana [hi] s fie reprezentarea binar a numrului i
pe m bii, cu bitul cel mai semnificativ n prima linie. Conform acestei reguli matricea
de control va avea forma:
0 0 0 ... 1

. . .
[H] =

0
1
1
1
...

1 0 1 ... 1 ( mn )

(4.86)

n scopul simplificrii implementrii codorului, tot Hamming a propus ca n


structura matriceal a cuvintelor de cod simbolurile de control s fie plasate pe
poziiile 20, 21, 22, ..., 2m-1, numrtoarea efectundu-se de la stnga la dreapta. Cele k
simboluri de informaie vor ocupa locurile rmase libere, adic:

[v ] = [c 1 c 2 i 3 c 4 i 5 i 6 i 7 c 8 i 9 . . . i n ],
(4.87)
unde prin cj{0,1} s-au notat simbolurile de control, iar pin ik{0,1} simbolurile
informaionale.
Determinarea simbolurilor de control, cunoscute fiind simbolurile
informaionale, se efectueaz cu relaia (4.41), n care matricea de control [H] are
forma (4.86), iar cuvntul de cod structura (4.87), adic:

150

c1
c
2

i 3
0 0 0 ... 1 c 4
. . .
i
5

i 6 = [0]
. . .
i7
. . .
0 1 1 ... 1 c 8
1 0 1 ... 1 .
.

.
in

(4.88)

c1 = i 3 i 5 . . . i n
c2 = i 3 i 6 . . . i n

c4 = i 5 i 6 . . . i n

(4.89)

Ecuaia matriceal (4.88) este echivalent cu urmtorul sistem de ecuaii:


Instalaia de la emisie, adic codorul, care are misiunea de a calcula simbolurile
de control, cunoscute fiind simbolurile informaionale, va fi format dintr-un registru
care conine n circuite basculante bistabile n care se stocheaz simbolurile
informaionale n poziiile corespunztoare din cuvntul de cod i o serie de sumatoare
modulo 2 care, conform sistemului de ecuaii (4.89), calculeaz simbolurile de control.
Simbolurile de control astfel calculate se stocheaz apoi n poziiile n care acestea
intervin n cuvntul de cod.
Pentru fixarea ideilor, se presupune c pentru transmiterea unei anumite
informaii sunt necesare k=4 simboluri. Pentru a ntocmi instalaia de codare, se
calculeaz mai nti numrul necesar de simboluri de control cu relaia (4.85), adic:
2m m+5 m=3 n=m+k = 7
Cele trei simboluri de control, conform sistemului de ecuaii (4.89), se
calculeaz cu relaiile:
c1 = i 3 i 5 i 7
c2 = i 3 i 6 i 7
c4 = i 5 i 6 i 7
Codorul va avea atunci structura din figura 4.3.

151

Fig.4.3 Codor Hamming (7,4).

Instalaia de la recepie, adic decodorul, se implementeaz conform relaiei


(4.42). Dac cuvntul recepionat este de forma:
[v ' ] = [c 1' c '2 i '3 c '4 i '5 i '6 i '7 c '8 i '9 . . . i 'n ],

(4.90)

atunci, nlocuind (4.86) i (4.90) n (4.42) i innd cont de (4.43), rezult:

zm = c 1' i '3 i '5 . . . i 'n

'
'
'
'
zm 1 = c 2 i 3 i 6 . . . i n

zm 2 = c '4 i '5 i '6 . . . i 'n


(4.91)

Pe de alt parte, se tie c n cuvntul recepionat exist o singur eroare,


caracterizat de cuvntul eroare:
[E] = [ . . . i . . .],

(4.92)

unde i = 1, ( )i = 1, n , restul elementelor fiind nule.


Notnd cu [h1], [h2], ..., [hn] coloanele matricei definite cu relaia (4.86), rezult
din (4.44) i (4.92) structura matriceal a corectorului:
z1

z
2
.
[Z] = = i [h i ] = [h i ]
.

.
z m

(4.93)

Deoarece coloana [hi] este reprezentarea binar a numrului i pe m bii, rezult


c poziia erorii n cuvntul recepionat se deduce astfel:
- se calculeaz componentele corectorului cu relaia (4.42), sau, echivalent, cu
sistemul de ecuaii (4.91);
- se transcrie n zecimal numrul binar corespunztor componentelor
corectorului, adic:
( z 1 z 2 . . . z m ) 2 = ( i ) 10
152

(4.94)

n felul acesta se precizeaz poziia i a erorii. Decodorul Hamming, corector de


o eroare va fi format, deci, dintr-un registru cu n circuite basculante bistabile n care
va fi memorat cuvntul recepionat, o serie de sumatoare modulo 2 care, conform
sistemului de ecuaii (4.91), calculeaz componentele corectorului i un descifrator
care, conform relaiei (4.94), este un decodificator din binar n zecimal cu m intrri i
n ieiri.
Pentru fixarea ideilor, se presupune c s-a recepionat cuvntul
'
[v ] = [c 1' c '2 i '3 c '4 i '5 i '6 i '7 ]. Conform relaiei (4.91), se poate scrie, n acest caz particular,
sistemul de ecuaii:
z 1 = c '4 i '5 i '6 i '7
z 2 = c '2 i '3 i '6 i '7
z 3 = c 1' i '3 i '5 i '7
Schema bloc a decodorului este reprezentat n figura 4.4.

Fig.4.4. Decodor Hamming (7,4).

4.10. Codor i decodor Hamming corector de o eroare,


detector de erori duble
n scopul coreciei unei erori i a detectrii erorilor duble trebuie adugat la cele
k simboluri informaionale, pe lng simbolurile de control necesare coreciei unei
erori, un simbol suplimentar, numit de control al paritii, prin care se decide dac n
cuvntul recepionat sunt dou erori sau o eroare.
Structura matriceal a cuvntului de cod n acest caz este de forma:
[v ] = [c 0 c 1 c 2 i 3 c 4 i 5 i 6 i 7 c 8 i 9 ... i n ],
153

(4.95)

unde c0 este simbolul suplimentar de control al paritii, ales astfel nct s respecte
relaia:

c 0 c 1 c 2 i 3 c 4 i 5 ... i n = 0
(4.96)
Pentru ca simbolurile de control c1, c2, c4, ... s fie calculate cu aceleai relaii
ca n cazul codului Hamming corector de o eroare (rel.4.89) i s aib loc suplimentar
relaia (4.96), matricea de control trebuie s aib structura:
0 h 1 h 2 ... h n
[H] =
,
(4.97)
1 1 1 ... 1
unde [h i ], i = 1, n , reprezint coloanele matricei de control din cazul codului
Hamming corector de o eroare.
Fie
[v ' ] = [c '0 c 1' c '2 i '3 c '4 i '5 i '6 i '7 c '8 i '9 ... i 'n ]

(4.98)

cuvntul recepionat.
Calculnd corectorul acestui cuvnt cu relaia (4.42), n care [H] este dat de
relaia (4.97), structura matriceal a corectorului va fi de forma:
[Z]T = [z1 z 2 ... zm z0 ],
(4.99)
unde componentele corectorului z1, z2, ..., zm vor fi calculate cu aceleai relaii ca n
cazul codului Hamming corector de o eroare (relaia 4.91), n timp ce
z 0 = c '0 c '1 c '2 i '3 c '4 i '5 . . . i 'n
(4.100)
Comparnd relaia (4.96) cu (4.100), rezult c, dac n cuvntul recepionat a
aprut un numr impar de erori, atunci z0=1, iar dac a aprut un numr par de erori,
atunci z0=0.
Dac pe canalul de transmisiuni pot s apar cel mult dou erori, rezult
urmtoare trei situaii:
a) Toate componentele corectorului sunt nule, adic:

z 0 = z1 = z 2 = ... = z m = 0 ,

(4.101)

n acest caz se decide c ceea ce s-a recepionat este corect.


b) Componenta z0=1. n acest caz, n cuvntul recepionat a aprut o eroare a
crei poziie se determin transcriind n zecimal numrul binar format din
componentele corectorului z1, z2, ..., zm, adic:

( z1 z2 ... z m ) 2 = (i ) 10
(4.102)
c) Componenta z0=0, iar celelalte componente ale corectorului nu sunt toate
nule. n acest caz se decide c n cuvntul recepionat sunt dou erori necorectabile,
caz n care se va cere retransmisia cuvntului respectiv.

154

4.11. Definirea cuvintelor de cod n cazul codurilor ciclice


nesistematice i sistematice
n cazul codurilor ciclice binare, cuvintele de cod sunt exprimate prin
polinoame de grad n-1 sau mai mic, de forma:

v ( x ) = a 0 a 1 x ... a n 1 x n 1 , a i {0,1}, i = 0, ( n 1)
(4.103)
Din mulimea polinoamelor de grad n-1 sau mai mic, se aleg drept cuvinte de
cod numai acelea care posed urmtoarele trei proprieti:
1) Polinomul v(x) este divizibil la un polinom numit polinom generator al
codului ciclic, g(x), definit cu relaia:
g( x ) = g 0 g 1 x ... g m x m , g 0 = g m = 1;
g i {0,1}, i = 1, ( m 1), m n 1
2) Lungimea cuvintelor de cod, n, trebuie s satisfac relaia:
n = 2 m 1,

(4.104)

(4.105)

unde m este gradul polinomului generator al codului.


3) Polinomul generator al codului este un divizor al polinomului x n 1.
Se poate demonstra c orice permutare ciclic a unui cuvnt de cod determin
un nou cuvnt de cod, de unde i denumirea acestor coduri.
ntr-adevr, fie v(x), dat de relaia (4.103), un cuvnt de cod, adic un polinom
divizibil cu g(x), ceea ce se va scrie sub forma:
g( x ) ( a 0 a 1 x ... a n 1 x n 1 )
(4.106)
Dac relaia (4.106) este adevrat, atunci, evident, g(x) va divide i polinomul
xv(x), adic:
g( x ) ( a 0 x a 1 x 2 ... a n 1 x n )
Relaia (4.107) poate fi scris, echivalent, sub forma:

(4.107)

g( x ) ( a 0 x a 1 x 2 ... a n 1 x n a n 1 a n 1 ),

sau
g( x )[( a n 1 a 0 x a 1 x 2 ... a n 2 x n 1 ) a n 1 ( x n 1)]
Deoarece

g( x ) ( x n 1),

(4.108)

(4.109)

rezult:
g( x ) ( a n 1 a 0 x a 1 x 2 ... a n 2 x n 1 )
(4.110)
2
Din relaia (4.110) rezult c polinomul a n 1 a 0 x a 1 x ... a n 2 x n 1 ,
care este prima permutare ciclic a polinomului v(x), este, de asemenea, cuvnt de

155

cod. n mod similar se poate demonstra c orice permutare ciclic a unui cuvnt de
cod determin un alt cuvnt de cod.
Pentru ntocmirea cuvintelor de cod n cazul codurilor ciclice se construiete
mai nti polinomul informaional, ai crui coeficieni sunt simbolurile informaionale
i0, i1, ..., ik-1 {0,1}. Astfel, pentru transmiterea numrului zecimal N, simbolurile
informaionale rezult prin transcrierea binar a numrului N, adic:

( N) 10 = ( i 0 i 1 ... i k 1 ) 2

(4.111)

Polinomul informaional va fi de forma:


i( x ) = i 0 i 1 x ... i k 1 x k 1
(4.112)
n cazul codurilor ciclice nesistematice, cuvintele de cod se ntocmesc dup
relaia:
v( x ) = g( x ) i( x )
(4.113)

care, evident, va fi un polinom de grad n-1 sau mai mic, divizibil cu polinomul
generator al codului. Se reamintete c lungimea cuvintelor de cod se determin cu
relaia:
n=m+k
(4.114)
n cazul codurilor ciclice sistematice cu simbolurile informaionale plasate
grupat la sfritul cuvintelor de cod se procedeaz astfel:
a) se reine restul divizrii polinomului xmi(x) la g(x), adic, dac se noteaz
acest rest cu r(x), se poate scrie:
x m i( x ) = q( x ) g( x ) r( x )

(4.115)

unde q(x) este ctul divizrii.


b) cuvntul de cod se ntocmete dup relaia:
v ( x ) = r( x ) x m i ( x )
(4.116)
Se poate arta uor c polinomul v(x) dat de relaia (4.116) este divizibil la
polinomul generator al codului, g(x), adic satisface definiia cuvintelor de cod din
cazul codurilor ciclice.
ntr-adevr, nlocuind (4.115) n relaia (4.116), rezult:

v( x ) = r( x ) q( x ) g( x ) r( x )
v( x ) = q( x ) g( x )
(4.117)
r( x ) r( x ) = 0

ceea ce trebuia demonstrat.


Mai mult, deoarece restul r(x) este un polinom de grad maxim m-1, iar
polinomul xmi(x) are gradul minim egal cu m, rezult c restul r(x) nu va afecta
simbolurile informaionale, caracterizate de polinomul i(x).
Pentru fixarea ideilor, fie numrul N=9. Dac polinomul generator al codului
este g( x ) = 1 x x 3 , atunci cuvntul de cod ciclic nesistematic se determin dup
156

cum urmeaz: se transcrie n binar numrul zecimal 9, rezultnd astfel polinomul


informaional, adic: (9)10 = (1 0 0 1) i(x) = 1 x3. Conform relaiei (4.113),

i 0 i1 i2 i3
cuvntul de cod va fi de forma: v(x) = i(x)g(x) = (1x3)(1xx3) = 1x3xx4
x3x6 = 1xx4x6. Grupnd coeficienii acestui polinom ntr-o matrice linie,
rezult:
[v] = [ 1 1 0 0 1 0 1]

x0 x1 x2 x3 x4 x5 x6
Cuvntul de cod ciclic sistematic se formeaz conform relaiei (4.116), adic:
x i(x) = x3(1x3)=x3x6. x6x3 = (x3+x)(x3x1) (x2x), unde x3x este ctul
divizrii, iar restul r(x) = x2x. Rezult atunci v(x) = r(x) xmi(x) = xx2x3x6.
Sub form matriceal, cuvntul de cod este [v] = [0111001]. Primele trei simboluri
sunt simbolurile de control, n timp ce ultimele 4 sunt informaionale, obinndu-se
ntr-adevr un cod sistematic, cu simbolurile informaionale plasate grupat la sfritul
cuvntului de cod.
Fie
m

v ' ( x ) = a '0 a 1' x . . . a 'n 1 x n 1 ,

(4.118)

cuvntul recepionat.
La recepie, decodorul realizeaz divizarea polinomului v(x) la acelai polinom
generator al codului, g(x). Dac n urma divizrii rezult un rest nul, se decide c s-a
recepionat un cuvnt corect. Dac n urma divizrii rezult un rest diferit de zero, se
realizeaz operaia de detecie a erorilor, adic se decide c n cuvntul recepionat
sunt erori. Mai mult, dac din structura restului se pot localiza poziiile erorilor, se
realizeaz operaia de corecie a acestora.
n cazul codurilor ciclice att la emisie, ct i la recepie, trebuie s se realizeze
operaii de multiplicare i/sau divizare a polinoamelor cu coeficieni n mulimea
{0,1}.

4.12. Definirea funciei de transfer a circuitelor de multiplicare,


sau divizare a polinoamelor cu coeficieni n mulimea {0,1}
Circuitele de multiplicare, sau divizare a polinoamelor cu coeficieni n
mulimea {0,1}, sunt circuite electronice secveniale liniare cu o intrare i o ieire.
n cazul circuitelor secveniale cu o intrare i o ieire, starea ieirii la un
moment dat depinde att de starea intrrii, ct i de starea circuitului din acel moment.
Circuitele secveniale folosite n calitate de circuite de multiplicare sau divizare
a polinoamelor cu coeficieni n mulimea {0,1} funcioneaz de obicei sincron, adic
157

aplicarea intrrii, schimbarea strii circuitului, precum i furnizarea ieirii se


realizeaz la momente discrete de timp, de obicei echidistante, cu ajutorul impulsurilor
de tact. Circuitele secveniale utilizate ca circuite de multiplicare sau divizare n cazul
codurilor ciclice binare sunt liniare.
Circuitele secveniale se numesc liniare, dac starea ieirii la un moment dat
este o combinaie liniar a strilor intrrii. Deoarece suma modulo 2 este o operaie
liniar, n cazul circuitelor secveniale liniare folosite n calitate de circuite de
multiplicare sau divizare, prin combinaii liniare, se va nelege realizarea de sume
modulo 2.
Pentru ntocmirea circuitelor de multiplicare sau divizare a polinoamelor cu
coeficieni n mulimea {0,1} se folosesc trei elemente de baz:
1) Circuite basculante bistabile, numite i celule binare;
2) Sumatoare modulo 2;
3) Multiplicatoare cu constantele 0 sau 1.
Cele trei elemente de baz vor fi reprezentate n circuitele de multiplicare sau
divizare, aa cum sunt indicate n figura 4.5.

Fig. 4.5. Reprezentarea elementelor de baz din circuitele de multiplicare sau divizare

n figura 4.5,a, s-a reprezentat un circuit basculant bistabil, fr a se mai indica


intrarea de tact. La aplicarea tactului, celula binar va trece n starea corespunztoare
strii intrrii, n timp ce la ieire se va furniza starea precedent. n scopul evidenierii
ntrzierii de un tact realizate de o celul binar, se consider un circuit basculant
bistabil de tip D (de exemplu, CDB - 474E), nsoit de formele de und ale tactului,
intrrii i ieirii, aa cum este reprezentat n figura 4.6.

Fig.4.6. C.B.B. de tip D, a), i formele de und b).


158

n figura 4.5,b s-a reprezentat un sumator modulo 2, iar n fig.4.5,c un


multiplicator cu constanta k, ce poate lua numai dou valori. n cazul n care k=1,
exist legtur galvanic ntre punctele A i B, n timp ce, atunci cnd k=0, legtura
dintre aceste puncte este ntrerupt.
Se face convenia ca aplicarea polinomului la intrarea circuitelor de multiplicare
sau divizare s se efectueze n ordinea descresctoare a puterilor lui x.
Aceasta
nseamn c dac la intrarea unui astfel de circuit se aplic polinomul:
P( x ) = a 0 a 1 x ... a n 1 x n 1 a n x n ,

(4.119)

atunci, la primul tact, la intrarea circuitului se aplic simbolul an{0,1}, la al doilea


tact simbolul an-1{0,1} .a.m.d., la tactul n+1 aplicndu-se simbolul a0{0,1}.
Analiza circuitelor de multiplicare sau divizare a polinoamelor cu coeficieni n
mulimea {0,1} se face comod, dac se introduce operatorul de ntrziere D, care
specific ntrzierea de un tact.
Produsul Diak semnific ntrzierea simbolului binar ak cu i tacte.
Utiliznd operatorul de ntrziere D, secvena de intrare corespunztoare
polinomului P(x) se poate scrie sub forma:

P ( D) = a n Da n 1 . . . D n 1 a 1 D n a 0 ,

(4.120)

sau, echivalent:
P ( D) = D n ( a 0 a 1 D 1 . . . a n 1 D ( n 1) a n D n )
Comparnd relaia (4.119) cu (4.121), se poate scrie echivalena:

(4.121)

Di = x i
(4.122)
Datorit acestei echivalene se poate nlocui un polinom n variabila D-1 printrun polinom n variabila x.
n general, funcia oricrui circuit liniar, invariant n timp este definit prin
funcia sa de transfer. n cazul particular al circuitelor de multiplicare sau divizare a
polinoamelor cu coeficieni n mulimea {0,1}, realizate prin circuite secveniale
liniare, funcia de transfer a acestora se definete ca raportul dintre secvena de
ieire, Y, i secvena de la intrare, X, ambele exprimate prin operatorul de ntrziere
D.
Funcia de transfer a circuitelor de multiplicare sau divizare poate fi
determinat uor, dac acestor circuite li se ataeaz un graf i, apoi, cu ajutorul
formulei lui Mason, se determin transmitana grafului, T, care va reprezenta funcia
de transfer a circuitului.
Graful ataat unui circuit de multiplicare sau divizare a polinoamelor cu
coeficieni n mulimea {0,1} se construiete dup urmtoarele trei reguli:

1) Fiecrei celule binare din circuit i va corespunde n graf o ramur orientat,


nzestrat cu transmitana egal cu D, punndu-se astfel n eviden ntrzierea de un
tact, realizat de celula binar;
159

2) Fiecrui sumator modulo 2 din circuit i va corespunde n graf un nod;


3) Multiplicatorului cu constanta k{0,1} i va corespunde n graf o ramur de
transmitan zero, dac k=0, i o ramur de transmitan 1, dac k=1.
Notnd cu C1, C2, ..., Cp transmitanele cilor din graful ataat i cu L1, L2, ..., Lr
transmitanele buclelor, transmitana grafului se deduce cu formula lui Mason:

Y [( C1 C2 . . . Cp )(1 L 1 )(1 L 2 ) . . . (1 L r )]
T= =
X
[(1 L 1 )(1 L 2 ) . . . (1 L r )]

(4.123)

Asteriscurile de la numrtorul i numitorul relaiei (4.123) specific faptul c


trebuie eliminai termenii care conin bucle adiacente, precum i termenii
corespunztori adiacenelor dintre ci i bucle.

160

4.13. Circuite de multiplicare a polinoamelor cu coeficieni n


mulimea {0,1}
Fie g(x) dat de relaia (4.104) polinomul dup care se ntocmesc circuitele de
multiplicare. Aceste circuite se pot ntocmi n dou variante:
a) cu sumatoarele modulo 2 intercalate ntre celulele binare;
b) cu sumatoarele modulo 2 plasate n afara celulelor binare.
Se va arta c circuitul reprezentat n figura 4.7 este un circuit de multiplicare,
ntocmit dup polinomul g(x), cu sumatoarele modulo 2 intercalate ntre celulele
binare.

Fig.4.7. Circuit de multiplicare cu sumatoarele modulo 2 intercalate ntre celulele binare.

Fig.4.8. Graful ataat circuitului de multiplicare din fig.4.7.

n figura 4.7, prin Bi, i=1,m, s-au notat celulele binare. Graful ataat acestui
circuit este reprezentat n figura 4.8. Din graf se constat inexistena buclelor, deci:

L 1 = L 2 =...= L r = 0
i existena cilor de transmitane:

C1 = g m = 1

C2 = g m 1 D

Cm = g 1 D m 1

Cm + 1 = g 0 D m = D m

(4.124)

(4.125)

innd cont de relaiile (4.124) i (4.125), relaia general (4.123) devine:


T=

Y
= C1 C 2 . . . Cm + 1 =
X
= g m g m1D . . . g 1Dm1 g 0 Dm =
= D m ( g 0 g 1 D 1 . . . g m 1 D ( m 1) g m D m )

(4.126)

Avnd n vedere (4.121) i (4.122), relaia (4.126) se poate scrie, echivalent,


sub forma:
161

Y
= D m g( x ) Y = D m g ( x )X
(4.127)
X
Relaia (4.127) demonstreaz c circuitul propus n figura 4.7 realizeaz
multiplicarea polinomului de la intrare, reprezentat prin secvena X cu polinomul g(x),
dup care s-a ntocmit circuitul. Factorul Dm din aceast relaie specific faptul c
multiplicarea este realizat cu o ntrziere de m tacte.
Se va arta n continuare c circuitul reprezentat n figura 4.9 este un circuit de
multiplicare, cu sumatoarele modulo 2 plasate nafara celulelor binare.
T=

Fig.4.9. Circuit de multiplicare cu sumatoarele modulo 2 plasate nafara celulelor binare.

Fig.4.10. Graful ataat circuitului de multiplicare din figura 4.9.

Graful ataat acestui circuit este reprezentat n figura 4.10. Din acest graf se
constat inexistena buclelor i existena acelorai ci ca n cazul circuitului din figura
4.7, fiind deci adevrat i n acest caz relaia (4.127).
n ambele circuite de multiplicare analizate se observ necesitatea utilizrii unui
numr de celule binare egal cu gradul polinomului g(x). Deoarece multiplicarea se
realizeaz cu o ntrziere de m tacte, rezult c, dac la intrare se aplic un polinom de
grad n, atunci multiplicarea se va efectua dup n+m+1 tacte, deoarece sunt necesare
n+1 tacte pentru aplicarea la intrare a celor n+1 coeficieni binari ai polinomului de la
intrare i m tacte datorate ntrzierii realizate de circuit.
n ultimele m tacte, la intrarea circuitelor se va aplica 0 logic. naintea
primului tact, intrarea i toate celulele binare se reseteaz.
Pentru fixarea ideilor, fie polinomul de la intrare P(x)=1x3x4 i polinomul
generator g(x)=1xx3. Circuitul de multiplicare ntocmit dup acest polinom, cu
sumatoarele modulo 2 plasate nafara celulelor binare, este reprezentat n fig.4.11.

Fig.4.11. Circuitul de multiplicare ntocmit dup polinomul g(x)= 1xx3, cu sumatoarele modulo 2 plasate n afara
celulelor binare.

162

Funcionarea
circuitului
este
sintetizat n tabelul alturat. Conform
7
coveniei, polinomul se aplic la intrarea
1
1 x
6
circuitului n ordinea descresctoare a
2
1 x
5
puterilor lui x. Deoarece polinomul de la
3
1. x
intrare are gradul n=4, iar g(x) are gradul
4
0 x4
m=3, rezult c multiplicarea se va efectua
5
0 x3
dup
n+m+1 = 4+3+1 = 8 tacte. n ultimele
6
0 x2
m=3 tacte, la intrare se aplic zerouri.
7
1 x1
Din
circuitul
de
multiplicare
8
1 x0
reprezentat n figura 4.11 rezult c la
aplicarea tactului celula binar B1 va trece n starea anterioar intrrii X, celula binar
B2 va trece n starea anterioar a lui B1, celula binar B3 va trece n starea anterioar a
lui B2, iar ieirea se va obine sumnd modulo 2 strile curente ale intrrii i ale
celulelor binare B2 i B3.
Iniial, intrarea i celulele binare sunt resetate, fapt marcat de prima linie a
tabelului. Polinomul produs rezultant este x7x6x5x1, fapt care poate fi verificat
prin multiplicarea polinoamelor P(x) =1x3x4 i g(x) = 1xx3.
ntr-adevr,
P(x)g(x) = (1x3x4) (1xx3) = 1x3 x4xx4x5x3x6x7 =
= 1xx5x6 x7, deoarece prin sumarea modulo 2 a unui numr par de
termeni identici, rezultatul este nul, iar prin sumarea modulo 2 a unui numr impar de
termeni identici, va rezulta un singur termen.
Tact

X
0.
x4 1.
x3 1.
x2 0.
x 0.
x01.
0.
0.
0.

B1
0.
0.
1.
1.
0.
0.
1.
0.
0.

B2
0.
0.
0.
1.
1.
0.
0.
1.
0.

B3
0.
0.
0.
0.
1.
1.
0.
0.
1

4.14 Circuite de divizare a polinoamelor cu coeficieni n


mulimea {0,1}
Circuitele de divizare a polinoamelor cu coeficieni n mulimea {0,1}, se pot
realiza, ca i circuitele de multiplicare, n dou variante i anume: a) cu sumatoarele
modulo 2 intercalate ntre celulele binare; b) cu sumatoarele modulo 2 plasate nafara
celulelor binare.
Se va arta c circuitul reprezentat n figura 4.12 este un circuit de divizare,
ntocmit dup polinomul g(x), cu sumatoarele modulo 2 intercalate ntre celulele
binare.

Fig.4.12. Circuit de divizare cu sumatoarele modulo 2 intercalate ntre celulele binare.

163

Fig.4.13. Graful ataat circuitului de divizare din fig.4.12.

Graful ataat acestui circuit este reprezentat n figura 4.13. Din graf se constat
existena unei singure ci, de transmitan:
C1 = D m

(4.127)

L 1 = g m 1 D (bucla figurata cu linie continua )

L 2 = g m 2 D 2 (bucla figurata cu linie int rerupta )

(4.128)

m1
L m1 = g 1 D

Lm = g0Dm = Dm

i buclele cu transmitanele:
Deoarece calea C1 este adiacent cu toate buclele i toate buclele sunt adiacente
T=

C1
Y
=
X 1 L 1 L 2 ... L m 1 L m

(4.129)

ntre ele, relaia general (4.123) devine:


nlocuind (4.127) i (4.128) n relaia (4.129), rezult:

Y
Dm
T= =
=
X 1 g m 1 D g m 2 D 2 ... g 1 D m 1 + g 0 D m
Dm
= m
D ( g 0 g 1 D 1 ... g m 1 D ( m 1) D m )

(4.130)

innd cont de (4.122), relaia (4.130) devine:

Y
1
X
=
Y=
(4.131)
X g( x )
g( x )
Relaia (4.131) demonstreaz c circuitul propus n figura 4.12 realizeaz
divizarea polinomului de la intrare, reprezentat prin secvena X, prin polinomul g(x),
dup care s-a ntocmit circuitul. Divizarea are loc fr nici o ntrziere. Astfel, dac
polinomul de la intrare are gradul n, divizarea va avea loc dup un numr de tacte egal
cu numrul coeficienilor polinomului de la intrare, adic n+1 tacte. Pentru aflarea
restului divizrii mai este necesar un tact, deci un total de n+2 tacte. Coeficientul
termenului xm-1 al restului va fi stocat n celula binar Bm, coeficientul termenului xm-2
n Bm-1 .a.m.d., coeficientul lui x0 n celula binar B1. Evident, dac n urma divizrii
rezult un rest nul, toate celulele binare vor trece n starea 0 logic.
T=

164

Iniial, intrarea i toate celulele binare se aduc n starea 0 logic i, conform


conveniei, polinomul de la intrare se aplic n ordinea descresctoare a puterilor lui x.
Pentru fixarea ideilor, se presupune c la intrarea unui circuit de divizare cu
sumatoarele modulo 2 plasate ntre celulele binare, ntocmit dup polinomul
g(x)=1xx3, se aplic polinomul P(x)= 1x5x6. Circuitul de divizare este
reprezentat n figura 4.14.

Fig.4.14. Circuit de divizare ntocmit dup polinomul g(x)=1xx3.

Funcionarea
circuitului
este
B1 B2 B3 Y
sintetizat n tabelul alturat. Deoarece
0
0
0
polinomul de la intrare are gradul n=6, ctul
1
0. 0. 0. 0
divizrii se va obine n primele n+1=6+1=7
2
1. 0. 0. 0
tacte, restul fiind obinut la tactul 8.
3
1. 1. 0. 0
Din circuitul de divizare reprezentat
4
0. 1. 1. 1 x3
n figura 4.14 rezult c, la aplicarea
5
1. 1. 1. 1 x2
tactului, celula binar B1 va trece n starea
6
1. 0. 1. 1 x1
corespunztoare sumei modulo 2 a strilor
7
1. 0. 0. 0 x0
precedente ale intrrii i celulei B3, celula
8
1
1
0
binar B2 va trece n starea corespunztoare
sumei modulo 2 a strilor precedente ale celulelor binare B1 i B3, celula binar B3 va
trece n starea precedent a celulei binare B2, iar ieirea Y va fi identic cu starea lui
B3. Conform tabelului, rezult ctul q(x) = x3x2x i restul r(x) = x1, fapt ce poate
fi verificat prin mprirea polinomului de la intrare la polinomul g(x), dup care s-a
ntocmit circuitul.
Se va arta n continuare c circuitul reprezentat n figura 4.15 este un circuit de
divizare ntocmit dup polinomul g(x), dar cu sumatoarele modulo 2 plasate n afara
celulelor binare.
Tact

X
0
x6 1.
x5 1.
x4 0.
x3 0.
x2 0.
x 0.
x0 1.

Fig.4.15. Circuit de divizare cu sumatoarele modulo 2 plasate nafara celulelor binare.

Fig.4.16. Graful ataat circuitului de divizare din fig.4.15.


165

Graful ataat acestui circuit este reprezentat n figura 4.16. Din acest graf se
constat o singur cale de transmitan calculat cu relaia (4.127) i buclele cu
transmitanele calculate cu relaia (4.128). Deoarece, i n acest caz, singura cale C1
este adiacent cu toate buclele i toate buclele sunt adiacente ntre ele, rezult c i
pentru acest circuit sunt adevrate relaiile (4.129) i (4.131), deci i acest circuit
realizeaz operaia de divizare. Spre deosebire de circuitul de divizare cu sumatoarele
modulo 2 intercalate ntre celulele binare, n acest caz, dac exist rest diferit de zero,
acesta este stocat n celulele B1, B2, ..., Bm ntr-o form modificat. Ambele variante
de circuite de divizare conin un numr de celule binare egal cu gradul polinomului
dup care sunt ntocmite.

4.15. Registre de deplasare cu reacie (R.D.R.) utilizate n


codarea i decodarea codurilor ciclice
Un registru de deplasare cu reacie se obine dintr-un circuit de divizare prin
suprimarea intrrii. Rezult atunci c un R.D.R. este un circuit secvenial liniar care
poate funciona autonom, adic fr date aplicate din exterior.
Astfel, suprimnd intrarea X din circuitul de divizare din figura 4.15, se obine
R.D.R-ul reprezentat n figura 4.17.

Fig.4.17. Registru de deplasare cu reacie.

Mulimea strilor celulelor la un moment dat definete starea registrului din


acel moment.
Fie s1{0,1} starea celulei binare B1, s2{0,1} starea celulei binare B2 .a.m.d.,
sm{0,1} starea celulei binare Bm, toate la un anumit moment de timp. Aceast stare a
R.D.R-ului se noteaz, de obicei matriceal, sub forma:

sm
s
m 1
[S ] = . . . . .
s2
s1

(4.132)

Considernd starea R.D.R-ului dat de relaia (4.132), dup aplicarea primului


tact strile celulelor binare devin s'1 {0,1}, s'2 {0,1}, . . . , s'm {0,1}.
166

Notnd noua stare cu [S], se poate scrie:


s 'm
'

s m 1

[S ' ] = ....... ,
s '2

'

s1

Conform circuitului din figura 4.17, rezult:

(4.133)

s 'm = s m 1

s 'm 1 = s m 2

(4.134)

s '2 = s 1

s '1 = g 0 s m g 1 s m 1 ... g m 1 s 1
Sistemul de ecuaii (4.134) poate fi scris compact sub form matriceal, astfel:
[S ' ] = [T ][S ],

(4.135)

unde:
0 1 0 . . . 0
0 0 1 . . . 0

[T ] =
0 0 0 . . . 1
g 0 g 1 g 2 . . . g m 1

(4.136)

Matricea [T], definit cu relaia (4.136), este cunoscut sub denumirea de


matricea conexiunilor R.D.R-ului.
Din relaia (4.135) se constat c, pentru ca o anumit stare [S] s provin
dintr-o stare unic [S], trebuie ca matricea conexiunilor [T] s fie nesingular, adic s
admit invers. (numai n acest caz se poate determina starea [S] din relaia (4.135)).
Pe de alt parte, din (4.136) se deduce uor c matricea conexiunilor este nesingular,
dac g0=1. Pentru existena reaciei este necesar, de asemenea, ca gm=1. Aceasta este
raiunea pentru care n circuitele de divizare, deci implicit i n cazul registrelor de
deplasare cu reacie, s-a impus condiia g0=gm=1.
Dac se noteaz cu [S(0)] i [S(1)] starea iniial, respectiv starea dup primul
tact a R.D.R-ului, conform relaiei generale (4.135), se poate scrie:
[S( 1)] = [T][S( 0)]
(4.137)
Notnd cu [S(2)], [S(3)], ..., [S(i)] strile R.D.R-ului la tactele doi, trei,
respectiv i, se pot scrie relaiile:

167

[S( 2)] = [T][S( 1)] = [T ]2 [S( 0)]

(4.138)

[S( 3)] = [T]3 [S( 0)]

(4.139)

-------------------[S( i )] = [T]i [S( 0)]

(4.140)

Deoarece R.D.R.-ul este format dintr-un numr finit de celule binare, numrul
strilor distincte ale acestuia va fi, de asemenea, finit. Dac [S(0)] [0] este starea
iniial, fie n numrul de tacte dup care se revine n starea iniial.
inndu-se cont de relaia general (4.140), se poate scrie n acest caz:
[S( n )] = [T]n [S( 0 )] = [S( 0 )],

(4.141)

[[I m ] [T]n ][S( 0)] = [0],

(4.142)

sau, echivalent:
unde [Im] este matricea unitate de ordinul m.
Deoarece starea iniial [S(0)] este oarecare i diferit de starea cu toate celulele
binare n 0 logic, rezult c relaia (4.142) va fi satisfcut, dac:
[T]n = [I m ]

(4.143)

Numrul de tacte n pentru care este adevrat relaia (4.141) sau, echivalent,
(4.143) definete perioada R.D.R.-ului.
Pentru a stabili perioada maxim a unui R.D.R., se ine cont c acesta conine
m celule binare. Deoarece fiecare celul binar se poate afla n dou stri (0 logic
sau 1 logic), rezult un numr de stri distincte posibile, egal cu 2m. Eliminnd
starea cu toate celulele binare n 0 logic, rezult c perioada maxim a unui R.D.R.
ntocmit dup un polinom g(x) de grad m este:
n max = 2 m 1

(4.144)

Polinoamele g(x) care conduc la perioada maxim a R.D.R.-ului se numesc


polinoame primitive. Se poate demonstra c polinoamele primitive sunt ireductibile i
divid polinomul xn1 pentru n2m-1. Se poate, de asemenea, demonstra c pentru
fiecare grad exist cel puin un polinom primitiv. n literatura de specialitate sunt
listate polinoame primitive pn la grade suficient de mari.
Pentru fixarea ideilor, se presupun dou polinoame: g1(x)=1xx2x3 i
g2(x)=1xx3. Registrele de deplasare ntocmite dup aceste polinoame sunt
reprezentate n fig.4.18, a, b.

168

Fig.4.18. Registru de deplasare ntocmit dup polinomul g1(x)=1xx2x3, a) i dup polinomul


g2(x)=1xx3, b).

Pentru determinarea perioadei acestor registre de deplasare, se pleac dintr-o


stare iniial diferit de zero i apoi se ntocmesc tabele cu evoluia strilor celulelor
binare, aa cum este artat n continuare.
Tabel cu evoluia strilor registrului ntocmit dup polinomul g1(x)=1xx2x3
Tact B1 B2 B3
1
1
0
0
2
1
1
0
3
0
1
1
4
0
0
1
5
1
0
0
Tabel cu evoluia strilor registrului ntocmit dup polinomul g2(x)=1xx3
Tact
1
2
3
4
5
6
7
8

B1
1
0
1
1
1
0
0
1

B2
0
1
0
1
1
1
0
0

B3
0
0
1
0
1
1
1
0

Se constat c registrul de deplasare cu reacie ntocmit dup polinomul g1(x)


are perioada n=4, n timp ce cel ntocmit dup polinomul g2(x) are perioada nmax = 231 = 7, deci polinomul g2(x) este primitiv.
Se poate demonstra c perioade R.D.R.-ului ntocmit dup un polinom primitiv
are totdeauna valoarea maxim, indiferent de starea iniial, n timp ce, n cazul
polinoamelor neprimitive, perioada R.D.R.-ului depinde de starea iniial i nu este
niciodat maxim. Cteva polinoame primitive: pentru gradul doi x2x1, pentru
gradul 3 sunt dou polinoame primitive x3x1 i x3x21, pentru gradul 4 sunt de
asemenea dou polinoame primitive, i anume x4x1 i x4x31 .a.m.d.
169

4.16. Codor ciclic, corector de o eroare, realizat cu registre de


deplasare cu reacie
Fie k numrul simbolurilor informaionale necesare transmiterii unei anumite
informaii. n scopul coreciei unei erori, la cele k simboluri informaionale trebuie
adugate m simboluri de control calculate cu relaia:

2m m + k + 1

(4.145)

Se reamintete c n relaia (4.145) se alege numrul ntreg pozitiv m, cel mai


mic, care o satisface.
Se alege un polinom primitiv de grad m. Fie acesta de forma:

g(x ) = g 0 g 1 x . . . g m x m , g 0 = g m = 1;

(4.146)

g i {0,1}, i = 1, (m 1)
Codorul ciclic, corector de o eroare, realizat cu R.D.R., ntocmit dup polinomul g(x),
este reprezentat n figura 4.19.

Fig.4.19. Codor ciclic, corector de o eroare, realizat cu R.D.R.

Iniial, comutatorul C este pe poziia I i toate celulele binare se reseteaz. n


acest caz, evident, circuitul funcioneaz ca un circuit de divizare cu sumatoarele
modulo 2 plasate nafara celulelor binare.
Fie

v (x ) = a 0 a 1 x . . . a n k 1 x n k 1 a n k x n k
. . . a n 1 x n1

(4.147)

un cuvnt de cod ciclic sistematic, cu (a0, a1, ..., an-k-1) {0,1} simboluri de control i
(an-k, ..., an-1) {0,1} simbolurile informaionale cunoscute.
Deoarece v(x) este cuvnt de cod, el este divizibil la polinomul generator al
codului, g(x). Evoluia strilor R.D.R.-ului la aplicarea la intrare a cuvntului de cod
v(x) poate fi descris comod, dac se folosete matricea conexiunilor R.D.R.-ului,
definit cu relaia (4.136) i se introduce matricea:

170

0 Bm
0 B
m1

[U ] = .
(4.148)

0 B
2

1 B 1
care marcheaz faptul c toate celulele binare sunt n starea 0 logic, cu excepia
celulei B1 care se afl n starea 1 logic.
Conform conveniei, polinomul v(x) se aplic la intrarea circuitului n ordinea
descresctoare a puterilor lui x. Astfel, la primul tact starea R.D.R.-ului devine:
0 Bm
0 B

m 1

[S(1)] = a n 1 [U ] = .

0 B

a n 1 B 1

(4.149)

La tactul al doilea, starea R.D.R.-ului se calculeaz cu relaia:

[S ( 2)] = [T][S (1)] a n 2 [U ],

(4.150)

sau, dac se ine cont de (4.149), se poate scrie, echivalent, relaia:

[S ( 2)] = a n 1 [T][U ] a n 2 [U ],

(4.151)

La tactul al treilea, starea R.D.R.-ului se deduce cu relaia:

[S ( 3)] = [T][S ( 2)] a n 3 [U ],

(4.152)

sau, dac se ine cont de (4.151), se poate scrie, echivalent:


[S ( 3)] = a n 1 [T]2 [U ] a n 2 [T][U ] a n 3 [U ]

Raionnd n mod analog, se poate scrie c la tactul n starea R.D.R.-ului devine:


[S( n )] = a n 1 [T]n 1 [U ] a n 2 [T]n 2 [U ]
... a 1 [T][U ] a 0 [U ]

(4.153)

Deoarece polinomul v(x) este divizibil la g(x), starea [S(n)] trebuie s


a n 1 [T]n 1 [U ] a n 2 [T]n 2 [U ]
. . . a 1 [T][U ] a 0 [U ] = [0]

corespund situaiei cnd toate celulele binare se afl n starea 0 logic, adic:
171

(4.154)

Se fac notaiile:

[U , TU , . . . T n1 U ] not [H]

(4.155)

[a 0 a 1 . . . a n 1 ] not [v]

(4.156)

Cu notaiile (4.155) i (4.156) relaia (4.154) se poate scrie sub forma:


[H][v]T = [0]

(4.157)

Deoarece relaia (4.157) este identic cu relaia (4.23), matricea [H] definit cu
relaia (4.155) se va numi matricea de control a codurilor ciclice sistematice
corectoare de o eroare.
Trebuie subliniat faptul c relaia (4.157), dup care se implementeaz de fapt
codorul, este adevrat pentru toate codurile bloc liniare. Diferena const n structura
matricei de control, care difer de la un cod la altul. Aa, de exemplu, n cazul codului
Hamming corector de o eroare, matricea de control este dat de (4.86), n cazul
codului Hamming corector de o eroare, detector de erori duble, de relaia (4.97), iar n
cazul codurilor ciclice corectoare de o eroare, de relaia (4.155).
innd cont de analiza de mai sus, funcionarea codorului ciclic, corector de o
eroare, realizat cu R.D.R., este urmtoarea:
n primele k tacte se aplic la intrarea circuitului simbolurile informaionale
cunoscute care, pe de o parte rezult direct la ieire, iar pe de alt parte sunt introduse
n R.D.R. prin intrarea notat cu A. Cnd ultimul simbol informaional este introdus n
R.D.R., comutatorul C este trecut pe poziia II. n acest caz, intrrile A i B ale
sumatorului modulo 2 devin identice (fie 0 logic, fie 1 logic), astfel nct la tactul
k+1 la ieire va rezulta simbolul de control an-k-1, iar celula binar B1 va trece n starea
0 logic. La tactul k+2 la ieire va rezulta cel de al doilea simbol de control, an-k-2, iar
celulele binare B1 i B2 vor trece n starea 0 logic. Raionnd n mod analog,
nseamn c la tactul k+m=n la ieire va rezulta ultimul simbol de control, a0, n timp
ce toate celulele binare din R.D.R. vor fi n starea 0 logic, respectndu-se astfel
relaia (4.154) sau, echivalent, relaia (4.157).
Cuvntul de cod astfel rezultat s-ar putea s aib o lungime n, care nu satisface
relaia (4.105). Pentru satisfacerea acestei relaii se pot aduga zerouri la sfritul
cuvntului de cod pn cnd aceast relaie este satisfcut. n felul acesta, orice
permutare ciclic a unui cuvnt de cod determin un nou cuvnt de cod. Deoarece la
emisie aceast condiie nu este restrictiv, se poate transmite cuvntul de cod rezultat
la ieirea codorului chiar dac relaia (4.105) nu este ndeplinit. La recepie ns,
lungimea cuvintelor trebuie s satisfac aceast relaie, motiv pentru care, la sfritul
cuvntului vor fi adugate attea zerouri, pn cnd relaia este satisfcut.
Pentru fixarea ideilor, se presupune c se dorete transmiterea numrului N=5
pe un canal pe care poate s apar o eroare, utiliznd un cod ciclic, corector de o
eroare, realizat cu R.D.R. Numrul simbolurilor informaionale se determin cu relaia
172

2k>5, rezultnd k=3. Cele trei simboluri informaionale rezult prin transcrierea binar
a numrului 5, adic (5)10 = (101)2. Numrul simbolurilor de control necesare se
determin din relaia 2mm+3+1, rezultnd m=3. Se alege polinomul primitiv
g(x)=1xx3. Codorul ciclic este reprezentat n figura 4.20.

Fig.4.20. Codor ciclic corector de o eroare, ntocmit dup polinomul 1xx3.

Funcionarea codorului din figura 4.20 poate fi sintetizat ntr-un tabel n care
se vor pune n eviden evoluia strilor celulelor binare i a ieirii, aa cum este artat
mai jos.
Iniial, toate celulele binare sunt
resetate i comutatorul C este pe poziia I. n
aceast situaie, la un anumit tact, celula
1
1
binar B1 va trece n starea corespunztoare
2
0
sumei modulo 2 dintre strile precedente ale
3
1
intrrii i ale celulelor binare B2 i B3. Celula
4
1
binar B2 va trece n starea precedent a lui
5
0
B1, iar B3 n starea precedent a lui B2. La
6
0
ieire vor rezulta direct simbolurile
informaionale aplicate la intrare. Dup introducerea ultimului simbol informaional n
R.D.R., (tactul 4), comutatorul C este trecut n poziia II. n aceast situaie, la ieire
va rezulta suma modulo 2 a strilor curente ale celulelor binare B2 i B3, n timp ce la
intrarea celulei binare B1 se va aplica 0 logic.
Cuvntul de cod este [v] = [0 0 1 1 0 1], n care primele trei

0 1
x x ........x5
simboluri binare sunt de control, n timp ce ultimele trei, simbolurile informaionale
cunoscute. Sub form polinomial, cuvntul de cod este v(x) = x2x3x5
Tact

intrare
0.
1.
0.
1.

B1
0
0
1
0
0
0
0

B2
0.
0.
0.
1.
0
0
0

B3
0
0.
0.
0.
1
0
0

ieire

4.17. Decodor ciclic, corector de o eroare, realizat cu registre


de deplasare cu reacie
Fie
173

v ' ( x ) = a '0 a 1' x . . . a n' 1 1 x n1 1

(4.158)

cuvntul recepionat, scris sub form polinomial.


Cuvntul recepionat, scris sub form matriceal, este:

[v ' ] = [a '0 a 1' . . . a n' 1 1 ]

(4.159)

Dac relaia (4.105) nu este verificat, adic dac:


n 1 < 2 m 1,
(4.160)
la sfritul cuvntului recepionat se va aduga un numr de zerouri, pn cnd relaia
(4.105) este verificat. Cuvntul recepionat, cu eventuale zerouri adugate la sfrit,
va fi de forma:

v ' ( x ) = a '0 a '1x ... a 'n 1 1x n 1 1 a 'n1 x n 1 ... a 'n 1x n 1

(4.161)

unde a 'n1 = ... = a 'n1 = 0 i n = 2 -1.


Schema bloc a decodorului ciclic, corector de o eroare, realizat cu R.D.R., este
dat n figura 4.21.

Fig.4.21. Decodor ciclic realizat cu registre de deplasare cu reacie.

Decodorul ciclic conine un registru principal (R.P.) format din n celule binare
n care se vor stoca simbolurile cuvntului recepionat, eventual i zerourile adugate
suplimentar la sfritul cuvntului.
Decodorul mai conine dou blocuri identice (DC1 i DC2), formate, fiecare,
dintr-un R.D.R., ntocmit dup acelai polinom generator al codului g(x), cu care s-a
realizat codarea la emisie i un descifrator astfel sintetizat, nct s furnizeze 1 logic,
174

la ieire atunci cnd simbolul eronat ajunge n ultima celul binar M0 a registrului
principal.
Unitatea logic furnizat de descifrator se adun modulo 2 la simbolul
recepionat eronat, furnizndu-l corectat la ieire.
Iniial, comutatorul C este pe poziia I i toate celulele binare se reseteaz.
Conform conveniei, cuvntul v(x), dat de relaia (4.161), se introduce n decodor n
ordinea descresctoare a puterilor lui x. La primul tact, simbolul a' n1 va fi memorat n
celula binar Mn-1 pe de o parte, iar pe de alt parte n R.D.R.-ul din DC1,
determinndu-i starea:
0 B m
0 B

m1

[S ' ( 1)] = a 'n 1 [U ] = .


.

0 B 2
a 'n 1 B 1

(4.162)

La al doilea tact, la intrare se aplic simbolul a' n 2 , astfel nct n celulele binare Mn-2
i
Mn-1 vor fi stocate simbolurile a 'n 1, respectiv a 'n 2 , n timp ce starea R.D.R.-ului din
DC1 va deveni:
[S ' ( 2)] = [T][S ' ( 1)] a 'n 2 [U ],

(4.163)

sau, innd cont de (4.162), se poate scrie echivalent:


[S ' ( 2)] = a 'n 1 [T][U ] a 'n 2 [U ]

(4.164)

La al treilea tact, celulele binare Mn-3, Mn-2 i Mn-1 vor memora simbolurile a 'n 1, a 'n 2 ,
respectiv a 'n 3 , n timp ce R.D.R.-ul din DC1 va trece n starea:
[S ' ( 3)] = [T][S ' ( 2)] a 'n 3 [U ],

(4.165)

[S ' ( 3)] = a 'n 1 [T]2 [U ] a 'n 2 [T][U ] a 'n 3 [U ]

(4.166)

sau, innd cont de (4.164):


Raionnd n mod analog, la tactul n celula binar M0 va memora simbolul a 'n 1,
M1 simbolul a 'n 2 .a.m.d., celula Mn-1 simbolul a '0 , n timp ce starea R.D.R.-ului din
DC1 va deveni:

[S ' ( n )] = a 'n 1 [T]n 1 [U ] a 'n 2 [T]n 2 [U ] . . .


a 1' [T][U ] a '0 [U ]
Dac se fac notaiile:
[a '0 a 1' ... a 'n 1 ] not. [v ' ]
175

(4.167)

(4.168)

[U , TU ,... T n1 U ] not. [H],

(4.169)

relaia (4.167) poate fi scris compact, sub forma matriceal:


[S ' ( n )] = [H][v ' ]T

(4.170)

Comparnd relaia (4.42) cu (4.170), rezult c starea R.D.R.-ului, la


recepionarea ntregului cuvnt coincide cu expresia corectorului cuvntului respectiv.
Dup recepionarea primului cuvnt, comutatorul C este trecut pe poziia II,
simultan efectundu-se corecia primului cuvnt i recepia celui de al doilea. Dup
recepionarea celui de al doilea cuvnt, comutatorul C este trecut din nou pe poziia I,
efectundu-se simultan corecia celui de al doilea cuvnt i recepia celui de al treilea
.a.m.d. Cu alte cuvinte, comutatorul C va fi pe poziia I la recepionarea cuvintelor
numerotate cu numere impare i va fi pe poziia II la recepionarea cuvintelor
numerotate cu numere pare.
Aa cum s-a precizat, descifratoarele trebuie astfel proiectate, nct s furnizeze
o unitate logic la ieire atunci cnd simbolul eronat din cuvntul recepionat este
memorat n ultima celul binar a registrului principal, M0. Pentru a nu rezulta o
unitate logic fals la ieirea descifratoarelor, s-au conectat dou pori logici I, notate
cu I1, respectiv I2, validate de intrrile a i b. Cnd comutatorul C se afl pe poziia
I, sincron se realizeaz a = 0 logic i b = 1 logic, invalidndu-se astfel poarta
logic I1 i validndu-se poarta logic I2. n felul acesta, la recepionarea unui
cuvnt numerotat cu un numr impar, dac ar rezulta o unitate logic la ieirea
descifratorului din DC1, aceasta nu va putea trece de poarta logic I1, evitndu-se
astfel sumarea modulo 2 a acestei uniti logice la un simbol din cuvntul precedent.
n mod similar, cnd comutatorul C este pe poziia II, rezult a = 1 i b = 0, poarta
logic I2 fiind invalidat. O eventual unitate logic rezultat n timpul recepionrii
unui cuvnt numerotat cu un numr par nu se mai sumeaz modulo 2 cu un simbol din
cuvntul precedent. Cu alte cuvinte, datorit porilor I1, respectiv I2, descifratorul 1
va corecta eventualele erori din cuvintele numerotate cu numere impare, iar
descifratorul 2 eventualele erori din cuvintele numerotate cu numere pare.
n principiu, decodorul ar putea funciona cu un singur decodor, dar n acest caz
va trebui s se atepte un timp corespunztor a n tacte, timp n care se corecteaz
cuvntul recepionat i se asigur pregtirea pentru recepionarea urmtorului cuvnt.

4.18. Sinteza descifratoarelor din decodorul ciclic, corector de


o eroare realizat cu registre de deplasare
Fr a micora generalitatea, se presupune c simbolul eronat este a 'n r , oricare
ar fi r cuprins ntre 1 i n.
Cuvntul recepionat va fi atunci de forma:
176

v ' ( x ) = a 0 a 1 x . . . ( a n r 1) x n r . . . a n 1 x n 1

(4.171)

Conform relaiei (4.167), starea R.D.R.-ului se calculeaz n acest caz cu


relaia:

[S ' ( n )] = a n 1 [T]n 1 [U ] a n 2 [T]n 2 [U ] ... a n r [T]n r [U ]


(4.172)
[T]n r [U ] ... a 0 [U ]
innd cont c la emisie codorul realizeaz condiia stabilit de relaia (4.154),
rezult c (4.172) se poate scrie, echivalent, sub forma:
[S ' ( n )] = [T]n r [U ]

(4.173)

Simbolul presupus eronat va fi memorat n ultima celul binar M0, a registrului


principal, dup r-1 tacte.
Starea R.D.R.-ului dup r-1 tacte va deveni:
[S 1 ] = [T]r 1 [S ' ( n )],

sau, innd cont de (4.173), rezult:


[S 1 ] = [T]n 1 [U ]

(4.174)

Deoarece relaia (4.105) este satisfcut, rezult c i (4.143) este adevrat.


Cu (4.143), relaia (4.174) devine:
[S 1 ] = [T]1 [U ]

(4.175)

Din relaia (4.175) se constat c starea R.D.R.-ului atunci cnd simbolul eronat
este memorat n ultima celul binar a registrului principal nu depinde de poziia
erorii. Acest fapt remarcabil permite sinteza descifratorului, independent de poziia n
care s-a introdus o eroare n cuvntul recepionat.
Pentru a putea deduce starea [S1] din relaia (4.175), va trebui mai nti s se
determine [T]-1. n acest scop, se pleac de la relaia evident:
[T][T]1 = [I m ],

(4.176)

unde [Im] este matricea unitate de ordinul m.


Notnd cu [l1], [l2], ..., [lm] liniile matricei necunoscute [T]-1 i innd cont de
relaia (4.136), rezult:

0 1 0 ... 0

0 0 1 ... 0

0 0 0 ... 1

g 0 g 1 g 2 ... g m 1

l1
l
2
= [I m ]
l m1
l m

Din (4.177) se pot calcula liniile matricei [T]-1, dup cum urmeaz

177

(4.177)

[l 2 ] = [1 0 ... 0 0]( 1xn )


[l 3 ] = [0 1 ... 0 0]( 1xn )


[l m ] = [0 0 ... 1 0]( 1xn )

(4.178)

g 0 [l 1 ] g 1 [l 2 ] . . . g m 1 [l m ] = [0 0 . . . 01](1xn )

(4.179)

i
innd cont de (4.178) i de faptul c totdeauna g0=1, din (4.179) rezult:

[l 1 ] = [g 1 g 2 . . . g m 1 1]

(4.180)

Cu (4.178) i (4.180) se poate scrie:


g 1 g 2 . . . g m 1 1
1 0 . . . 0 0

[T]1 = 0 1 . . . 0 0
(4.181)

0 0 . . . 1 0
nlocuind (4.148) i (4.181) n (4.175), se deduce starea pe care trebuie s o
sesizeze descifratorul:

1 B m
0 B
m1

[S 1 ] = .

.
0 B
2

B
0

(4.182)

Din relaia (4.182) rezult c descifratorul va fi o poart logic I cu m intrri,


aa cum este reprezentat n figura 4.22.
La tactul urmtor, unitatea logic furnizat la ieirea descifratorului (poarta
logic I cu m intrri) este, pe de o parte, sumat la simbolul recepionat eronat,
corectndu-l, iar pe de alt parte, este introdus n R.D.R., determinndu-i starea:

[S 0 ] = [T][S 1 ] [U ]

(4.183)

nlocuind (4.136) i (4.182) n relaia (4.183), rezult:

[S 0 ] = [U] [U ] = [0]

178

(4.184)

adic registru de deplasare cu reacie este adus n starea cu toate celulele binare n zero
logic, fiind astfel pregtit pentru recepionarea altui cuvnt.

Fig.4.22. Decodor ciclic, corector de o eroare, realizat cu registre de deplasare cu reacie.

Comutatorul C poate fi implementat fizic aa cum este artat n figura 4.23.

Fig.4.23. Implementarea comutatorului C din decodorul ciclic din fig.4.22.

n figura 4.23, prin blocul : n s-a specificat un divizor cu n. Dac iniial Q=1
i Q=0, cuvntul recepionat va fi furnizat la ieirea I. Dup n tacte, cnd se trece la
recepionarea urmtorului cuvnt, rezult Q=0 i Q=1, acesta fiind furnizat la ieirea II.
Pentru fixarea ideilor, se presupune c s-a recepionat cuvntul v(x)=x2x5 pe
un canal pe care poate s apar cel mult o eroare, iar polinomul generator al codului
este g(x)=1xx3. Structura decodorului se poate deduce n acest caz particular,
avnd n vedere c structura matriceal a cuvntului recepionat este [v] = [0 0 1 0 0
1], deci n1=6, iar gradul polinomului genarator al codului fiind m=3, nseamn c 2m-1
179

= 23-1=7. Rezult c pentru satisfacerea relaiei (4.105), la sfritul cuvntului


recepionat mai trebuie adugat un zero, adic se consider [v] = [0 0 1 0 0 1 0].
Registrul principal va conine 7 celule binare, iar decodorul va avea structura
reprezentat n figura 4.24.

Fig.4.24. Decodor ciclic, corector de o eroare, realizat cu R.D.R., dup polinomul g(x) = 1xx3.

Funcionarea decodorului din figura 4.24 este sintetizat n tabelul de mai jos.

180

Tact Intr.
0
1
0
2
1
3
0
4
0
5
1
6
0
7
0
8
0
9
0
10
0
11
0
12
0
13
0
14
0

M6
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0

M5
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0

M4
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0

M3
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0

M2
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0

M1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0

M0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0

B1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0

B2
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0

B3
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0

Ieire

0
1
0
1
1
0
0

Din tabel rezult cuvntul corectat [0 0 1 1 0 1 0].


Iniial, toate celulele binare sunt resetate. Pentru simplificarea scrierii, s-a
considerat c urmtorul cuvnt recepionat este format din 7 zerouri (tactele 814). La
tactul 8, cnd ultimul simbol din primul cuvnt recepionat este introdus n R.D.R.,
comutatorul C este trecut pe poziia II. La tactul 11, la ieirea porii logice I va
rezulta 1 logic care, pe de o parte, sumat modulo 2 cu 0 logic memorat n M0 va
determina corectarea acestui simbol, iar, pe de alt parte, va determina trecerea
celulelor binare B1, B2 i B3 n 0 logic, pregtind astfel R.D.R.-ul pentru
recepionarea altui cuvnt. Dac se nltur simbolul 0 care a fost adugat
suplimentar, rezult c s-a transmis cuvntul de cod [v] = [0 0 1 1 0 1]. Deoarece
polinomul generator al codului are gradul m=3, rezult c primele 3 simboluri din
cuvntul transmis sunt simboluri de control, iar urmtoarele 3 simboluri
informaionale. Trecnd n zecimal numrul binar corespunztor simbolurilor
informaionale, rezult c s-a transmis numrul zecimal (101)2 = (5)10. Dac nu s-ar fi
efectuat corecia erorii, s-ar fi decis c s-a transmis numrul (001)2 = (1)10.
181

4.19. Definirea matricei generatoare i de control n cazul


codurilor ciclice
Fie
g( x ) = g 0 g 1 x . . . g m x m , g 0 = g m = 1;
g i {0,1}, i = 1, (m 1)

(4.185)

polinomul generator al codului i


i ( x ) = i 0 i 1 x . . . i k 1 x k 1 , i j {0,1}, j = 0, ( k 1)

(4.186)

polinomul informaional.
Conform definiiei cuvintelor de cod ciclice, acestea sunt polinoame v(x), de
grad n-1 sau mai mic, divizibile la polinomul generator al codului. Un astfel de
polinom ar putea fi, de exemplu:
(4.187)
v ( x ) = i ( x ) g ( x ),
nlocuind (4.186) n relaia (4.187), rezult:
v ( x ) = i 0 g ( x ) i 1 xg( x ) . . . i k 1 x k 1 g( x )
(4.188)
Deoarece g(x) satisface definiia cuvintelor de cod ciclice, rezult c i xg(x),
2
x g(x), ..., xk-1g(x) sunt, de asemenea, cuvinte de cod i, conform relaiei (4.188), i
orice combinaie liniar a acestora determin un nou cuvnt de cod ciclic.
Pe de alt parte, conform paragrafului 4.3, mulimea cuvintelor de cod n cazul
codurilor bloc liniare, deci, n particular, i n cazul codurilor ciclice, formeaz spaiul
linie al matricei generatoare.
innd cont de (4.188), rezult atunci c matricea generatoare a unui cod ciclic
se poate scrie sub forma:
g(x)

xg(x)

g 0
.
0
[G] =
=
.

.
.
0
k 1

x g(x)

x0

g1
g0
.
0

... g m
... g m 1
.
.
0
0

0
gm
.
0

0 ...
0 ...
.
.
... g 0

0 0
0 0
.
.

... g m

"

"

x1 " x m

" x m + k 1 = x n 1

(4.189)

Se reamintete c matricea generatoare are un numr de linii egal cu numrul


simbolurilor informaionale i un numr de coloane egal cu lungimea cuvintelor de
cod.

182

Dac se consider c prima coloan a matricei generatoare corespunde lui x0, a


doua lui x1 .a.m.d., ultima coloan lui xm+k-1=xn-1, atunci prima linie a matricei
generatoare este format din coeficienii polinomului generator, restul coeficienilor
corespunztori lui xm+1 pn la xn-1 completndu-se cu zerouri. A doua linie a matricei
generatoare reprezint coeficienii polinomului xg(x), adic prima permutare ciclic la
dreapta a primei linii, a treia linie coeficienii polinomului x2g(x) .a.m.d., ultima linie
coeficienii polinomului xk-1g(x), adic prima permutare ciclic la dreapta a penultimei
linii, sau, echivalent, permutarea ciclic de ordinul k-1 a primei linii. Se poate verifica
c, dac n relaia (4.26) se nlocuiete matricea generatoare cu (4.189), elementele
matricei [v] reprezint coeficienii puterilor lui x, determinai cu relaia (4.187). Codul
ciclic astfel obinut este nesistematic. Pentru a obine un cod ciclic sistematic, cu
simbolurile informaionale plasate grupat la sfritul cuvintelor de cod, matricea
generatoare trebuie adus la forma:
p 11 p 12 ...p1 m 1 0...0
p p ...p 0 1...0
= [PI ],p {0,1}.
[G] = 21 22 2 m
k
ij

p k 1 p k 2 ...p km 0 0...1

(4.190)

x 0 x 1 ... x m 1 x m ... x n 1

Deoarece nu totdeauna este uor de a determina transformrile elementare ce


trebuie efectuate asupra matricei [G], date de relaia (4.189), pentru a fi adus la forma
(4.190), se va indica n continuare o metod sistematic de ntocmire a matricei
generatoare, direct sub forma (4.190).
Pentru formarea primei linii a unei astfel de matrice generatoare, se mparte xm
la polinomul generator al codului g(x).
Dac r1(x) este restul acestei divizri, se poate scrie:
x m = g ( x ) r1 ( x ),

(4.191)

sau, echivalent,
r1 ( x ) x m = g( x )
(4.192)
Conform relaiei (4.192), rezult c membrul stng al acestei relaii satisface
definiia cuvintelor de cod ciclice de a fi divizibile la polinomul generator al codului.
nseamn atunci c p11, p12, ..., p1m vor fi coeficienii lui r1(x), iar unitatea coeficientul
lui xm.
Pentru a obine elementele celei de a doua linii a matricei generatoare definite
cu relaia (4.190), se mparte xm+1 la g(x). Dac se noteaz cu r2(x) restul acestei
divizri, se poate scrie:
x m+ 1 = ( a 0 x )g( x ) r2 ( x ), a 0 {0,1},

sau, echivalent
183

(4.193)

r2 ( x ) x m + 1 = ( a 0 x )g( x )
(4.194)
Polinomul din membrul stng al relaiei (4.194) fiind un polinom de grad n-1,
sau mai mic, divizibil la polinomul generator al codului g(x), satisface definiia
cuvintelor de cod i deci coeficienii acestuia reprezint a doua linia a matricei
generatoare n care p21, p22, ..., p2m sunt coeficienii restului r2(x). Procednd n mod
analog, ultima linie a matricei generatoare se obine diviznd xm+k-1 la g(x). Dac se
noteaz cu rk(x) restul acestei divizri, se poate scrie:
x m + k 1 = q( x )g( x ) rk ( x ),

(4.195)

rk ( x ) x m + k 1 = q( x )g( x ),

(4.196)

sau, echivalent
unde q(x) este ctul divizrii.
Polinomul rk(x)xm+k-1 fiind cuvnt de cod, nseamn c pk1, pk2, ..., pkm sunt
coeficienii restului rk(x).
Odat adus matricea generatoare la forma (4.190), cu ajutorul relaiei (4.31) se
poate deduce matricea de control, dat de relaia (4.24).

4.20. Decodor ciclic cu logic de prag


n cazul codurilor ciclice, implementarea decodorului poate fi simplificat, dac
acesta se realizeaz dup relaia:
[A ] = [H R ][v ' ]T ,

(4.197)

sau, echivalent
[A ] = [H R ][E]T ,
(4.198)
unde matricea redus [HR] se obine prin transformri elementare asupra matricei de
control [H] a codului ciclic i, eventual, reduceri de linii, astfel nct matricea redus
s se bucure de urmtoarele proprieti:
a) ultima coloan s fie format numai din uniti;
b) celelalte coloane s conin o singur unitate, indiferent de linia n care
aceasta apare.
Fie

184

l 1, 0 l 1,1 . . . l 1, n 1
l l ...l

2 , 0 2 ,1
2,n 1

, l {0 ,1}; j = 1, J; i = 0 , ( n 1)
[H R ] =
l j , 0 l j ,1 . . . l j ,n 1 j ,i

l J , 0 l J ,1 . . . l J ,n 1

(4.199)

matricea redus, obinut prin transformri elementare asupra matricei de control i,


eventual, reduceri de linii, Jm, cu
l j,n 1 = 1, j = 1, J,
iar n celelalte coloane s existe o singur unitate.
Dac

(4.200)

[v ' ] = [a 0' a 1' ... a 'n 1 ]


este cuvntul recepionat, respectiv:

(4.201)

[E] = [e 0 e 1 ... e n 1 ]

(4.202)

este cuvntul eroare corespunztor, din relaiile (4.197) i (4.198) rezult:


A j = l j, 0 a '0 l j,1 a 1' ...l j,n 1 a n' 1 , ( ) j = 1, J ,

(4.203)

A j = l j, 0 e 0 l j,1 e1 ...l j,n 1 e n 1 , ( ) j = 1, J ,


(4.204)
unde A1, A2, ..., AJ sunt elementele matricei [A].
Datorit celor dou proprieti ale matricei reduse [HR], rezult c toate
simbolurile cuvntului recepionat sunt incluse n cele J sume Aj i fiecare simbol din
cuvntul recepionat intervine o singur dat n sumele Aj, cu excepia simbolului a 'n1
care intervine n toate cele J sume. Din acest motiv, sumele Aj se numesc ortogonale
pe simbolul a 'n1 . Deoarece n cazul codurilor ciclice orice permutare ciclic a unui
cuvnt de cod determin un nou cuvnt de cod, nseamn c se pot forma sume
ortogonale pe fiecare din cele n simboluri recepionate.
n mod analog, n relaia (4.204) n toate sumele Aj intervine en-1, fiind deci
ortogonale pe acest simbol, n timp ce fiecare simbol ei, i=0, (n-2) apare o singur dat
n aceste sume.
Se poate demonstra c, dac numrul de erori e care poate s apar pe canalul
de transmisiuni satisface relaia:

J
e ,
2

(4.205)

unde [J/2] semnific partea ntreag a numrului J/2, atunci aceste erori pot fi
corectate.

185

ntr-adevr, se presupune, pentru generalitate, c s-au format sume ortogonale


pe simbolul ek, ()k = 0, (n-1).
Dac ek=0, nseamn c pe poziia k a cuvntului recepionat (numrtoarea
efectundu-se de la stnga la dreapta) nu s-a introdus eroare. n acest caz, numrul
maxim de sume Aj egale cu unitatea este egal cu [J/2], lucru care s-ar putea ntmpla
numai dac cele [J/2] erori apar n sume distincte.
Dac ek=1, nseamn c pe poziia k a cuvntului recepionat s-a introdus o
eroare. Numrul minim de sume Aj egale cu unitatea n acest caz este egal cu J- [J/2]
+1. ntr-adevr, deoarece o eroare a aprut pe poziia k, celelalte rmase, n numr de
[J/2]-1, pot anula prin sumare modulo 2 cel mult un numr egal de uniti ek=1,
rmnnd astfel un numr minim de sume Aj=1 egal cu J - ([J/2]-1) = J - [J/2] +1.
Cu alte cuvinte, dac:
J

A j

2
j= 1

(4.206)

rezult c simbolul pe care s-au format sume ortogonale s-a recepionat corect, iar
dac:
J

A j J + 1

2
j= 1

(4.207)

rezult c simbolul pe care s-au format sume ortogonale s-a recepionat eronat.
Mai mult, se poate demonstra c totdeauna:
J
J
J +1>
2
2

(4.208)

ntr-adevr, relaia (4.208) se poate scrie, echivalent, sub forma:


J
J + 1 > 2
2

Dac J este un numr par, J=2i, i{N\0}, atunci (4.209) devine:


2i + 1 > 2i ,

(4.209)

(4.210)

ceea ce este, evident, adevrat.


Dac J este un numr impar, J=2i+1, i{N\0}, atunci (4.209) devine

2i + 2 > 2i ,

(4.211)

care, de asemenea, este adevrat.


Schema bloc a decodorului care poate corecta un numr de erori dat de relaia
(4.205), implementat dup relaia (4.197) i care ia decizii conform relaiilor (4.206) i
(4.207) este reprezentat n figura 4.25.

186

Fig.4.25. Decodor ciclic cu logic de prag.

Blocul notat cu 1 reprezint un registru de deplasare n care se memoreaz


simbolurile cuvntului recepionat [v]. Blocul 2 este alctuit dintr-o serie de
sumatoare modulo 2 care furnizeaz sumele Aj, conform relaiei (4.203). Blocul 3 este
un circuit combinaional astfel sintetizat, nct s furnizeze 0 logic la ieire, dac
este satisfcut relaia (4.206) i 1 logic, dac este ndeplinit relaia (4.207). Iniial,
comutatorul C este pe poziia I i toate celulele binare din registrul de deplasare se
reseteaz. Dac polinomul corespunztor cuvntului recepionat este:
v ' ( x ) = a 0' a 1' x ... a 'n 1 x n 1 ,

(4.212)

atunci, conform conveniei, simbolurile a 'i sunt introduse prin comutatorul C n


registrul de deplasare n ordinea descresctoare a puterilor lui x. Dup ce ntreg
cuvntul recepionat a fost stocat n registrul de deplasare, comutatorul C este trecut
pe poziia II. n felul acesta s-au format sume ortogonale pe simbolul a 'n1 . Dac acest
simbol a fost recepionat corect, este satisfcut relaia (4.206) i la ieirea blocului 3
rezult 0 logic. n felul acesta, la tactul urmtor, pe de o parte, simbolul recepionat
corect a 'n1 este furnizat la ieire, iar pe de alt parte, introdus n prima celul binar a
registrului de deplasare, formndu-se astfel sume ortogonale pe a 'n 2 . Dac simbolul
a 'n1 a fost recepionat eronat, este satisfcut relaia (4.207) i la ieirea blocului 3
rezult 1 logic. n felul acesta, la tactul urmtor, pe de o parte, simbolul recepionat
eronat se corecteaz, fiind furnizat la ieire, iar pe de alt parte, este stocat corectat n
prima celul binar a registrului de deplasare, formndu-se sume ortogonale pe
simbolul a 'n 2 .
Dac codul ciclic este sistematic, cu cele k simboluri informaionale plasate
grupat la sfritul cuvntului de cod, comutatorul C va fi meninut pe poziia II k tacte,
deoarece intereseaz numai corecia simbolurilor informaionale. Dup corecia
simbolurilor informaionale, comutatorul C este trecut din nou pe poziia I,
efectundu-se simultan furnizarea la ieire a simbolurilor de control din cuvntul
precedent, (eventual eronate) i recepionarea urmtorului cuvnt.
Deoarece la ieirea circuitului combinaional rezult 1 logic, dac majoritatea
sumelor Aj au valoarea egal cu unitatea, decodarea descris este ntlnit n literatura
de specialitate i sub denumirea de decodare cu logic majoritar.
187

4.21. Definirea pachetelor de erori


n transmisiile pe canale perturbate s-a considerat numai cazul n care
perturbaiile afectau independent fiecare simbol binar transmis. Sunt ns i situaii
cnd durata perturbaiilor este mai mare dect cea alocat unui simbol binar, dnd
astfel natere la erori grupate, cunoscute sub denumirea de pachete de erori. Acelai
efect se petrece n cazul stocrii informaiei discrete pe diverse suporturi fizice (benzi
magnetice, discuri, dischete etc.). Perturbaia datorat unor zgrieturi sau alte defecte
ocup n acest caz un spaiu mai mare dect cel alocat nregistrrii unui simbol binar.
Prin definiie, se numete lungimea l a unui pachet de erori o succesiune de l
simboluri alturate n care primul i ultimul simbol sunt eronate.
Fie un canal de transmisiuni pe care pot aprea pachete de erori de lungime l,
care conin e erori (el). Dac pe un astfel de canal se transmit cuvintele de cod de
lungime egal cu nl, pachetul de erori de lungime l poate ocupa pe lungimea
cuvintelor de cod un numr de n-l+1 poziii distincte. Deoarece pachetul de erori de
lungime l conine e erori, iar dou dintre acestea apar la nceputul, respectiv sfritul
pachetului de erori, restul de e-2 erori ar putea ocupa n cadrul pachetului de erori un
numr de poziii distincte, egal cu combinri de l-2 luate cte e-2, ( C el 22 ) .
nseamn, deci, c pe un canal de transmisiuni pe care pot aprea pachete de
erori de lungime l, care conin e erori, numrul pachetelor de erori distincte se poate
determina cu relaia:
N = ( n l + 1)Cel22 , 2 e l n

(4.213)

Cuvntul eroare corespunztor unui pachet de erori de lungime l va fi de forma:

[E i ] = [ ... i e i+ 1 ... e i+ k ... e i+ l 2 i+ l 1 ...]

(4.214)

unde i=i+l-1=1 reprezint erorile de la capetele pachetului de erori, plasat pe poziia


i, oricare ar fi i = 1, (n - l + 1) , iar ei+k, k = 1, l - 2 va fi 1 logic, dac pe poziia i+k a
aprut o eroare i 0 logic, dac pe poziia respectiv nu s-a introdus eroare
(numrtoarea efectundu-se de la stnga la dreapta).
Exact ca n cazul apariiei erorilor individuale (independente), i la apariia
pachetelor de erori se pun aceleai dou probleme: detecia pachetelor de erori,
respectiv corecia acestora.

4.22. Relaii ntre coloanele matricei de control pentru


detecia, respectiv corecia pachetelor de erori

188

Se consider c pe un canal perturbat ar putea aprea pachete de erori de


lungime l sau mai mic coninnd e erori sau mai puine (2el).
Fie

[H] = [h1 h 2 ... h n ]

(4.215)

matricea de control n care prin [hi] s-au notat coloanele acesteia.


Corectorul corespunztor se poate calcula cu relaia (4.44), adic:

[Z i ] = [H][Ei ]T , ( )i = 1, ( n l + 1)

(4.216)

nlocuind (4.214) i (4.215) n relaia (4.216), rezult:

[Z i ] = i [h i ] e i + 1 [h i+ 1 ] ... e i+ l 2 [h i+ l 2 ] i + l 1 [h i+ l 1 ]

(4.217)

Se reamintete c pentru detecia erorilor matricea de control trebuie astfel


ntocmit, nct s rezulte un corector diferit de matricea nul ori de cte ori s-a
recepionat un cuvnt eronat.
Impunnd n relaia (4.217), [Zi] [0] i innd cont c i = i+l-1 = 1, rezult c
pentru detecia pachetelor de erori de lungime d sau mai mic este necesar s fie
satisfcut relaia:

[h i ] e i + 1 [h i+ 1 ] ... e i+ l 2 [h i + l 2 ] [h i+ l 1 ] [0]

(4.218)

oricare ar fi i = 1, (n - l + 1) i l = 1, 2, ..., d.
Cu alte cuvinte, rezult c pentru detecia pachetelor de lungime d sau mai mic
matricea de control trebuie astfel ntocmit, nct suma modulo 2 a d sau mai puine
coloane alturate s fie diferit de matricea nul.
Cum era de ateptat, n cazul deteciei pachetelor de erori se impun condiii mai
puin restrictive asupra matricei de control, comparativ cu cazul deteciei erorilor
independente. Aceasta se datoreaz faptului c n cazul pachetelor de erori se cunoate
aprioric c cele e erori apar grupate i nu sunt mprtiate aleator n cuvntul
recepionat.
Se reamintete c n cazul deteciei a d sau mai puine erori independente
matricea de control a fost astfel ntocmit, nct suma modulo 2 a oricror d sau mai
puine coloane oarecare i, deci, n particular, i a d sau mai puine coloane alturate
s fie diferit de matricea nul.
Pentru corecia erorilor matricea de control trebuie astfel ntocmit, nct s
rezulte corectori diferii de matricea nul, i, n plus, distinci pentru orice cuvnt
recepionat eronat.
Fie cuvntul eroare:

[E j ] = [... j e j+1 ... e j+ k ... e j+ l 2 j+ l1 ...]

(4.219)

corespunztor unui pachet de erori de lungime l, plasat pe poziia ji, cu j = j+l-1 = 1,


oricare ar fi j = 1, (n - l + 1) .
Corectorul corespunztor acestui cuvnt eroare se calculeaz cu relaia:
189

[Z j ] = [h j ] e j+1 [h j+1 ] ... e j+ l 2 [h j+ l 2 ] [h j+ l 1 ]

(4.220)

Pentru corecia pachetelor de erori de lungime d sau mai mic este necesar s
fie ndeplinite condiiile:

[Z i ] [0]

,
[Z j ] [0]
[Z i ] [Z j ] [Z i ] [Z j ] [0]

(4.221)

( ) i , j = 1, ( n l + 1), i j, l = 1, d.
innd cont de (4.217) i (4.220), sistemul de ecuaii (4.221) se poate scrie,
echivalent, sub forma:
[h i ] e i+1 [h i+1 ] ... e i+ l 2 [h i+ l 2 ] [h i+ l1 ]
[h j ] e j+1 [h j+ 1 ] ... e j+ l 2 [h j+ l 2 ] [h j+ l1 ] [0]

(4.222)

( ) i, j = 1, ( n l + 1), i j, l = 1, d.

Din relaia (4.222) rezult c pentru corecia pachetelor de lungime d sau mai
mic matricea de control trebuie astfel ntocmit, nct suma modulo 2 a dou grupe a
cte d sau mai puine coloane alturate s fie diferit de matricea nul.
Condiia rezultat este mai puin restrictiv dect n cazul coreciei unui numr
egal de erori independente. Se reamintete (v. 4.6.) c n cazul coreciei a d sau mai
puine erori independente, matricea de control a fost astfel ntocmit, nct suma
modulo 2 a 2d sau mai puine coloane oarecare, deci, n particular, i a dou grupe a
cte d, sau mai puine coloane alturate s fie diferit de matricea nul. Comparnd
relaia (4.218) cu (4.222), rezult c detecia pachetelor de lungime 2d sau mai mic
este echivalent cu corecia pachetelor de lungime d sau mai mic.

4.23. Determinarea numrului simbolurilor de control pentru


detecia pachetelor de erori
Fie cuvntul de cod
[v] = [a 0 a 1 ...a n 1 ]

(4.223)

i ecuaiile de paritate:
a 0 a d a 2 d ...= 0

a 1 a d +1 a 2 d +1 ...= 0


a d 1 a 2 d 1 a 3 d 1 ...= 0

190

(4.224)

unde simbolurile al cror indice este mai mare ca n-1 sunt considerate nule.
Acelai sistem de ecuaii se ntocmete i la recepie cu simbolurile cuvintelor
recepionate. Simbolurile care ar putea fi eronate de pachetele de erori de lungime d
sau mai mic se afl totdeauna n ecuaii diferite.
Datorit acestui fapt, dac se aleg primele d simboluri de verificare a paritii,
atunci nesatisfacerea uneia sau mai multor ecuaii pentru cuvntul recepionat este un
indiciu c exist un pachet de erori de lungime d sau mai mic.
Rezult, deci, c pentru detecia pachetelor de erori de lungime d sau mai mic
sunt necesare m=d simboluri de control.

4.24. Margini inferioare ale numrului simbolurilor de control


n cazul coreciei pachetelor de erori
n conformitate cu 4.22, corecia unui pachet de erori de lungime d sau mai
mic este echivalent cu detecia unui pachet de erori de lungime 2d sau mai mic.
innd cont de acest rezultat i de 4.23 rezult c o prim margine inferioar a
numrului simbolurilor de control necesar coreciei pachetelor de erori de lungime d
sau mai mic se determin cu relaia:
m 2d
(4.225)
O alt margine inferioar pentru numrul simbolurilor de control n cazul
coreciei pachetelor de erori se poate obine innd cont de numrul cuvintelor eroare
distincte care se pot forma. Considernd n relaia (4.213) pachetele de erori ce conin
e = 2, 3, ..., l erori, nseamn c numrul cuvintelor eroare distincte ce pot fi formate
se determin cu relaia:
N1 =

N = ( n l + 1) Cel 22 = ( n l + 1) 2 l 2

e= 2
e= 2

(4.226)

Considernd n relaia (4.226), l = 2, 3, ..., d, va rezulta un numr distinct de


cuvinte eroare care poate fi calculat cu relaia:
N2 =

N1 =
l= 2

( n l + 1) 2 l 2

l= 2

(4.227)

Lund n consideraie i cazul apariiei unei erori care determin n cuvinte


eroare distincte i cazul transmisiei fr erori, cruia i corespunde cuvntul eroare cu
toate componentele nule, rezult c n cazul apariiei pachetelor de erori de lungime d
sau mai mic numrul cuvintelor eroare distincte posibile este:

191

N 3 = 1 + n + N 2 = 1 + n + ( n l + 1) 2 l 2 =
l= 2

(4.228)

= (1 + n) 1 + 2 l 2 l 2 l 2

l= 2
l= 2
d

Pentru corecia pachetelor de erori de lungime d sau mai mic, numrul necesar
al simbolurilor de control, m, va trebui astfel ales, nct numrul corectorilor distinci,
egal cu 2m ce pot fi formai, s satisfac relaia:
2m N 3

(4.229)

n scopul scrierii mai compacte a relaiei (4.228), se consider suma progresiei


geometrice:

x d+ 1 1
x1
l= 0
Derivnd n raport cu x relaia (4.230), rezult:
d

xl =

(4.230)

( x 1)(d + 1)x d x d+ 1 + 1
lx =

( x 1) 2
l= 0
Impunnd x=2 n relaiile (4.230) i (4.231), se poate scrie:
d

l1

2l

l= 0

= 2 d+ 1 1

(4.231)

(4.232)

l 2 l 1 = 2 d (d 1) + 1

l= 0

(4.233)

Dar
d

l= 0

l= 0

=2

d+ 1

l 2

= 2 2
2

+2 2 + 2
2

2 l 2 =

l= 2

(4.234)

1,

de unde rezult:
d

2 l 2 = 2 d 1 1

l= 2

(4.235)

n mod analog:
d

l 2

l= 0

l 1

2l 2

l= 0

l 2

= 2 2 + 2 l 2 l 2 =
1

l= 2

(4.236)

= 2 (d 1) + 1,
d

de unde rezult:
d

l 2 l 2 = 2 d 1 (d 1)

l= 2
192

(4.237)

nlocuind (4.228) n (4.229) i innd cont de (4.235) i (4.237), se poate scrie:


2 m 2 d 1 ( n d + 2)

(4.238)

Logaritmnd n baz 2 relaia (4.238), rezult o alt margine inferioar a


numrului simbolurilor de control, i anume:

m d 1 + log 2 ( n d + 2)

(4.239)

Aceast margine inferioar constituie o condiie necesar i nu totdeauna


suficient, deoarece, ca i n cazul erorilor individuale, i n cazul pachetelor de erori
este posibil ca unor pachete de erori distincte, de aceeai lungime i pondere, s le
corespund corectori identici.
O alt margine inferioar a numrului simbolurilor de control pentru corecia
pachetelor de erori a fost stabilit de Vararmov i Gilbert. Pentru determinarea
acestei margini se pleac de la condiia pe care trebuie s o satisfac coloanele
matricei de control n cazul coreciei pachetelor de lungime d sau mai mic. n 4.22
aceast condiie este definit prin relaia (4.222).
Pentru a determina numrul simbolurilor de control pentru corecia pachetelor
de erori de lungime d sau mai mic, se presupune c primele n-1 coloane ale matricei
de control satisfac relaia (4.222), urmnd a se determina condiiile ce trebuie
ndeplinite de ultima coloan [hn].
n acest scop se nlocuiete indicele j+l-1 din relaia (4.222) cu n, astfel nct n
suma dat s intervin coloana [hn], adic se poate scrie:
[h i ] e i+1 [h i+1 ] ... e i+ l 2 [h i+ l 2 ] [h i+ l1 ]
[h n l+1 ] e n l+ 2 [h n l+ 2 ] ... e n1 [h n 1 ] [h n ]

(4.240)

Cu alte cuvinte, dac primele n-1 coloane ale matricei de control sunt astfel
ntocmite nct satisfac relaia (4.222), ultima coloan [hn] trebuie s satisfac relaia
(4.240) pentru toate combinaiile posibile ale membrului stng al acestei relaii. Pe de
alt parte, membrul stng al relaiei (4.240) conine un pachet de erori de lungime d
sau mai mic cu poziie fix, deoarece conine coloana [hn] i un pachet de erori de
lungime d sau mai mic, care poate fi plasat n n-d poziii distincte.
Numrul cuvintelor eroare distincte corespunztoare pachetului de erori de
lungime d sau mai mic ce conine coloana [hn] se determin cu relaia
N 1 = 2 d 1

(4.241)

deoarece o eroare este pe poziia n, iar celelalte d-1 sau mai puine erori posibile
determin un numr de cuvinte eroare distincte determinat de aceast relaie.
Cellalt pachet de erori va determina un numr de cuvinte eroare distincte ce
poate fi determinat din membrul drept al relaiei (4.238), nlocuind n cu n-d, deoarece
acest pachet poate ocupa n-d poziii distincte. Notnd cu N2 numrul cuvintelor eroare
distincte cauzate de cel de al doilea pachet de erori, se poate scrie:
N 2 = 2 d 1 ( n 2d + 2)
193

(4.242)

Numrul total al cuvintelor eroare distincte va fi atunci determinat cu relaia:


N = N 1 N 2 = 2 2 ( d 1) ( n 2d + 2)

(4.243)

Pentru ca [hn] s satisfac relaia (4.240) trebuie ca numrul de coloane cu m


simboluri (0,1) ce poate fi format, adic 2m, s fie suficient de mare, astfel nct, dup
formarea unui numr de N coloane distincte, stabilit cu relaia (4.243), s mai rmn
cel puin o coloan care s poat reprezenta pe [hn], adic:
2 m > N 2 m > 2 2 ( d 1) ( n 2d + 2)

(4.244)

Logaritmnd n baz 2 ambii membri ai relaiei (4.244), rezult:

m > 2(d 1) + log 2 ( n 2d + 2)

(4.245)

Valoarea lui m dat de relaia (4.245) este o condiie suficient i nu totdeauna


necesar pentru corecia pachetelor de erori de lungime d sau mai mic, deoarece n
calculul numrului N coloanele matricei de control s-au considerat distincte.

4.25. Codor ciclic corector de dou erori adiacente (alturate)


sau mai puine
Structura codorului ciclic corector de dou erori adiacente sau mai puine este
identic cu cea din cazul codorului ciclic corector de o eroare, cu deosebirea privind
alegerea polinomului generator al codului, g(x). Aa cum s-a stabilit anterior, pentru
corecia unei erori, este necesar un numr de simboluri de control, determinat ca
numrul ntreg pozitiv m, cel mai mic, ce satisface relaia:

2 m n + 1,

(4.246)

unde n este lungimea cuvintelor de cod.


Ca i n cazul codurilor Hamming corectoare de o eroare, detectoare de erori
duble, i n cazul coreciei a dou erori adiacente sau mai puine trebuie adugat un
simbol de control suplimentar, prin care s se poat decide dac pachetul de erori este
format din dou simboluri sau dintr-un singur simbol.
Notnd cu mc numrul simbolurilor de control necesare pentru corecia
pachetelor de erori de lungime doi sau mai mic, se poate scrie:

mc = m + 1

(4.247)

innd cont c lungimea cuvintelor de cod este egal cu suma dintre numrul
simbolurilor de control, mc, i numrul simbolurilor informaionale, k, se poate scrie:

n = mc + k

(4.248)

Cu (4.247) i (4.248) relaia (4.246) devine:


2 m c 1 m c + k + 1
194

(4.249)

Din acest motiv, polinomul generator al codului va fi de forma:

g( x ) = ( x 1) g 1 ( x )

(4.250)

unde g1(x) este un polinom primitiv de gradul m.


Dac polinomul primitiv g1(x) este de forma:
g 1 ( x ) = g 10 g 11 x g 12 x 2 . . . g 1m x m ,
g 10 = g 1m = 1, g 1i {0,1}

(4.251)

atunci, conform relaiei (4.250), rezult:


g( x ) = g 0 g 1 x . . . g m x m g m + 1 x m + 1 ,
g 0 = g m + 1 = 1, g i {0,1}

(4.252)

Structura codorului ciclic corector de dou erori alturate, sau mai puine, este
dat n figura 4.26.

Fig.4.26. Codor ciclic corector de dou erori adiacente sau mai puine.

Iniial, comutatorul C este pe poziia I i toate celulele binare se reseteaz. n


ritmul impulsurilor de tact, la intrare se aplic simbolurile informaionale care, pe de o
parte, rezult direct la ieire, iar pe de alt parte, sunt introduse n registrul de
deplasare cu reacie ntocmit dup polinomul g(x), dat de relaia (4.252). Dup ce
ultimul simbol informaional a fost introdus n registrul de deplasare cu reacie,
comutatorul C este trecut pe poziia II i n ultimele mc tacte la ieire vor rezulta
simbolurile de control.
n acest caz vor fi adevrate relaiile din cazul codorului ciclic, corector de o
eroare, realizat cu R.D.R., (4.153) (4.157), cu deosebirea c matricea conexiunilor i
matricea [U] sunt definite astfel:

0 B m+1
0 B
0 1 0 . . . 0
m

0 0 1 . . . 0
.

[T] = ; [U ] = .

.
0 0 0 . . . 1
0 B
g 0 g 1 g 2 . . . g m
2

1 B 1

195

(4.253)

Pentru fixarea ideilor, se consider c trebuie ntocmit cuvntul de cod pentru


transmiterea numrului N=3 pe un canal pe care pot s apar dou erori adiacente sau
mai puine. Numrul i structura simbolurilor informaionale rezult prin transcrierea
binar a numrului ce urmeaz a fi codat, adic (N)10 = (3)10 = (11)2.
Conform relaiei (4.249), rezult 2 m c 1 m c + 3 , de unde se deduce mc=4.
Din relaia (4.250) rezult c polinomul primitiv g1(x) trebuie s aib gradul
m=3. Fie polinomul g1(x)=1x2x3. Rezult atunci g(x) = (x 1) (1 x2 x3) = 1
x x2 x4. Structura codorului pentru acest caz particular este dat n figura
4.27.

Fig.4.27. Codor ciclic ntocmit dup polinomul g(x) =1 x x2 x4.

Funcionarea codorului este sintetizat


n tabelul alturat. Cuvntul de cod rezultat la
ieire este [v] = [1 0 0 1 1 1], unde primele 4
1
1
simboluri sunt de control, iar ultimele dou
2
1
informaionale. Imediat dup tactul 3, cnd
3
1
ultimul simbol informaional a fost introdus
4
0
n registru de deplasare cu reacie,
5
0
comutatorul C este trecut pe poziia II, la
6
1
ieire rezultnd, n ritmul impulsurilor de
tact, simbolurile de control, ca sum modulo 2 a strilor celulelor binare B2, B3 i B4.
Tact

In
0
1
1

B1
0
0
1
1
0
0
0

B2
0
0
0
1
1
0
0

B3
0
0
0
0
1
1
0

B4
0
0
0
0
0
1
1

Ieire

4.26. Decodor ciclic corector de dou erori adiacente


(alturate), sau mai puine
Fie

v ' ( x ) = a '0 a 1' x . . . a 'n 1 1 x n1 1

(4.254)

cuvntul recepionat sau, sub form matriceal:

[v ' ] = [a '0 a 1' ... a n' 1 1 ]

(4.255)

n 1 < 2 m 1,

(4.256)

Dac

196

unde m este gradul polinomului primitiv utilizat, atunci la sfritul cuvntului


recepionat va fi adugat un numr de zerouri, pn cnd este satisfcut relaia
2m 1 = n

(4.257)

Cuvntul recepionat, cu eventualele zerouri adugate la sfritul cuvntului, va


fi de forma:

v ' ( x ) = a '0 a 1' x . . . a n' 1 1 x n 1 1 a 'n 1 x n 1 . . . a n' 1 x n 1 ,

(4.258)

unde a 'n 1 = . . . = a n' 1 = 0 .


Adugarea de zerouri la sfritul cuvntului recepionat pn la satisfacerea
relaiei (4.257) este necesar pentru a fi satisfcut relaia:
[T]n = [I m + 1 ],

(4.259)

unde [T] este matricea conexiunilor din relaia (4.253), iar [Im+1] matricea unitate de
ordinul m+1.
Structura decodorului ciclic, corector de dou erori adiacente sau mai puine
este identic cu cea din cazul decodorului ciclic corector de o eroare, realizat cu
R.D.R. (fig.4.21), cu deosebirea c registrele de deplasare cu reacie se ntocmesc
dup polinomul generator g(x) dat de relaia (4.250), iar descifratoarele trebuie astfel
sintetizate, nct s furnizeze cte o unitate logic cnd simbolul eronat ajunge n
ultima celul M0 a registrului principal.
Fr a micora generalitatea, se presupune c cele dou simboluri alturate
eronate sunt a 'n s i a 'n s1, oricare ar fi s=1,(n-1), adic structura matriceal a
cuvntului recepionat este de forma:
[v ' ] = [a 0 a 1 ... , ( a n s 1 1), ( a n s 1), ... a n 1 ]

(4.260)

Matricea de control se va determina cu relaia (4.169), unde matricele [T] i [U]


sunt specificate de relaia (4.253). Corectorul cuvntului recepionat se va calcula cu
relaia:
[Z 2 ] = [H][v ' ]T

(4.261)

Avnd n vedere c la emisie este satisfcut relaia (4.154), rezult:


[Z 2 ] = [T]n s 1 [U ] [T]n s [U ],

(4.262)

sau, innd cont de (4.259), se poate scrie:


[Z 2 ] = [T] s 1 [U ] [T] s [U ]

(4.263)

Primul simbol eronat din cele dou adiacente, adic a 'n s , va ajunge n ultima
celul binar, M0, a registrului principal dup s-1 tacte. Starea R.D.R.-ului dup s-1
tacte se determin cu relaia:
[S 2 ] = [T]s 1 [Z 2 ],

sau, innd cont de (4.263), rezult:


197

(4.264)

[S 2 ] = [T]2 [U ] [T]1 [U ]

(4.265)

Cnd R.D.R.-ul ajunge n starea [S2], descifratorul trebuie astfel sintetizat, nct
s furnizeze la ieire o unitate logic care, pe de o parte, sumat modulo 2 cu simbolul
a 'n s l corecteaz, iar pe de alt parte, va fi introdus n R.D.R., astfel c la tactul
urmtor, cnd cel de al doilea simbol eronat, a 'n s1, ajunge n celula binar M0, starea
R.D.R.-ului devine:

[S 1 ] = [T][S 2 ] [U ]

(4.266)

nlocuind (4.265) n relaia (4.266), rezult


[S 1 ] = [T]1 [U ] [U ] [U ] = [T]1 [U ]

(4.267)

Cnd R.D.R.-ul ajunge n starea [S1], descifratorul va trebui s furnizeze o alt


unitate logic la ieire care, pe de o parte, se va aduna modulo 2 cu simbolul eronat
a 'n s1, corectndu-l, iar pe de alt parte, va fi introdus n R.D.R., astfel c la tactul
urmtor starea acestuia va deveni:

[S 0 ] = [T][S 1 ] [U ] = [U ] [U ] = [0 ],

(4.268)

pregtindu-l astfel pentru recepionarea urmtorului cuvnt.


Dac n cuvntul eronat ar fi aprut o singur eroare, de exemplu simbolul a 'n r
ar fi eronat, cuvntul recepionat va fi de forma:
[v ' ] = [a 0 a 1 ..., ( a n r 1), ... a n 1 ]

(4.269)

Cnd ntregul cuvnt recepionat este memorat n registrul principal, starea


R.D.R.-ului, ca i n cazul decodorului ciclic corector de o eroare, va stabili corectorul
cuvntului recepionat, determinat cu relaia:
[Z1 ] = [H][v' ] T

(4.270)

nlocuind matricea de control din relaia (4.169), unde [T] i [U] sunt
specificate de (4.253) i [v] dat de (4.269) i avnd n vedere c la emisie codorul
satisface relaia (4.154), rezult:
[Z 1 ] = [T]n r [U ],

(4.271)

[Z 1 ] = [T] r [U ]

(4.272)

sau, innd cont de (4.259):


Simbolul a 'n r ajunge n celula binar M0 a registrului principal dup r-1 tacte.
Starea R.D.R.-ului dup r-1 tacte devine:
[S 1 ] = [T]r 1 [Z 1 ] = [T]1 [U ],

(4.273)

adic aceeai ca aceea dat de relaia (4.267).


nseamn, deci, c n cazul apariiei a dou erori adiacente sau mai puine,
descifratorul trebuie astfel sintetizat, nct la apariia strilor [S2] i [S1] s furnizeze
198

1 logic la ieire. Se poate demonstra, exact ca n cazul descifratorului din cadrul


decodorului ciclic corector de o eroare ( 4.18), c, dac matricea conexiunilor este
dat de relaia (4.253), atunci:
g 1 g 2 ... g m 1
1 0 ... 0 0

[T]1 = 0 1 ... 0 0

0 0 ... 1 0

(4.274)

Pentru fixarea ideilor, se presupune c s-a recepionat cuvntul [v] = [100100]


i c la codare s-a folosit polinomul generator g(x) = 1 x x2 x4. Dac pe canalul
de transmisiuni pot s apar dou erori adiacente sau mai puine, pentru a deduce
numrul zecimal transmis se verific mai nti relaia (4.257). Deoarece g(x) are
gradul mc=4, rezult c polinomul primitiv are gradul m=3. nseamn c 2m-1=23-1=7,
n timp ce lungimea cuvntului recepionat este n1=6. Va trebui adugat un zero la
sfritul cuvntului recepionat, adic se consider [v] = [1001000]. Particulariznd
relaia (4.253) pentru acest caz, rezult:

0 B 4
010 0
0 B
0 010
3
[T] =
si
[
U
]
=

0 B 2
0 0 01
1 110
1 B 1
Conform relaiei (4.274), se poate scrie:
1101
10 0 0
[T]1 =
Starea [S1], conform relaiei (4.273), se poate determina cu relaia:
.
010
0

0 010
1101 0 1 B 4
1000 0 0 B
3
=
[S 1 ] =
0100 0 0 B 2

0010 1 0 B1

Pentru a determina starea [S2] cu relaia (4.265), se calculeaz mai nti


110 1 1 1
10 0 0 0 1
2
1
1
[T] [U ] = [T] ([T] [U ]) =
= .
0 10 0 0 0
0 0 10 0 0
nseamn atunci c:

199

1 1 0 B 4
1 0 1 B
3
[S 2 ] = =
.
B

0
0
0
2


0 0 0 B 1
Descifratorul trebuie s sesizeze strile [S1] i [S2], adic trebuie s verifice
tabela de adevr:
S1
S2

B1
0
0

B2
0
0

B3
0
1

B4
1
0

Y
1
1

Din aceast tabel de adevr rezult:


Y = B1 B 2 B 3 B 4 B1 B 2 B 3 B 4 =
= B1 B 2 (B 3 B 4 B 3 B 4 ) = B1 B 2 (B 3 B 4 ).

Schema decodorului ciclic capabil s corecteze dou erori alturate sau mai
puine din cuvntul recepionat, la care s-a mai adugat un zero la sfritul acestuia,
este dat n figura 4.28.

Fig.4.28. Decodor ciclic corector de dou erori adiacente sau mai puine, ntocmit dup polinomul
g(x) = 1 x x2 x4.

Funcionarea decodorului este sintetizat n tabela de mai jos:

200

Tact
1
2
3
4
5
6
7
8
9
10
11
12
13
14

In.
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0

M6
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0

M5
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0

M4
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0

M3
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0

M2
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0

M1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0

M0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1

B1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0

B2
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0

B3
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0

B4
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0

Ie.

0
1
1
1
0
0
1

Iniial, comutatorul C este pe poziia I i toate celulele binare se reseteaz. Dup


ce la intrare s-a aplicat cuvntul [v] = [1 0 0 1 0 0 0], urmtorul cuvnt s-a considerat
format din 7 zerouri. Cnd comutatorul este pe poziia I starea celulei binare B1, la un
tact oarecare, este egal cu suma modulo 2 a strilor precedente ale intrrii i celulelor
binare B2, B3 i B4. Cnd comutatorul C este pe poziia II, starea celulei binare B1, la
un tact oarecare, se obine sumnd modulo 2 strile precedente ale celulelor binare B2,
B3 i B4 i eventual a lui 1 logic rezultat la ieirea porii I1. (Intrarea a=1 numai
cnd comutatorul C este pe poziia II). Se observ c la tactul 9 starea R.D.R.-ului este
egal cu [S2], determinnd la ieirea descifratorului Y=1 care, validat de poarta logic
I1, se adun modulo 2 la simbolul memorat n celula M0, furniznd la ieire 01=1
pe de o parte, iar pe de alt parte, determin la tactul urmtor ca starea R.D.R.-ului s
devin egal cu [S1], obinndu-se din nou Y=1. n felul acesta, la tactul 10, la ieire
rezult 01=1, iar starea R.D.R.-ului la tactul urmtor ajunge cu toate celulele binare
n starea de 0 logic, fiind astfel pregtit pentru recepionarea urmtorului cuvnt.
Cuvntul corectat obinut la ieire este [v] = [1 0 0 1 1 1 0]. ndeprtnd ultimul zero,
rezult c s-a transmis cuvntul de cod [v] = [1 0 0 1 1 1]. Deoarece polinomul
generator al codului, g(x), are gradul 4, nseamn c primele 4 simboluri sunt de
control, iar urmtoarele de informaie. Transcriind n zecimal numrul binar format
din simbolurile informaionale, nseamn c s-a transmis numrul (11)2=(3)10. Dac nu
se efectua corecia, se decidea c s-a transmis numrul zero.

201

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