Sunteți pe pagina 1din 13

Prelegerea 15

Coduri Preparata

În 1968 Preparata a introdus o clasă de coduri neliniare corectoare de două erori, care
s-au dovedit foarte interesante prin proprietăţile şi prin legăturile pe care le au cu
diverse alte coduri deja studiate. Ele sunt o combinaţie ı̂ntre codurile Reed - Muller
şi codurile BCH corectoare de două erori. Definiţia pe care o vom folosi aparţine lui
Baker şi permite o abordare mai simplă a algoritmilor de codificare/decodificare.

15.1 Definirea codurilor Preparata extinse


Să revenim la modalitatea de marcare a poziţiilor cuvintelor de lungime 2r folosind
elementele lui GF (2r ), aşa cum s-a definit ı̂n algoritmul de decodificare Peterson
pentru codurile BCH. Deci:
Fie r ≥ 2 un număr ı̂ntreg, α ∈ GF (2r ) primitiv, şi U ⊆ GF (2r ); se notează
χ(U ) cuvântul de lungime 2r definit prin
1 pe poziţia i dacă αi ∈ U (0 ≤ i ≤ 2r − 2),
1 pe poziţia 2r − 1 dacă 0 ∈ U ,
0 ı̂n rest.
Exemplul 15.1 Fie α ∈ GF (23 ) primitiv. Atunci
χ({0}) = 00000001
χ({α , α5 , α6 }) = 00100110
2

χ(∅) = 00000000.
Se definesc ı̂n mod natural operaţiile:
U + β = {u + β|u ∈ U }, βU = {βu|u ∈ U },
U ∆V = {u|u ∈ U ∪ V, u 6∈ U ∩ V }, U, V ⊂ GF (2r ), β ∈ GF (2r ).
Se verifică uşor relaţiile
χ(U ) + χ(V ) = χ(U ∆V ), w(χ(U )) = card(U ). (1)
Exemplul 15.2 Fie GF (23 ) construit folosind rădăcina (primitivă) α a polinomu-
lui 1 + X + X 3 , şi mulţimile U = {α2 , α5 , α6 }, V = {α5 , 0}. Atunci
U + α2 = {α2 + α2 , α5 + α2 , α6 + α2 } = {0, α3 , α0 },
α2 U = {α2 α2 , α2 α5 , α2 α6 } = {α4 , α0 , α},
χ(U ) + χ(V ) = 00100110 + 00000101 = 00100011 = χ({α2 , α6 , 0}) = χ(U ∆V ).

169
170 PRELEGEREA 15. CODURI PREPARATA

Definiţia 15.1 Fie r > 2 un număr impar. Codul extins Preparata P (r) este mul-
ţimea cuvintelor de forma χ(U )χ(V ) unde U, V ⊆ GF (2r ) verifică condiţiile

1. card(U ), card(V ) sunt numere pare;


X X
2. u= v;
u∈U v∈V

à !3
X X X
3
3. u + u = v3.
u∈U u∈U v∈V

Pentru uşurinţă vom nota cuvintele - cod cu [χ(U ), χ(V )] (vezi şi codul Golay).

Exemplul 15.3 În ipotezele din Exemplul 15.2, să considerăm U = {α, α2 , α5 , 0},
V = {α0 , α, α2 , α3 , α6 , 0}. Prima condiţie din definiţie este verificată. Pentru a
douaXcondiţie avem:
u = α + α2 + α5 + 0 = 010 + 001 + 111 + 000 = 100 = α0 ,
u∈U
X
v = α0 + α + α2 + α3 + α6 + 0 = 100 + 010 + 001 + 110 + 101 + 000 = 100 = α0 .
v∈V
A
Xtreia condiţie este şi ea verificată deoarece
u3 = α3 + α6 + α + 0 = 110 + 101 + 010 + 000 = 001 = α2 ,
u∈U
X
v 3 = α0 +α3 +α6 +α2 +α4 +0 = 100+110+101+001+011+000 = 101 = α6
v∈V
şi α2 + (α0 )3 = α6 .
Deci [χ(U ), χ(V )] = 01100101 11110011 este cuvânt - cod ı̂n P (3).

Observaţii:

• Deoarece card(χ(U )) = card(χ(V )) = 2r , P (r) este un cod de lungime 2r+1 .

• Faptul că 0 este sau nu un element al mulţimilor U sau V nu afectează cu


