Documente Academic
Documente Profesional
Documente Cultură
Coduri liniare
2.1 Matrice generatoare
Denit ia 2.1 Fie q un numar prim si n N
i=1
u
i
e
i
unde (u
1
, u
2
, . . . , u
k
) Z
k
q
este unic determinat.
Cu alte cuvinte, k simboluri de informat ie u
1
, . . . , u
k
Z
q
determina n mod
unic un cuvant - cod v A
n,k
prin relat ia de sus, si reciproc. Operat ia de codicare
face aceasta asociere biunivoca:
u = (u
1
, . . . , u
k
) Z
k
q
v =
k
i=1
u
i
e
i
A
n,k
Fiecare vector - codntr-un cod liniar va avea deci k simboluri de informat ie; celelalte
n k simboluri se numesc simboluri de control.
Denit ia 2.2 Fie A
n,k
un cod liniar cu baza e
1
, . . . , e
k
. Matricea
G
n,k
=
e
1
e
2
. . .
e
k
1 0 0 1 1
0 1 0 0 1
1 1 0 1 0
0 1 0 0 1
1 1 0 0 0 0
0 0 2 2 0 0
1 1 1 1 1 1
1 1 0 0 0 0
0 0 1 1 0 0
0 0 0 0 1 1
Toate cele 3
3
= 27 cuvinte ale acestui cod au urmatoarea proprietate: ecare simbol
este scris de doua ori. Din acest motiv, codul este numit cod cu repetit ie.
Cea mai convenabil a regula de codicare constan scrierea simbolurilor de informat ie
si suplimentarea lor cu n k simboluri de control. Aceasta corespunde matricii
generatoare (unice)
G = (I|B)
unde I este matricea unitate de ordin k, iar B este o matrice cu k linii si n k
coloane.
Denit ia 2.3 Un cod liniar este numit sistematic daca admite o matrice genera-
toare de forma G = (I|B) unde I este matricea unitate.
Denit ia 2.4 Doua coduri liniare A si A
(s-a notat cu S
n
mult imea permutarilor de n elemente).
Exemplul 2.4 Codul din Exemplul 2.1 este un cod sistematic. Din codicare se
observa ca mesajul de informat ie se aa n cuvantul - cod pe primele doua pozit ii.
Codul cu repetit ie din Exemplul 2.3 nu este sistematic. Totusi, folosind per-
mutarea (1, 4, 6, 2, 5, 3) (se permuta simbolurile doi cu patru si trei cu sase) se ajunge
la un cod sistematic generat de matricea
G
1 0 0 1 0 0
0 1 0 0 0 1
0 0 1 0 1 0
= (I|Y
). Deoarece si G
. Fie
A
. Atunci A
si A
1 0 0 0 0 1 1
0 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
care la randul ei este matricea generatoare a unui (7, 3) - cod liniar binar.
Se verica imediat relat ia
GH
T
=
0 0 0
0 0 0
0 0 0
0 0 0
Un cod care coincide cu codul sau dual se numeste cod auto - dual.
Teorema 2.2 Un cod sistematic cu matricea generatoare G = (I|B) admite ca
matrice de control H = (B
T
|I).
Demonstrat ie: Cele doua matrici unitate din scrierea lui G si H sunt de ordin k
respectiv n k. Efectuand calculele, se obt ine:
GH
T
= (I|B)
= IB +BI = B +B = 0
2
Corolarul 2.1 Matricea de control a unui (n, k)-cod liniar are rangul n k.
Teorema de sus permite un algoritm de calcul extrem de simplu al matricii de control,
atunci cand se cunoaste matricea generatoare. Sa arat am aceasta pe un exemplu:
Exemplul 2.6 Plecand de la matricea generatoare construita n Exemplul 2.4, se
poate construi matricea de control (calculele se fac n Z
3
):
H
1 0 0 1 0 0
0 0 1 0 1 0
0 1 0 0 0 1
2 0 0 1 0 0
0 0 2 0 1 0
0 2 0 0 0 1
.
Aplicand acum permutarea inversa coloanelor lui H
2 1 0 0 0 0
0 0 0 0 1 2
0 0 1 2 0 0
Relat ia xH
T
= 0 pe care o veric a orice cuvant - cod x A
n,k
permite sa denim
un cod si sub forma unui sistem de ecuat ii. Astfel, A
n,k
este un cod peste Z
q
daca
si numai daca elementele sale sunt solut ii ale sistemului liniar xH
T
= 0.
Exemplul 2.7 Codul cu matricea de control H =
1 1 0 1 0
1 1 1 1 1
= (a
1
, . . . , a
i1
, a
i
, a
i+1
, . . . , a
j1
, a
j
, a
j+1
, . . . , a
k1
, a
k
, a
k+1
, . . . , a
n
)
unde a
i
= a
i
, a
j
= a
j
, a
k
= a
k
. Avem
0 = aH
T
= a
1
(h
1
) +. . . +a
i
(h
i
) + . . . +a
j
(h
j
) + . . . +a
k
(h
k
) + . . . +a
n
(h
n
)
pentru ca a A
n,k
, iar (h
1
), . . . , (h
n
) sunt coloanele matricii H.
Avem, de asemenea
a
H
T
= a
1
(h
1
) +. . . +a
i
(h
i
) + . . . +a
j
(h
j
) + . . . +a
k
(h
k
) + . . . +a
n
(h
n
)
Prin adunarea acestor doua egalitat i se obt ine:
z
= a
H
T
= aH
T
+a
H
T
= (0) +. . . +(0) +(h
i
) +. . . +(h
j
) +. . . +(h
k
) +(0) +
. . . + (0) = (h
i
) + (h
j
) + (h
k
). 2
2.4 Pondere, distant a Hamming
Pentru orice cuvant x Z
n
q
, se numeste pondere num arul w(x) de componente
nenule. Evident, 0 w(x) n.
Pentru doua cuvinte x, y Z
n
q
, se numeste distant a Hamming ntre ele, numarul
d(x, y) = w(x y).
Ca o remarca, deoarece x y Z
n
q
, rezulta ca distant a Hamming dintre doua
cuvinte este ponderea unui cuvant din Z
n
q
.
Denit ia 2.6 Se numeste distant a (Hamming) a codului liniar A
n,k
Z
n
q
peste Z
q
cea mai mica distant a (Hamming) dintre elementele codului A
n,k
, adica
d = min
x,yA
n,k
,x=y
d(x, y)
2.5. DETECTARE SI CORECTARE DE ERORI 19
Folosind proprietatea anterioara si faptul ca 0 A
n,k
, rezulta ca
d = min
xA
n,k
,x=0
w(x).
Se poate verica imediat ca d este o distant a cu ajutorul careia Z
n
q
se poate structura
ca spat iu metric.
Teorema 2.4 Fie H matricea de control a unui cod liniar A
n,k
. Codul are distant a
minima d daca si numai daca orice combinat ie liniara de d 1 coloane ale lui H
este liniar independenta si exista cel put in o combinat ie liniara de d coloane liniar
dependente.
Demonstrat ie: Pentru orice cuvant a, cu w(a) = s, aH
T
este o combinat ie liniara
de s coloane ale lui H. Cum exista un cuvant - cod de pondere minima egala cu
distant a d a codului, rezulta ca avem cel put in o combinat ie de d coloane liniar
dependente ale lui H. O combinat ie de mai put in de d coloane liniar dependente ar
conduce la contradict ie. 2
Denit ia 2.7 Pentru r > 0 si x Z
n
q
, denim sfera de raza r si centru x ca
S
r
(x) = {y|d(x, y) r}
Teorema 2.5 Fie A
n,k
Z
n
q
un cod liniar peste Z
q
cu distant a Hamming d. Daca
r =
d 1
2
, atunci
x, y A
n,k
, x = y, S
r
(x) S
r
(y) = .
Demonstrat ie: Presupunem prin absurd ca exista z Z
n
q
, z S
r
(x) S
r
(y).
Atunci d(x, z) r, d(y, z) r deci, conform inegalitat ii triunghiului, d(x, y)
d(x, z) + d(y, z) 2r = 2
d1
2
xA
n,k
S
r
(x)
unde r =
d1
2
.
2.5 Detectare si corectare de erori
Fie A
n,k
Z
n
q
un cod liniar peste Z
q
, de distant a d si t =
d1
2
. Sa presupunem ca
s-a recept ionat cuvantul z Z
n
q
; va exista cel mult un cuvant x A
n,k
astfel ncat
z S
t
(x) (n cazul codurilor perfecte, acest cuvant exista totdeauna).
In cazul (ideal) cand z = x, cuvantul a fost transmis fara erori (sau cu erori
nedetectabile).
20 PRELEGEREA 2. CODURI LINIARE
Daca z = x, atunci mesajul a fost perturbat (si avem o detectare de erori);
n ipoteza ca numarul de erori aparute este minim si exista un x A
n,k
astfel ca
d(x, z) t, atunci z provine din cuvantul - cod x - si se va transforma n acesta
prin corectarea corespunzatoare a erorilor.
In particular, A = 0 +A = V
0
.
Propozit ia 2.1 Pentru orice a V
e
, V
a
= V
e
.
Demonstrat ie: Din a V
e
, rezulta ca exista x A cu a = e +x. Deoarece x+A = A
(evident, A ind subspat iu liniar), avem V
a
= a +A = e +x +A = e +A = V
e
. 2
Vom utiliza aceasta propozit ie pentru denirea unei tehnici de decodicare.
Daca vrem sa detectam o anumit a eroare - tip e care modica cuvintele din A
n cuvintele subspat iului V
e
, atunci vor mai usor de depistat cuvintele din V
e
cu
ponderea minima.
Pentru ecare V
e
se alege un cuvant numit reprezentantul lui V
e
; acesta este un
element cu cea mai mica pondere din V
e
.
Se construieste urmatorul tablou (numit tablou standard):
1. Pe prima linie se scriu cuvintele - cod, ncepand cu 0 (reprezentantul lui
A = V
0
);
2. Pe prima coloana se scriu reprezentant ii 0, e
1
, e
2
, . . .;
3. Pe linia cu reprezentantul e
i
, sub cuvantul cod x
j
se scrie cuvantul
e
i
+x
j
( mod q).
Exemplul 2.8 Fie matricea generatoare G =
1 0 0 1
0 1 1 1
peste Z
2
. Ea va cod-
ica Z
2
2
= {00, 01, 10, 11} n A
4,2
= {0000, 1001, 0111, 1110}.
Calculul mult imilor V
e
conduce la
V
0000
= V
1001
= V
0111
= V
1110
V
1000
= V
0001
= V
0110
= V
1111
V
0100
= V
1101
= V
0011
= V
1010
V
0010
= V
1011
= V
0101
= V
1100
2.5. DETECTARE SI CORECTARE DE ERORI 21
Alegem ca reprezentant i pe 0000, 1000 (se poate si 0001), 0100, 0010. Tabloul
standard va :
0000 1001 0111 1110
1000 0001 1111 0110
0100 1101 0011 1010
0010 1011 0101 1100
Pentru recept ie, acest tablou este ca un dict ionar care se utilizeaza astfel: cu-
vantul primit se decodica n cuvantul - cod din capul coloanei pe care se aa.
De exemplu, daca se recept ioneaza 1101, el se va decodica n 1001.
Evident, cuvintele de pe prima coloana se decodica n ele nsele (ele nu au fost
perturbate de nici o eroare).
Pentru orice cod liniar, un dict ionar complet de tipul celui de mai sus constituie cea
mai simpla metoda de decodicare.
Problema apare atunci candntr-o mult ime V
e
sunt mai multe cuvinte de pondere
minima. Atunci tabela va decodica corect numai eroarea - tip aleasa ca reprezen-
tant.
Astfel, revenind la Exemplul 2.8, cuvantul recept ionat 1111 se decodica n 0111
(considerand ca a fost alterat primul caracter).
Daca se ia ns a drept reprezentant pe linia a doua 0001 n loc de 1000, a doua
linie din tabloul standard este
0001 1000 0110 1111
Atunci, 1111 se decodican 1110 (considernd ultimul caracter ca ind cel alterat
de canalul de transmisie). Care este cuvantul - cod corect transmis ? Acest lucru nu
poate decis. Singurul lucru care poate facut este sa se aleaga drept reprezentant i
erorile - tip cele mai probabile.
Pentru un (n, k) - cod peste Z
q
, un dict ionar complet consta din toate cele q
n
cuvinte posibile, lucru destul de dicil deoarece n practica codurile sunt destul de
lungi (de exemplu n = 100, k = 80). De aceea este utilizata o alta maniera de lucru
care reduce mult marimea tabloului de lucru.
Fie H matricea de control a unui (n, k) - cod liniar A; putem considera (Corolarul
2.1) ca liniile lui H sunt vectori liniar independent i.
Teorema 2.6 Pentru orice e Z
n
q
, toate cuvintele din V
e
au acelasi sindrom.
Demonstrat ie: Fie v A arbitrar si w = e +v. Avem
wH
T
= (e +v)H
T
= eH
T
+vH
T
= eH
T
+0 = eH
T
.
Deci toate cuvintele din V
e
au sindromul egal cu sindromul lui e. 2
Invers, pentru ecare sindrom - deci pentru ecare cuvant s de lungime nk, se
poate determina un vector - eroare e avand sindromul s. Mai mult, s va ales astfel
ncat sa aiba pondere minima (conform decodicarii cele mai probabile). Pentru
22 PRELEGEREA 2. CODURI LINIARE
aceasta, se rezolva sistemul de ecuat ii liniare He
T
= s
T
, care are solut ie, deoarece
liniile lui H sunt liniar independente. Din mult imea solut iilor alegem una de pondere
minima, cu ajutorul careia construim mult imea V
e
a tuturor cuvintelor de sindrom
s.
Pe baza celor de mai sus, se poate folosi urmatoarea procedura de decodicare:
1. La recept ionarea unui cuvant w, se calculeaza sindromul s:
s
T
= Hw
T
.
2. Se aa eroarea - tip e cu sindromul s.
3. Se considera cuvantul - cod corect ca ind v = we.
In acest fel, nu mai este necesar sa se ret ina tot tabloul standard; este sucient
sa se stie reprezentant ii subspat iilor V
e
si sindromurile corespunzatoare.
Exemplul 2.9 Reluand codul denit n Exemplul 2.8, el are ca matrice de control
H =
0 1 1 0
1 1 0 1
0 1 1 0
1 1 0 1
1
1
0
1
1
1
1 0 2 1 0
0 1 2 1 2
1 0 2 1 0
0 1 2 1 2
1
1
1
2
2
2
0
1 2 3 1 2
2 2 4 1 0
1 1 2 2 1
Sa se ae matricea de control.
2.3 Aceeasi problema pentru Z
7
.
24 PRELEGEREA 2. CODURI LINIARE
2.4 Determinat i daca urmatorul cod liniar binar este sistematic sau nu:
G =
1 1 0 0 0 0
0 0 1 1 1 1
0 0 0 0 1 1
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 0 1 0 0 0 1
1 1 0 1 0 1
1 1 0 0 1 0
1 0 1 1 0 0
1 0 0 2 2
0 1 0 0 1
0 0 1 1 0