Documente Academic
Documente Profesional
Documente Cultură
Coduri ciclice
1. {s(X)} ∈ I ⇐⇒ g(X)|s(X);
2. g(X)|f (X).
Teorema 9.2 În algebra polinoamelor modulo f (X), pentru orice ideal I există un
polinom normat unic g(X) de grad minim, cu {g(X)} ∈ I.
Reciproc, pentru orice divizor normat al lui f (X) există un ideal generat de acel
divizor.
97
98 PRELEGEREA 9. CODURI CICLICE
se divid unul pe altul şi - având acelaşi grad - diferă printr-o constantă. Polinoamele
fiind normate, această constantă este 1. Deci g(X) = g 0 (X).
Reciproc, fie g(X) un divizor normat al polinomului f (X) şi ({g(X)}) idealul
generat de el. Un element al acestui ideal este {a(X)} ∈ ({g(X)}), deci are forma
{a(X)} = {b(X)}{g(X)} = {b(X)g(X)}. 2
Teorema 9.3 Fie q un număr prim, f (X) ∈ Zq [X], normat, cu grad(f (X)) = n
şi fie f (X) = g(X)h(X). Dacă grad(h(X)) = k, atunci ı̂n algebra polinoamelor
modulo f (X), idealul ({g(X)}) are dimensiunea k.
Demonstraţie: Să observăm că vectorii (asociaţi polinoamelor)
O soluţie a unei astfel de relaţii de recurenţă liniară este orice succesiune infinită de
forma a0 , a1 , . . . , ap , . . . care verifică relaţia dată, cu h0 , h1 , . . . , hk date, h0 6= 0,
9.1. RELAŢII DE RECURENŢĂ LINIARĂ 99
• Orice combinaţie liniară de soluţii ale unei relaţii de recurenţă liniară este tot
o soluţie.
• Soluţiile pentru care condiţiile iniţiale sunt respectiv (1, 0, . . . , 0), (0, 1, . . . , 0),
. . . , (0, 0, . . . , 1) determină orice altă soluţie. Deci, spaţiul soluţiilor relaţiei de
recurenţă (1) are dimensiunea cel mult k.
Teorema 9.5
Cel mai mic n pentru care X n − 1 se divide cu h(X) este n = 7. Cum g(X) =
X7 − 1
= X 3 + X + 1, rezultă că circuitul va genera cuvintele idealului ({g(X)}).
h(X)
Fiecare din ele este caracterizat de cele patru valori binare iniţiale din elementele
de ı̂nmagazinare. Vor fi deci 24 = 16 cuvinte de lungime 7. Ele corespund tuturor
polinoamelor de grad maxim 6 din Z2 [X], care se divid cu g(X).
De exemplu, pentru valorile iniţiale (1, 0, 1, 1), funcţionarea circuitului timp de
şapte tacţi este:
9.2. DEFINIREA CODURILOR
Ieşire CICLICE 101
− 1 0 1 1
1 0 1 1 0
0 1 1 0 0
1 1 0 0 0
1 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 1 0 1 1
În elementele de ı̂nmagazinare se regăsesc valorile iniţiale, iar la ieşire s-a obţinut
polinomul f (X) = X 6 + X 4 + X 3 = X 3 g(X).
Propoziţia 9.1 Produsul a două polinoame este zero dacă şi numai dacă toate
produsele scalare dintre vectorul unui polinom şi permutările ciclice ale vectorilor
celuilalt polinom sunt zero.
n−1
X n−1
X
i
Demonstraţie: Fie a(X), b(X) ∈ Zq [X], a(X) = ai X , b(X) = bi X i .
i=0 i=0
Atunci {c(X)} = {a(X)}{b(X)} = {c0 + c1 X + . . . + cn−1 X n−1 } unde
j
X n−1
X
cj = ai bj−i + ai bj+n−i = (a0 a1 . . . an−1 ) · (bj bj−1 . . . b0 bn−1 bn−2 . . . bj+1 )T
i=0 i=j+1
şi Propoziţia rezultă din faptul că cj = 0 ∀j. 2
Teorema 9.6 Un subspaţiu liniar Vn ⊆ An este ciclic dacă şi numai dacă este ideal.
102 PRELEGEREA 9. CODURI CICLICE
Matricea generatoare
corespunzătoare codului ciclic va fi
g0 g1 . . . gn−k 0 0 ... 0
0 g 0 . . . g n−k−1 gn−k 0 ... 0
Gn,k =
.
..
0 0 ... 0 g0 g1 . . . gn−k
Rezultă că un cod ciclic poate fi organizat ca un (n, k) - cod liniar, unde n este
Xn − 1
gradul polinomului X n − 1 iar k este gradul polinomului h(X) = .
g(X)
Exemplul 9.3 Codul cu repetiţie este un cod ciclic al cărui polinom generator este
g(X) = 1 + X + X 2 + . . . + X n−1 .
Exemplul 9.4 Să considerăm codul ciclic binar A de lungime 7, cu polinomul gen-
erator g(X) = 1 + X + X 3 (vezi şi Exemplul 9.1). El are matricea generatoare
1 1 0 1 0 0 0
0 1 1 0 1 0 0
G=
.
0 0 1 1 0 1 0
0 0 0 1 1 0 1
9.3. GENERAREA CODURILOR CICLICE 103
Exemplul 9.5 Fie codul ciclic de lungime 6 peste Z3 , de polinom generator g(X) =
2 + X 2 . Matricea sa generatoare
este
2 0 1 0 0 0
0 2 0 1 0 0
G= .
0 0 2 0 1 0
0 0 0 2 0 1
El este deci un (6, 4) - cod ternar.
Exemplul 9.6 Să reluăm codul din Exemplul 9.4. Deoarece X 7 − 1 = (1 + X)(1 +
X + X 3 )(1 + X 2 + X 3 ), pentru acest cod, avem
h(X) = (1 + X)(1 + X + X 3 ) = 1 + X 2 + X 3 + X 4 .
Matricea generatoare a codului ({h(X)}) este
1 0 1 1 1 0 0
0 1 0 1 1 1 0 .
0 0 1 0 1 1 1
deci matricea de control
asociată codului din
Exemplul 9.4 va fi
0 0 1 1 1 0 1
H = 0 1 1 1 0 1 0 .
1 1 1 0 1 0 0
Deoarece coloanele sale sunt nenule şi distincte două câte două, codul astfel cons-
truit este echivalent cu un cod Hamming (7, 4).
Pentru a obţine un cod ciclic sistematic, este convenabil să alegem o altă bază pentru
idealul ({g(X)}). Să observăm că pentru i = n − k, n − k + 1, . . . , n − 1, putem scrie
Exemplul 9.8 Circuitul liniar construit ı̂n Exemplul 9.1 este un circuit de codificare
pentru codul generat de polinomul g(X) = 1 + X + X 3 . Exemplul descrie şi un mod
de funcţionare pentru cuvântul de informaţie 1011.
Dacă s-ar lua drept polinom generator 1 + X 2 + X 3 + X 4 , idealul generat de el
este dat de circuitul liniar
²¯
- + -
6 ±°
¾ ¾ ¾ s6 ¾ ?
X7 − 1
deoarece h(X) = 2 3 4
= 1 + X 2 + X 3.
1+X +X +X
Dezavantajul unei asemenea metode ı̂l constituie faptul că, nefiind un cod sis-
tematic, prin codificare poziţiile de informaţie se pierd. Pentru a obţine un cod
sistematic, procedăm ı̂n felul următor: mesajul de informaţie este considerat un
polinom u0 (X) de gradul n − 1 având poziţiile de informaţie drept coeficienţii lui
X n−k , . . . , X n−1 , restul coeficienţilor fiind nuli. Atunci avem u0 (X) = q(X)g(X) +
r(X) cu grad(r(X)) < grad(g(X)) = n − k de unde
{u0 (X) − r(X)} reprezintă un cuvânt - cod ı̂n care coeficienţii lui X n−k , . . . , X n−1
sunt poziţiile de informaţie nealterate, iar coeficienţii lui r(X) cu semnul schimbat
(deci coeficienţii lui X 0 , X 1 , . . . , X n−k−1 ) sunt caracterele de control.
Circuitul care realizează această codificare este următorul:
106 PRELEGEREA 9. CODURI CICLICE
i
P
PP
¾ s s ... ¾ s P¾
#Ã
? #Ã
? #Ã
? #Ã
? #Ã6
−1
−g0 −g1 −g2 −gn−k−1 gn−k
El funcţionează astfel:
• Iniţial cele n − k elemente de ı̂nmagazinare conţin 0, ı̂ntrerupătorul de ieşire
este decuplat iar cel de feedback - cuplat.
• Se introduc cele k elemente ale mesajului de informaţie atât ı̂n circuit cât şi
ı̂n canalul de comunicaţie. După k momente, ı̂n elementele de ı̂nmagazinare
avem coeficienţii restului r(X).
• Se decuplează feedbackul şi se cuplează circuitul la canalul de comunicaţie.
• Coeficienţii restului - cu semn schimbat - se transmit ı̂n canal imediat după
poziţiile de informaţie.
Deoarece provine din circuitul de ı̂mpărţire cu g(X), acelaşi circuit poate fi folosit
şi pentru detectarea erorilor la recepţie. Pentru aceasta, după decuplarea ı̂ntrerupă-
torului de ieşire şi cuplarea celui de feedback, se introduce ı̂n circuit cuvântul
recepţionat. Dacă ı̂n momentul n restul nu este nul (cel puţin un element de
ı̂nmagazinare conţine un element nenul) ı̂nseamnă că a apărut cel puţin o eroare
ı̂n transmisie.
Exemplul 9.10 Codul de lungime 7 generat de g(X) = 1 + X 2 + X 3 , poate fi
construit folosind circuitul liniar:
¾ r Z
}
Z¾
? 6
?
- - - +j - -
r +j
? -½ >-
½
6 - Canal
u3 u2 u1 u0 r
9.5 Exerciţii
9.1 Să se determine toate codurile ciclice de lungime 5
(a) : peste Z2 ; (b) : peste Z3 .
9.2 Construiţi o bază pentru cel mai mic cod ciclic de lungime n care conţine
cuvântul v:
(a) v = 1101000, n = 7;
(b) v = 010101, n = 6;
(c) v = 11011000, n = 8.
9.3 Pentru fiecare din cuvintele de mai jos găsiţi polinomul generator al celui mai
mic cod ciclic care conţine cuvântul:
9.5. EXERCIŢII 107
9.4 Să se afle polinomul generator al codului ciclic C ştiind o bază S a sa:
S = {010, 011, 111};
S = {1010, 0101, 1111};
S = {0101, 1010, 1100};
S = {1000, 0100, 0010, 0001};
S = {11000, 01111, 11110, 01010}.
9.5 Într-o codificare sistematică, codificaţi mesajul de informaţie 1101 ı̂ntr-un cu-
vânt - cod al unui cod binar ciclic de lungime 7 cu polinomul generator g(X) =
1 + X 2 + X 3.
9.6 Pentru codul definit mai sus codificaţi mesajele de informaţie date de poli-
noamele: 1 + X 2 , X, X + X 2 + X 3 .
Fiind date cuvintele - cod X 2 + X 4 + X 5 , 1 + X + X 2 + X 4 , X 2 + X 3 + X 4 + X 6 ,
găsiţi mesajele de informaţie corepunzătoare.
9.7 Construiţi circuite liniare pentru codificare şi decodificare ale codului ciclic bi-
nar de lungime 7 generat de polinomul g(X) = (1 + X 2 + X 3 )(1 + X).
9.8 Care este lungimea minimă a unui cod ciclic binar de polinom generator
g(X) = 1 + X 2 + X 3 + X 4 ?
Construiţi circuite liniare pentru codificarea şi decodificarea sa.
9.9 Construiţi un circuit liniar pentru codificarea (15, 11) - codului Hamming binar.
9.10 Construiţi matricea de control a codului ciclic binar de lungime n şi polinom
generator g(X):
n = 6, g(X) = 1 + X 2 ;
n = 8, g(X) = 1 + X 2 ;
n = 9, g(X) = 1 + X 3 + X 6 ;
n = 15, g(X) = 1 + X + X 4 (generează codul Hamming);
n = 23, g(X) = 1 + X + X 5 + X 6 + X 7 + X 9 + X 11 (generează codul Golay);
n = 15, g(X) = 1 + X 4 + X 6 + X 7 + X 8 .
9.11 Sunt ciclice codurile liniare binare definite de matricile generatoare definite
mai jos ?
1 0 1 1 1 0 0 1 1 1 1 0 0 0
1 1 0 1 0 0 0 0 1 1 1 1 0 0
1 1 0 0 1 0 1 0 0 1 1 1 1 0
0 0 1 0 1 1 1 0 0 0 1 1 1 1
9.12 Arătaţi că dacă polinomul generator al unui cod binar se divide cu polinomul
1 + X, atunci toate cuvintele sale au pondere pară.
Reciproca este adevărată ?
108 PRELEGEREA 9. CODURI CICLICE
9.13 Daţi o condiţie necesară şi suficientă pentru polinomul generator al unui cod
ciclic de lungime impară pentru ca 11 . . . 1 să fie cuvânt - cod.
9.14 Arătaţi că dacă g(X) generează un (n, k) - cod ciclic, atunci g(X i ) generează
un (in, kn) - cod ciclic.
Descrieţi codurile pentru g(X) = 1 + X şi g(X) = 1 + X + X 3 cu n = 7.
9.15 Arătaţi că intersecţia a două coduri ciclice de aceeaşi lungime este tot un cod
ciclic.
Care este polinomul său generator ?