nimic condiţiile 2 şi 3 din Definiţia 15.1. Acest element se introduce ı̂n cele
două mulţimi numai pentru a asigura prima condiţie din definiţie. Rezultă
că biţii de pe poziţia 2r − 1 din χ(U ) şi χ(V ) sunt biţi de paritate (ceea ce
justifică termenul de cod Preparata ”extins”).

• Exponentul 0 30 din Definiţia 15.1 nu este esenţial. Dacă el se ı̂nlocuieşte cu


s = 2t + 1 astfel ca aplicaţiile f, g : GF (2r ) −→ GF (2r ), f (x) = xs , g(x) =
xs−2 să fie bijective, toate proprietăţile se păstrează.
Aceste coduri se numesc Coduri Preparata generalizate.
X
Lema 15.1 Fie [χ(U ), χ(V )], [χ(A), χ(B)] ∈ P (r) şi β = u.
u∈U
Atunci [χ(U ∆A + β), χ(V ∆B)] ∈ P (r).

Demonstraţie: Vom arăta că noul cuvânt construit verifică condiţiile din Definiţia
15.1.
15.1. DEFINIREA CODURILOR PREPARATA EXTINSE 171

1. Deoarece card(U ), card(V ), card(A), card(B) sunt pare, se arată uşor că:
card(V ∆B) = card(V ) + card(B) − 2 · card(V ∩ B),
card(U ∆A + β) = card(U ∆A) = card(U ) + card(A) − 2 · card(U ∩ A).
X X X
2. Să observăm ı̂ntâi că dacă I, J ⊆ GF (2r ), avem x= x+ x deoarece
x∈I∆J x∈I x∈J
orice element αi ∈ I ∩ J apare de două ori ı̂n membrul drept şi niciodată ı̂n
membrul stâng, iar αi + αi = 0. Deci:
X X X X X
x = (y + β) = y + β · card(U ∆A) = y+ +0
x∈U ∆A+β y∈U ∆A y∈U ∆A y∈U y∈A
X X X
(deoarece card(U ∆A) este par) = y+ y= y.
y∈V y∈B y∈V ∆B

 3  3
X X X X
3. x3 +  x = (y + β)3 +  y =
x∈U ∆A+β x∈U ∆A+β y∈U ∆A y∈V ∆B
 3
X X X X X X X
= (y + β)3 + (y + β)3 +  y+ y = y3 + β y2 + β 2 y+
y∈U
Xy∈A X y∈V
X y∈B y∈U y∈U y∈U
β 3 card(U ) + 3
y +β y2 + β 2
y + β 3 card(A) +
y∈A y∈A y∈A
 3  2     2  3
X X X X X X
 y +  y  y +  y  y +  y .
y∈V y∈V y∈B y∈V y∈B y∈B
 2
X X X X
Dar β = y = y,  y = y 2 , iar card(U ), card(V ) sunt pare.
y∈U y∈V y∈V y∈V
Deci expresia de sus se reduce la
X X X
y3 + y3 = y3.
y∈V y∈B y∈V ∆B

Definiţia 15.2 Un cod C este invariant la distanţă dacă pentru orice c1 , c2 ∈ C,


are loc relaţia

∀i 0 ≤ i ≤ n, card({α|d(α, c1 ) = i}) = card({α|d(α, c2 ) = i}).

Exemple simple de coduri invariante la distanţă sunt codurile liniare.


Ca o consecinţă imediată, pentru un cod invariant la distanţă care conţine
cuvântul nul, distanţa minimă este ponderea minimă a unui cuvânt - cod nenul.
Vom arăta ı̂n continuare că un cod Preparata are această proprietate.

Lema 15.2 P (r) este invariant la distanţă.

Demonstraţie: Fie [χ(U ), χ(V )], [χ(A), χ(B)] ∈ P (r) arbitrare aflate la distanţa i
unul de altul. Conform Lemei 15.1, [χ(U ∆U +β), χ(V ∆V )], [χ(U ∆A+β), χ(V ∆B)]
sunt de asemenea cuvinte - cod şi se verifică uşor că ele se află la distanţa i. Deoarece
U ∆U = ∅ rezultă [χ(U ∆U + β), χ(V ∆V )] = 0, deci [χ(U ∆A) + β), χ(V ∆B)] are
pondere i. 2
172 PRELEGEREA 15. CODURI PREPARATA

Lema 15.3 Fie [χ(U ), χ(V )] ∈ P (r). Atunci P (r) mai conţine următoarele cuvinte:
(i). [χ(V ), χ(U )];
(ii). [χ(U + β), χ(V + β)] pentru orice β ∈ GF (2r );
(iii). [χ(βU ), χ(βV )] pentru orice β ∈ GF (2r ), β 6= 0.

