Documente Academic
Documente Profesional
Documente Cultură
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.
χ(∅) = 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
à !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:
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
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.
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.
Î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
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.
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 ].
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).
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
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
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.
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:
15.5 Exerciţii
15.1 Demonstraţi relaţiile (1).
15.4 Aplicaţi Lema 15.3 cuvântului - cod definit ı̂n Exemplul 15.4, folosind
β = α0 , β = α, β = α6
15.6 Arătaţi că cele trei cuvinte obţinute ı̂n Exemplul 15.4 satisfac condiţiile defini-
ţiei codurilor Preparata.
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
[3] G. Cullmann - Coduri detectoare şi corectoare de erori, Editura Tehnică, 1972;
[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;
[8] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982;
181