Professional Documents
Culture Documents
Coduri ciclice
9.1
Relatii de recurent
a liniar
a
algebra
Teorema 9.1 Fie q un numar prim si f (X) Zq [X], grad(f (X)) = n. In
polinoamelor modulo f (X), fie I un ideal si g(X) polinomul de grad minim a c
arui clasa
de resturi apartine lui I : {g(X)} I. Atunci:
1.
{s(X)} I
2.
g(X)|f (X).
g(X)|s(X);
Demonstratie:
(1) Fie {s(X)} I. Folosind identitatea mpartirii, avem
s(X) = b(X)g(X) + r(X),
si avand acelasi grad difera printr-o constanta. Polinoamele fiind normate, aceasta
constanta este 1. Deci g(X) = g 0 (X).
Reciproc, fie g(X) un divizor normat al polinomului f (X) si ({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)}. q.e.d.
Teorema 9.3 Fie q un numar prim, f (X) Zq [X] un polinom normat, cu grad(f (X)) =
n si fie f (X) = g(X)h(X). Daca grad(h(X)) = k, atunci n algebra polinoamelor modulo
f (X), idealul ({g(X)}) are dimensiunea k.
Demonstratie: Sa observam ca vectorii (asociati polinoamelor)
{g(X)}, {Xg(X)}, . . . , {X k1 g(X)}
sunt liniar independenti. Intr-adevar, pentru orice k elemente c0 , . . . , ck1 Zq , nu toate
nule, avem
c0 {g(X)} + c1 {Xg(X)} + . . . + ck1 {X k1 } = {(c0 + c1 X + . . . + ck1 X k1 )g(X)} =
6 0
deoarece s-a obtinut un polinom de grad cel mult n k + k 1 = n 1 < n.
In acelasi timp, pentru orice {s(X)} ({g(X)}) avem {s(X)} = {a(X)g(X)} =
{(a0 + a1 X + . . . + ak1 X k1 )g(X)} = a0 {g(X)} + a1 {Xg(X)} + . . . + ak1 {X k1 g(X)},
unde unii din coeficientii a0 , a1 , . . . , ak1 pot fi nuli.
Deci vectorii de sus formeaza o baza a subspatiului liniar ({g(X)}), care are deci
dimensiunea k. q.e.d.
algebra
Teorema 9.4 Fie f (X) Zq [X] un polinom normat si f (X) = g(X)h(X). In
polinoamelor modulo f (X),
{a(X)} ({g(X)}) {a(X)} este n spatiul nul al idealului ({h(X)}).
Demonstratie: =: Fie {a(X)} ({g(X)}), deci a(X) = v(X)g(X).
Fie de asemenea {b(X)} ({h(X)}), deci b(X) = w(X)h(X). Vom avea
{a(X)}{b(X)} = {v(x)w(X)g(X)h(X)} = {v(X)w(X)f (X)} = {v(X)w(X)}{f (X)} =
0.
=: Sa consideram {a(X)} n spatiul nul al idealului ({h(X)}). Atunci
{a(X)}{h(X)} = 0, adica a(X)h(X) = c(X)f (X) = c(X)g(X)h(X) de unde rezulta
a(X) = c(X)g(X). Deci {a(X)} ({g(X)}). q.e.d.
Definitia 9.1 Se numeste relatie de recurent
a liniar
a egalitatea
k
X
hj ai+j = 0,
(1)
j=0
unde i 0, hk = 1, h0 6= 0, hj Zq , ai+j Zq .
Relatiile de recurenta liniara se pot scrie si
ai+k =
k1
X
j=0
hj ai+j ,
i = 0, 1, . . .
LINIARA
9.1. RELAT
II DE RECURENT
A
O solutie a unei astfel de relatii de recurenta liniara este orice succesiune infinita de forma
a0 , a1 , . . . , ap , . . . care verifica relatia data, cu h0 , h1 , . . . , hk fixate, h0 6= 0, hk = 1. Relatia
va determina succesiv pe ak din a0 , . . . , ak1 , apoi pe ak+1 din a1 , . . . , ak s.a.m.d.
Altfel spus, conditiile initiale a0 , a1 , . . . , ak1 determina o solutie a relatiei de recurenta
liniara.
Observatia 9.1
Orice combinatie liniara de solutii ale unei relatii de recurent
a liniar
a este tot o
solutie.
Solutiile pentru care conditiile initiale sunt respectiv (1, 0, . . . , 0), (0, 1, . . . , 0), . . . ,
(0, 0, . . . , 1) determina orice alt
a solutie. Deci, spatiul solutiilor relatiei de recurenta
(1) are dimensiunea cel mult k.
Fiind date conditiile initiale (arbitrare) a0 , a1 , . . . , ak1 , solutia relatiei de recurenta
liniara (1) corespunzatoare lor se poate obtine folosind circuitul liniar
- +j - . . .
6
6
h0
- +j
6
6
hk2
h1
- +j
hk1
aj+1 . . . 6
6 aj 6
r
r aj+k2 6
r aj+k1 ?
Xn 1
h(X)
(2)
k1
X
hj ai+j , i 0
(3)
j=0
Demonstratia existentei unui astfel de numar n se face folosind principiul cutiei. Gasim
doua numere n1 , n2 (n1 > n2 ) pentru care polinoamele X n1 1 si X n2 1 dau acelasi rest
la mpartirea cu h(X). Va rezulta ca X n2 (X n1 n2 1) se divide cu h(X). Cum h(X) are
termen liber nenul, el va divide pe X n1 n2 1.
Teorema 9.5
1. Solutiile relatiei de recurenta (3) sunt periodice, de perioad
a n.
2. Multimea formata din prima perioad
a a fiec
arei solutii, scris
a ca polinom
n1
a(X) = a0 X
+ . . . + an2 X + an1 constituie idealul ({g(X)}) n algebra polinoamelor modulo X n 1.
-+
6
s
-+
6
s
?
X7 1
=
h(X)
X 3 + X + 1, rezulta ca circuitul va genera cuvintele idealului ({g(X)}). Fiecare cuv
ant
este caracterizat de cele patru valori binare initiale 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).
Cel mai mic n pentru care X n 1 se divide cu h(X) este n = 7. Cum g(X) =
De exemplu, pentru valorile initiale (1, 0, 1, 1), functionarea circuitului timp de sapte
tacti este:
Iesire
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
-+
6
r
-+
-+
6
6
r
r
?
El d
a solutiile relatiei de recurent
a liniar
a ai + ai+3 + ai+5 + ai+6 + ai+8 = 0,
X 255 1
ideal compus din 28 = 256
care formeaza idealul generat de polinomul g(X) =
h(X)
cuvinte de lungime 255.
9.2
n1
X
i=0
ai X , b(X) =
n1
X
bi X i .
i=0
j
X
i=0
ai bji +
n1
X
i=j+1
q.e.d.
(an1 , a0 , . . . , an2 ) Vn .
9.3
g0 g1 . . .
gnk
0 0 ...
0
0 ...
0
0 g0 . . . gnk1 gnk
Gk,n =
..
.
0 0 ...
0
g0 g1 . . . gnk
Rezulta ca un cod ciclic poate fi organizat ca un (n, k) - cod liniar, unde n este gradul
Xn 1
.
polinomului X n 1 iar k este gradul polinomului h(X) =
g(X)
Exemplul 9.3 Codul cu repetitie este un cod ciclic al c
arui polinom generator este
2
n1
g(X) = 1 + X + X + . . . + X .
1 0 1 1
0 1 0 1
G=
0 0 1 0
0 0 0 1
0 0 0
1 0 0
.
1 1 0
0 1 1
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.
Sunt 14 coduri ciclice ternare de lungime 6, obtinute din factorii polinomului X 6 1 =
(X + 1)3 (X + 2)3 . Este un exercitiu interesant obtinerea matricilor generatoare pentru
toate aceste coduri.
Idealul generat de {g(X)} este spatiul nul al idealului ({h(X)}) unde h(X) =
Xn 1
.
g(X)
1 0 1 1 1 0 0
G = 0 1 0 1 1 1 0 .
0 0 1 0 1 1 1
deci matricea de control asociat
a 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 si distincte dou
a c
ate dou
a, codul astfel construit
este echivalent cu un (7, 4) cod Hamming binar.
Pentru a obtine un cod ciclic sistematic, este convenabil sa alegem o alta baza pentru
idealul ({g(X)}). Sa observam ca pentru i = n k, n k + 1, . . . , n 1, putem scrie
X i = qi (X)g(X) + ri (X) cu grad(ri (X)) < grad(g(X)) = n k.
Deci {X i ri (X)} ({g(X)}),
i = n k, n k + 1, . . . , n 1.
=
0g(X)
=
0g(X)
=
0g(X)
=
g(X)
=
(1 + X)g(X)
=
(1 + X + X 2 )g(X)
= (X + X 2 + X 3 )g(X)
+ 1
+ X
+ X2
+ 1
+ X2
+ 1 + X + X2
+ 1 + X
+ X + X2
G4,7 =
= [R4,3 I4 ].
1 1 0 0 0 1 0
0 1 1 0 0 0 1
Matricea de control corespunzatoare se scrie simplu:
H3,7
9.4
1 0 0 1 1 1 0
T
= 0 1 0 0 1 1 1
].
= [I3 R3,4
0 0 1 1 1 0 1
Implementarea gener
arii codurilor ciclice
Codurile ciclice sunt coduri a caror implementare este mult facilitata de circuitele liniare.
Cu ajutorul acestora se poate realiza automat codificarea, calculul sindromului, detectarea
si corectarea erorilor.
In constructia practica vom distinge doua cazuri:
9.4. IMPLEMENTAREA GENERARII
CODURILOR CICLICE
9.4.1
Este o metoda de generare a codurilor ciclice, avantajoasa daca sunt mai putine simboluri
de informatie decat simboluri de control: k < n k.
Xn 1
= h0 + h1 X + . . . + hk X k cu
Fie codul ciclic ({g(X)}) An si h(X) =
g(X)
h0 6= 0, hk = 1. Conform Teoremei 9.5, idealul ({g(X)}) este generat de circuitul liniar
care construieste solutiile relatiei de recurenta liniara
k
X
hj ai+j = 0,
i = 0, 1, . . .
j=0
deoarece h(X) =
9.4.2
- +
s6
?
X7 1
= 1 + X 2 + X 3.
1 + X2 + X3 + X4
u3 u 2 u1 u0
6
s-
- +
6
s-
- +
-6
10
?
v(X) -
+ -
- u(X)
6
-
s
#
?
g0
g1
s
... s
#
#
?
?
g2
P
PP
P
#
6
1
gnk
gnk1
"!
"!"! "!"!
?
?
?
6
?
-+ - +- ... - + r +
?
- 1 6
s
- Canal
u(X)
El functioneaza astfel:
Initial cele n k elemente de nmagazinare contin 0, ntrerupatorul de iesire este
decuplat iar cel de feedback - cuplat.
Se introduc cele k elemente ale mesajului de informatie atat n circuit cat si n
canalul de comunicatie. Dupa k momente, n elementele de nmagazinare avem
coeficientii restului r(X).
Se decupleaza feedbackul si se cupleaza circuitul la canalul de comunicatie.
Coeficientii restului cu semn schimbat se transmit n canal imediat dupa pozitiile
de informatie.
Deoarece provine din circuitul de mpartire cu g(X), acelasi circuit poate fi folosit si
pentru detectarea erorilor la receptie. Pentru aceasta, dupa decuplarea ntrerupatorului
de iesire si cuplarea celui de feedback, se introduce n circuit cuvantul receptionat. Daca la
momentul n restul nu este nul (cel putin un element de nmagazinare contine un element
nenul) nseamna ca a aparut cel putin o eroare n transmisie.
Exemplul 9.10 Codul ciclic binar de lungime 7 generat de g(X) = 1 + X 2 + X 3 , poate
fi construit folosind circuitul liniar:
?
-
r
?
- +j
-
u0 u1 u 2 u 3
Z
Z
6
r +j
? -
6
r
- Canal
9.5. EXERCIT
II
9.5
11
Exercitii
9.1 S
a se determine toate codurile ciclice de lungimi n = 5 si n = 6
(a) peste Z2 ;
(b) peste Z3 .
9.2 Construiti o baza pentru cel mai mic cod ciclic de lungime n care contine cuv
antul:
(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
asiti polinomul generator al celui mai mic
cod ciclic care contine cuvantul respectiv:
010010
001000101110000
01100110
000010010000000
0101100
010111010000000
9.4 S
a se afle polinomul generator al codului ciclic C stiind o baz
a 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 Intr-o
codificare sistematica, codificati mesajul de informatie 1101 ntr-un cu-v
ant 2
cod al unui cod binar ciclic de lungime 7 cu polinomul generator g(X) = 1 + X + X 3 .
9.6 Pentru codul definit mai sus codificati mesajele de informatie date de polinoamele:
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
asiti mesajele de informatie corepunz
atoare.
9.7 Construiti circuite liniare pentru codificare si decodificare ale codului ciclic binar de
lungime 7 generat de polinomul g(X) = (1 + X 2 + X 3 )(1 + X).
9.8 Care este lungimea minima a unui cod ciclic binar de polinom generator g(X) =
1 + X2 + X3 + X4 ?
Construiti circuite liniare pentru codificarea si decodificarea sa.
9.9 Construiti un circuit liniar pentru codificarea (15, 11) - codului Hamming binar.
9.10 Construiti matricea de control a codului ciclic binar de lungime n si 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
a codul Hamming);
n = 23, g(X) = 1 + X + X 5 + X 6 + X 7 + X 9 + X 11 (genereaz
a codul Golay);
4
6
7
8
n = 15, g(X) = 1 + X + X + X + X .
12
9.11 Sunt ciclice codurile liniare binare definite de matricile generatoare definite mai jos
?
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
9.12 Ar
atati ca daca polinomul generator al unui cod ciclic binar se divide cu polinomul
1 + X, atunci toate cuvintele sale au pondere par
a.
Reciproca este adevarata ?
9.13 Dati o conditie necesara si suficient
a pentru polinomul generator al unui cod ciclic
de lungime impara pentru ca 11 . . . 1 s
a fie cuv
ant - cod.
9.14 Ar
atati ca daca g(X) Zq [X] genereaz
a un (n, k) - cod ciclic, atunci g(X p )
genereaz
a un (pn, pk) - cod ciclic.
Descrieti codurile ciclice binare pentru g(X) = 1 + X si g(X) = 1 + X + X 3 (n = 7).
9.15 Ar
atati ca intersectia a doua coduri ciclice de aceeasi lungime este tot un cod ciclic.
Care este polinomul sau generator ?