Demonstraţie: Se rezolvă similar demonstraţiei de la Lema 15.1. 2

Exemplul 15.4 Conform Exemplului 15.3, [χ(U ), χ(V )] ∈ P (3), unde


U = {α, α2 , α5 , 0}, V = {α0 , α, α2 , α3 , α6 , 0}.
Conform Lemei 15.3 ı̂n care se ia β = α3 , vom mai găsi drept cuvinte - cod şi pe
[χ(V ), χ(U )] = 11110011 01100101,
[χ(U + β), χ(V + β)] = [χ({α0 , α5 , α2 , α3 }), χ({α, α0 , α5 , 0, α4 , α3 })] =
= 10110100 11011101,
[χ(βU ), χ(βV )] = [χ({α4 , α5 , α, 0}), χ({α3 , α4 , α5 , α6 , α2 , 0})] =
= 01001101 00111111.

Putem folosi Lema 15.3 pentru a simplifica problema determinării distanţei mini-
me a lui P (r). Pentru aceasta ı̂nsă, este nevoie de un rezultat suplimentar (care
justifică condiţia ca r să fie impar).

Lema 15.4 Fie α ∈ GF (2r ) primitiv. Atunci α3 este primitiv dacă r este impar şi
nu este primitiv dacă r este par.

Demonstraţie: Se ştie că αi este primitiv dacă şi numai dacă (i, 2r − 1) = 1. Avem
2r −1 = (3−1)r −1 = M3+(−1)r −1; deci pentru r impar 2r −1 = M3−2 = M3+1,
ceea ce ı̂nseamnă că α3 este primitiv. Similar, pentru r par, 2r − 1 = M3, deci α3
nu este primitiv. 2

Corolarul 15.1 Dacă r > 2 este un număr impar, atunci pentru orice x ∈ GF (2r )\
{0} există y unic (numit rădăcina cubică a lui x) astfel ca y 3 = x.

Teorema 15.1 P (r) are distanţa minimă t = 6.

Demonstraţie: Deoarece P (r) este invariant la distanţă, el va conţine un cuvânt -


cod [χ(U ), χ(V )] de pondere t. Deci
t = w(χ(U )) + w(χ(V )) = card(U ) + card(V ).
Rezultă că t este număr par; mai trebuie verificat că t 6= 2, t 6= 4 şi există un
cuvânt - cod de pondere 6.
Să presupunem t = 2; atunci card(U ) = 2, card(V ) = 0 (Lema 15.3 asigură că
totul se poate reduce la acest caz). X
Folosind tot Lema 15.3, (ii), putem presupune că
U = {0, x} cu x 6= 0. Dar atunci u = 0 + x = x, ceea ce duce la o contrazicere
u∈U
a definiţiei codurilor Preparata, pentru că V = ∅.
Să presupunem t = 4. Cu Lema 15.3, (i) aceasta ı̂nseamnă card(U ) = 4,
card(V ) = 0 sau card(U ) = card(V ) = 2. În primul caz avem U = {0, x, y, z} cu
x, y, z 6= 0 şi distincte. Ultima condiţie a definiţiei codurilor Preparata este:
03 + x3 + y3 + z3 + (0 + x + y + z)3 = 0 sau (x + y)(x + z)(y + z) = 0
ceea ce este imposibil, cele trei numere fiind distincte şi nenule.
15.2. CODIFICAREA CODURILOR PREPARATA EXTINSE 173

În a doua variantă, se poate considera U = {0, x}, V = {y, z}, toate cele patru
elemente fiind distincte. Din definiţie rezultă
03 + x3 + (0 + x)3 = y3 + z3 sau y3 + z3 = 0.
Folosind acum Corolarul 15.1, din y3 = z3 rezultă y = z, contradicţie.
Să construim acum un cuvânt - cod de pondere t = 6. Fie x, y, z ∈ GF (2r )
elemente distincte nenule. Există atunci (Corolarul 15.1) un element v ∈ GF (2r )
unic cu v3 = x3 + y3 + z3 . Dacă v = x, atunci v3 = x3 deci y3 = z3 , ceea ce duce
la contradicţia y = z. Deci v este distinct de x, y, z.
Definim u = v + x + y + z. Se observă că u 6= 0 (altfel
v3 + (x + y + z)3 = (x + y)(x + z)(y + z) 6= 0
deci - cu Corolarul 15.1 - v 6= x + y + z). Fie acum U = {0, u}, V = {v, x, y, z}.
Din construcţie, cum toate elementele sunt distincte, [χ(U ), χ(V )] este un cuvânt
de pondere 6 şi se verifică uşor că este cuvânt - cod. 2

