Documente Academic
Documente Profesional
Documente Cultură
7
7
Înafara codurilor Hamming şi Reed - Muller se pot construi şi alte clase de coduri
cu proprietăţi remarcabile. Vom prezenta numai câteva astfel de coduri - nu toate
liniare - punând ı̂n evidenţă la fiecare clasă caracteristicile sale specifice.
unde ni este numărul coloanelor de tip i care apar (sau nu) ı̂n matricea G,
k −1
2X
ni = n.
i=1
à !
0 1 0
Exemplul 7.1 Să luăm k = 2, n = 3 şi matricea generatoare G =
1 1 1
à !
0 1 1
Avem matricea M = (coloanele sunt reprezentările binare ale
1 0 1
numerelor 1, 2, 3).
Reprezentarea modulară a codului generat de matricea G este atunci N = (2, 0, 1)
(pentru că ı̂n G există două coloane de tipul 1, nici una de tipul 2 şi una de tipul
3).
73
74 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
N = W C −1 (5)
ı̂nmulţire efectuată ı̂n R. Formula este adevărată numai dacă demonstrăm că ma-
tricea C este inversabilă. În acest sens avem:
Teorema 7.2 Matricea C este nesingulară. Inversa ei se calculează ı̂nlocuind ı̂n C
pe 0 cu −1 şi ı̂mpărţind toate elementele cu 2k−1 .
Demonstraţie: I: Fiecare linie (deci şi coloană) din C conţine 1 pe 2k−1 poziţii. Două
linii (coloane) distincte din C au ı̂n comun 1 ı̂n 2k−2 poziţii.
Într-adevăr, liniile lui C - la care se adaugă linia nulă - formează un spaţiu liniar
cu 2k cuvinte binare. Să considerăm submulţimea liniilor care au 1 ı̂n componentele
2k
i şi j. Ele formează un subspaţiu liniar cu 2 = 2k−2 elemente deoarece, factorizând
2
cu acest spaţiu se obţin patru clase de resturi corepunzătoare componentelor (i, j)
de forma (0, 0), (0, 1), (1, 0), (1, 1).
Pentru a arăta că 1 apare pe fiecare linie din C de 2k−1 ori se raţionează similar.
II: În aceste condiţii, putem scrie
k−1
2 2k−2 . . . 2k−2
k−2
2 2k−1 . . . 2k−2
2
C = .. = 2k−2 (I + J)
.
2k−2 2k−2 . . . 2k−1
unde I este matricea unitate iar J este matricea pătrată cu toate elementele
egale cu 1, ambele de ordin 2k .
Se mai observă că CJ = 2k−1 J. Deci
1 1 2C − J
I = k−1 (2C 2 − 2k−1 J) = k−1 (2C 2 − CJ) = C k−1 = CC −1 .
2 2 2
−1 1
De aici rezultă că C este inversabilă şi C = k−1 (2C − J). 2
2
Exemplul 7.2 Să luăm k = 3, n = 5. Vom avea:
1 0 1 0 1 0 1
0 1 1 0 0 1 1
0 0 0 1 1 1 1 1 1 0 0 1 1 0
M = 0 1 1 0 0 1 1 , C = MT M = 0 0 0 1 1 1 1 ,
1 0 1 0 1 0 1 1 0 1 1 0 1 0
0 1 1 1 1 0 0
1 1 0 1 0 0 1
1 −1 1 −1 1 −1 1
−1 1 1 −1 −1 1 1
1 1 −1 −1 1 1 −1
1
C −1 = −1 −1 −1 1 1 1 1
.
4 1 −1
1 1 −1 1 −1
−1 1 1 1 1 −1 −1
1 1 −1 1 −1 −1 1
1 0 0 1 1
Dacă luăm codul generat de matricea G = 0 1 0 1 0 , el are reprezenta-
0 0 1 0 1
rea modulară N = (1, 1, 0, 1, 1, 1, 0). Vectorul ponderilor cuvintelor - cod este
76 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
Să determinăm acum reprezentarea modulară a unui cod liniar binar ı̂n care toate
cuvintele - cod au aceeaşi pondere w (şi deci distanţa minimă va fi d = w). Vom
avea prin ipoteză W = (w, w, . . . , w).
| {z }
2k −1
După cum am remarcat ı̂n demonstraţia Teoremei 7.2, 1 apare pe fiecare linie
din C ı̂n 2k−1 poziţii. Rezultă (Teorema 7.2) că ı̂n C −1 , 1 va apare pe fiecare linie
(coloană) tot ı̂n 2k−1 poziţii, ı̂n rest fiind −1. Deci
N = W C −1 = (w2−(k−1) , . . . , w2−(k−1) )
| {z }
2k −1
Problema enunţată are soluţie dacă w se divide cu 2k−1 ; ı̂n acest caz, reprezenta-
rea modulară este de forma N = (r, r, . . . , r), adică fiecare tip de coloană apare ı̂n
| {z }
2k −1
−(k−1)
matricea generatoare de r = w · 2 ori.
Plecând de la aceste considerente, McDonald a introdus o clasă de coduri pentru
care reprezentarea modulară este de forma 0i 1j . Mai exact,
n d N
k k−1
2 −1 2 (1, 1, 1, . . . , 1)
2k − 2 2k−1 − 1 (0, 1, 1, . . . , 1)
2k − 3 2k−1 − 2 (0, 0, 1, . . . , 1)
... ... ...
2k − 2u 2k−1 − 2u−1 (0, . . . , 0, 1, . . . , 1)
| {z } | {z }
2u −1 2k −2u
Teorema 7.3 Fiind dată matricea Hadamard Hn , (n par) se poate construi un cod
n
de distanţă minimă d = , format din 2n cuvinte de lungime n.
2
Demonstraţie: În matricea Hn vom ı̂nlocui 1 cu 0 şi −1 cu 1. Vom nota v1 , v2 , . . . , vn
vectorii care formează liniile noii matrici. Codul căutat este
Acest cod (care nu este neapărat liniar) are 2n cuvinte de lungime n. Mai trebuie
arătat că distanţa sa minimă este n/2.
Deoarece v şi −v diferă ı̂n toate componentele, distanţa Hamming dintre ele este
n. Pe de-altă parte, din proprietatea matricilor Hadamard rezultă
Pentru ca această egalitate să fie adevărată, este necesar ca vi şi vj să coincidă ı̂n
jumătate din componente şi să difere ı̂n cealaltă jumătate (atenţie, calculele se fac
n
ı̂n R, nu ı̂n Z2 !). Rezultă că distanţa Hamming dintre cele două cuvinte este .
2
n
Deci d = . 2
2
Pentru n = 32 un astfel de cod a fost folosit de programul spaţial Mariner.
à !
Hn Hn
Teorema 7.4 Dacă Hn este matrice Hadamard, atunci H2n =
Hn −Hn
este matrice Hadamard.
2. Sq SqT = qIq − Jq ;
q−1
3. SqT = (−1) 2 Sq .
Demonstraţie: Este lăsată ca exerciţiu.
0 −1 1
Exemplul 7.4 Pentru q = 3, matricea Paley este S3 = 1 0 −1
,
−1 1 0
0 1 −1 −1 1
1 0 1 −1 −1
iar pentru q = 5,
S5 = −1 1 0 1 −1 .
−1 −1 1 0 1
1 −1 −1 1 0
De remarcat că S3T = −S3 , S5T = S5 .
Teorema 7.6 Dacă q = pr (p număr prim impar, r ≥ 1) astfel ı̂ncât q ≡ 3 (mod 4),
atunci există o matrice Hadamard de ordin q + 1.
Demonstraţie: Din ipoteză şi Teorema 7.5, există o matrice Paley S de ordin q.
Construim matricea C de ordin q + 1 astfel:
0 1 ... 1
−1
C=
−1 S
−1
7.3. CODURI PRODUS 79
Teorema 7.7 Dacă A1 este un (n1 , k1 ) - cod liniar şi A2 este un (n2 , k2 ) - cod
liniar, atunci A1 × A2 este un (n1 n2 , k1 k2 ) - cod liniar.
(1) T
• Primele k2 coloane sunt 0 cu excepţia coloanei j care este gi .
(1) (2)
• Pentru k > k1 , linia k este gik gj ;
(2) (1) T
• Pentru k > k2 , coloana k este gjk gi .
Teorema 7.8 Distanţa codului A1 × A2 este egală cu d1 · d2 (d1 şi d2 fiind distanţele
codurilor A1 respectiv A2 ).
De remarcat că, dacă A este cod liniar, atunci d(A) este chiar distanţa minimă a
codului.
• d(A) = d;
Exemplul 7.9 În Z26 , următoarele mulţimi sunt optimale de distanţă minimă 3:
A = {000000, 010101, 101010, 111111}
B = {000000, 101010, 011001, 000111, 110100, 111111}
Exemplul 7.10 Mulţimile date ı̂n Exemplul 7.9 sunt optimale dar nu cardinal ma-
ximale pentru distanţa 3. O mulţime optimală cardinal maximală din Z26 pentru
d = 3 este:
C = {000000, 001011, 010101, 011110, 100110, 101101, 110011, 111000},
deci a(6, 3) = 8.
Definiţia 7.6 Un cod liniar A de distanţă d este optimal dacă A este mulţime
optimală cardinal maximală de distanţă d.
Spunem că un astfel de cod satisface condiţia max - min, deoarece are un număr
maxim de vectori aflaţi la distanţa minimă d.
Nu se cunosc algoritmi de construcţie a unor astfel de coduri. În această secţiune
vom da câteva condiţii necesare pentru codurile optimale.
Teorema 7.9 Într-un cod optimal maximal A de distanţă minimă d (d < n),
K este un cod cu distanţa d ı̂n care toate cuvintele au 0 pe prima poziţie. Dacă
eliminăm această componentă, se obţine un cod din Zqn−1 , tot de distanţă d, cu
acelaşi număr de cuvinte. Acest cod nu este neapărat optim, deci condiţia va fi
a(n, d)
a(n − 1, d) ≥
q
Mai trebuie făcută observaţia că a(n − 1, n − 1) = q pentru că un cod cu repetiţie
este optimal maximal de distanţă minimă egală cu lungimea cuvintelor - cod. 2
Corolarul 7.1 Dacă j ≥ d, atunci q n−j a(j, d) ≥ a(n, d).
Demonstraţie: Din Teorema 7.9 rezultă inegalităţile:
q · a(n − 1, d) ≥ a(n, d)
q · a(n − 2, d) ≥ a(n − 1, d)
...
q · a(n − i, d) ≥ a(n − i + 1, d)
Prin ı̂nmulţire se obţine q i · a(n − i, d) ≥ a(n, d), după care se face notaţia n − i = j.
2
Teorema 7.10 Fie A un cod liniar optimal maximal de distanţă minimă d.
qd
Dacă n < , atunci numărul simbolurilor de informaţie verifică inegalitatea
q−1
dq − 1
k ≤n− + 1 + logq d.
q−1
Demonstraţie: Deoarece A este cod liniar, numărul de simboluri de informaţie va fi
dat de relaţia a(n, d) = q k .
Rescriem inegalitatea lui Plotkin sub forma d(q k − 1) ≤ nq k−1 (q − 1), sau
q k−1 (dq + n − nq) ≤ n.
dq
Deoarece - din ipoteză - dq + n − nq > 0, avem q k ≤ , sau
dq + n − nq
dq
a(n, d) ≤ .
dq + n − nq" # ( )
dq − 1 dq − 1 dq − 1
Fie = i + f unde i = , f= .
q−1 q−1 q−1
Deci qd − 1 = (q − 1)i + (q − 1)f şi avem
dq dq dq
a(i, d) ≤ = = .
dq + i − iq dq − (q − 1)i 1 "+ (q − 1)f
# " #
dq − 1 d−1
Folosind Corolarul 7.1 şi i ≥ d (deoarece = d+ ≥ d), rezultă
q−1 q−1
dq−1
n−i q n− q−1 +f
a(n, d) ≤ q a(i, d) ≤ qd
1 + (q − 1)f
Dezvoltând ı̂n serie Taylor, q f ≤ 1 + (q − 1)f (f < 1) şi deci
n− dq−1
a(n, d) ≤ q q−1 qd,
n− dq−1
sau q k ≤ q q−1 qd, de unde - prin logaritmare - se obţine relaţia din enunţ. 2
84 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
7.5 Exerciţii
7.1 Să se construiască vectorul ponderilor pentru codurile Hamming (7, 4) şi
RM(1, 3).
7.5 Să se arate că dacă Hn este o matrice Hadamard, atunci Hn HTn = nIn .
7.7 Să se arate că matricea Hadamard H8 generează (8, 4) - codul Hamming binar
extins.
7.8 Să se construiască codurile produs pentru codul cu repetiţie de lungime n (A1 )
şi codul cu repetiţie de lungime p (A2 ).
7.12 Folosind matricile Paley, să se construiască codurile Hadamard de ordin 5 şi
respectiv 7.
7.13 Să se arate că un cod binar liniar optimal maximal de distanţă minimă d are
cel puţin 2d − 1 − log2 d simboluri de control.