Documente Academic
Documente Profesional
Documente Cultură
Cap4 PDF
Cap4 PDF
d( x, y) =
(ai bi )
i= 1
(4.1)
(4.3)
d( x, y) d( x, z) + d( z, y), ( ) x, y, z M n2n
(4.4)
(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
(4.9)
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:
(4.15)
(4.16)
(4.17)
Dmin = 2e + 1
(4.18)
[v ] = [a 1 a 2 . . . a n ], a i {0,1},
(4.20)
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)
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
(4.28)
[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
[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.
[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.
(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:
(4.40)
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)
[E i ] = [. . . i . . .]
(4.47)
[H] = [h 1 h 2 . . . h n ]
(4.48)
[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)
142
(4.52)
[h i ] [h j ] [0], ( )i, j = 1, n , i j
(4.53)
[v a ] = [a 1 a 2 ... a n ]
(4.54)
[v b ] = [b 1 b 2 ... b n ]
(4.55)
(4.56)
[H][v b ]T = [0]
(4.57)
(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.
[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)
[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.
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)
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
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)
-----------------------------------------
(4.80)
2e 1
C in 1
i= 0
(4.81)
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.82)
(4.83)
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
1
0
10 0 011 1
1
[Z] = [H][v ' ]T = 010101 = 0 [Z]T = [101]
1
0 01110 1
1
1
149
(4.84)
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)
[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)
151
(4.90)
'
'
'
'
zm 1 = c 2 i 3 i 6 . . . i n
(4.91)
(4.92)
(4.93)
(4.94)
(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)
( 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
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)
(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)
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)
v( x ) = r( x ) q( x ) g( x ) r( x )
v( x ) = q( x ) g( x )
(4.117)
r( x ) r( x ) = 0
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
(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}.
Fig. 4.5. Reprezentarea elementelor de baz din circuitele de multiplicare sau divizare
(4.119)
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:
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)
160
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)
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)
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=
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
163
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)
(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)
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)
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
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.
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.
sm
s
m 1
[S ] = . . . . .
s2
s1
(4.132)
s m 1
[S ' ] = ....... ,
s '2
'
s1
(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)
167
(4.138)
(4.139)
(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)
(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)
168
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
2m m + k + 1
(4.145)
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.
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)
(4.150)
[S ( 2)] = a n 1 [T][U ] a n 2 [U ],
(4.151)
(4.152)
(4.153)
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)
(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.
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.158)
(4.159)
(4.161)
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
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)
(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)
(4.166)
(4.167)
(4.168)
(4.169)
(4.170)
v ' ( x ) = a 0 a 1 x . . . ( a n r 1) x n r . . . a n 1 x n 1
(4.171)
(4.173)
(4.174)
(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)
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 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)
[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)
[S 0 ] = [T][S 1 ] [U ]
(4.183)
[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.
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
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
(4.185)
(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)
182
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
(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.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)
(4.200)
(4.201)
[E] = [e 0 e 1 ... e n 1 ]
(4.202)
(4.203)
J
e ,
2
(4.205)
unde [J/2] semnific partea ntreag a numrului J/2, atunci aceste erori pot fi
corectate.
185
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)
(4.209)
(4.210)
2i + 2 > 2i ,
(4.211)
186
(4.212)
(4.213)
(4.214)
188
(4.215)
[Z i ] = [H][Ei ]T , ( )i = 1, ( n l + 1)
(4.216)
[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)
[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:
(4.219)
(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.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.
N = ( n l + 1) Cel 22 = ( n l + 1) 2 l 2
e= 2
e= 2
(4.226)
N1 =
l= 2
( n l + 1) 2 l 2
l= 2
(4.227)
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)
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)
(4.238)
m d 1 + log 2 ( n d + 2)
(4.239)
(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)
(4.243)
(4.244)
(4.245)
2 m n + 1,
(4.246)
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)
(4.249)
g( x ) = ( x 1) g 1 ( x )
(4.250)
(4.251)
(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.
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)
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.254)
(4.255)
n 1 < 2 m 1,
(4.256)
Dac
196
(4.257)
(4.258)
(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)
(4.261)
(4.262)
(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 ],
(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)
(4.267)
[S 0 ] = [T][S 1 ] [U ] = [U ] [U ] = [0 ],
(4.268)
(4.269)
(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)
(4.273)
[T]1 = 0 1 ... 0 0
0 0 ... 1 0
(4.274)
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
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
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.
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
201