Exemplul 15.5 Să considerăm GF (23 ) construit anterior. Fie elementele


x = α, y = α3 , z = α5 . Definim
v3 = x3 + y3 + z3 = α3 + α9 + α15 = 110 + 001 + 100 = α4 = (α6 )3
(deoarece α7 = 1), deci se poate lua v = α6 . Mai departe,
u = v + x + y + z = α6 + α + α3 + α5 = α4 . Acum, U = {0, u} = {0, α4 },
V = {v, x, y, z} = {α6 , α, α3 , α5 } şi se obţine [χ(U ), χ(V )] = 00001001 01010110
care este un cuvânt cod din P (3) de pondere 6.

Teorema 15.2 Codul Preparata nu este cod liniar.

Demonstraţie: După cum se ştie, [χ(U ), χ(V )]+[χ(A), χ(B)] = [χ(U ∆A), χ(V ∆B)].
Din demonstraţia Teoremei 15.1 am văzut cum se pot construi cuvintele - cod
[χ(U ), χ(V )], [χ(A), χ(B)] ∈ P (r) cu U = {0, u1 }, V = {x1 , y1 , z1 , v1 },
A = {0, u2 }, B = {x2 , y2 , z2 , v2 }. Conform Lemei 15.1,
c = [χ(U ∆A + u1 ), χ(V ∆B)] ∈ P (r). Facem următoarele observaţii:
card(U ∆A + u1 ) ≤ 2;
d(c, [χ(U ∆A), χ(V ∆B)]) ≤ 2 · card(U ∆A + u1 ) ≤ 4;
P (r) are distanţa minimă 6.
Din ele rezultă că [χ(U ), χ(V )] + [χ(A), χ(B)] 6∈ P (r).
Deci P (r) nu este cod liniar. 2
Ca o consecinţă a acestei teoreme, nu se poate da nici o dimensiune pentru P (r),
deci se pare că nu se poate determina numărul de cuvinte - cod. Vom reuşi totuşi
acest lucru ca o consecinţă a schemei de codificare.

15.2 Codificarea codurilor Preparata extinse


Fie α ∈ GF (2r ) primitiv şi să considerăm codul BCH de polinom generator g(X) =
m1 (X)m3 (X) unde mi (X) este polinomul minimal al lui αi (i = 1, 3). După cum se
ştie, grad(m1 (X)) = grad(m3 (X)) = r, deci grad(g(X)) = 2r. Codul BCH astfel
definit poate corecta maxim 2 erori şi are matricea de control (transpusă):
 
174 PRELEGEREA
α 0
α0 15. CODURI PREPARATA
 1 3 


α α 

 α 2
α 6 
H=



 .. 
 . 
