Sunteți pe pagina 1din 5

20.

Coduri ciclice
20.1. Coduri polinomiale
Prezentarea codului (n,k) sub forma consecutivităţii
U=U0, U1, …Un-1 şi formarea lui cu ajutorul sistemului de
ecuaţii de verificare sau a matricei generatoare nu reprezintă
singura posibilitate de codare. Un mod comod şi larg
răspândit de prezentare a acestei combinaţii este forma
polinomială, unde elementele U0, U1, …Un-1 reprezintă
coeficienţi ai unui polinom X:
U(X) = U0 + U1X + U2 X2 + ... + Un −1Xn −1 (20.1)
Acest mod de prezentare a codului permite substituirea
operaţiilor asupra combinaţiei de simboluri cu operaţii asupra
polinomului. Asupra polinomului U(X) pot fi efectuate
următoarele operaţii:
a) sumarea a 2 polinoame – corespunde operaţiei suma
modulo 2 a coeficienţilor cu acelaşi grad pentru X.
Exemplu:
X3 + X2 + 1
(20.2)
+ X+1
X3 + X2 + X
b) Produsul a 2 polinoame se calculează conform
regulilor de înmulţire a funcţiilor cu putere, însă coeficienţii de
acelaşi grad obţinuţi se adună după suma modulo 2.
Exemplu:
X3 + X2 + 1
x X+1 (20.3)
X + X +1
3 2
+
X4 + X3 + X
X4 + X2 + X + 1
c) Împărţirea a 2 polinoame se face conform regulilor de
împărţire a funcţiilor cu putere, însă operaţia de scădere este
înlocuită cu operaţia suma modulo 2.
Exemplu:
X4 + X2 + X + 1 X + 1

X4 + X3 X3 + X2 + 1

X3 + X2 + X + 1 (20.4)
X3 + X2
X+1
X+1
0  rest
20.2 Codarea cu ajutorul codului ciclic

O clasă aparte a codurilor polinomiale o reprezintă


codurile ciclice.
Un cod (n,k) este ciclic dacă în urma deplasării ciclice
a combinaţiei de cod se obţine o altă combinaţie de cod a
secvenţei informaţionale. Cu alte cuvinte, dacă U=U0,
U1, …Un-1 este o combinaţie de cod, atunci şi V=Un-1,
U0, U1, … Un-2, obţinut în urma deplasării ciclice a lui U,
reprezintă combinaţia de cod a secvenţei m.
Algoritmul de formare a cuvântului de cod
U = Un −1 , Un − 2 ,...., Uk −1 , Uk − 2 ,...U1 , U0 pentru o secvenţă
informaţională m = mk −1 , mk − 2 ,..., m0 include următorii
paşi:
a) Reieşind din lungimea k a secvenţei informaţionale
m şi numărul erorilor corectabile qc, se determină numărul
minim necesar r al simbolurilor de control şi lungimea totală
a combinaţiei de cod n = k + r . Numărul r se alege din
condiţia:
r = pq c , (20.5)
unde p este un număr întreg determinat din condiţia
2p  n + 1 (20.6)
Pentru corecţia erorilor singulare (q c = 1) , relaţia (20.6)
se reduce astfel:
2r  n + 1 (20.7)
sau
2r  k + r + 1 . (20.8)
După alegerea valorii r, se determină lungimea
n = k + r.
Exemplu: Fie : m = 1011 şi qc=1.
Dacă r = 2 atunci 2  4 + 2 + 1 , iar dacă r = 3;
2

23 = 4 + 3 + 1, deci alegem r = 3 şi n = 4 + 3 = 7 .
b) Secvenţa informaţională m = mk −1 , mk − 2 ,..., m0 se
înlocuieşte cu polinomul echivalent:
m(x) = mk −1xk −1 + ... + m1x + m0 .(20.9)
Exemplu: Polinomul echivalent informaţional este
m(x ) = x 3 + x + 1
a. Se calculează produsul:
A(x ) = m(x )xr . (20.10)
Exemplu:
( )
A(x ) = m(x )x r = x 3 + x + 1  x 3 = x 6 + x 4 + x 3
d) În funcţie de valoarea lui r, din tabelul 20.1 se
selectează polinomul generator g r (x ) .
Tabelul 20.1. Tabelul polinoamelor generatoare

r g r (x )
1 x+1
2 x2 + x + 1
3 x3 + x2 + 1; x3 + x + 1
4 x4 + x 3 + 1 ; x4 + x + 1 ; x4 + x3 + x2 + x + 1
x5 + x 2 + 1 ; x5 + x 3 + 1 ; x5 + x4 + x 3 + x2 + 1 ;
5
x5 + x4 + x3 + x + 1 ;
x6 + x + 1 ; x6 + x3 + 1 ; x6 + x5 + 1; x6 + x4 + x2 + x + 1 ;
6
x + x + x + x+1
6 4 3

Exemplu:
Deoarece r=3 alegem polinomul generator
g 3 (x) = x3 + x2 + 1 .
e) Se divizează polinomul A(x) la polinomul generator
ales g r (x ) şi se determină restul de divizare R(x).
Exemplu:
x6 + x4 + x 3 x 3 + x2 + 1

x6 + x5 + x 3 x 3 + x2
x5 + x4
x5 + x4 + x2
x 2 = R( x)
f) Se determină polinomul combinaţiei de cod U(x)
conform relaţiei:
U(x ) = A(x ) + R(x ) (20.11)
Exemplu:
U(x ) = A(x ) + R (x ) = x 6 + x 4 + x 3 + x 2
g) Se determină combinaţia de cod U corespunzător
polinomului U(x).
Exemplu:
U = (1011100) , dintre care primele 4 poziţii sunt
ocupate de simbolurile informaţionale m, iar ultimele 3 sunt
poziţii de control.

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