r −2 r −2)
α2 α3(2
Deoarece g(X) generează un cod ciclic, rezultă că orice submatrice a lui H formată
din 2r linii consecutive este nesingulară, deci inversabilă. Se defineşte matricea A
ca submatrice a lui H formată din ultimele 2r linii, şi H 0 matricea rămasă prin
ştergerea lui A.

Exemplul 15.6 În extensia GF (23 ) generată de rădăcina α a polinomului 1 + X +


X 3 vom avea
     
α α3 010 110 001 011
     
 α2 α6   001 101   111 010 
     
 α3 α2   110 001   011 101 
A=

=
 

 cu A =
−1

.

 α4 α5   011 111   110 100 
     
 α5 α   111 010   101 110 
α6 α4 101 011 111 001
Pentru GF (25 ) generată de rădăcina α a polinomului 1 + X 2 + X 5 avem
   
00011 01000 00111 00010
   


10101 00001 



00011 10001 

 11110 00101   10011 00011 
     
α21 α 63 
 01111 10001 


 11011 01010 

 22
 α
66 
α    10011 00111



 01101 10101


A=
 .. ..  
=

 cu A =
−1



 . .   11101 11011   10101 11001 
   
α30 α90 

11010 01100 



00110 11111 

 01101 10101   11001 01110 
   
   
 10010 10011   11000 00111 
01001 01101 10001 10100

Fie a = [aL , aR ] un cuvânt binar oarecare de lungime 2r+1 − 2r − 2, unde


|aL | = 2r − 1, |aR | = 2r − 2r − 1. În notaţie polinomială putem scrie
aL H = [aL (α), aL (α3 )], aR H 0 = [aR (α), aR (α3 )].
Se mai defineşte
vR = [aL (α) + aR (α), aL (α3 ) + (aL (α))3 + aR (α3 )]A−1 . (2)
Teorema 15.3 Fie r un număr impar. Pentru orice cuvânt binar a de lungime
2r+1 − 2r − 2, dacă χ(U ) = [aL , pL ], χ(V ) = [aR , vR , pR ] unde pL , pR sunt biţii de
control pentru aL respectiv [aR , vR ], atunci [χ(U ), χ(V )] ∈ P (r).
Demonstraţie: [aR , vR ]H = aR H 0 + vR A = [aR (α), aR (α3 )] + [aL (α) + aR (α),
aL (α3 ) + (aL (α))3 X
+ aR (α 3
X)] = [aL (α), aL (α
3 3
X) + (aL (α)) ]. X
3
Dar [aR , vR ] = [ v, v ], aL (α) = u, aL (α ) + (aL (α))3 =
3
u3 +
v∈V v∈V u∈U u∈U
à !3
X
u , ceea ce verifică condiţiile din Definiţia 15.1.
u∈U
Deci [χ(U ), χ(V )] este cuvânt - cod ı̂n P (r). 2
15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 175

r+1 −2r−2
Corolarul 15.2 P (r) are 22 cuvinte - cod.
r+1 −2r−2
Demonstraţie: În Teorema 15.3 există 22 alegeri posibile pentru a, toate
conducând la cuvinte - cod distincte. 2
Putem da acum un algoritm de codificare a meajelor de informaţie ı̂n codurile
Preparata.
Fie aL , aR cuvinte de lungimi 2r − 1 respectiv 2r − 2r − 1.
Fie vR definit de (2).
Se construiesc pL , pR conform Teoremei 15.3.
Atunci mesajul de informaţie a = [aL , aR ] se codifică
ı̂n [aL , pL , aR , vR , pR ].

Exemplul 15.7 Să considerăm r = 3, aL = 0110010, aR = 1. Deci


aL (α) = α + α2 + α5 = α0 , aR (α) = α0 ,
aL (α3 ) = α3 + α6 + α15 = α2 , aR (α3 ) = α0 .
Din (2) avem vR = [α0 + α0 , α2 + α0 + α0 ]A−1 = [000 001]A−1 = 111001 unde
A−1 este matricea din Exemplul 15.6. Atunci vom codifica a = [0110010 1] ı̂n
c = [aL , pL , aR , vR , pR ] = [01100010 1 1 111001 1].
Deci c = [χ(U ), χ(V )] unde χ(U ) = 01100101, χ(V ) = 11110011, care coincide
cu secvenţa - cod construită ı̂n Exemplul 15.3.

15.3 Decodificarea codurilor Preparata extinse


Cum P (r) are distanţa minimă 6, el poate corecta maxim 2 erori.
Fie b un cuvânt recepţionat; ı̂l scriem b = [bL , pL , bR , pR ] unde bL , bR sunt
ambele de lungime 2r − 1 iar pL , pR sunt biţi de control a parităţii. Se calculează
bL H = [bL (α), bL (α3 )], bR H = [bR (α), bR (α3 )].
Apar mai multe cazuri, ı̂n funcţie de poziţiile unde apar erori.
1. Dacă erorile apar pe poziţiile de control, atunci
bL (α) = bR (α), bL (α3 ) + (bL (α))3 = bR (α3 )
(conform Definiţiei 15.1), ceea ce se verifică uşor.

2. Dacă există o eroare pe poziţia i ı̂n bR şi cel mult o eroare pe poziţiile de
control atunci
bL (α) = bR (α) + αi , bL (α3 ) + (bL (α))3 = bR (α3 ) + α3i , deci
(bL (α) + bR (α))3 = bL (α3 ) + (bL (α))3 + bR (α3 ).
Dacă ultima relaţie este verificată, atunci se scrie αi = bL (α) + bR (α) şi se
schimbă bitul i din bR (plus cel mult un bit de control).

3. Dacă există o eroare pe poziţia i din bL şi cel mult o eroare pe poziţiile de
control, similar cu cazul anterior (lucru posibil pe baza Lemei 15.3) se verifică
relaţia
(bR (α) + bL (α))3 = bR (α3 ) + (bR (α))3 + bL (α3 );
176 PRELEGEREA 15. CODURI PREPARATA

ı̂n caz afirmativ, se calculează αi = bR (α) + bL (α) şi se schimbă bitul i din bL
(plus cel mult un bit de control).

4. Dacă apar două erori ı̂n bR pe poziţiile i şi j, atunci:


bL (α) = bR (α) + αi + αj , bL (α3 ) + (bL (α))3 = bR (α3 ) + α3i + α3j ,
deci se determină αi + αj şi α3i + α3j . Valorile i, j sunt determinate cu un
algoritm similar celui de la codurile BCH.

5. Dacă apar două erori ı̂n bL , invocând din nou Lema 15.3 putem aplica analiza
de la cazul anterior.

6. Dacă apar două erori: una pe poziţia i ı̂n bL şi una pe poziţia j ı̂n bR , atunci
3
bL (α) + αi = bR (α) + αj , bL (α3 ) + α3i + (bL (α) + αi ) = bR (α3 ) + α3j .
Acest sistem de necunoscute αi şi αj se rezolvă astfel: din prima ecuaţie se
scoate αj = bL (α) + αi + bR (α) şi se ı̂nlocuieşte ı̂n a doua ecuaţie, ceea ce dă
bL (α3 ) + α3i + (bL (α) + αi )3 = bR (α3 ) + (bL (α) + αi )3 + (bL (α) + αi )2 bR (α) +
(bL (α) + αi )bR (α)2 + bR (α)3 .
După simplificări se ajunge la
α3i + α2i bR (α) + αi (bR (α))2 + (bR (α))3 = bL (α3 ) + bR (α3 ) + bL (α)2 bR (α) +
bL (α)bR (α)2 , sau
(αi + bR (α))3 = (bL (α3 ) + bR (α3 )) + (bL (α) + bR (α))3 + bL (α)3 + bR (α)3 .
Notând membrul drept al acestei expresii cu ∆, obţinem soluţia
αi = bR (α) + ∆1/3 , αj = bL (α) + ∆1/3 .

Deci locaţiile erorilor se pot determina ı̂n toate situaţiile posibile. Biţii de paritate
pentru fiecare jumătate de cuvânt dau posibilitatea de a decide ce caz se aplică lui
b. Putem da acum algoritmul de decodificare pentru codurile Preparata P (r).
15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 177

Fie b = [bL , pL , bR , pR ] cuvântul recepţionat.


0. Se calculează L1 = bL (α), L3 = bL (α3 ), R1 = bR (α), R3 = bR (α3 );
1. Dacă L1 + R1 = 0 şi L3 + L31 + R3 = 0, atunci singurele erori posibile au
apărut pe poziţiile de control.
2. Dacă (L1 + R1 )3 + L3 + L31 + R3 = 0, calculăm αi = L1 + R1 . Se corectează
poziţia i din bR şi cel mult un bit de control al parităţii; se cere retransmisia
dacă ambii biţi de paritate trebuie modificaţi.
3. Dacă (L1 + R1 )3 + R3 + R13 + L3 = 0, calculăm αi = L1 + R1 . Se corectează
poziţia i din bL şi cel mult un bit de control al parităţii; se cere retransmisia
dacă ambii biţi de paritate trebuie modificaţi.
4. Dacă ambele jumătăţi ale lui b sunt de pondere pară şi
L3 + L31 + R3 + (L1 + R1 )3
X 2 + (L1 + R1 )X + = (X + αi )(X + αj ),
L1 + R1
se corectează poziţiile i şi j din bL .
5. Dacă ambele jumătăţi ale lui b sunt de pondere pară şi
R3 + R13 + R3 + (L1 + R1 )3
X 2 + (L1 + R1 )X + = (X + αi )(X + αj ),
L1 + R1
se corectează poziţiile i şi j din bR .
6. Dacă ambele jumătăţi ale lui b sunt de pondere impară, se calculează
αi = R1 + (L31 + R13 + (L1 + R1 )3 + L3 + R3 )1/3
αj = L1 + (L31 + R13 + (L1 + R1 )3 + L3 + R3 )1/3
Se corectează poziţia i din bL şi poziţia j din bR .
7. Dacă nu a apărut nici una din situaţiile anterioare, se cere retransmisia
cuvântului.

Exemplul 15.8 Să decodificăm următoarele cuvinte primite, despre care se pre-
supune că au fost codificate folosind P (3), unde GF (23 ) s-a generat cu rădăcina α
a polinomului 1 + X + X 3 :
I: b = 10010011 11100111
(0) [L1 , L3 ] = bL H = 111 110, [R1 , R3 ] = bR H = 101 110
(1) L1 + R1 = 111 + 101 = α 6= 0
(2) (L1 + R1 )3 + L3 + L31 + R3 = α3 + α3 + α15 + α3 = α0 6= 0
(3) (L1 + R1 )3 + R3 + R13 + L1 = α3 + α3 + α18 + α3 = α6 6= 0
α3 + α15 + α3 + α3
(4) X 2 + αX + = X 2 + αX + α6 = (X + α2 )(X + α4 )
α
Deci b se decodifică ı̂n 10010011 11001111.
II: b = 10100100 10001001
(0) [L1 , L3 ] = bL H = [010, 011], [R1 , R3 ] = bR H = [111, 011]
(1) L1 + R1 = 010 + 111 = α6 6= 0
(2) (L1 + R1 )3 + L3 + L31 + R3 = α18 + α4 + α3 + α4 = α6 6= 0
(3) (L1 + R1 )3 + R3 + R13 + L3 = α18 + α4 + α15 + α4 = α2 6= 0
Ambele jumătăţi ale lui b au pondere impară, deci
(6) αi = α5 + (α3 + α15 + α18 + α4 + α4 )1/3 = α5 + (α5 )1/3 = α5 + (α12 )1/3 =
α5 + α4 = α0 .
S-a obţinut i = 0. Se poate determina apoi imediat
αj = α + α4 = α2 , deci j = 2.
Cuvântul b se decodifică ı̂n 00100100 10101001.
178 PRELEGEREA 15. CODURI PREPARATA

III: b = 10001000 11101001


(0) [l1 , L3 ] = bL H = [111, 011], [R1 , R3 ] = bR H = [100, 000]
(1) L1 + R1 = 111 + 100 = α4 6= 0
(2) (L1 + R1 )3 + L3 + L31 + R3 = α12 + α4 + α15 + 0 = α3 6= 0
(3) (L1 + R1 )3 + R3 + R13 + L3 = α12 + 0 + α0 + α4 = 0
Calculăm αi = L1 + R1 = α4 , deci i = 4. Dar modificarea bitului 4 ı̂n bL cere ca
ambii biţi de control să fie modificaţi; deci se cere retransmisia cuvântului.

Pentru codul Preparata obţinut prin relaxarea lui P (r), se poate aplica aceeaşi
strategie de decodificare folosită la codul Golay; cum acesta are d = 5, poate corecta
de asemenea cel mult 2 erori independente.

15.4 Coduri ı̂nrudite cu codul Preparata


15.4.1 Codul Nőrdstrom - Robinson
Să plecăm de la codul Golay binar extins C24 ale cărui cuvinte le scriem sub forma
a = [a1 , a2 ] unde |a1 | = 8, |a2 | = 16. Considerăm submulţimea GN R ⊂ C24 ale
cărei elemente verifică condiţiile:

1. Dacă a ∈ GN R atunci w(a1 ) ∈ {0, 2}.

2. Dacă a, b ∈ GN R atunci d(a1 , b1 ) ≤ 2.

Evident, GN R va avea 256 cuvinte. Pe baza lui se construieşte codul


N R = {a2 |a = [a1 , a2 ] ∈ GN R}.
Acesta este un cod neliniar de lungime n = 16 şi distanţă minimă d = 6. Numit
codul Nőstrom - Robinson, el coincide cu codul Preparata P (3).
Un alt cod derivat din acesta este codul Nadler, construit astfel: se păstrează din
N R doar cuvintele - cod care coincid pe ultimele două poziţii. Apoi la toate aceste
cuvinte se şterg ultimele trei caractere (o dublă scurtare urmată de o relaxare).
Codul astfel obţinut este unic, are n = 13, d = 5 şi 64 cuvinte - cod.

15.4.2 Codurile Kerdock


Definiţia 15.3 Fie r ≥ 3, r impar şi U, V ⊂ GF (2r ), card(U ), card(V ) pare.
Un cod Kerdock K(r) este format din toate cuvintele de forma [U, V ] care verifică
condiţiile:
X X
1. ∀s (1 ≤ s ≤ 2r − 2) (1 ≤ w2 (s) < r − 2) ⇒ us = v s = 0;
u∈U v∈V
à !−s
X X X X
r s s −1 −1
2. ∀s (≤ s ≤ 2 −2) (w2 (s) = r −2) ⇒ u = v = u + v
u∈U v∈V u∈U v∈V

unde w2 (s) reprezintă ponderea reprezentării ı̂n binar a lui s.


Se consideră prin convenţie ∀s, 0−s = 0.
15.5. EXERCIŢII 179

Codul Kerdok K(r) (definit ı̂n 1972) este de fapt un subcod al codului Reed
- Muller RM(2, r + 1); el este format din perechi de translatări de cuvinte din
RM(1, r) selectate ı̂n aşa fel ca să maximizeze distanţa minimă dintre două trans-
latări.
Este interesant că dintre toate codurile cu aceeaşi distanţă minimă, codul Kerdok
are numărul maxim de cuvinte - cod.
Nu vom detalia demonstraţii referitoare la proprietăţile acestor coduri. Pentru
informaţii suplimentare se pot folosi [6] şi [2], cu menţiunea că justificările pleacă de
la o modalitate diferită de definire a codurilor K(r) şi P (r). Rezultatele sunt ı̂nsă
deosebit de interesante. Astfel:

Teorema 15.4 K(r) este invariant la distanţă.

Lema 15.5 K(3) = P (3).

Teorema 15.5 Codurile P (r) şi K(r) sunt duale.

Ca o consecinţă imediată, P (3) este un cod auto-dual.

15.5 Exerciţii
15.1 Demonstraţi relaţiile (1).

15.2 Demonstraţi Lema 15.3.

15.3 Demonstraţi Corolarul 15.1.

15.4 Aplicaţi Lema 15.3 cuvântului - cod definit ı̂n Exemplul 15.4, folosind
β = α0 , β = α, β = α6

15.5 De ce [χ(βU ), χ(βV )] nu este cuvânt - cod pentru β = 0 ?

15.6 Arătaţi că cele trei cuvinte obţinute ı̂n Exemplul 15.4 satisfac condiţiile defini-
ţiei codurilor Preparata.

15.7 Fie GF (23 ) generat de rădăcina α a polinomului 1 + X + X 3 = 0. Folosind


următoarele cuvinte x, y, z ∈ GF (23 ) construiţi cuvinte - cod de pondere 6 din P (3):
x = α y = α2 , z = α3 ,
x = α y = α4 , z = α6 ,
x = α0 y = α3 , z = α6 ,

15.8 Fie GF (23 ) construit cu 1 + X + X 3 , iar A−1 din Exemplul 15.6. Codificaţi
următoarele mesaje folosind P (3):
aL = 1010100, aR = 1;
aL = 1010100, aR = 0;
aL = 1111111, aR = 1;
aL = 1111111, aR = 0;
aL = 0000000, aR = 1;
180 PRELEGEREA 15. CODURI PREPARATA

15.9 Fie GF (25 ) construit cu 1 + X 2 + X 5 , iar A−1 din Exemplul 15.6. Codificaţi
următoarele mesaje folosind P (5):
aL = 10100 . . . 0, aR = 000001000100 . . . 0;
aL = 10100 . . . 0, aR = 00 . . . 0;
aL = 10100 . . . 0, aR = 111100 . . . 0;
aL = 0000 . . . 0, aR = 100 . . . 0;
Care este lungimea lui aL ? dar a lui aR ?

15.10 În aceleaşi condiţii din Exemplul 15.8, să se decodifice cuvintele:
10000001 11101000 00011010 01000010 00100101 10100100
01010110 00011110 11101000 10001001 10011001 01010101
01000111 11001000 10101101 11010000 11101110 01010101
10111011 01101010 01011101 11101101 10011100 10100100
01101101 10011000 10101010 10111011 10100101 00010001

15.11 Decodificaţi cuvintele primite, care au fost codificate cu P (5), unde GF (25 )
a fost construit folosind polinomul 1 + X 2 + X 5 .
11000110001000000000000001000010 00011110000000000000000110010000
10100000001000000000000000000000 00000100010000000100010101011100

15.12 Fie b un cuvânt recepţionat ı̂n care w(bL ) este impar iar w(bR ) este par.
Poate fi decodificat b la pasul 2 al algoritmului ı̂ntr-un cuvânt - cod situat la distanţă
cel mult 2 ?
Bibliografie

[1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991;

[2] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teză de


doctorat), PARIS VI, 1990;

[3] G. Cullmann - Coduri detectoare şi corectoare de erori, Editura Tehnică, 1972;

[4] S. Guiaşu - Teoria Codurilor, Tipografia Universităţii Bucureşti, 1976;

[5] D.G. Hoffman, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R.
Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991;

[6] A.M.Kerdok - A class of low-rate non linear codes, Information and control, 20
(1972), 182-187;

[7] J.H. van Lindt - Coding Theory, Springer Verlag, 1971;

[8] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;

181

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