Codificare si decodificare [608233]

Prelegerea 1
Codificare ¸ si decodificare
1.1 Codificare
Definit ¸ia 1.1 Fiind date mult ¸imile A(alfabetul surs˘ a) ¸ si B(alfabetul cod), o co-
dificare este o aplicat ¸ie injectiv˘ a K:A!B¤.
Elementele mult ¸imii K(A)µB¤se numesc cuvinte-cod , iarK(A) se nume¸ ste cod.
Dac˘ a Bare numai dou˘ a simboluri, codificarea Kse nume¸ ste binar˘ a .
Exemplul 1.1 Printre secvent ¸ele binare de lungime 5, num˘ arul celor care au doi
de1esteC2
5= 10. Ele pot fi folosite pentru a codifica cifrele din scrierea zecimal˘ a
(Tabelul 1.1).
Tabelul 1.1: Codul ”doi-din-cinci”
Simbol zecimal Cuvˆ ant cod
1 11000
2 10100
3 01100
4 10010
5 01010
6 00110
7 10001
8 01001
9 00101
0 00011
Mesajul0017300are codul 110001000101100 . De remarcat c˘ a ˆ ıntre cuvintele cod
nu se las˘ a nici un spat ¸iu, deoarece ”spat ¸iu” poate fi el ˆ ınsusi un simbol-cod. Astfel
de exemplu, codul Morse are alfabetul B=f:;¡; spat ¸iug.
Decodificarea se face foarte simplu: se ˆ ımparte mesajul codificat ˆ ın grupe de cˆ ate
cinci caractere ¸ si se vede cifra din tabel corespunz˘ atoare grupei respective. Repar-
tizarea cuvintelor cod a fost f˘ acut˘ a pentru a realiza ¸ si o decodificare pe baza unei
1

2 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
formule. Astfel, dac˘ a a0a1a2a3a4este cuvˆ antul – cod, el corespunde cifrei kdat˘ a de
algoritmul:
begin
x:=a1+ 2a2+ 4a3+ 7a4;
ifx= 11then k:= 0elsek:=x;
end.
Definit ¸ia 1.2 Pentru o codificare K:A!B¤, se nume¸ ste ”codificare a mesajelor
(textului) surs˘ a” aplicat ¸ia K¤:A¤!B¤definit˘ a recursiv prin:
²K¤(²) =²(²este cuvˆ antul vid );
²K¤(a®) =K¤(a)K¤(®);8a2A; ®2A¤.
Definit ¸ia 1.3 Codificarea Keste ”unic decodabil˘ a” dac˘ a K¤este injectiv˘ a.
Codificarea dat˘ a ˆ ın Exemplul 1.1 este – dup˘ a cum s-a observat – unic decodabil˘ a.
Acest lucru nu este totdeauna posibil. Dac˘ a lu˘ am de exemplu codificarea
K(a) = 00 ; K (b) = 10 ; K (c) = 101 ; K (d) = 110 ; K (e) = 1001 ;
ea nu este unic decodabil˘ a; astfel K¤(bd) =K¤(cb) = 101110 .
Definit ¸ia 1.4 1.O codificare K:A!B¤ˆ ın care toate cuvintele cod au lungi-
meanse nume¸ ste ”codificare-bloc de lungime n”, iar K(A)este un ”cod-bloc
de lungime n”.
2.O codificare K:A!B¤se nume¸ ste ”instantanee” dac˘ a K(A)are proprietatea
prefixului (dac˘ a ®; ®¯2K(B)atunci ¯=²).
Codul definit ˆ ın Exemplul 1.1 este un cod – bloc de lungime 5.
Codurile bloc sunt eficiente ˆ ın cazul cˆ and simbolurile surs˘ a au frecvent ¸e egale de
aparit ¸ie; ˆ ın caz contrar, ele devin greoaie ¸ si sunt preferabile codurile instantanee cu
lungimi variabile ale cuvintelor cod.
Exemplul 1.2 Codul Morse, dat ˆ ın Tabelul 1.2 este un cod instantaneu cu alfabetul
codB=f:;¡;g. Deoarece spat ¸iul este folosit numai la sfˆ ar¸ situl fiec˘ arui cuvˆ ant –
cod, procedura de decodificare este simpl˘ a: orice cuvˆ ant – cod se afl˘ a ˆ ıntre dou˘ a
spat ¸ii, de la ˆ ınceputul mesajului pˆ an˘ a la primul spat ¸iu, sau de la ultimul spat ¸iu pˆ an˘ a
la sfˆ ar¸ sit. Motivul pentru care nu se folose¸ ste un cod – bloc este simplu: frecvent ¸ele
literelor ˆ ıntr-o limb˘ a difer˘ a foarte mult.
Exemplul 1.3 Un alt exemplu de cod – bloc este codul octal:
0 000 4 100
1 001 5 101
2 010 6 110
3 011 7 111

1.2. EXEMPLE DE CODURI – BLOC IMPORTANTE 3
Tabelul 1.2: Codul Morse
A . – F . . – . K – . – P . – – . U . . –
B – . . . G – – . L . – . . Q – – . – V . . . –
C – . – . H . . . . M – – R . – . W . – –
D – . . I . . N – . S . . . X – . . –
E . J . – – – O – – – T – Y – . – –
Z – – . .
Exemplul 1.4 S˘ a presupunem c˘ a vrem s˘ a construim un cod binar pentru alfabetul
f0;1;2;3g¸ si observ˘ am c˘ a 0apare ˆ ın mesajele surs˘ a mai des decˆ at orice alt simbol.
Atunci urm˘ atoarea schem˘ a de codificare pare rezonabil˘ a:
K(0) = 0 ; K (1) = 01 ; K (2) = 011 ; K (3) = 111 :
Decodificarea sa este foarte simpl˘ a: se aplic˘ a recursiv regula:
”Se consider˘ a sufixul 01k; valoarea lui kreprezint˘ a num˘ arul codificat.”
Totu¸ si aceast˘ a codificare nu este instantanee. ˆIntr-adev˘ ar, dac˘ a se prime¸ ste un
mesaj lung de forma
0111111111111111 : : :
nu vom ¸ sti dac˘ a primul simbol surs˘ a este 0;1sau2pˆ an˘ a nu se termin˘ a mesajul.
1.2 Exemple de coduri – bloc importante
Codurile binare sunt de obicei lungi ¸ si deci greu de manipulat. Este deci convenabil
s˘ a grup˘ am simbolurile binare formˆ and alfabete mai complexe.
Astfel, formˆ and grupuri de cˆ ate trei simboluri, se obt ¸in codurile octale (Exemplul
1.3). Reprezentarea ˆ ın octal se indic˘ a de obicei prin indicele 8 a¸ sezat la sfˆ ar¸ sit. De
exemplu,
(01) 8= 000001
ˆIn mod similar, prin gruparea a cˆ ate patru simboluri binare se obt ¸ine codul hexa-
zecimal.
Un cod foarte important folosit ˆ ın reprezentarea standard a simbolurilor alfa-
betice ¸ si numerice este codul ASCII ( American Standard Code for Information
Interchange) – Tabelul 1.3.

4 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
Tabelul 1.3: Codul ASCII (7 bit ¸i de informat ¸ie)
Simbol Cod Simbol Cod Simbol Cod Simbol Cod
surs˘ a surs˘ a surs˘ a surs˘ a
@ 1(00) 8 ’ 1(40) 8NUL 0(00) 8 SP 0(40) 8
A 1(01) 8 a 1(41) 8SOH 0(01) 8 ! 0(41) 8
B 1(02) 8 b 1(42) 8STX 0(02) 8 ” 0(42) 8
C 1(03) 8 c 1(43) 8ETX 0(03) 8 # 0(43) 8
D 1(04) 8 d 1(44) 8EOT 0(04) 8 $ 0(44) 8
E 1(05) 8 e 1(45) 8ENQ 0(05) 8 % 0(45) 8
F 1(06) 8 f 1(46) 8ACK 0(06) 8 & 0(46) 8
G 1(07) 8 g 1(47) 8BEL 0(07) 8 ’ 0(47) 8
H 1(10) 8 h 1(50) 8 BS 0(10) 8 ( 0(50) 8
I 1(11) 8 i 1(51) 8 HT 0(11) 8 ) 0(51) 8
J 1(12) 8 j 1(52) 8 LF 0(12) 8 * 0(52) 8
K 1(13) 8 k 1(53) 8 VT 0(13) 8 + 0(53) 8
L 1(14) 8 l 1(54) 8 FF 0(14) 8 ‘ 0(54) 8
M 1(15) 8 m 1(55) 8 CR 0(15) 8 – 0(55) 8
N 1(16) 8 n 1(56) 8 SO 0(16) 8 . 0(56) 8
O 1(17) 8 o 1(57) 8 SI 0(17) 8 / 0(57) 8
P 1(20) 8 p 1(60) 8DLE 0(20) 8 0 0(60) 8
Q 1(21) 8 q 1(61) 8 DCI 0(21) 8 1 0(61) 8
R 1(22) 8 r 1(62) 8 DC2 0(22) 8 2 0(62) 8
S 1(23) 8 s 1(63) 8 DC3 0(23) 8 3 0(63) 8
T 1(24) 8 t 1(64) 8 DC4 0(24) 8 4 0(64) 8
U 1(25) 8 u 1(65) 8NAK 0(25) 8 5 0(65) 8
V 1(26) 8 v 1(66) 8SYN 0(26) 8 6 0(66) 8
W 1(27) 8 w 1(67) 8ETB 0(27) 8 7 0(67) 8
X 1(30) 8 x 1(70) 8CAN 0(30) 8 8 0(70) 8
Y 1(31) 8 y 1(71) 8 EM 0(31) 8 9 0(71) 8
Z 1(32) 8 z 1(72) 8SUB 0(32) 8 : 0(72) 8
[ 1(33) 8 f 1(73) 8 ESC 0(33) 8 ; 0(73) 8
1(34) 8 — 1(74) 8 FS 0(34) 8 ¡ 0(74) 8
] 1(35) 8 g 1(75) 8 GS 0(35) 8 = 0(75) 8
1(36) 8 1(76) 8 RS 0(36) 8 ¿ 0(76) 8
1(37) 8DEL 1(77) 8 US 0(37) 8 ? 0(77) 8
El are 27= 128 simboluri surs˘ a codificate ˆ ın secvent ¸e binare de lungime 8;
primele 7 cont ¸in infomat ¸ia, iar ultimul – numit bit de paritate d˘ a un prim control
asupra corectitudinii secvent ¸ei. Valoarea acestui caracter este suma modulo 2 a
primilor ¸ sapte bit ¸i.
De exemplu, litera A, va avea codul 10000010; primele ¸ sapte simboluri provin
din Tabelul 1.3 iar ultimul are valoarea 0 deoarece anterior au fost dou˘ a (num˘ ar
par) simboluri binare cu valoarea 1.
Un ultim cod, folosit internat ¸ional pentru toate c˘ art ¸ile este Internat ¸ional Stan-
dard Book Number (ISBN). El este un cod – bloc de lungime 10 (lungimea cuvintelor
– cod cre¸ ste prin folosirea simbolului ’-’ pe diverse pozit ¸ii, dar acest caracter este ig-

1.3. CONSTRUCT ¸IA CODURILOR INSTANTANEE 5
norat la prelucrarea automat˘ a). Alfabetul cod este B=f0;1;2;3;4;5;6;7;8;9; Xg,
(Xpentru num˘ arul 10).
De exemplu, cartea S. Lin, P. Costello – Teoria Codurilor are codul
ISBN 0 ¡13¡283796 ¡X
Primul num˘ ar (0) reprezint˘ a t ¸ara (SUA), 13 reprezint˘ a editura ( Prentice-Hall ),
iar urm˘ atoarele ¸ sase cifre sunt asignate de editur˘ a ca num˘ ar de identificare al c˘ art ¸ii.
Ultimul simbol este de control (similar cu bitul de paritate definit anterior) ¸ si definit
astfel:
Pentru codul ISBN a1a2: : : a 10;10X
i=1ia11¡i= 0 ( mod 11).
Astfel,ˆ ın ISBN -ul de sus,
10¢0+9¢1+8¢3+7¢2+6¢8+5¢3+4¢7+3¢9+2¢6+1¢10 = 187 ´0 (mod 11)
Unele publicat ¸ii au codul de identificare de trei cifre (de exemplu Wiley-Inter-
science are 471); ˆ ın acest caz num˘ arul pentru fiecare publicat ¸ie are numai cinci
simboluri. Pentru Romˆ ania, codul de t ¸ar˘ a este 973.
1.3 Construct ¸ia codurilor instantanee
Ne punem problema construirii unui cod binar instantaneu peste alfabetul surs˘ a
A=fa1; : : : ; a ng.
Init ¸ial se specific˘ a lungimile d1; d2; : : : ; d nale cuvintelor cod. F˘ ar˘ a a mic¸ sora
generalitatea, putem presupune d1·d2·: : :·dn.
Se alege un cuvˆ ant – cod binar arbitrar K(a1) de lungime d1.
Se alege un cuvˆ ant – cod arbitrar K(a2) din mult ¸imea cuvintelor binare de
lungime d2care nu au pe K(a1) ca prefix. Aceasta este totdeauna posibil pentru c˘ a:
Num˘ arul tuturor secvent ¸elor binare de lungime d2este 2d2; dintre acestea, num˘ a-
rul celor care nu au prefixul K(a1) este 2d2¡d1. Cum 2d2¸2d2¡d1+ 1, exist˘ a cel
put ¸in o alegere posibil˘ a pentru K(a2) de lungime d2.
Va trebui s˘ a select˘ am ˆ ın continuare un cuvˆ ant de lungime d3care nu are ca prefix
K(a1) sau K(a2). Deci, din cele 2d3secvent ¸e binare posibile trebuiesc eliminate cele
2d3¡d1secvent ¸e cu prefixul K(a1) ¸ si 2d3¡d2secvent ¸e cu prefixul K(a2). Aceasta este
posibil dac˘ a ¸ si numai dac˘ a
2d3¸2d3¡d2+ 2d3¡d1+ 1
ˆImp˘ art ¸ind aceast˘ a inegalitate cu 2d3se obt ¸ine
1¸2¡d1+ 2¡d2+ 2¡d3:
ˆIn mod analog se poate ar˘ ata inegalitatea
1¸2¡d1+ 2¡d2+: : :+ 2¡dn
din care rezult˘ a construct ¸ia. De remarcat c˘ a ea este o condit ¸ie necesar˘ a ¸ si suficient˘ a
pentru construct ¸ia codurilor instantanee.

6 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
Teorema 1.1 Fiind dat un alfabet surs˘ a de nsimboluri ¸ si un alfabet cod de ksim-
boluri, se poate construi un cod instantaneu cu lungimile cuvintelor cod d1; d2; : : : ; d n
dac˘ a ¸ si numai dac˘ a este verificat˘ a inegalitatea (Kraft):
k¡d1+k¡d2+: : :+k¡dn·1:
Demonstrat ¸ie : Fie A=fa1; a2; : : : ; a ng¸ si putem presupune relat ¸ia d1·d2·: : :·
dn. Construim codificarea instantanee Kprin induct ¸ie astfel:
²Se alege K(a1) arbitrar.
²Presupunem c˘ a au fost alese K(a1); K(a2); : : : K (as¡1). Atunci se va alege un
cuvˆ ant arbitrar K(as) care nu are ca prefix nici unul din cuvintele selectate
anterior. Aceasta este posibil deoarece num˘ arul cuvintelor cu prefixul K(ai)
este 2ds¡di(1·i·s¡1); deci alegerea poate fi f˘ acut˘ a din
kds¡s¡1X
i=1kds¡dielemente :
Din inegalitatea lui Kraft avem
1¡s¡1X
i=1k¡di¸k¡ds
care, prin multiplicare cu kdsconduce la
kds¡s¡1X
i=1kds¡di¸1:
Afirmat ¸ia reciproc˘ a se demonstreaz˘ a similar (pentru k= 2 ea a fost dat˘ a anterior).
2
Teorema 1.2 (McMillan) Orice codificare unic decodabil˘ a satisface inegalitatea lui
Kraft.
Demonstrat ¸ie : Fie Ko codificare unic decodabil˘ a. Not˘ am cu dilungimea cuvˆ antului
codK(ai);(1·i·n). Se observ˘ a c˘ a 8j;(j¸1) se pot forma kjcuvinte de lungime
jpeste alfabetul – cod cu ksimboluri. Din proprietatea de unic decodabilitate,
num˘ arul mesajelor surs˘ a ®=ai1ai2: : : a iral c˘ aror cod are lungimea jnu dep˘ a¸ se¸ ste
kj. Lungimea codului pentru ®estedi1+di2+: : :+dir; deci num˘ arul tuturor sumelor
de forma
di1+di2+: : :+dir=j
este cel mult kj.
R˘ amˆ ane de demonstrat c˘ a num˘ arul c=nX
i=1k¡dieste cel mult 1. Pentru aceasta,
vom ar˘ ata c˘ a 8r¸1;cr
reste m˘ arginit.

1.4. CODURI HUFFMAN 7
S˘ a calcul˘ am puterile lui c:
c2=ÃnX
i=1k¡di!0
@nX
j=1k¡dj1
A=nX
i;j=1k¡(di+dj)
¸ si, ˆ ın general,
cr=nX
i1;i2;:::;ir=1k¡(di1+di2+:::+dir)
Aceast˘ a sum˘ a se poate re-ordona grupˆ and tot ¸i termenii de forma k¡junde jsatisface
egalitatea anterioar˘ a. Cel mai mare jposibil este j=d+d+: : :+d=rd, unde
d=maxfd1; d2; : : : ; d ng.
Num˘ arul tuturor termenilor de forma k¡jdin sum˘ a este cel mult kj. Deci,
cr·rdX
j=1kjk¡j=rdX
j=11 =rd:
Deci,cr
r·d, de unde va rezulta c·1 (pentru c >1 ¸ sirul ar=cr
r! 1 , deci nu
este m˘ arginit). 2
Corolarul 1.1 Pentru orice cod unic decodabil exist˘ a un cod instantaneu care are
toate cuvintele – cod de lungimi egale.
Demonstrat ¸ie : Rezult˘ a din demonstrat ¸ia teoremei precedente.
Exemplul 1.5 S˘ a consider˘ am alfabetul surs˘ a =fa; b; cg¸ si alfabetul – cod
B=f0;1g; deci n=jAj= 3; k=jBj= 2. Vrem s˘ a construim o codificare
instantanee K:A!Bcare are toate cuvintele – cod de lungime d. Inegalitatea
Kraft va da 2¡d+ 2¡d+ 2¡d·1, deci 2¡d·1
3. Cel mai mic dcare o verific˘ a este
d= 2. Deci orice mult ¸ime de 3secvent ¸e binare de lungime 2va putea fi folosit˘ a
drept cod. Sunt 4astfel de mult ¸imi:
f00;01;10g;f00;01;11g;f00;10;11g;f01;10;11g
1.4 Coduri Huffman
Am ment ¸ionat anterior faptul c˘ a dac˘ a frecvent ¸a simbolurilor surs˘ a variaz˘ a, atunci co-
durile instantanee sunt preferabile codurilor bloc, deoarece simbolurile care apar mai
frecvent vor fi codificate cu cuvinte cod mai scurte. Ne punem problema afl˘ arii unor
codific˘ ari cˆ at mai eficiente, ˆ ın ipoteza c˘ a frecvent ¸ele simbolurilor surs˘ a sunt cunos-
cute exact (de exemplu probabilitatea distribut ¸iei simbolurilor surs˘ a ˆ ın mesaje).
Definit ¸ia 1.5 O surs˘ a de informat ¸ie este o pereche S= (A; P)unde
²A=fa1; a2; : : : ; a ngeste alfabetul surs˘ a(mult ¸ime ordonat˘ a);
²P=fP(a1); P(a2); : : : ; P (an)geste mult ¸imea ordonat˘ a a probabilit˘ at ¸ilor ele-
mentelor lui A, deci

8 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
–0·P(ai)·1;(1·i·n);
–nX
i=1P(ai) = 1 .
FieKo codificare a unei surse de informat ¸ie. Dac˘ a se noteaz˘ a cu di=jK(ai)j(j®j
reprezint˘ a lungimea secvent ¸ei ®), se poate defini lungimea medie La cuvintelor cod
prin
L=nX
i=1diP(ai):
O codificare este eficient˘ a dac˘ a lungimea medie a secvent ¸elor cod este cˆ at mai mic˘ a.
Definit ¸ia 1.6 Fiind dat˘ a o surs˘ a de informat ¸ie S¸ si un alfabet cod, un cod Huffman
este un cod instantaneu cu lungimea medie minim˘ a.
Lungimea medie minim˘ a a unui cod Huffmann se noteaz˘ a cu Lmin(S).
Exemplul 1.6 S˘ a se determine un cod Huffman binar pentru alfabetul surs˘ a A=
fa; b; c; d; e; f g¸ stiind c˘ a ’ a’ apare de dou˘ a ori mai des decˆ at ’ e’ ¸ si ’e’ de dou˘ a ori
mai des decˆ at orice consoan˘ a.
Deci, vom avea sursa de informat ¸ie
Simbol a b c d e f
Probabilitate 0:4 0:1 0:1 0:1 0:2 0:1
Putem asigna deci un cuvˆ ant cod de lungime 1lui ’a’ ¸ si unul de lungime doi lui ’ e’.
Atunci lungimile cuvintelor cod r˘ amase sunt egale cu 4, iar inegalitatea lui Kraft
este saturat˘ a:1
2+1
22+4
24= 1. Un astfel de cod se poate construi:
K(a) = 0 K(c) = 1101 K(e) = 10
K(b) = 1100 K(d) = 1110 K(f) = 1111
Lungimea sa medie este
L= 0:4 + 2£0:2 + 4£4£0:1 = 2 :4
Deci, pentru acest exemplu, Lmin(S)·2:4
1.4.1 Construct ¸ia codurilor Huffman binare
O surs˘ a cu dou˘ a simboluri are evident un cod Huffman de cuvinte cod f0;1g(¸ si deci
Lmin(S) = 1).
O surs˘ a cu trei simboluri fa1; a2; a3gˆ ın care a1are probabilitate maxim˘ a, poate
fi redus˘ a la cazul a dou˘ a simboluri fa1; a2;3gunde P(a2;3) =P(a2) +P(a3). Vom
g˘ asi o codificare Huffman pentru sursa redus˘ a
K(a1) = 0 ; K (a2;3) = 1 :
dup˘ a care ”spargem” cuvˆ antul cod 1 ˆ ın dou˘ a cuvinte: 10 ¸ si 11; ˆ ın acest fel se obt ¸ine
un cod Huffman pentru sursa original˘ a:

1.4. CODURI HUFFMAN 9
a1a2a3
0 10 11
ˆIn general, fie So surs˘ a de informat ¸ie cu simbolurile fa1; a2; : : : ; a ngordonate dup˘ a
probabilit˘ at ¸i, adic˘ a:
P(a1)¸P(a2)¸: : :¸P(an):
Contruim o surs˘ a redus˘ a S¤cu simbolurile fa1; : : : ; a n¡2; an¡1;ngunde an¡1;neste un
simbol nou, cu probabilitatea P(an¡1;n) =P(an¡1) +P(an).
Dac˘ a nu se poate construi un cod Huffman pentru S¤, se reia procedeul pentru
aceast˘ a surs˘ a (reordonˆ and eventual simbolurile dup˘ a probabilitate); ˆ ın final se va
ajunge la o surs˘ a (pentru dou˘ a simboluri problema a fost rezolvat˘ a) ˆ ın care care
codul Huffman se poate construi.
Dac˘ a se poate g˘ asi o codificare Huffman K¤pentru sursa redus˘ a S¤, atunci codul
din Tabelul 1.4 este un cod Huffman pentru S(vom demonstra aceast˘ a afirmat ¸ie) .
Tabelul 1.4:
a1 a2 : : : an¡2 an¡1 an
K¤(a1)K¤(a2): : :K¤(an¡2)K¤(an¡1;n)0K¤(an¡1;n)1
Lema 1.1
L(K) =L(K¤) +P(an¡1) +P(an)
Demonstrat ¸ie : Fie d1; d2; : : : ; d n¡2; d¤lungimile cuvintelor cod corespunz˘ atoare lui
K¤. Atunci lungimile cuvintelor cod pentru Ksunt d1; d2; : : : ; d n¡2; d¤+ 1; d¤+ 1.
Efectuˆ and calculele, se obt ¸ine:
L(K) =n¡2X
i=1diP(ai) + (d¤+ 1)P(an¡1) + (d¤+ 1)P(an) =
=n¡2X
i=1diP(ai) +d¤[P(an¡1) +P(an)] +P(an¡1) +P(an) =
=L(K¤) +P(an¡1) +P(an):2
Teorema 1.3 FieK¤o codificare Huffman pentru o surs˘ a de informat ¸ie redus˘ a S¤.
Atunci codificarea Kdefinit˘ a de Tabelul 1.4 este un cod Huffman pentru sursa de
informat ¸ie S.
Demonstrat ¸ie : Fie a1; a2; : : : ; a nsimbolurile surs˘ a, ordonate descresc˘ ator dup˘ a prob-
abilitate. Deoarece teorema este evident˘ a pentru P(an) = 0, vom considera doar
cazul P(an)>0. Demonstrat ¸ia const˘ a din trei pa¸ si:
²Sadmite o codificare Huffman K0cu lungimile cuvintelor cod ordonate:
d1·d2·: : :·dn(di=jK0(ai)j;1·i·n):
Pentru a demonstra aceasta, plec˘ am de la un cod Huffman arbitrar Kpentru
S. Dac˘ a exist˘ a un simbol aiastfel ca di> d i+1, not˘ am cu K0codificarea

10 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
obt ¸inut˘ a din Kprin permutarea cuvintelor cod corespunz˘ atoare lui ai¸ siai+1.
K0este evident un cod instantaneu, iar diferent ¸a dintre lungimile medii L=
Lmin(al lui K) ¸ siL0(al lui K0) este:
Lmin¡L0= [diP(ai) +di+1P(ai+1)]¡[di+1P(ai) +diP(ai+1)] =
= (di¡di+1)[P(ai)¡P(ai+1)]:
Aceast˘ a expresie este produsul dintre un num˘ ar pozitiv ¸ si unul nenegativ, deci
Lmin¸L0, iar din proprietatea de minimalitate rezult˘ a Lmin=L0. Cu alte
cuvinte, K0este un alt cod Huffman. Procedeul continu˘ a pˆ an˘ a se obt ¸ine codul
K0cerut.
²Sadmite o codificare Huffman K1ˆ ın care ultimele cuvinte cod, K1(an¡1)¸ si
K1(an)difer˘ a doar prin ultimul simbol.
FieK0codul Huffman anterior ¸ si ˜K0codul rezultat din K0eliminˆ and ultimul
simbol din K0(an). Lungimea medie a lui ˜K0va fi evident mai mic˘ a decˆ at cea
a luiK0(pentru c˘ a P(an)>0), deci ˜K0nu poate fi instantaneu. Cuvˆ antul cod
˜K0(ai) =K0(ai);(1·i·n¡1) nu este prefixul nici unui cuvˆ ant cod; deci
exist˘ a un i(i·n¡1) astfel ˆ ıncˆ at ˜K0(an) este prefixul lui K0(ai). Aceasta
este posibil numai dac˘ a di=dn¸ si deci K0(ai) difer˘ a de K0(an) numai prin
ultimul simbol. Dac˘ a i=n¡1, se ia K1=K0. Altfel, se observ˘ a c˘ a di=dn
implic˘ a di=di+1=: : :=dn; deci se pot permuta cuvintele cod definite ˆ ın K0
pentru ai¸ sian¡1. Codul K1astfel obt ¸inut are aceea¸ si lungime medie ca ¸ si K0,
deci este un cod Huffman.
²S˘ a presupunem c˘ a se d˘ a o codificare Huffman K¤pentru sursa redus˘ a S¤
¸ si definim un cod Kpentru Sconform Tabelului 1.4. Lungimile lor medii
L(K); L(K¤) verific˘ a relat ¸ia din Lema 1.1.
S˘ a folosim acum codul Huffman K1construit mai sus. Deoarece ultimele dou˘ a
cuvinte cod difer˘ a numai prin ultimul simbol, K1poate fi obt ¸inut dintr-un cod

1al lui S¤prin ”spargerea” ultimului cuvˆ ant – cod. ˆIn plus, K¤
1este evident
instantaneu. Prin calcule se ajunge la relat ¸ia
L(K1)¡L(K¤
1) =P(an¡1) +P(an)
Cum avem ¸ si L(K)¡L(K¤) =P(an¡1) +P(an), rezult˘ a
L(K) =L(K1)¡L(K¤
1) +L(K¤):
Acum, L(K¤) = Lmin(S¤), deci ¡L(K¤
1) +L(K¤)·0. Rezult˘ a L(K)·
L(K1) =Lmin(S). Deci, Keste un cod Huffman.
2

1.5. EXERCIT ¸II 11
1.5 Exercit ¸ii
Exercit ¸iul 1.1 Care este cea mai mic˘ a lungime a unui cod bloc cu alfabetul surs˘ a
A=fA; B; : : : ; Z g¸ si alfabetul cod B=f:;¡; spat ¸iug(ca la codul Morse).
Exercit ¸iul 1.2 Se define¸ ste codificarea
1!01 4 !1000
2!011 5 !1100
3!10 6 !0111
Este ea unic decodabil˘ a ? Este instantanee ? Se poate g˘ asi un cod instantaneu cu
acelea¸ si lungimi ale cuvintelor cod ?
Exercit ¸iul 1.3 Se define¸ ste codificarea
A!1010 D!0001
B!001 E!1101
C!101 F!1011
Este ea unic decodabil˘ a ? Dac˘ a nu, g˘ asit ¸i dou˘ a mesaje surs˘ a cu acela¸ si cod.
Exercit ¸iul 1.4 Este unic decodabil˘ a codificarea:
0!AA 4!ABBAA 7!AAAABB
1!AABAB 5!BABBA 8!AAAABA
2!ABBBBB 6!BBBAB 9!AAAAAB
3!ABABA
Exercit ¸iul 1.5 Se poate decide unic decodabilitatea codific˘ arilor
K(a) = 001 K(a) = 00
K(b) = 1001 K(b) = 10
K(c) = 0010 K(c) = 011
K(d) = 1110 K(d) = 101
K(e) = 1010 K(e) = 111
K(f) = 01110 K(f) = 110
K(g) = 0101 K(g) = 010
folosind inegalitatea lui Kraft ?
Exercit ¸iul 1.6 S˘ a se construiasc˘ a un cod binar instantaneu pentru urm˘ atorul al-
fabet surs˘ a cu lungimile corespunz˘ atoare ale cuvintelor cod:
Simbol A B C D E F G H I J K L
Lungime 2 4 7 7 3 4 7 7 3 4 7 7
Exercit ¸iul 1.7 S˘ a se construiasc˘ a un cod ternar (trei simboluri cod) instantaneu
pentru urm˘ atorul alfabet surs˘ a, cu lungimile corespunz˘ atoare ale cuvintelor cod:

12 PRELEGEREA 1. CODIFICARE S ¸I DECODIFICARE
Simbol 1 2 3 4 5 6 7 8 9 0
Lungime 1 3 3 3 3 3 2 2 2 2
Exercit ¸iul 1.8 Cˆ ate simboluri cod sunt necesare pentru ca urm˘ atorul alfabet surs˘ a
s˘ a poat˘ a fi codificat ˆ ıntr-un cod instantaneu cu lungimile cuvintelor cod date:
A B C D E F G H I J K L M N O P
1 2 2 2 1 2 2 2 1 2 2 2 2 2 1 2
Exercit ¸iul 1.9 Demonstrat ¸i c˘ a pentru orice cod instantaneu ˆ ın care inegalitatea
Kraft este strict˘ a, este posibil s˘ a se adauge un nou simbol surs˘ a ¸ si s˘ a se extind˘ a
codul dat la un nou cod instantaneu (cu acela¸ si alfabet cod). Demonstrat ¸i aceasta
pentru codul definit la Exercit ¸iul 1.6.

Prelegerea 2
Coduri liniare
2.1 Matrice generatoare
Definit ¸ia 2.1 Fiequn num˘ ar prim ¸ si n2N¤un num˘ ar natural nenul. Se nume¸ ste
”cod liniar” orice subspat ¸iu liniar al lui Zn
q:
Un subspat ¸iu k-dimensional al lui Zn
qse nume¸ ste (n; k)- cod liniar peste alfabetul
Zq.
S˘ a not˘ am ˆ ın general cu An;k(An;kµZn
q) un ( n; k) – cod liniar. Elementele sale se
numesc cuvinte-cod .
Fien; k2N; k < n . Ocodificare este o aplicat ¸ie injectiv˘ a Á:Zk
q¡!Zn
q, iar
An;k=Á(Zk
q). Elementele lui Zk
qse numesc mesaje de informat ¸ie .
Deci, x2Zk
qeste un mesaj de informat ¸ie scris cu caractere din alfabetul Zq.
Dac˘ a transmitem succesiunea xde semnale printr-un canal de comunicat ¸ie, mesajul
este supus diverselor perturb˘ ari ”de canal” care-l modific˘ a. Ideea teoriei codurilor
este urm˘ atoarea: ˆ ın loc de a transmite elementele lui Zk
q, s˘ a ”lungim” mesajul
informat ¸ional scufundˆ and (prin intermediul aplicat ¸iei Á)Zk
qˆ ıntr-un spat ¸iu liniar
Zn
q(n > k ) astfel ˆ ıncˆ at cele n¡kpozit ¸ii noi – numite pozit ¸ii de control – s˘ a asigure
redondant ¸a necesar˘ a refacerii mesajului de informat ¸ie init ¸ial.
Astfel, cu pret ¸ul lungirii mesajului, se cˆ a¸ stig˘ a protect ¸ia fat ¸˘ a de (anumite tipuri
de) erori.
Observat ¸ii :
²Din definit ¸ie rezult˘ a c˘ a un cod liniar de lungime neste un set Ade cuvinte
(secvent ¸e, ¸ siruri, vectori) de lungime ncu propriet˘ at ¸ile:
–8a;b2A=)a+b2A;
–8a2A; t2Zq=)ta2A:
²Orice cod – liniar cont ¸ine cuvˆ antul cod nul 0= (0;0; : : : ; 0).
²jZqj=r=) jAn;kj=rk
An;kfiind un spat ¸iu liniar k-dimensional, admite o baz˘ a format˘ a din kvectori cu n
elemente. Fie
e1;e2; : : : ;en
13

14 PRELEGEREA 2. CODURI LINIARE
o astfel de baz˘ a. Atunci orice cuvˆ ant cod v2An;kare forma
v=kX
i=1uiei
unde ( u1; u2; : : : ; u k)2Zk
qeste unic determinat.
Cu alte cuvinte, ksimboluri de informat ¸ie u1; : : : ; u k2Zqdetermin˘ a ˆ ın mod
unic un cuvˆ ant – cod v2An;kprin relat ¸ia de sus, ¸ si reciproc. Operat ¸ia de codificare
Áface aceast˘ a asociere biunivoc˘ a:
u= (u1; : : : ; u k)2Zk
q()v=kX
i=1uiei2An;k
Fiecare vector – codˆ ıntr-un cod liniar va avea deci ksimboluri de informat ¸ie; celelalte
n¡ksimboluri se numesc simboluri de control .
Definit ¸ia 2.2 FieAn;kun cod liniar cu baza e1; : : : ;ek. Matricea
Gn;k=0
BBB@e1
e2
: : :
ek1
CCCA
se nume¸ ste ”matricea generatoare” a codului.
Deci operat ¸ia de codificare este definit˘ a prin matricea generatoare:
8u2Zk
q; Á(u) =uG:
Exemplul 2.1 Matricea
G=Ã
1 0 0 1 1
0 1 0 0 1!
genereaz˘ a un (5;2)-cod liniar peste Z2. Rangul ei este 2(primele dou˘ a coloane
formeaz˘ a matricea unitate), deci cele dou˘ a linii ale lui Gsunt cuvinte – cod liniar
independente.
Mult ¸imea mesajelor de de informat ¸ie este Z2
2=f00;01;10;11g:ˆInmult ¸ind fiecare
mesaj cu matricea Gse obt ¸ine spat ¸iul liniar al cuvintelor – cod
A4;2=f00000 ;01001 ;10011 ;11010g:
Funct ¸ia de codificare este:
00!00000 ;01!01001 ;10!10011 ;11!11010 :
Un cod liniar poate fi generat de mai multe baze posibile. Deci se pot construi
mai multe matrici generatoare pentru un ( n; k)-cod liniar. Ele se pot transforma
una ˆ ın alta prin operat ¸iile liniare obi¸ snuite, definite pentru liniile unei matrici. Prin
schimbarea matricii generatoare nu se schimb˘ a spat ¸iul liniar al cuvintelor – cod, ci
numai modalitatea de codificare (funct ¸ia Á). Cum prin termenul codse ˆ ınt ¸elege de
obicei spat ¸iul liniar An;k, rezult˘ a c˘ a dou˘ a matrici diferite care se deduc una din alta
prin operat ¸ii pe linii, reprezint˘ a acela¸ si cod.

2.1. MATRICE GENERATOARE 15
Exemplul 2.2 Reluˆ and Exemplul 2.1, prin adunarea liniei doi la prima linie se
obt ¸ine matricea
G0=Ã
1 1 0 1 0
0 1 0 0 1!
Ea genereaz˘ a acela¸ si spat ¸iu liniar A5;2, dar codificarea difer˘ a:
00!00000 ;01!01001 ;10!11010 ;11!10011
Exemplul 2.3 Matricea
G=0
B@1 1 0 0 0 0
0 0 2 2 0 0
1 1 1 1 1 11
CA
genereaz˘ a un (6;3)-cod liniar peste Z3. Aducˆ and matricea la forma canonic˘ a, se
obt ¸ine
G0=0
B@1 1 0 0 0 0
0 0 1 1 0 0
0 0 0 0 1 11
CA
Toate cele 33= 27 cuvinte ale acestui cod au urm˘ atoarea proprietate: fiecare simbol
este scris de dou˘ a ori. Din acest motiv, codul este numit ”cod cu repetit ¸ie”.
Cea mai convenabil˘ a regul˘ a de codificare const˘ aˆ ın scrierea simbolurilor de informat ¸ie
¸ si suplimentarea lor cu n¡ksimboluri de control. Aceasta corespunde matricii
generatoare (unice)
G= (IjB)
unde Ieste matricea unitate de ordin k, iar Beste o matrice cu klinii ¸ si n¡k
coloane.
Definit ¸ia 2.3 Un cod liniar este numit sistematic dac˘ a admite o matrice genera-
toare de forma G= (IjB)unde Ieste matricea unitate.
Definit ¸ia 2.4 Dou˘ a coduri liniare A¸ siA0de aceea¸ si lungime nse numesc echiva-
lente dac˘ a 9¼2Snastfel ˆ ıncˆ at
v1v2: : : v n2A()v¼(1)v¼(2): : : v ¼(n)2A0
(s-a notat cu Snmult ¸imea permut˘ arilor de nelemente).
Exemplul 2.4 Codul din Exemplul 2.1 este un cod sistematic. Din codificare se
observ˘ a c˘ a mesajul de informat ¸ie se afl˘ a ˆ ın cuvˆ antul – cod pe primele dou˘ a pozit ¸ii.
Codul cu repetit ¸ie din Exemplul 2.3 nu este sistematic. Totu¸ si, folosind per-
mutarea (1;4;6;2;5;3)(se permut˘ a simbolurile doi cu patru ¸ si trei cu ¸ sase) se ajunge
la un cod sistematic generat de matricea
G¤=0
B@1 0 0 1 0 0
0 1 0 0 0 1
0 0 1 0 1 01
CA

16 PRELEGEREA 2. CODURI LINIARE
Teorema 2.1 Orice cod liniar este echivalent cu un cod liniar sistematic.
Demonstrat ¸ie : Matricea generatoare Ga unui ( n; k) – cod liniar Aare rangul k; deci
ea are kcoloane liniar independente.
1.S˘ a presupunem c˘ a primele kcoloane ale lui Gsunt liniar independente. Deci
G= (XjY) unde Yeste o matrice k£kinversabil˘ a. Exist˘ a atunci o succesiune
de operat ¸ii de linii care transform˘ a Xˆ ın matricea unitate. Aceea¸ si succesiune
de operat ¸ii efectuate acum pentru toat˘ a matricea Gva conduce la matricea
G0= (IjY0). Deoarece ¸ si G0este matrice generatoare pentru codul A, rezult˘ a
c˘ a acesta este sistematic.
2.Fie ( p1; p2; : : : ; p n) permutarea care aduce coloanele liniar independente ale
matricii Gpe primele kpozit ¸ii. Se obt ¸ine ˆ ın acest fel o nou˘ a matrice G0. Fie
A0codul liniar obt ¸inut prin codificarea cu matricea generatoare G0. Atunci A
¸ siA0sunt echivalente, iar A0este sistematic, conform cazului anterior. 2
2.2 Matrice de control
Definit ¸ia 2.5 FieAn;kun cod liniar generat de matricea G=Gk;n. Se nume¸ ste
”matrice de control” o matrice H=Hn¡k;ncu proprietatea GHT=0.
Observat ¸ii :
²Din definit ¸ie rezult˘ a c˘ a matricea de control Ha unui cod liniar Aare urm˘ a-
toarea proprietate:
v2A()vHT=0
L˘ as˘ am ca exercit ¸iu demonstrarea acestei echivalent ¸e.
²Prin transpunere, relat ¸ia de sus se poate scrie ¸ si HGT=0. Aceasta ˆ ınseamn˘ a
c˘ a ¸ siHeste matricea generatoare a unui ( n; n¡k) – cod liniar peste corpul Zq,
cod pentru care Geste matrice de control. Cele dou˘ a coduri astfel definite se
numesc coduri duale . Cuvintele – cod din cele dou˘ a coduri duale sunt ortogo-
nale (produsul lor scalar este zero). ˆIntr-adev˘ ar, dac˘ a A¸ siBsunt dou˘ a coduri
duale generate de matricile Grespectiv H, iarx2A;y2Bsunt cuvinte –
cod arbitrare, exist˘ a u;vcux=uG;y=vH.ˆIn plus, xHT=0;yGT=0.
Atunci, xyT=uGyT=u(yGT)T=u0T=0.
Exemplul 2.5 (7;4)- codul liniar binar cu matricea generatoare
G=0
BBB@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 11
CCCA
are drept matrice de control

2.2. MATRICE DE CONTROL 17
H=0
B@0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 11
CA
care la rˆ andul ei este matricea generatoare a unui (7;3)- cod liniar binar.
Se verific˘ a imediat relat ¸ia
GHT=0
BBB@0 0 0
0 0 0
0 0 0
0 0 01
CCCA
Un cod care coincide cu codul s˘ au dual se nume¸ ste cod auto – dual .
Teorema 2.2 Un cod sistematic cu matricea generatoare G= (IjB)admite ca
matrice de control H= (¡BTjI).
Demonstrat ¸ie : Cele dou˘ a matrici unitate din scrierea lui G¸ siHsunt de ordin k
respectiv n¡k. Efectuˆ and calculele, se obt ¸ine:
GHT= (IjB)0
B@¡B
¡¡
I1
CA=¡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 cˆ and se cunoa¸ ste matricea generatoare. S˘ a ar˘ at˘ am aceasta pe un exemplu:
Exemplul 2.6 Plecˆ and de la matricea generatoare construit˘ a ˆ ın Exemplul 2.4, se
poate construi matricea de control (calculele se fac ˆ ın Z3):
H¤=0
B@¡1 0 0 1 0 0
0 0 ¡1 0 1 0
0¡1 0 0 0 11
CA=0
B@2 0 0 1 0 0
0 0 2 0 1 0
0 2 0 0 0 11
CA:
Aplicˆ and acum permutarea invers˘ a coloanelor lui H¤, se ajunge la matricea de con-
trol a codului definit ˆ ın Exemplul 2.3:
H=0
B@2 1 0 0 0 0
0 0 0 0 1 2
0 0 1 2 0 01
CA
Relat ¸ia xHT=0pe care o verific˘ a orice cuvˆ ant – cod x2An;kpermite s˘ a definim
un cod ¸ si sub forma unui sistem de ecuat ¸ii. Astfel, An;keste un cod peste Zqdac˘ a
¸ si numai dac˘ a elementele sale sunt solut ¸ii ale sistemului liniar xHT=0.
Exemplul 2.7 Codul cu matricea de control H=Ã
1 1 0 1 0
1 1 1 1 1!
este definit ca mult ¸imea solut ¸iilor binare (x1; x2; x3; x4; x5)ale sistemului
x1+x2+x4= 0; x 1+x2+x3+x4+x5= 0

18 PRELEGEREA 2. CODURI LINIARE
2.3 Sindrom
Fie codul liniar An;k½Zn
qpeste Zq, cu matricea de control H¸ sia2Zn
q. Se nume¸ ste
sindrom al vectorului avectorul zcun¡kcomponente obt ¸inut prin relat ¸ia
zT=HaT;
sau – echivalent – z=aHT.
Observat ¸ie :z=0()a2An;k.
Dac˘ a se transmite printr-un canal de comunicat ¸ie un cuvˆ ant a2An;kpentru
care sindromul corespunz˘ ator verific˘ a relat ¸ia z=aHT6=0, ˆ ınseamn˘ a c˘ a s-a detectat
faptul c˘ a ˆ ın timpul transmisiei au ap˘ arut erori.
Teorema 2.3 ˆInZ2, sindromul recept ¸ionat este egal cu suma coloanelor din ma-
tricea de control corespunz˘ atoare pozit ¸iilor perturbate.
Demonstrat ¸ie : Fie a= (a1; a2; : : : ; a n)2An;kcuvˆ antul-cod transmis. F˘ ar˘ a a res-
trˆ ange generalitatea, s˘ a presupunem c˘ a au intervenit trei erori, pe pozit ¸iile i; j; k ,
fiind recept ¸ionat vectorul
a0= (a1; : : : ; a i¡1; a0
i; ai+1; : : : ; a j¡1; a0
j; aj+1; : : : ; a k¡1; a0
k; ak+1; : : : ; a n)
unde a0
i6=ai; a0
j6=aj; a0
k6=ak. Avem
0=aHT=a1(h1) +: : :+ai(hi) +: : :+aj(hj) +: : :+ak(hk) +: : :+an(hn)
pentru c˘ a a2An;k, iar ( h1); : : : ; (hn) sunt coloanele matricii H.
Avem, de asemenea
a0HT=a1(h1) +: : :+a0
i(hi) +: : :+a0
j(hj) +: : :+a0
k(hk) +: : :+an(hn)
Prin adunarea acestor dou˘ a egalit˘ at ¸i se obt ¸ine:
z0=a0HT=aHT+a0HT= (0) + : : :+ (0) + ( hi) +: : :+ (hj) +: : :+ (hk) + (0) +
: : :+ (0) = ( hi) + (hj) + (hk). 2
2.4 Pondere, distant ¸˘ a Hamming
Pentru orice cuvˆ ant x2Zn
q, se nume¸ ste pondere num˘ arul w(x) de componente
nenule. Evident, 0 ·w(x)·n.
Pentru dou˘ a cuvinte x;y2Zn
q, se nume¸ ste distant ¸a Hamming ˆ ıntre ele, num˘ arul
d(x;y) =w(x¡y):
Ca o remarc˘ a, deoarece x¡y2Zn
q, rezult˘ a c˘ a distant ¸a Hamming dintre dou˘ a
cuvinte este ponderea unui cuvˆ ant din Zn
q.
Definit ¸ia 2.6 Se nume¸ ste distant ¸˘ a (Hamming) a codului liniar An;k½Zn
qpeste Zq
cea mai mic˘ a distant ¸˘ a (Hamming) dintre elementele codului An;k, adic˘ a
d= min
x;y2An;k;x6=yd(x;y)

2.5. DETECTARE S ¸I CORECTARE DE ERORI 19
Folosind proprietatea anterioar˘ a ¸ si faptul c˘ a 02An;k, rezult˘ a c˘ a
d= min
x2An;k;x6=0w(x):
Se poate verifica imediat c˘ a deste o distant ¸˘ a cu ajutorul c˘ areia Zn
qse poate structura
ca spat ¸iu metric.
Teorema 2.4 FieHmatricea de control a unui cod liniar An;k. Codul are distant ¸a
minim˘ a ddac˘ a ¸ si numai dac˘ a orice combinat ¸ie liniar˘ a de d¡1coloane ale lui H
este liniar independent˘ a ¸ si exist˘ a cel put ¸in o combinat ¸ie liniar˘ a de dcoloane liniar
dependente.
Demonstrat ¸ie : Pentru orice cuvˆ ant a, cuw(a) =s;aHTeste o combinat ¸ie liniar˘ a
descoloane ale lui H. Cum exist˘ a un cuvˆ ant – cod de pondere minim˘ a egal˘ a cu
distant ¸a da codului, rezult˘ a c˘ a avem cel put ¸in o combinat ¸ie de dcoloane liniar
dependente ale lui H. O combinat ¸ie de mai put ¸in de dcoloane liniar dependente ar
conduce la contradict ¸ie. 2
Definit ¸ia 2.7 Pentru r >0¸ six2Zn
q, definim sfera de raz˘ a r¸ si centru xca
Sr(x) =fyjd(x;y)·rg
Teorema 2.5 FieAn;kµZn
qun cod liniar peste Zqcu distant ¸a Hamming d. Dac˘ a
r="d¡1
2#
, atunci
8x;y2An;k;x6=y; S r(x)\Sr(y) =;:
Demonstrat ¸ie : Presupunem prin absurd c˘ a exist˘ a z2Zn
q;z2Sr(x)\Sr(y).
Atunci d(x;z)·r; d(y;z)·rdeci, conform inegalit˘ at ¸ii triunghiului, d(x;y)·
d(x;z) +d(y;z)·2r= 2h
d¡1
2i
< d, ceea ce contrazice afirmat ¸ia c˘ a deste distant ¸a
codului An;k. 2
Evident, ˆ ın fiecare astfel de sfer˘ a exist˘ a un singur cuvˆ ant – cod: cel aflat ˆ ın
centru.
Definit ¸ia 2.8 Un cod liniar An;k½Zn
qde distant ¸˘ a dpeste Zqeste perfect dac˘ a
Zn
q=[
x2An;kSr(x)
unde r=h
d¡1
2i
.
2.5 Detectare ¸ si corectare de erori
FieAn;k½Zn
qun cod liniar peste Zq, de distant ¸˘ a d¸ sit=h
d¡1
2i
. S˘ a presupunem c˘ a
s-a recept ¸ionat cuvˆ antul z2Zn
q; va exista cel mult un cuvˆ ant x2An;kastfel ˆ ıncˆ at
z2St(x) (ˆ ın cazul codurilor perfecte, acest cuvˆ ant exist˘ a totdeauna).
ˆIn cazul (ideal) cˆ and z=x, cuvˆ antul a fost transmis f˘ ar˘ a erori (sau cu erori
nedetectabile).

20 PRELEGEREA 2. CODURI LINIARE
Dac˘ a z6=x, atunci mesajul a fost perturbat (¸ si avem o detectare de erori);
ˆ ın ipoteza c˘ a num˘ arul de erori ap˘ arute este minim ¸ si exist˘ a un x2An;kastfel ca
d(x;z)·t, atunci zprovine din cuvˆ antul – cod x- ¸ si se va transforma ˆ ın acesta
prin corectarea corespunz˘ atoare a erorilor.
ˆIn celelalte cazuri, zsau nu se poate corecta, sau se corecteaz˘ a gre¸ sit, ˆ ın alt
cuvˆ ant cod.
Aceast˘ a ultim˘ a situat ¸ie nu apare la codurile perfecte.
Metoda de detectare ¸ si corectare a erorilor descris˘ a mai sus se nume¸ ste decodi-
ficarea cea mai probabil˘ a . Pentru marea majoritate a codurilor liniare aceasta este
singura metod˘ a utilizat˘ a.
Pentru orice cuvˆ ant e2Zn
qform˘ am mult ¸imea
Ve=e+A=fe+vjv2Ag
Veeste mult ¸imea cuvintelor w=e+vcare pot fi recept ¸ionate la transmiterea
cuvˆ antului cod v, atunci cˆ and a act ¸ionat un vector – eroare e.eva fi numit eroare
– tip.
ˆIn particular, A=0+A=V0.
Propozit ¸ia 2.1 Pentru orice a2Ve; V a=Ve.
Demonstrat ¸ie : Din a2Ve, rezult˘ a c˘ a exist˘ a x2Acua=e+x. Deoarece x+A=A
(evident, Afiind subspat ¸iu liniar), avem Va=a+A=e+x+A=e+A=Ve.2
Vom utiliza aceast˘ a propozit ¸ie pentru definirea unei tehnici de decodificare.
Dac˘ a vrem s˘ a detect˘ am o anumit˘ a eroare – tip ecare modific˘ a cuvintele din A
ˆ ın cuvintele subspat ¸iului Ve, atunci vor fi mai u¸ sor de depistat cuvintele din Vecu
ponderea minim˘ a.
Pentru fiecare Vese alege un cuvˆ ant numit reprezentantul luiVe; acesta este un
element cu cea mai mic˘ a pondere din Ve.
Se construie¸ ste urm˘ atorul tablou (numit tablou standard ):
1. Pe prima linie se scriu cuvintele – cod, ˆ ıncepˆ and cu 0(reprezentantul lui
A=V0);
2. Pe prima coloan˘ a se scriu reprezentant ¸ii 0;e1;e2; : : :;
3. Pe linia cu reprezentantul ei, sub cuvˆ antul cod xjse scrie cuvˆ antul
ei+xj( mod q).
Exemplul 2.8 Fie matricea generatoare G=Ã
1 0 0 1
0 1 1 1!
peste Z2. Ea va cod-
ificaZ2
2=f00;01;10;11gˆ ınA4;2=f0000;1001;0111;1110g.
Calculul mult ¸imilor Veconduce la
V0000 =V1001 =V0111 =V1110
V1000 =V0001 =V0110 =V1111
V0100 =V1101 =V0011 =V1010
V0010 =V1011 =V0101 =V1100

2.5. DETECTARE S ¸I CORECTARE DE ERORI 21
Alegem ca reprezentant ¸i pe 0000;1000 (se poate ¸ si 0001) ;0100;0010. Tabloul
standard va fi:
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 utilizeaz˘ a astfel: cu-
vˆ antul primit se decodific˘ a ˆ ın cuvˆ antul – cod din capul coloanei pe care se afl˘ a.
De exemplu, dac˘ a se recept ¸ioneaz˘ a 1101, el se va decodifica ˆ ın 1001.
Evident, cuvintele de pe prima coloan˘ a se decodific˘ a ˆ ı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 simpl˘ a metod˘ a de decodificare.
Problema apare atunci cˆ andˆ ıntr-o mult ¸ime Vesunt mai multe cuvinte de pondere
minim˘ a. Atunci tabela va decodifica corect numai eroarea – tip aleas˘ a ca reprezen-
tant.
Astfel, revenind la Exemplul 2.8, cuvˆ antul recept ¸ionat 1111 se decodific˘ a ˆ ın 0111
(considerˆ and c˘ a a fost alterat primul caracter).
Dac˘ a 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 decodific˘ aˆ ın 1110 (considerˆ ınd ultimul caracter ca fiind cel alterat
de canalul de transmisie). Care este cuvˆ antul – cod corect transmis ? Acest lucru nu
poate fi decis. Singurul lucru care poate fi f˘ acut este s˘ a se aleag˘ a drept reprezentant ¸i
erorile – tip cele mai probabile.
Pentru un ( n; k) – cod peste Zq, un dict ¸ionar complet const˘ a din toate cele qn
cuvinte posibile, lucru destul de dificil deoarece ˆ ın practic˘ a codurile sunt destul de
lungi (de exemplu n= 100 ; k= 80). De aceea este utilizat˘ a o alt˘ a manier˘ a de lucru
care reduce mult m˘ arimea tabloului de lucru.
FieHmatricea de control a unui ( n; k) – cod liniar A; putem considera (Corolarul
2.1) c˘ a liniile lui Hsunt vectori liniar independent ¸i.
Teorema 2.6 Pentru orice e2Zn
q, toate cuvintele din Veau acela¸ si sindrom.
Demonstrat ¸ie : Fiev2Aarbitrar ¸ si w=e+v. Avem
wHT= (e+v)HT=eHT+vHT=eHT+0=eHT:
Deci toate cuvintele din Veau sindromul egal cu sindromul lui e. 2
Invers, pentru fiecare sindrom – deci pentru fiecare cuvˆ ant sde lungime n¡k, se
poate determina un vector – eroare eavˆ and sindromul s. Mai mult, sva fi ales astfel
ˆ ıncˆ at s˘ a aib˘ a pondere minim˘ a (conform decodific˘ arii cele mai probabile). Pentru

22 PRELEGEREA 2. CODURI LINIARE
aceasta, se rezolv˘ a sistemul de ecuat ¸ii liniare HeT=sT, care are solut ¸ie, deoarece
liniile lui Hsunt liniar independente. Din mult ¸imea solut ¸iilor alegem una de pondere
minim˘ a, cu ajutorul c˘ areia construim mult ¸imea Vea tuturor cuvintelor de sindrom
s.
Pe baza celor de mai sus, se poate folosi urm˘ atoarea procedur˘ a de decodificare:
1. La recept ¸ionarea unui cuvˆ ant w, se calculeaz˘ a sindromul s:
sT=HwT.
2. Se afl˘ a eroarea – tip ecu sindromul s.
3. Se consider˘ a cuvˆ antul – cod corect ca fiind v=w¡e.
ˆIn acest fel, nu mai este necesar s˘ a se ret ¸in˘ a tot tabloul standard; este suficient
s˘ a se ¸ stie reprezentant ¸ii subspat ¸iilor Ve¸ si sindromurile corespunz˘ atoare.
Exemplul 2.9 Reluˆ and codul definit ˆ ın Exemplul 2.8, el are ca matrice de control
H=Ã
0 1 1 0
1 1 0 1!
Calculˆ and sindromurile reprezentant ¸ilor, se ajunge la tabloul:
Sindrom Reprezentant
00 0000
01 1000
10 0010
11 0100
care reprezint˘ a o reducere cu 50% a datelor stocate.
La recept ¸ionarea cuvˆ antului 1101, i se calculeaz˘ a sindromul
Ã
0 1 1 0
1 1 0 1!0
BBB@1
1
0
11
CCCA=Ã
1
1!
Repezentantul sindromului 11este0100. Efectuˆ and operat ¸ia
1101¡0100 = 1101 + 0100 = 1001
(ˆ ınZ2sc˘ aderea este de fapt adunare) se ajunge la cuvˆ antul transmis, anume 1001.
Exemplul 2.10 S˘ a consider˘ am codul liniar peste Z3definit de matricea de control
H=Ã
1 0 2 1 0
0 1 2 1 2!
Sindromurile sunt cuvinte de lungime 2peste Z3, deci ˆ ın total nou˘ a cuvinte.
Lista sindromurilor ¸ si a reprezentant ¸ilor este:

2.6. EXERCIT ¸II 23 Sindrom Reprezentant
00 00000
10 10000
01 01000
22 00100
11 00010
02 00001
20 20000
12 10001
21 20002
De remarcat c˘ a un tablou standard pentru acest cod are dimensiunea 9£27¸ si
cont ¸ine 243cuvinte; volumul de date s-a redus deci cu 92%.
S˘ a presupunem c˘ a s-a trimis cuvˆ antul cod 21122 ¸ si s-a recept ¸ionat 11122 .
Sindromul este
Ã
1 0 2 1 0
0 1 2 1 2!0
BBBBBB@1
1
1
2
21
CCCCCCA=Ã
2
0!
decie= 20000 ; decodificarea este
v=w¡e= 11122 ¡20000 = 21122 :
Decodificarea a fost corect˘ a deoarece eroarea – tip ap˘ arut˘ a a fost una din cele
selectate prin reprezentant ¸i.
2.6 Exercit ¸ii
2.1S˘ a se construiasc˘ a coduri liniare care s˘ a transforme cuvˆ antul (a1; a2; : : : ; a n)2
Zn
qˆ ın:
1.(a1; a1; a1; a2; a2; a2; : : : ; a n; an; an);
2.(a1; b1; a2; b2; : : : ; a n; bn)unde b1=a1; b+ 2 = a1+a2; bn=a1+: : :+an;
3.(a1;2an;3a2;4an¡1; : : :).
2.2Un cod liniar peste Z5are urm˘ atoarea matrice generatoare:
G=0
B@1 2 3 1 2
2 2 4 1 0
1 1 2 2 11
CA
S˘ a se afle matricea de control.
2.3Aceea¸ si problem˘ a pentru Z7.

24 PRELEGEREA 2. CODURI LINIARE
2.4Determinat ¸i dac˘ a urm˘ atorul cod liniar binar este sistematic sau nu:
G=0
B@1 1 0 0 0 0
0 0 1 1 1 1
0 0 0 0 1 11
CA
Dac˘ a nu, g˘ asit ¸i un cod sistematic echivalent.
2.5G˘ asit ¸i matricea generatoare a unui cod liniar binar care are matricea de control:
H=0
BBB@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 11
CCCA
2.6Se d˘ a matricea de control
H=0
B@1 1 0 1 0 1
1 1 0 0 1 0
1 0 1 1 0 01
CA
a unui cod liniar binar.
S˘ a se decodifice mesajele 110110 ;010100 .
2.7Descriet ¸i dualul (6;3)- codului binar descris de ecuat ¸iile:
x1=x4; x 2=x5; x 3=x6:
2.8FieAun cod liniar binar obt ¸inut din toate sumele posibile ale cuvintelor
101011 ;011101 ;011010 .
1.Aflat ¸i o matrice de control a codului.
2.Aflat ¸i un tablou standard ¸ si decodificat ¸i 111011 .
2.9Demonstrat ¸i c˘ a codul liniar binar descris de ecuat ¸iile
x3=x1+x2; x 4=x1; x 5=x1+x2
corecteaz˘ a o eroare. Construit ¸i tabloul standard.
2.10 Construit ¸i o tabel˘ a de sindromuri de decodificare pentru:
1.Codul cu repetit ¸ie de lungime 7;
2.Codul din Exercit ¸iul 2.7;
3.Codul peste Z3cu matricea generatoare:
G=0
B@1 0 0 2 2
0 1 0 0 1
0 0 1 1 01
CA
2.11 Fie un cod liniar An;k½Zn
q¸ si tabela de sindromuri de decodificare cores-
punz˘ atoare. Definim o operat ¸ie de decodificare µ:Zn
q!An;kcu proprietatea:
8v2An;k;8ereprezentant din tabel˘ a, µ(v+e) =v. (µcorecteaz˘ a erorile – tip din
tabela de decodificare). S˘ a se arate c˘ a atunci µnu corecteaz˘ a nici o alt˘ a eroare – tip:
dac˘ aenu este un reprezentant din tabel˘ a, atunci exist˘ a v2An;kcuµ(v+e)6=v.
(Altfel spus, decodificarea cu sindromuri este optimal˘ a).

Prelegerea 3
Coduri liniare – II
3.1 Capacit˘ at ¸i de detectare ¸ si corectare de erori
Dup˘ a cum am v˘ azut pˆ an˘ a acum, un cod liniar este un spat ¸iu liniar, codul dual este
complementul s˘ au ortogonal etc. Teoria codurilor este interesat˘ a ˆ ıns˘ a ˆ ın depistarea
unor coduri cu propriet˘ at ¸i deosebite ˆ ın detectarea ¸ si corectarea erorilor. Aceste
propriet˘ at ¸i sunt legateˆ ın special de distant ¸a minim˘ a a codului. Vom prezenta pentru
ˆ ınceput cˆ ateva rezultate legate de diverse margini relativ la distant ¸˘ a, num˘ arul de
simboluri de control, informat ¸ie etc.
Teorema 3.1 Un cod liniar An;k½Zn
qare distant ¸a minim˘ a ddac˘ a ¸ si numai dac˘ a
poate detecta orice combinat ¸ie de maxim d¡1erori.
Demonstrat ¸ie : Dac˘ a se transmite un cuvˆ ant a2An;k¸ si apar t(t < d ) erori, se va
recept ¸iona cuvˆ antul a+e2Zn
qcuw(e) =t.
Deoarece d(a;a+e) =t, rezult˘ a a+e62An;k, deci se detecteaz˘ a eroare.
Reciproca este evident˘ a. 2
Teorema 3.2 Un cod liniar An;k½Zn
qare distant ¸a minim˘ a ddac˘ a ¸ si numai dac˘ a
poate corecta orice combinat ¸ie de maximh
d¡1
2i
erori.
Demonstrat ¸ie : S˘ a presupunem prin absurd c˘ a d·2t¸ si vom ar˘ ata c˘ a exist˘ a erori
– tip de pondere t(numite ¸ si pachete de terori) care nu pot fi corectate de codul
An;k. Aceast˘ a contradict ¸ie va duce la concluzia d¸2t+ 1, adic˘ a An;kpoate corecta
orice pachet de t·h
d¡1
2i
erori.
Fiea;b2An;kcud(a;b) =d¸ sii1; i2; : : : ; i dtot ¸i indicii ˆ ın care adifer˘ a de b.
Alegˆ and t=h
d+1
2i
, avem d·2t(tastfel ales este minim).
S˘ a presupunem c˘ a se trimite a¸ si se recept ¸ioneaz˘ a cuvˆ antul a0= (a0
1; a0
2; : : : ; a0
n)
unde
a0
i=8
><
>:ai=bidac˘ a i6=i1; i2; : : : ; i d;
ai dac˘ a i=i1; i3; : : : ;
bi dac˘ a i=i2; i4; : : :
Atunci, evident d(a;a0) ="d+ 1
2#
=t¸ sid(a0;b) ="d
2#
·t=d(a0;a). Aceasta va
duce la decodificarea lui aˆ ınb- incorect.
25

26 PRELEGEREA 3. CODURI LINIARE – II
S˘ a presupunem acum d¸2t+ 1. Atunci codul An;kpoate corecta orice pachet
deterori. Pentru a ar˘ ata aceasta, s˘ a presupunem c˘ a se trimite un cuvˆ ant – cod
a¸ si se prime¸ ste un cuvˆ ant a0cud(a;a0)·t. Pentru orice cuvˆ ant cod b(deci cu
d(a;b)¸d¸2t+ 1) avem, conform inegalit˘ at ¸ii triunghiului:
d(a;a0) +d(a0;b)¸d(a;b)¸2t+ 1:
deci, d(a0;b)¸2t+ 1¡d(a;a0)¸2t+ 1¡t=t+ 1> d(a;a0).
Deci, cu o decodificare cea mai probabil˘ a, a0se va decodifica ˆ ın a. 2
Teorema 3.3 Distant ¸a minim˘ a a unui (n; k)- cod liniar verific˘ a relat ¸ia
d·n¡k+ 1:
Demonstrat ¸ie : Vom separa demonstrat ¸ia ˆ ın dou˘ a p˘ art ¸i:
A: Fie An;kun cod sistematic. Atunci primele ksimboluri din orice cuvˆ ant – cod
pot fi alese arbitrar. Fie v2An;kcuvˆ antul de forma v= 100 : : :0vk+1vk+2: : : v n.
Evident, 0 < w(v)·n¡k+ 1. Cum deste cea mai mic˘ a pondere a unui cuvˆ ant –
cod nenul, rezult˘ a inegalitatea cerut˘ a.
B: FieAn;kun cod liniar arbitrar ¸ si A0
n;kcodul liniar sistematic echivalent. Se ob-
serv˘ a c˘ a cele dou˘ a coduri au aceea¸ si parametri n; k; d . Folosind acum A, inegalitatea
se obt ¸ine din nou. 2
Teorema 3.4 ˆIn orice cod liniar An;kpeste Zqavem
d·nqk¡1(q¡1)
qk¡1(marginea Plotkin)
Demonstrat ¸ie : S˘ a consider˘ am elementele din An;ka¸ sezate ca linii ale unui tablou. Se
obt ¸ine un tablou cu qklinii ¸ si ncoloane. Fiecare component˘ a nenul˘ a din Zqapare
pe fiecare coloan˘ a ˆ ın qk¡1linii. Atunci, suma ponderilor tuturor cuvintelor – cod
este egal˘ a cu nqk¡1(q¡1) deoarece fiecare component˘ a nenul˘ a apare de qk¡1ori ˆ ın
fiecare coloan˘ a ¸ si avem q¡1 componente nenule distribuite pe ncoloane.
Distant ¸a minim˘ a a codului nu poate s˘ a dep˘ a¸ seasc˘ a ponderea medie a cuvintelor
codului, adic˘ a
d·nqk¡1(q¡1)
qk¡1
deoarece ˆ ın An;ksunt qk¡1 cuvinte nenule. 2
Teorema 3.5 FieAn;kun cod liniar peste Zqcare corecteaz˘ a orice combinat ¸ie de
maxim terori. ˆIntr-un asemenea cod sunt necesare cel put ¸in
n¡k¸logq[1 +C1
n(q¡1) +C2
n(q¡1)2+: : :+Ct
n(q¡1)t]
pozit ¸ii de control (marginea Hamming).

3.1. CAPACIT ˘AT ¸I DE DETECTARE S ¸I CORECTARE DE ERORI 27
Demonstrat ¸ie : Pentru ca An;ks˘ a corecteze orice combinat ¸ie de cel mult terori, este
necesar ca fiecare astfel de eroare – tip s˘ a fie reprezentat˘ a ˆ ın tabloul standard, deci
s˘ a fie caracterizat˘ a printr-un sindrom distinct. Sunt qn¡ksindromuri distincte, deci
acesta este num˘ arul maxim de erori care pot fi corectate de cod. Din cele qn¡k
sindromuri, 1 trebuie s˘ a fie pentru 0 erori, C1
n(q¡1) – pentru erori – tip simple
(cuvinte ecu o singur˘ a component˘ a nenul˘ a), C2
n(q¡1)2pentru erori duble etc.
Deci, este necesar ca
qn¡k¸1 +C1
n(q¡1) +C2
n(q¡1)2+: : :+Ct
n(q¡1)t:
Apoi se logaritmeaz˘ a. 2
Teorema 3.6 Dac˘ a
n¡k¸logq[1 +C1
n¡1(q¡1) +C2
n¡1(q¡1)2+: : :+Cd¡2
n¡1(q¡1)d¡2]
atunci exist˘ a un cod liniar An;kpeste Zqcu distant ¸a minim˘ a d(marginea Var¸ samov
– Gilbert).
Demonstrat ¸ie : Pentru ca s˘ a existe un cod liniar An;kpeste Zqcu distant ¸a minim˘ a d
este suficient (Teorema 2 :4) ca orice coloan˘ a din matricea de control Hn¡k;ns˘ a nu
fie combinat ¸ie liniar˘ a a altor d¡2 coloane, ˆ ın acest fel ne-existˆ and nici o combinat ¸ie
liniar˘ a ˆ ıntre d¡1 coloane ale lui H. Aceast˘ a condit ¸ie este echivalent˘ a cu
qn¡k¡1¸C1
n¡1(q¡1) +C2
n¡1(q¡1)2+: : :+Cd¡2
n¡1(q¡1)d¡2:
Aici, qn¡k¡1 reprezint˘ a num˘ arul total de coloane distincte nenule care pot apare
ˆ ın matricea H. Semnificat ¸ia termenilor din membrul drept este evident˘ a; astfel, de
exemplu C2
n¡1(q¡1)2reprezint˘ a num˘ arul combinat ¸iilor liniare cu coeficient ¸i nenuli
a dou˘ a din cele n¡1 coloane etc.
Apoi se logaritmeaz˘ a. 2
FieEn;kun cod liniar peste Zqpentru care d¸2t+ 1 (deci cu capacitatea de a
corecta orice combinat ¸ie de maxim terori). Reamintim c˘ a ˆ ın prelegerea precedent˘ a
am definit pentru orice x2An;ksfera centrat˘ a ˆ ın xprin
St(x) =fy2Zn
qjd(x;y)·tg:
Mai introducem ¸ si suprafat ¸a (scoart ¸a) acestei sfere, definit˘ a:
At(x) =fy2Zn
qjd(x;y) =tg:
Vom nota num˘ arul de elemente ale fiec˘ areia din cele dou˘ a mult ¸imi prin
St=jSt(x)j; A t=jAt(x)j
(valorile sunt acelea¸ si pentru orice x2Zn
q).
Au loc relat ¸iile evidente:
At·St; S t=tX
i=0Ai:

28 PRELEGEREA 3. CODURI LINIARE – II
Deoarece sferele de raz˘ a tcentrate ˆ ın cuvintele codului An;ksunt disjuncte, avem
qkSt·qn.
Aici, qkreprezint˘ a num˘ arul de cuvinte – cod, iar qn- num˘ arul total de cuvinte
dinZn
q.
Din aceast˘ a relat ¸ie se obt ¸ine imediat
n¡k¸logqSt;
cunoscut˘ a sub numele de inegalitatea volumului . Ea mai poate fi g˘ asit˘ a ¸ si sub forma
k
n·1¡1
nlogqSt:
Raportulk
nse nume¸ ste rata de informat ¸ie ¸ si d˘ a o m˘ asur˘ a a cantit˘ at ¸ii de informat ¸ie
pe care o poart˘ a un cuvˆ ant – cod. O rat˘ a de informat ¸ie mic˘ a (mai multe simboluri
de control) asigur˘ a o securitate mai mare a transmiterii datelor. ˆIn schimb, condit ¸ii
practice de eficient ¸˘ a cer o rat˘ a de informat ¸ie cˆ at mai mare (mai mult˘ a informat ¸ie
pe unitatea de mesaj). Aceasta este una din solicit˘ arile contradictorii ale teoriei
codurilor.
3.2 Modific˘ ari ale codurilor liniare
Adesea este imposibil s˘ a se utilizeze un cod bun deoarece el nu satisface anumite
restrict ¸ii tehnice, cum ar fi lungimea sau rata de informat ¸ie. De aceea este practic
s˘ a se fac˘ a anumite modific˘ ari asupra codurilor, care s˘ a nu afecteze propriet˘ atile
principale de detectare ¸ si corectare de erori.
Definit ¸ia 3.1 Numim extensie a unui (n; k)- cod liniar Apeste Zq,(n+ 1; k)-
codul liniar A¤obt ¸inut din Aprin ad˘ augarea la fiecare cuvˆ ant cod a1a2: : : a na unui
simbol nou an+1cu proprietatean+1X
i=1ai= 0 ( mod q ).
Observat ¸ii :
²ˆIn cazul binar, noul caracter an+1poart˘ a numele bit de paritate .
Dac˘ a Heste matricea de control a codului An;k, atunci codul extins A¤
n+1;kare
matricea de control
H¤=0
BBBB@0
H…
0
1 1 : : :1 1 11
CCCCA
De fapt, ultima linie reprezint˘ a ecuat ¸ianX
i=1xi= 1:

3.2. MODIFIC ˘ARI ALE CODURILOR LINIARE 29
²Dac˘ a un cod liniar binar Aare o distant ¸˘ a minim˘ a impar˘ a d, atunci codul
extins are distant ¸a minim˘ a d+ 1. ˆIntr-adev˘ ar, fie a=a1a2: : : a n2Acu
w(a) = d. Cum deste impar, rezult˘ anX
i=1ai= 1 (ˆ ın Z2), deci an+1= 1.
Cuvˆ antul a0=a1a2: : : a n12A¤; w(a0) =d+ 1 ¸ si nu se poate construi un alt
cuvˆ ant – cod ˆ ın A¤de pondere mai mic˘ a.
Definit ¸ia 3.2 FieAun cod liniar de lungime npeste Zq.
1.”Relaxarea” lui Aeste un cod liniar Ade lungime n¡1obt ¸inut prin ¸ stergerea
ultimului simbol din cuvintele lui A;
2.”Completarea” lui Aeste un cod definit A¤=A[(A+1)(unde 1este cuvˆ antul
cu toate elementele 1, iar suma se face modulo q);
3.”Expurgarea” lui Aeste codul A0=fa2Ajw(a)´0mod 2g.
Observat ¸ii :
²Relaxarea este operat ¸ia invers˘ a extensiei.
²Prin completarea ¸ si expurgarea codurilor liniare se obt ¸in coduri liniare numai
ˆ ın cazul binar. ˆIn celelalte cazuri, noile mult ¸imi rezultate nu sunt spat ¸ii liniare.
Propozit ¸ia 3.1 Prin completarea unui cod liniar binar An;kse obt ¸ine un cod liniar
binar An;k+1cu un num˘ ar dublu de cuvinte – cod.
Demonstrat ¸ie : Completarea unui cod binar ˆ ınseamn˘ a ad˘ augarea la cuvintele – cod
ale lui Aa tuturor cuvintelor obt ¸inute prin complementare (schimbarea lui 0 ˆ ın 1 ¸ si
a lui 1 ˆ ın 0).
FieGk;nmatricea generatoare a codului An;k. Se verific˘ a u¸ sor c˘ a matricea
G0=0
B@G
1 1 : : :1 11
CA
genereaz˘ a An;k[(1+An;k). Acest cod are k+ 1 pozit ¸ii de informat ¸ie ¸ si lungime
n. Fiecare din cele dou˘ a submult ¸imi are un num˘ ar egal de elemente. 2
Propozit ¸ia 3.2 Orice cod liniar binar are sau toate cuvintele – cod de pondere par˘ a,
sau num˘ arul cuvintelor – cod de pondere par˘ a este egal cu al celor de pondere impar˘ a.
Demonstrat ¸ie : Fie Aun cod liniar binar cu un cuvˆ ant v1de pondere impar˘ a. S˘ a
presupunem c˘ a v1;v2; : : : ;vrsunt toate cuvintele lui A; atunci A=A+v1. Pentru
orice cuvˆ ant – cod vide pondere par˘ a (impar˘ a), v1+viare pondere impar˘ a (par˘ a).
Pentru aceasta, s˘ a presupunem c˘ a w(v1) = 2 p+ 1; w(vi) = 2 qiarvi¸ siv1au 1 pe
rpozit ¸ii comune. Atunci w(vi+v1) =w(vi) +w(v1)¡2r(pentru c˘ a 1 + 1 = 0)
= 2p+ 1 + 2 q¡2r= 2s+ 1. Similar dac˘ a viare pondere impar˘ a.
Deci adunarea cu v1define¸ ste o corespondent ¸˘ a biunivoc˘ a ˆ ıntre cuvintele – cod
de pondere par˘ a ¸ si cele de pondere impar˘ a, ceea ce completeaz˘ a demonstrat ¸ia. 2

30 PRELEGEREA 3. CODURI LINIARE – II
Corolarul 3.1 Expurgarea unui cod liniar binar Aeste tot Asau un cod liniar
avˆ and ca elemente jum˘ atate din elementele lui A.
Matricea generatoare Gexpa lui Aexpse poate obt ¸ine din matricea Ga lui Aastfel:
dac˘ a toate liniile lui Gsunt vectori de pondere par˘ a cele dou˘ a coduri coincid. Altfel,
fieG= [e1;e2; : : : ;er;er+1; : : : ;ek]Tˆ ın care – f˘ ar˘ a a mic¸ sora generalitatea, putem
presupune c˘ a primele rau pondere impar˘ a, iar celelalte k¡rau pondere par˘ a.
Atunci Gexp= [0;e2+e1; : : : ;er+e1;er+1: : : ;ek]T.
Exemplul 3.1 S˘ a construim codul A4;2peste Z3de matrice generatoare
G=Ã
1 0 0 1
0 1 1 1!
:
Ea codific˘ a cele 9elemente din Z2
3ˆ ın
A4;2=f0000;0111;0222;1001;1112;1220;2002;2110;2221g:
Codul liniar relaxat A3;2=f000;011;022;100;111;122;200;211;222geste generat
de matricea
Grel=Ã
1 0 0
0 1 1!
:
Construct ¸ia a fost posibil˘ a deoarece prin eliminarea ultimei coloane, liniile r˘ amase
sunt tot liniar independente. Dac˘ a acest lucru nu este realizabil, se caut˘ a kcuvinte
– cod ˆ ın An;kcu proprietatea c˘ a dup˘ a eliminarea ultimei componente, ele sunt liniar
independente. Acestea formeaz˘ a liniile noii matrici generatoare.
Codul completat este
0000 0111 0222 1001 1112 1220 2002 2110 2221
1111 1222 1000 2112 2220 2001 0110 0221 0002
De remarcat c˘ a el nu este un spat ¸iu liniar (nu este ˆ ınchis la adunarea din Z3).
Codul expurgat are cinci elemente: f0000;1001;1112;2002;2221g. Nici acesta
nu este cod liniar.
Exemplul 3.2 S˘ a relu˘ am matricea generatoare din Exemplul 3.1, dar pentru un
cod liniar peste Z2. Codul generat de GesteA4;2=f0000;0111;1001;1110g.
Toate codurile modificate sunt ˆ ın acest caz coduri liniare. Astfel
²Codul relaxat Arel=f000;011;100;111geste generat de aceea¸ si matrice Grel
din Exemplul 3.1.
²Codul completat Acom=f0000;0111;1001;1110;1111;1000;0110;0001geste
un cod liniar generat de matricea
Gcom=0
B@1 0 0 1
0 1 1 1
1 1 1 11
CA:
²Codul expurgat Aexp=f0000;1001geste un cod liniar generat de matricea
Gex=Ã
1 0 0 1
0 0 0 0!
:

3.3. DETECTAREA S ¸I CORECTAREA SIMULTAN ˘A A ERORILOR 31
3.3 Detectarea ¸ si corectarea simultan˘ a a erorilor
S˘ a ˆ ıncepem cu un exemplu.
Exemplul 3.3 Fie(7;4)- codul liniar binar cu matricea de control
H=0
B@0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 11
CA:
El are distant ¸a minim˘ a d= 3, deci poate detecta 2erori ¸ si poate corecta o eroare
(Teoremele 3.1,3.2). Totu¸ si, codul nu poate realiza acest lucru simultan.
Mai precis, atunci cˆ and codul este utilizat pentru corectare de erori, erorile du-
ble scap˘ a nedetectate. Astfel, dac˘ a se trimite 0000000 ¸ si se recept ¸ioneaz˘ a 1010000 ,
sindromul este 010. Tabloul standard conduce la corectarea celui de-al doilea bit, ¸ si
decodific˘ a (incorect) ˆ ın cuvˆ antul – cod 111000 .
Uneori ˆ ıns˘ a, se solicit˘ a ˆ ın mod explicit un cod capabil s˘ a detecteze ¸ si s˘ a corecteze
erori ˆ ın acela¸ si timp.
Definit ¸ia 3.3 Un cod Ade lungime ncorecteaz˘ a terori ¸ si detecteaz˘ a serori simul-
tan dac˘ a orice cuvˆ ant – cod vare urm˘ atoarea proprietate:
8w2Zn
q[d(w;v)·s=) 8a2An fvg; d(w;a)> t]:
ˆIn aceast˘ a situat ¸ie, detectarea ¸ si corectarea simultan˘ a a erorilor se realizeaz˘ a astfel:
la recept ¸ionarea unui cuvˆ ant w2Zn
qse caut˘ a cel mai apropiat cuvˆ ant – cod v(ˆ ın
sensul distant ¸ei Hamming). Dac˘ a d(w;v)·tatunci cuvˆ antul se corecteaz˘ a ˆ ın v;
altfel, se anunt ¸˘ a c˘ a cel put ¸in ssimboluri sunt modificate.
Justificarea acestui procedeu rezult˘ a imediat din definit ¸ie.
Teorema 3.7 Un cod corecteaz˘ a terori ¸ si detecteaz˘ a serori simultan dac˘ a ¸ si numai
dac˘ a
d¸t+s+ 1:
Demonstrat ¸ie :A: S˘ a presupunem d¸s+t+ 1. Fie vun cuvˆ ant – cod ¸ si w2Zn
q
cud(v;w)·s. Pentru orice cuvˆ ant – cod v0(v06=v) avem d(v;v0)¸d¸t+s+ 1.
Folosind inegalitatea triunghiului,
d(v;w) +d(w;v0)¸d(v;v0)¸s+t+ 1;
se deduce
d(w;v0)¸t+s+ 1¡d(v;w)¸t+s+ 1¡s=t+ 1:
Deci, condit ¸ia din definit ¸ie este ˆ ındeplinit˘ a.
B: S˘ a presupunem prin absurd d < t +s+ 1. Fie v;v0dou˘ a cuvinte – cod cu
d(v;v0) =d·t+s. Construim cuvˆ antul wdinvˆ ınlocuind primele ssimboluri
ˆ ın care acesta difer˘ a de v0, cu valorile lor din v0. Atunci d(v;w) =s¸ sid(v0;w) =
d¡s·t+s¡s=t, ceea ce contrazice condit ¸ia din definit ¸ie. 2

32 PRELEGEREA 3. CODURI LINIARE – II
Exemplul 3.4 S˘ a consider˘ am (8;4)- codul liniar binar generat de matricea
G=0
BBB@1 0 0 0 1 1 1 0
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 11
CCCA:
El are distant ¸a minim˘ a d= 4, deci – conform Teoremei 3.2 poate corecta maxim
o eroare, iar conform Teoremei 3.7 poate corecta o eroare ¸ si detecta simultan dou˘ a
erori.
Astfel recept ¸ionarea cuvˆ antului 11110010 conduce la corectarea sa ˆ ın 10110010
(deoarece d(11110010 ;10110010) = 1 ¸ si10110010 este cuvˆ ant – cod).
ˆIn schimb recept ¸ionarea cuvˆ antului 00001111 anunt ¸˘ a c˘ a au ap˘ arut cel put ¸in dou˘ a
erori. ˆIn aceast˘ a situat ¸ie, nu mai put ¸in de patru cuvinte – cod ( 00010111 ;00101011 ;
01001101 ;10001110 ) sunt situate la distant ¸a 2de cuvˆ antul primit.
Exemplul 3.5 Codul binar cu repetit ¸ie de lungime 7(care are 2elemente) poate
realiza una din condit ¸iile:
²Corecteaz˘ a 3erori;
²Detecteaz˘ a 6erori;
²Corecteaz˘ a 2erori ¸ si detecteaz˘ a 4erori simultan.
3.4 Probabilitatea nedetect˘ arii erorilor
S˘ a ne punem urm˘ atoarea problem˘ a: care este probabilitatea ca la transmiterea unui
cuvˆ ant – cod as˘ a fie recept ¸ionat alt cuvˆ ant – cod b(b6=a). Altfel spus, care este
probabilitatea ca o eroare s˘ a scape nedetectat˘ a ?
Notˆ and cu e=b¡a, o eroare este nedetectat˘ a dac˘ a ¸ si numai dac˘ a eeste un
cuvˆ ant – cod nenul.
Vom considera un canal de transmisie binar simetric , adic˘ a un canal ˆ ın care
singurele simboluri transmise sunt 0 ¸ si 1, iar probabilitatea p(0·p·1) ca la
transmiterea lui 0 s˘ a fie recept ¸ionat 1 este egal˘ a cu probabilitatea ca la transmiterea
lui 1 s˘ a se recept ¸ioneze 0. ˆIntr-un astfel de canal, dac˘ a w(e) =i(adic˘ a au fost
perturbate la transmisie icaractere), probabilitatea de aparit ¸ie a erorii – tip eeste
piqn¡i, unde q= 1¡p. Notˆ and cu Ainum˘ arul cuvintelor – cod cu ponderea i, prob-
abilitatea Pneda unei erori nedetectabile este suma probabilit˘ at ¸ilor piqn¡i, fiecare
termen ap˘ arˆ and de Aiori pentru i= 1;2; : : : ; n . Formal,
Pned=nX
i=1Aipiqn¡i
Cum A1=A2=: : :=Ad¡1= 0, suma se reduce la Pned=nX
i=dpiqn¡i.

3.5. IDENTITATEA MACWILLIAMS 33
Exemplul 3.6 S˘ a consider˘ am un cod care are un cuvˆ ant de pondere 0, cˆ ate ¸ sapte
cuvinte de pondere 3¸ si4¸ si un cuvˆ ant de pondere 7. Atunci
Pned= 7p3q4+ 7p4q3+p7
Dac˘ a folosim acest cod ˆ ıntr-un canal binar simetric cu eroare de probabilitate
p= 0:01, avem
Pned= 7(0 :01)3(0:99)4+ 7(0 :01)4(0:99)3+ (0:01)7¼7£10¡6
deci – ˆ ın medie – apar cam ¸ sapte erori nedetectabile la un milion de cuvinte
transmise.
Definit ¸ia 3.4 Polinomul de variabil˘ a x2[0;1]definit
P(x) =nX
i=0Aixi
unde Aieste num˘ arul de cuvinte din An;kde pondere i, se nume¸ ste ”num˘ ar˘ atorul
de ponderi” al codului An;k.
Exemplul 3.7 Codul definit ˆ ın Exemplul 3.2 are num˘ ar˘ atorul de ponderi
P(x) = 1 + x2+ 2×3
Propozit ¸ia 3.3 FieAn;kun cod liniar binar cu num˘ ar˘ ator de ponderi P(x). Proba-
bilitatea aparit ¸iei unei erori nedetectabile la folosirea codului An;kˆ ıntr-un canal binar
simetric este
Pned=qn"
PÃp
q!
¡1#
:
Demonstrat ¸ie : Relat ¸ia de definit ¸ie a lui Pnedse poate rescrie
qnnX
i=1Aipiq¡i=qnnX
i=1AiÃp
q!i
:
Deoarece A0= 1 (singurul cuvˆ ant – cod de pondere 0 este cuvˆ antul – cod 0, expresia
devine ˆ ın continuare
Pned=qn2
4nX
i=0AiÃp
q!i
¡13
5=qn"
PÃp
q!
¡1#
: 2
3.5 Identitatea MacWilliams
ˆIn acest paragraf vom ar˘ ata un rezultat care face posibil˘ a determinarea num˘ ar˘ a-
torului de ponderi PA?al dualului A?unui cod liniar A, direct din num˘ ar˘ atorul de
ponderi PAal codului A.
Propozit ¸ia 3.4 Fiev2Zn
2¸ siAun(n; k)- cod liniar binar. Atunci are loc egali-
tatea
1
2kX
v2A(¡1)vw=(
1dac˘ a w2A?
0altfel

34 PRELEGEREA 3. CODURI LINIARE – II
Demonstrat ¸ie : Dac˘ a w2A?atunci evident, ( ¡1)vw= (¡1)0= 1 ¸ si suma este egal˘ a
cu num˘ arul de cuvinte – cod din A, care este 2k.
S˘ a presupunem acum c˘ a w62A?, deci exist˘ a un cuvˆ ant – cod v02Acuv0w= 1.
Vom ar˘ ata c˘ a ˆ ın acest caz, num˘ arul cuvintelor – cod ortogonale pe weste egal cu
cel al cuvintelor – cod ne-ortogonale pe w(¸ si deci suma din formul˘ a este 0).
Fiev1;v2; : : : ;vrtoate cuvintele – cod ortogonale pe w. Facem afirmat ¸ia c˘ a
atunci v1+v0;v2+v0; : : : ;vr+v0sunt toate cuvintele – cod ne-ortogonale pe v0.
ˆIntr-adev˘ ar:
1.8i(1·i·r) (vi+v0)w=viw+v0w= 0 + 1 = 1;
2.Dac˘ a v2Averific˘ a relat ¸ia vw= 1, atunci v¡v0este un cuvˆ ant cod –
ortogonal pe w, deci v¡v0=vipentru un anumit i. 2
Teorema 3.8 Pentru orice (n; k)- cod liniar binar Aare loc relat ¸ia (identitatea
MacWilliams):
PA?(x) =(1 +x)n
2kPAµ1¡x
1 +x¶
:
Demonstrat ¸ie : S˘ a rescriem num˘ ar˘ atorul de ponderi sub o form˘ a put ¸in diferit˘ a:
B(x; y) =nX
i=0Aixiyn¡i:
Evident, deoarece P(x) =B(x;1) ¸ si B(x; y) =ynPÃx
y!
, cele dou˘ a expresii sunt
echivalente.
ˆIn notat ¸ia cu polinomul B, identitatea MacWilliams se scrie
BA?(x) =1
2kBA(y¡x; y+x):
Cu ajutorul ponderii cuvintelor – cod, num˘ ar˘ atorul de ponderi are forma
BA(x; y) =nX
i=0Aixiyn¡i=X
a2Axw(a)yn¡w(a)
Prelucrˆ and membrul drept al identit˘ at ¸ii MacWilliams, avem:
BA(y¡x; y+x) =X
a2A(y¡x)w(a)(y+x)n¡w(a)=X
a2AnY
i=1[y+ (¡1)aix]:
ˆIn mod analog, membrul stˆ ang se scrie:
BA?(x; y) =X
a2A?xw(a)yn¡w(a):
Folosind Propozit ¸ia 3.4, el se poate reformula:
BA?(x; y) =X
a2Zn
2"1
2kX
v2A(¡1)av#
xw(a)yn¡w(a):

3.5. IDENTITATEA MACWILLIAMS 35
Expresia din paranteze este 0 pentru toate cuvintele acare nu sunt ˆ ın A?. Deci
BA?(x; y) =1
2kX
v2AX
a2Zk
2(¡1)vaxw(a)yn¡w(a):
Suma interioar˘ a se face dup˘ a toate secvent ¸ele binare ade lungime n. Vom ordona
aceast˘ a sum˘ a dup˘ a ponderile lui a: pentru a= 0 sumandul este yn; pentru cu-
vintele ade pondere 1 avem: [( ¡1)a1+ (¡1)a2+: : :+ (¡1)an]xyn¡1etc; ˆ ın final,
pentru ponderea navem [( ¡1)a1+: : :+ (¡1)an]xn. Suma tuturor acestor sumanzi
nX
k=0[(¡1)ai1+: : :+ (¡1)aik]xkyn¡kse observ˘ a u¸ sor c˘ a este egal˘ a cu
[y+ (¡1)a1x][y+ (¡1)a2x]: : :[y+ (¡1)akx] =nY
i=1[y+ (¡1)aix]:Deci
BA?(x; y) =1
2kX
a2AnY
i=1[y+ (¡1)aix] =1
2kBA(y¡x; y+x): 2
Exemplul 3.8 S˘ a consider˘ am codul din Exemplul 3.2 al c˘ arui num˘ ar˘ ator de ponderi
a fost dat ˆ ın Exemplul 3.7. Pentru codul dual, num˘ ar˘ atorul de ponderi este
PA?(x) =(1 +x)4
22PAµ1¡x
1 +x¶
=(1 +x)4
4"
1 +µ1¡x
1 +x¶2
+ 2µ1¡x
1 +x¶3#
=
=(1 +x)4+ (1 + x)2(1¡x)2+ 2(1 + x)(1¡x)3
4=4 + 4 x2+ 4×3
4= 1+ x2+x3:
Deci cele dou˘ a coduri au acela¸ si num˘ ar˘ ator de ponderi. Aceasta nu ˆ ınseamn˘ a
ˆ ıns˘ a c˘ a cele dou˘ a coduri coincid (¸ si deci codul ar fi auto – dual); a avea acela¸ si
num˘ ar˘ ator de ponderi este doar o condit ¸ie necesar˘ a, nu ¸ si suficient˘ a pentru ca un
cod s˘ a coincid˘ a cu dualul s˘ au.
Exemplul 3.9 Fie codul cu repetit ¸ie de lungime par˘ a n A =f00: : :0;11: : :1g;
num˘ ar˘ atorul lui de ponderi este PA(x) = 1 + xn. Codul dual are num˘ ar˘ atorul de
ponderi
PA?(x) =(1 +x)n

1 +µ1¡x
1 +x¶n¸
= 1 + C2
nx2+C4
nx4+: : :+xn.
Rezult˘ a din aceast˘ a form˘ a c˘ a dualul codului cu repetit ¸ie este codul liniar al cu-
vintelor de pondere par˘ a.

36 PRELEGEREA 3. CODURI LINIARE – II
3.6 Exercit ¸ii
3.1ˆInZn
2not˘ am cu xcuvˆ antul obt ¸inut din xprin permutarea caracterelor 0¸ si1
ˆ ıntre ele. S˘ a se arate c˘ a pentru orice a;b2Zn
2:
1.a+b=a+b;
2.a+b=a+b=a+b;
3.d(a;b) =d(a+b) =w(a+b).
3.2Descriet ¸i codurile modificate obt ¸inute din codul liniar binar cu matricea genera-
toare
G=0
B@1 1 1 0 0
0 0 1 1 1
1 1 1 1 01
CA
3.3Aceea¸ si problem˘ a pentru codul peste Z3definit prin
G=0
B@1 0 0 2 2
0 1 0 0 1
0 0 1 1 01
CA:
3.4FieAun(n; k)- cod liniar binar ¸ si A0(n; k¡1)- codul obt ¸inut din Aprin
expurgare. Ce relat ¸ie exist˘ a ˆ ıntre matricile de control ale celor dou˘ a coduri ?
3.5Ar˘ atat ¸i cum poate codul binar cu repetit ¸ie de lungime 7s˘ a corecteze dou˘ a erori
¸ si s˘ a detecteze 4erori simultan. Cˆ ate erori poate detecta dac˘ a corecteaz˘ a o eroare ?
3.6FieA(15;4)- codul liniar binar ˆ ın care fiecare coloan˘ a idin matricea genera-
toare este scrierea binar˘ a a lui isub forma unui vector cu 4componente. S˘ a se
determine distant ¸a minim˘ a, num˘ ar˘ atorul de ponderi ¸ si num˘ ar˘ atorul de ponderi al
codului dual.
3.7FieAun(2k+ 1; k)- cod binar astfel ca A?½A. Descriet ¸i A?nA.

Prelegerea 4
Clase de coduri liniare
4.1 Coduri Hamming
FieHmatricea de control a unui cod liniar binar. Dac˘ a se transmite un cuvˆ ant –
coda¸ si se recept ¸ioneaz˘ a a+e(deci cu eroarea – tip e, atunci sindromul este eHT.
Acest sindrom este egal cu suma coloanelor lui Hcare corespund pozit ¸iilor afectate
de erori (Prelegerea II, Teorema 2.3).
ˆIn particular, o eroare care apare pe o pozit ¸ie corespunz˘ atoare unei coloane nule
dinHnu influent ¸eaz˘ a sindromul. Deci, o astfel de eroare nu este detectat˘ a.
Dac˘ a Hare dou˘ a coloane identice ¸ si se ˆ ıntˆ ampl˘ a ca pe pozit ¸iile corespunz˘ atoare
lor s˘ a apar˘ a simultan erori, acestea se anuleaz˘ a reciproc ˆ ın calculul sindromului – ¸ si
deci nu pot fi detectate.
Pe de-alt˘ a parte, dac˘ a toate coloanele lui Hsunt distincte ¸ si nenule, o eroare
singular˘ a pe pozit ¸ia sva face ca sindromul s˘ a fie egal cu coloana num˘ arul sdinH.
ˆIn acest caz, erorile singulare pot fi detectate ¸ si corectate foarte u¸ sor.
Pe baza acestor observat ¸ii am demonstrat teorema:
Teorema 4.1 Un cod liniar binar poate corecta o eroare dac˘ a ¸ si numai dac˘ a ma-
tricea sa de control are toate coloanele nenule ¸ si distincte.
Pentru a se putea corecta toate erorile simple, trebuie s˘ a existe sindromuri distincte
pentru fiecare eroare – tip; deci, conform marginii Hamming (Prelegerea III, Teorema
3.5),
2n¡k¸n+ 1:
Pe baza acestor considerente se define¸ ste codul Hamming binar:
Definit ¸ia 4.1 Codul liniar binar ˆ ın care coloanele matricii Hsunt reprezentarea
binar˘ a a numerelor 1;2; : : : ; 2r¡1este numit cod Hamming binar.
Deci, pentru orice num˘ ar natural r(r¸2) se poate construi un ( n; k) – cod liniar
ˆ ın care n= 2r¡1; k= 2r¡r¡1.
De remarcat c˘ a definit ¸ia nu determin˘ a pentru fiecare rˆ ın mod unic matricea de
control a codului Hamming. De obicei se consider˘ a acea matrice Hˆ ın care coloana
ireprezint˘ a scrierea ˆ ın binar a num˘ arului i. Deoarece codul este sistematic (exist˘ a
coloane pentru 20;21; : : : ; 2r¡1), toate celelalte reprezent˘ ari au acelea¸ si propriet˘ at ¸i.
37

38 PRELEGEREA 4. CLASE DE CODURI LINIARE
Exemplul 4.1 Pentru r= 3avem codul Hamming de lungime n= 23¡1 = 7 cu
k= 23¡3¡1 = 4 simboluri de informat ¸ie ¸ si 3simboluri de control. Matricea de
control este:
H3;7=0
B@0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 11
CA
De aici rezult˘ a c˘ a el este determinat de solut ¸iile sistemului liniar:
8
><
>:x4+x5+x6+x7= 0
x2+x3+x6+x7= 0
x1+x3+x5+x7= 0
S˘ a determin˘ am matricea generatoare a acestui cod. Pentru aceasta, construim ˆ ıntˆ ai
codul echivalent, permutˆ and coloanele pentru a aduce matricea de control la forma
e¸ salonat˘ a canonic:

3;7=0
B@0 1 1 1 1 0 0
1 0 1 1 0 1 0
1 1 0 1 0 0 11
CA:
De aici se obt ¸ine matricea generatoare e¸ salonat˘ a canonic:

4;7=0
BBB@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 11
CCCA
Aplicˆ and permutarea invers˘ a asupra coloanelor, se obt ¸ine matricea generatoare a
(7;4)- codului Hamming binar:
G4;7=0
BBB@1 1 1 0 0 0 0
1 0 0 1 1 0 0
0 1 0 1 0 1 0
1 1 0 1 0 0 11
CCCA:
Codul este sistematic: coloanele corespunz˘ atoare matricii unitate: 3;5;6;7, sunt
pozit ¸iile simbolurilor de informat ¸ie ˆ ın fiecare cuvˆ ant – cod. Deci simbolurile x1; x2; x4
sunt simboluri de control. Sistemul de sus poate fi rearanjat pentru a permite calculul
simbolurilor de control din simbolurile de informat ¸ie:
8
><
>:x1=x3+x5+x7
x2=x3+x6+x7
x4=x5+x6+x7
Toate cuvintele codului sunt:

4.1. CODURI HAMMING 39 Informat ¸ie Cuvˆ ant cod Informat ¸ie Cuvˆ ant cod
0000 0000000 0110 0110011
1000 1000011 0101 0101010
0100 0100101 0011 0011001
0010 0010110 1110 1110000
0001 0001111 1101 1101001
1100 1100110 1011 1011010
1010 1010101 0111 0111100
1001 1001100 1111 1111111
Teorema 4.2 Un cod Hamming are distant ¸a minim˘ a 3.
Demonstrat ¸ie : Evident, orice dou˘ a coloane din matricea de control sunt liniar inde-
pendente. ˆIn plus, se pot g˘ asi trei coloane (de exemplu primele trei) a c˘ aror sum˘ a
s˘ a fie 0. Conform Teoremei 2.4 (Prelegerea II), distant ¸a minim˘ a a codului este 3. 2
Deci orice cod Hamming poate corecta o eroare sau poate detecta dou˘ a erori. El
nu poate realiza acest lucru simultan (nu verific˘ a condit ¸ia d¸s+t+ 1 din Teorema
3.7, Prelegerea III).
Decodificarea se realizeaz˘ a foarte simplu, conform urm˘ atorului algoritm:
Algoritm A :
Fieavectorul recept ¸ionat.
1. Se calculeaz˘ a sindromul s=aHT.
2. Dac˘ a s=0, nu a ap˘ arut nici o eroare (sau eroarea este nedetectabil˘ a),
deciv=a, STOP.
3. Altfel, eroarea este pe pozit ¸ia i, unde ieste num˘ arul a c˘ arui reprezentare
ˆ ın binar este sindromul s. Decodificarea este v=a+ei, unde eieste
vectorul care are 1 pe pozit ¸ia i¸ si 0 ˆ ın rest.
Exemplul 4.2 S˘ a consider˘ am din nou (7;4)- codul Hamming din Exemplul 4.1
¸ si s˘ a presupunem c˘ a s-a recept ¸ionat cuvˆ antul x= 0011101 . Calculul sindromului
conduce la valoarea
xHT=0
B@1
0
11
CA
care este scrierea ˆ ın binar a num˘ arului 5. Deci a intervenit o eroare simpl˘ a pe pozit ¸ia
a cincea. Corect˘ am aceast˘ a pozit ¸ie – schimbˆ and 1cu0¸ si se obt ¸ine cuvˆ antul – cod
0011001 , care pe pozit ¸iile 3;5;6;7cont ¸ine mesajul de informat ¸ie: 1001.
Codul Hamming poate fi ˆ ımbun˘ at˘ at ¸it prin extensie. Aceast˘ a operat ¸ie conduce la un
(2m;2m¡m¡1) – cod liniar, cu toate cuvintele – cod de pondere par˘ a.
Exemplul 4.3 Prin extensia (7;4)- codului Hamming se obt ¸ine codul cu matricea
de control
H¤=0
BBB@0 0 0 1 1 1 1 0
0 1 1 0 0 1 1 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 11
CCCA.

40 PRELEGEREA 4. CLASE DE CODURI LINIARE
De remarcat c˘ a H¤are rangul 4; ˆ ın plus, toate liniile ei sunt cuvinte – cod ˆ ın
codul Hamming extins. Deci H¤poate fi considerat˘ a matrice generatoare a acestui
cod. Rezult˘ a c˘ a (8;4)- codul Hamming extins este auto – dual.
Un cod Hamming extins este solut ¸ia unui sistem liniar de n¡k+ 1 ecuat ¸ii, ecuat ¸ia
suplimentar˘ an+1X
i=1xi= 0 fiind numit˘ a ecuat ¸ia de control a parit˘ at ¸ii .
Propozit ¸ia 4.1 Un cod Hamming extins are d= 4.
Demonstrat ¸ie : Fie a1a2: : : a nun cuvˆ ant – cod de pondere d= 3 din codul Ham-
ming. Trecˆ and la codul extins, cuvˆ antul a1a2: : : a nan+1verific˘ a relat ¸ia suplimentar˘ a
n+1X
i=1ai= 0 (reamintim, sumele se fac modulo 2). CumnX
i=1ai= 1, rezult˘ a an+1= 1.
Noul cuvˆ ant are evident pondere minim˘ a, ¸ si aceasta este 3 + 1 = 4. 2
Codurile Hamming extinse corecteaz˘ a o eroare simpl˘ a ¸ si detecteaz˘ a 2 erori si-
multan. Algoritmul prezentat este bazat pe verificarea celor n¡k+ 1 ecuat ¸ii de
control:
Algoritm B :
1. Dac˘ a nu sunt verificate ecuat ¸ia de control a parit˘ at ¸ii ¸ si cel put ¸in una
din primele n¡kecuat ¸ii, ˆ ınseamn˘ a c˘ a a ap˘ arut o eroare simpl˘ a, care se
corecteaz˘ a cu Algoritmul A;
2. Dac˘ a ecuat ¸ia de control a parit˘ at ¸ii este verificat˘ a dar cel put ¸in una din
primele n¡kecuat ¸ii de control nu se verific˘ a, s-a detectat o eroare dubl˘ a;
3.ˆIn celelalte situat ¸ii nu au ap˘ arut erori (sau eroarea este nedetectabil˘ a).
Faptul c˘ a se poate lua totdeauna o decizie se bazeaz˘ a pe urm˘ atorul rezultat.
Teorema 4.3 Codul Hamming este perfect.
Demonstrat ¸ie : Reamintim (Prelegerea II, Definit ¸ia 2.8) c˘ a un cod Aeste perfect
dac˘ a
Zn
q=[
x2ASt(x):
Scriind aceast˘ a relat ¸ie ˆ ın funct ¸ie de num˘ arul de elemente din fiecare sfer˘ a ¸ si t ¸inˆ and
cont c˘ a toate sferele cont ¸in un num˘ ar egal de elemente, avem
qkh
1 +C1
n(q¡1) +: : :+Ct
n(q¡1)ti
=qn:
Pentru cazul codurilor Hamming, q= 2; n= 2r¡1; k= 2r¡r¡1; t= 1, deci
totul revine la verificarea egalit˘ at ¸ii 2k(1 +n) = 2n. 2
De remarcat c˘ a rata de informat ¸ie a codurilor Hamming
R=k
n= 1¡r
2r¡1
cre¸ ste rapid spre 1. Evident ˆ ıns˘ a c˘ a odat˘ a cu aceast˘ a cre¸ stere scade protect ¸ia fat ¸˘ a
de erori.

4.1. CODURI HAMMING 41
4.1.1 Coduri Hamming nebinare
Definit ¸ia 4.2 Fieqnum˘ ar prim, r(r¸2)un ˆ ıntreg ¸ si n=qr¡1
q¡1. Se nume¸ ste cod
Hamming nebinar un (n; n¡r)- cod liniar peste Zqˆ ın care matricea de control are
orice pereche de dou˘ a coloane liniar independente (nici o coloan˘ a nu este multiplu
scalar al altei coloane).
Mult ¸imea coloanelor unui astfel de cod formeaz˘ a o mult ¸ime maximal˘ a de vectori
liniar independent ¸i doi cˆ ate doi.
Exemplul 4.4 S˘ a consider˘ am q= 3; r= 2. Atunci n=32¡1
3¡1= 4. Un (4;2)-
cod Hamming ternar poate fi dat de matricea de control
H=Ã
0 1 1 1
1 0 1 2!
Decodificarea se poate face folosind tabela de sindromuri, ˆ ın care s-au luat ca repre-
zentant ¸i toate combinat ¸iile posibile de o eroare:
Sindrom Reprezentant Sindrom Reprezentant
01 1000 12 0001
02 2000 20 0200
10 0100 21 0002
11 0010 22 0020
Dac˘ a se recept ¸ioneaz˘ a de exemplu 1021, calculul sindromului d˘ a s= 02. Reprezen-
tantul este 2000. Se calculeaz˘ a 1021¡2000 = 1021 + 1000 = 2021 deci cuvˆ antul –
cod transmis a fost 2021.
Cum matricea generatoare a acestui cod este G=Ã
2 2 1 0
1 2 0 1!
ultimele dou˘ a
caractere formeaz˘ a mesajul de informat ¸ie; deci s-a codificat mesajul 21.
Despre codurile Hamming nebinare se pot stabili urm˘ atoarele rezultate:
²Deoarece pentru q; rfixat ¸i codurile Hamming corespunz˘ atoare sunt echiva-
lente, se poate alege o anumit˘ a matrice de control. Uzual se folose¸ ste matricea
ˆ ın care se scriu toate coloanele nenule de relemente din Zq, cu condit ¸ia ca
primul element nenul (de sus ˆ ın jos) s˘ a fie 1.
²Codurile Hamming nebinare au d= 3 (evident, din construct ¸ia matricii de
control de mai sus). Deci ele pot corecta o eroare.
²Proprietatea de a fi coduri perfecte se p˘ astreaz˘ a. ˆIntr-adev˘ ar, deoarece un
cod Hamming cont ¸ine qn¡rcuvinte – cod iar n=qr¡1
q¡1, egalitatea stabilit˘ a ˆ ın
demonstrat ¸ia Teoremei 4.3 se scrie qn¡r[1 +n(q¡1)] = qn, care se verific˘ a
imediat.

42 PRELEGEREA 4. CLASE DE CODURI LINIARE
Exemplul 4.5 S˘ a consider˘ am (13;10)- codul Hamming ternar. Acest cod are o
aplicat ¸ie interesant˘ a ˆ ın problema Pronosportului. Dup˘ a cum se ¸ stie, un buletin
Pronosport cont ¸ine rezultatele (notate cu 1;2; X) a13meciuri. Pentru a avea sigur
13rezultate exacte trebuiesc completate 313buletine. Cˆ ate buletine sunt ˆ ıns˘ a necesare
pentru a fi sigur de 12rezultate ? La prima vedere s-ar p˘ area c˘ a 312. Completˆ and
ˆ ıns˘ a buletinele cu elementele codului Hamming ternar (13;10)(cu0ˆ ın loc de X) –
care sunt ˆ ın num˘ ar de 310, se atinge scopul dorit. ˆIntr-adev˘ ar, acesta fiind un cod
perfect corector de o eroare, orice element din Z13
3difer˘ a prin cel mult o pozit ¸ie de
un cuvˆ ant – cod.
Astfel, num˘ arul buletinelor se reduce de nou˘ a ori.
4.2 Codul Golay
Al doilea cod liniar prezentat are capacitatea de corect ¸ie pentru maxim 3 erori.
Vom construi ˆ ıntˆ ai varianta extins˘ a a codului, deoarece algoritmul de decodificare
este mai simplu ¸ si u¸ sor de aplicat ulterior la codul Golay normal.
4.2.1 Codul Golay binar extins
Acest cod a fost folosit de programul spat ¸ial Voyager la ˆ ınceputul anilor080, la
transmiterea fotografiilor planetelor Jupiter ¸ si Saturn.
S˘ a consider˘ am matricea 12 £12 din Figura 4.1:
Figura 4.1:
B=0
BBBBBBBBBBBBBBBBBBBBBBB@1 1 0 1 1 1 0 0 0 1 0 1
1 0 1 1 1 0 0 0 1 0 1 1
0 1 1 1 0 0 0 1 0 1 1 1
1 1 1 0 0 0 1 0 1 1 0 1
1 1 0 0 0 1 0 1 1 0 1 1
1 0 0 0 1 0 1 1 0 1 1 1
0 0 0 1 0 1 1 0 1 1 1 1
0 0 1 0 1 1 0 1 1 1 0 1
0 1 0 1 1 0 1 1 1 0 0 1
1 0 1 1 0 1 1 1 0 0 0 1
0 1 1 0 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 1 01
CCCCCCCCCCCCCCCCCCCCCCCA
FieGmatricea 12 £24G= (I12jB). Codul liniar binar generat de Gse nume¸ ste
codul Golay extins ¸ si va fi notat C24.
Observat ¸ii :
²Matricea Beste mai u¸ sor de construit decˆ at pare. Astfel, eliminˆ and ultima
linie ¸ si coloan˘ a, matricea r˘ amas˘ a – s˘ a spunem B1- este generat˘ a ciclic (spre

4.2. CODUL GOLAY 43
stˆ anga) de cuvˆ antul binar 11011100010. Deci B=Ã
B11T
10!
,
unde1= 11111111111. Evident, Beste simetric˘ a ( BT=B).
²C24aren= 24; k= 12 ¸ si 212= 4096 cuvinte – cod.
²Conform Teoremei 2 :2, o matrice de control a codului este H= (BjI12).
Teorema 4.4 H= (I12jB)este de asemenea matrice de control pentru C24.
Demonstrat ¸ie : Liniile din Bau pondere impar˘ a (7 sau 11); deci produsul (scalar)
al unei linii cu ea ˆ ıns˘ a¸ si este 1. O verificare simpl˘ a arat˘ a c˘ a produsul primei linii cu
oricare alt˘ a linie din Beste 0. Structura ciclic˘ a a lui B1asigur˘ a c˘ a atunci produsul
scalar al oric˘ aror dou˘ a linii este 0.
ˆIn concluzie, BBT=I12. Dar BT=B, a¸ sa c˘ a putem scrie:
GHT= (IjB)Ã
I
B!
=I2+B2=I+BBT=I+I=0:
Vom folosi ambele matrici de control pentru decodificarea codului C24. 2
Corolarul 4.1
A. C24admite ca matrice generatoare ¸ si pe G= (BjI12).
B. Codul Golay extins este auto – dual ( C24=C?
24).
Demonstrat ¸ie : Se verific˘ a imediat. 2
Teorema 4.5 C24are distant ¸a minim˘ a d= 8.
Demonstrat ¸ie : Vom demonstra afirmat ¸ia ˆ ın trei pa¸ si.
1.Ponderea cuvintelor din C24este multiplu de 4.
S˘ a observ˘ am c˘ a liniile lui Gau pondere 8 sau 12. Fie v2C24ca sum˘ a de dou˘ a
linii din G:v=ri+rj. Cum Bare liniile ortogonale, rezult˘ a c˘ a ¸ si liniile lui
Gsunt ortogonale. Deci ri¸ sirjau un num˘ ar par (s˘ a zicem 2 x) de elemente 1
ˆ ın comun. Atunci w(v) =w(ri) +w(rj)¡2(2x), care este multiplu de 4.
Fie acum v2C24ca sum˘ a de trei linii din G:v=ri+rj+rs. Not˘ am
v1=ri+rj. Deoarece C24este auto – dual, v1¸ sirsau un num˘ ar par (s˘ a
zicem 2 y) de elemente 1 ˆ ın comun. Deci w(v) =w(v1) +w(rs)¡2(2y) care
este multiplu de 4.
Folosind acum un procedeu de induct ¸ie, cum orice cuvˆ ant – cod este combinat ¸ie
liniar˘ a de linii din G, ponderea sa va fi multiplu de 4.
2.Primele 11 linii din Gsunt cuvinte – cod de pondere 8, deci distant ¸a codului
C24este 4 sau 8.
3.C24nu are cuvinte de pondere 4.
S˘ a presupunem c˘ a exist˘ a v2C24cuw(v) = 4. Exist˘ a atunci u1;u22Z12
2
cuv=u1(IjB);v=u2(BjI). Deoarece exist˘ a o jum˘ atate din vcare are cel
put ¸in doi de 1, rezult˘ a w(u1)·2 sau w(u2)·2. Pe de-alt˘ a parte, suma
a una sau dou˘ a linii din Bnu poate avea o pondere mai mic˘ a de 4; deci
w(v) =w(ui) +w(uiB)>4, contradict ¸ie. 2

44 PRELEGEREA 4. CLASE DE CODURI LINIARE
4.2.2 Decodificarea codului Golay extins
Conform Teoremei 4.5, un cod Golay extins poate corecta orice combinat ¸ie de maxim
3 erori.
ˆIn aceast˘ a sect ¸iune vom nota cu acuvˆ antul recept ¸ionat, cu vcuvˆ antul – cod cel
mai apropiat, ¸ si cu eeroarea – tip ( v=a+e). Deoarece capacitatea de corect ¸ie
este de 3 erori, vom considera w(e)·3.
Pentru orice cuvˆ ant din Z24
2, vom separa cu o virgul˘ a prima jum˘ atate a cuvˆ antului
de cea de-a doua. Eroarea – tip va fi notat˘ a u= [u1;u2], unde u1;u2au fiecare
lungimea 12. Evident, condit ¸ia w(u)·3 implic˘ a w(u1)·1 sau w(u2)·1.
Folosind cele dou˘ a matrici de control, se pot defini dou˘ a sindromuri pentru a:
s1=uÃ
I12
B!
= [u1;u2]Ã
I12
B!
=u1+u2B,
s2=uÃ
B
I12!
= [u1;u2]Ã
B
I12!
=u1B+u2.
De aici rezult˘ a urm˘ atoarea observat ¸ie: dac˘ a w(u2)·1, atunci s1este sau un
cuvˆ ant de pondere maxim 3 (dac˘ a w(u2) = 0), sau o linie a lui Bcu cel mult doi
bit ¸i schimbat ¸i (dac˘ a w(u2) = 1).
Similar, dac˘ a w(u1)·1, atunci s2este sau un cuvˆ ant de pondere maxim 3 sau
o linie a lui Bcu cel mult doi bit ¸i schimbat ¸i.
Dac˘ a se folose¸ ste ¸ si faptul c˘ a s2=u1B+u2= (u1+u2B)B=s1B(deci se
poate folosi doar prima matrice de control), putem defini urm˘ atorul algoritm de
decodificare a codurilor Golay extinse:
Algoritm C:
1. Se calculeaz˘ a sindromul s=aH;
2. Dac˘ a w(s)·3, atunci e= [s;0], STOP.
3. Dac˘ a exist˘ a o linie bia lui Bcuw(s+bi)·2, atunci e= [s+bi;ei],
STOP.
4. Dac˘ a w(sB)·3, atunci e= [0;sB], STOP.
5. Dac˘ a exist˘ a o linie bia luiBcuw(sB+bi)·2, atunci e= [ei;sB+bi],
STOP.
6. Dac˘ a enu a fost determinat ˆ ınc˘ a, se cere retransmiterea.
S-a notat cu eiun cuvˆ ant de lungime 12 cu 1 pe pozit ¸ia i¸ si 0 ˆ ın rest.
Dup˘ a determinarea erorii e, cuvˆ antul – cod transmis se determin˘ a prin v=a+e.
Exemplul 4.6 S˘ a decodific˘ am cuvˆ antul a= 101111101111 ;010010010010 .
Sindromul este
s=aHT= 101111101111 + 001111101110 = 100000000001 .
Deoarece w(s) = 2·3, se g˘ ase¸ ste e= [s;0] = 100000000001 ;000000000000
deci s-a transmis cuvˆ antul v=a+u= 001111101110 ;010010010010 .

4.2. CODUL GOLAY 45
Deoarece G= (I12jB) este ˆ ın forma e¸ salonat canonic˘ a, mesajul de informat ¸ie (orice
cuvˆ ant din Z12
2) apare pe primele 12 pozit ¸ii ale cuvˆ antului – cod. Astfel, ˆ ın exemplul
de sus, mesajul de informat ¸ie a fost 001111101110.
Exemplul 4.7 Se cere decodificarea cuvˆ antului a= 001001001101 ;101000101000 .
Sindromul este
s=aH= 001001001101 + 111000000100 = 110001001001 .
Deoarece w(s) = 5 , se trece la pasul 3al Algoritmului C ¸ si se calculeaz˘ a:
s+b1= 000110001100
s+b2= 011111000010
s+b3= 101101011110
s+b4= 001001100100
s+b5= 000000010010
Deoarece w(s+b5)·2, se determin˘ a
e= [s+b5;e5] = 000000010010 ;000010000000
¸ si se decide c˘ a s-a transmis cuvˆ antul – cod
v=a+e= 001001011111 ;101010101000 .
Exemplul 4.8 S˘ a decodific˘ am cuvˆ antul a= 000111000111 ;011011010000 .
Sindromul este
s=aHT=u1+u2B= 000111000111 + 101010101101 = 101101101010
care are ponderea 7. Trecˆ and la pasul 3se g˘ ase¸ ste w(s+bi)¸3pentru toate
liniile lui B; deci se continu˘ a cu pasul 4: al doilea sindrom este sB= 111001111101
cu ponderea 8. Pasul 5va da:
sB+b1= 001110111000
sB+b2= 010111110110
sB+b3= 100101101010
sB+b4= 000001010000
S-a ajuns la w(sB+b4)·2, deci se poate determina eroarea:
e= [e4;sB+b4] = 000100000000 ;000001010000
deci cuvˆ antul – cod transmis a fost:
v=a+e= 000011000111 ;011010000000 .
4.2.3 Codul Golay
Prin relaxarea codului Golay extins (eliminarea ultimului bit din fiecare cuvˆ ant –
cod) se ajunge la Codul Golay binar .
FieˆBmatricea 12 £11 obt ¸inut˘ a din Bprin eliminarea ultimei coloane. Definim
G= (I12jˆB). Codul liniar binar generat de Gse nume¸ ste codul Golay ¸ si este notat
cuC23. Caracteristicile sale sunt:
n= 23; k = 12;Num˘ ar de cuvinte – cod: 212= 4096 :
Evident, extensia lui C23esteC24.

46 PRELEGEREA 4. CLASE DE CODURI LINIARE
Teorema 4.6 Distant ¸a unui cod Golay este d= 7.
Demonstrat ¸ie : Demonstrat ¸ia se poate face fie direct (similar celei de la Teorema 4.5)
fie folosind faptul c˘ a C23este relaxarea codului C24, care are distant ¸a 8. 2
ˆIn consecint ¸˘ a, un cod Golay va corecta orice combinat ¸ie de maxim 3 erori.
Teorema 4.7 Codul Golay este perfect.
Demonstrat ¸ie : Se verific˘ a relat ¸ia:
212(C0
23+C1
23+C2
23+C3
23) = 212(1 + 23 + 253 + 1771) = 212211= 223: 2
Rezult˘ a c˘ a orice cuvˆ ant a2Z23
2se afl˘ a la distant ¸a maxim 3 de un cuvˆ ant – cod.
Astfel, dac˘ a se adaug˘ a la sfˆ ar¸ sit 0 sau 1, formˆ and a0 respectiv a1 pentru a obt ¸ine
un cuvˆ ant de pondere impar˘ a, acest cuvˆ ant este la distant ¸˘ a maxim 3 de un cuvˆ ant
– cod c2C24. Se folose¸ ste Algoritmul C pentru a obt ¸ine acest cuvˆ ant – cod, apoi se
elimin˘ a ultimul caracter din c; se ajunge astfel la cel mai apropiat cuvˆ ant – cod din
C23fat ¸˘ a de a.
Algoritmul D :
1. Se formeaz˘ a cuvˆ antul extins de pondere impar˘ a a0 sau a1;
2. Se decodific˘ a aifolosind Algoritmul C ¸ si se obt ¸ine c2C24;
3. Se elimin˘ a ultimul caracter din c.
Exemplul 4.9 S˘ a decodific˘ am a= 001001001001 ;11111110000 .
Deoarece aare pondere impar˘ a, se construie¸ ste
a0 = 001001001001 ;111111100000 .
Sindromul acestui cuvˆ ant este s1= 100010111110 .
Pentru c˘ a s1=b6+e9+e12,a0se decodific˘ a ˆ ın 001001000000 ;111110100000 ,
a¸ sa c˘ a aeste decodificat ˆ ın 001001000000 ;11111010000 .
4.3 Unicitatea codurilor perfecte binare
Ambele clase de coduri liniare prezentate aici sunt perfecte.
Se observ˘ a imediat c˘ a pentru corectarea unei erori, singurele coduri binare per-
fecte sunt codurile Hamming.
Vom mai ar˘ ata c˘ a aceast˘ a singularitate este valabil˘ a ¸ si ˆ ın cazul codurilor Golay;
anume, singurul cod binar perfect corector de 3 erori este codul Golay. Pentru
aceasta sunt necesare dou˘ a leme:
Lema 4.1 O condit ¸ie necesar˘ a pentru existent ¸a unui (n; k)- cod binar perfect corec-
tor de terori estetX
i=0Ci
n= 2ppentru un anumit p.
Demonstrat ¸ie : Rezult˘ a imediat din relat ¸ia scris˘ a ˆ ın demonstrat ¸ia Teoremei 4.3, ˆ ın
care se ia q= 2. 2

4.3. UNICITATEA CODURILOR PERFECTE BINARE 47
Lema 4.2tX
i=0Ci
n=n+ 1
t!Rt(n)
unde teste num˘ ar natural impar, Rt(X)2Z[X]; gr(Rt(X)) =t¡1.
Demonstrat ¸ie : Pentru t= 1 se verific˘ a imediat.
Presupumem adev˘ arat˘ a afirmat ¸ia pentru t¸ si o demonstr˘ am pentru t+ 2. Avem
t+2X
i=0Ci
n=n+ 1
t!+Ct+1
n+Ct+2
n=n+ 1
(t+ 2)!"
(t+ 1)( t+ 2)Rt(n) +tY
i=0(n¡i)#
.
Expresia din paranteza dreapt˘ a este un polinom de gradul t+ 1; notˆ andu-l cu
Rt+2(n), afirmat ¸ia este demonstrat˘ a. 2
S˘ a consider˘ am acum cazul t= 3. Pentru ca s˘ a existe un cod binar perfect
corector de 3 erori, cu lemele de sus, trebuie ca ( n+ 1)( n2¡n+ 6) = 3 ¢2s, sau
(n+ 1)[( n+ 1)2¡3(n+ 1) + 8] = 3 ¢2s:
Considerat˘ a ca o ecuat ¸ie ˆ ın n+ 1, singurele solut ¸ii ˆ ıntregi pozitive sunt de forma
n+ 1 = 2kpunde p= 1 sau p= 3. ˆInlocuind, se ajunge la
22kp3¡2k¢3p2+ 8p= 2s¡k¢3 (1)
Pentru k·3 ¸ sip= 1;3 verific˘ arile se fac imediat. Pentru k¸4 se ajunge la
contradict ¸ie. Singurele valori care verific˘ a ecuat ¸ia sunt:
n= 0;1;2¡nu corespund nici unui cod.
n= 3 ¡codul trivial cu un singur cuvˆ ant – cod de lungime 3 :
n= 7 ¡codul (trivial) cu repetit ¸ie f0000000 ;1111111 g:
n= 23 ¡codul Golay.
ˆIn acest mod am demonstrat teorema:
Teorema 4.8 Codul binar Golay este singurul cod binar perfect netrivial corector
de3erori.
Lemele 4.1 ¸ si 4.2 pot fi folosite ¸ si pentru alte valori impare ale lui t. Cercet˘ arile nu
au condus la alte coduri perfecte binare, dar nici nu s-a demonstrat c˘ a nu exist˘ a
nici un cod perfect binar corector de t(t >3 impar) erori. Afirmat ¸ia este valabil˘ a
deocamdat˘ a pentru t <20.
Un alt caz interesant de studiu este q= 2; t= 2. Aici se poate da teorema:
Teorema 4.9 Nu exist˘ a nici un cod netrivial binar perfect corector de 2erori.
Demonstrat ¸ie : Lema 4.1 conduce la relat ¸ia
(2n+ 1)2= 2s+3¡7:
Ecuat ¸ia x2+ 7 = 2ma fost studiat˘ a ˆ ın multe articole (vezi Math. Rev. 26 ;#74).
Singurele solut ¸ii sunt x= 1;3;5;11;181 c˘ arora le corespund:
n= 0;1¡f˘ ar˘ a coduri.
n= 2 ¡codul trivial cu un singur cuvˆ ant :
n= 5 ¡codul cu repetit ¸ie f00000 ;11111g:
n= 90:

48 PRELEGEREA 4. CLASE DE CODURI LINIARE
Acest ultim caz este eliminat de urm˘ atorul rezultat (Van Lindt – Coding theory,
pp. 95):
Dac˘ a exist˘ a un cod binar perfect corector de terori, atuncin+ 1
t+ 1este num˘ ar
ˆ ıntreg. 2
4.4 Exercit ¸ii
4.1Fie(8;4)- codul Hamming binar extins. Decodificat ¸i cuvintele
10101010 11010110 11111111 .
4.2S˘ a se demonstreze c˘ a toate cuvintele – cod ale codului Hamming binar extins
(2r;2r¡r¡1)au pondere par˘ a.
4.3Construit ¸i codurile Hamming ternare pentru r= 2;3¸ si determinat ¸i decodifi-
carea pe baza sindromurilor.
4.4Construit ¸i (5;3)- codul Hamming cu q= 4. Determinat ¸i toate cuvintele – cod ¸ si
tabela de decodificare cu sindromuri. Decodificat ¸i cuvintele: 11223 ;32101 2222 1100 .
4.5Demonstrat ¸i afirmat ¸iile din Corolarul 4.1.
4.6Ar˘ atat ¸i c˘ a C24cont ¸ine un cuvˆ ant cu toate componentele egale cu 1¸ si nici un
cuvˆ ant de pondere 20.
Demonstrat ¸i c˘ a num˘ ar˘ atorul de ponderi al lui C24este:
1 + 759 X8+ 2576 X12+ 759 X16+X24:
4.7ˆIn codul Golay extins C24s˘ a se decodifice – dac˘ a este posibil, cuvintele:
111000000000 ;011011011011 111111000000 ;100011100111
111111000000 ;101011100111 111111000000 ;111000111000
111000000000 ;110111001101 110111001101 ;111000000000
000111000111 ;101000101101 110000000000 ;101100100000
4.8S˘ a se determine eroarea tip cea mai probabil˘ a pentru un cuvˆ ant cu sindromurile:
s1= 010010000000 ;s2= 011111010000
s1= 010010100101 ;s2= 001000110000
s1= 111111000101 ;s2= 111100010111
s1= 111111111011 ;s2= 010010001110
s1= 001101110110 ;s2= 111110101101
s1= 010111111001 ;s2= 100010111111
4.9Folosind C23, decodificat ¸i cuvintele:
101011100000 ;10101011011 101010000001 ;11011100010
100101011000 ;11100010000 011001001001 ;01101101111
4.10 Detaliat ¸i demonstrat ¸ia Teoremei 4.6.
4.11 Rezolvat ¸i ecuat ¸ia (1).

Prelegerea 5
Coduri Reed – Muller
Vom introduce o nou˘ a clas˘ a de coduri binare, caracterizate printr-o tehnic˘ a de de-
codificare deosebit de simpl˘ a: codurile Reed – Muller (R¡M). Ele au fost definite
de Reed, iar Muller a construit modalitatea de decodificare ¸ si – implicit – de de-
tectare ¸ si corectare a erorilor. Unul din aceste coduri – RM(1;5) – a fost folosit ˆ ın
1969 de sonda Mariner pentru transmiterea de imagini de pe Lun˘ a. Fiecare pixel
din imagine avea asignat una din 26= 64 grade de umbr˘ a, iar ace¸ sti ¸ sase bit ¸i de
informat ¸ie erau codificat ¸i ˆ ıntr-un cuvˆ ant de lungime 32. Codul poate corecta pˆ an˘ a
la 7 erori.
5.1 Definirea prin funct ¸ii booleene
5.1.1 Funct ¸ii ¸ si polinoame booleene
Definit ¸ia 5.1 O funct ¸ie boolean˘ a de m(m¸1)variabile este o aplicat ¸ie
f:Zm
2!Z2.
O modalitate simpl˘ a folosit˘ a pentru definirea unei funct ¸ii booleene este asocierea
uneitabele de adev˘ ar : un tablou ( m+1)£2mcare cont ¸ine toate combinat ¸iile posibile
demvalori binare, c˘ arora li se asociaz˘ a valoarea funct ¸iei (de asemenea o valoare
binar˘ a). Prin convent ¸ie, primii mbit ¸i de pe coloana i(0·i·2m¡1) reprezint˘ a
scrierea ˆ ın baza 2 a num˘ arului i.
Exemplul 5.1 Urm˘ atoarea tabel˘ a de adev˘ ar define¸ ste o funct ¸ie boolean˘ a de 3vari-
abile:
x00 1 0 1 0 1 0 1
x10 0 1 1 0 0 1 1
x20 0 0 0 1 1 1 1
f0 1 1 0 1 1 1 0
Observ˘ am c˘ a o astfel de tabel˘ a define¸ ste un cuvˆ ant binar de lungime 8. Afirmat ¸ia
este adev˘ arat˘ a ¸ si invers: orice cuvˆ ant binar de lungime 8este definit printr-o tabel˘ a
de adev˘ ar a unei funct ¸ii booleene de 3variabile. Astfel, se pot identifica funct ¸iile
booleene de 3variabile prin cuvintele binare de lungime 8.ˆIn tabela de sus, cuvˆ antul
01101110 este pus ˆ ın corespondent ¸˘ a biunivoc˘ a cu funct ¸ia f.
49

50 PRELEGEREA 5. CODURI REED – MULLER
ˆIn cele ce urmeaz˘ a, orice cuvˆ ant binar f=f0f1: : : f 2m¡1de lungime 2meste conside-
rat ca o funct ¸ie boolean˘ a de mvariabile, unde
f(0;0; : : : ; 0;0) = f0;
f(0;0; : : : ; 0;1) = f1;
f(0;0; : : : ; 1;0) = f2;

f(1;1; : : : ; 1;1) = f2m¡1
ˆIn general, fi=f(im¡1; : : : ; i 1; i0), unde i=m¡1X
k=0ik2k
(im¡1: : : i 1i0este scrierea ˆ ın binar a lui i).
Exemplul 5.2 Exist˘ a dou˘ a funct ¸ii booleene constante:
1= 11 : : :11; 0= 00 : : :00:
Exemplul 5.3 Orice variabil˘ a poate fi tratat˘ a ca o funct ¸ie boolean˘ a. De exemplu,
x0este funct ¸ia boolean˘ a care asigneaz˘ a fiec˘ arui m-tuplu (x0; x1; : : : ; x m¡1)valoarea
primei coordonate x0. Deci, valoarea este 0pentru toate numerele pare ¸ si 1pentru
toate numerele impare: x0= 0101 : : :01(vezi Exemplul 5.1 pentru cazul m= 3).
ˆIn general,
xieste cuvˆ antul binar ˆ ın care pe pozit ¸ia k(0·k·2m¡1)este1atunci ¸ si
numai atunci cˆ and scrierea binar˘ a a lui kcont ¸ine 1pe pozit ¸ia i.
Aceast˘ a observat ¸ie rezult˘ a din modul de scriere al tabelelor de adev˘ ar.
De exemplu, x1= 00110011 : : :0011 ¸ sixm¡1= 00 : : :00|{z}
2m¡111: : :11|{z}
2m¡1.
Pentru m= 4, cele patru variabile sunt descrise ˆ ın Tabelul 5.1:
Tabelul 5.1:
x00 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
x10 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
x20 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
x30 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
Pe mult ¸imea funct ¸iilor booleene se definesc dou˘ a operat ¸ii:
²Suma logic˘ a (sau exclusiv ): f+g=h
unde hi=fi+gi(mod 2);0·i·2m¡1.
²Produsul logic (¸ si): fg=h
unde hi=figi(mod 2);0·i·2m¡1.
Observat ¸ii :

5.1. DEFINIREA PRIN FUNCT ¸II BOOLEENE 51
1.Produsul logic verific˘ a relat ¸ia ff=f.
Deci ˆ ın reprezentarea funct ¸iilor nu vor apare exponent ¸i mai mari de 1.
2.Exist˘ a ¸ si alte operat ¸ii care pot fi exprimate cu ajutorul sumei ¸ si produsului
logic. Astfel,
²Negat ¸ia f=1+f
²_(sau disjunctiv ): f_g=f+g+fg
Definit ¸ia 5.2 Un polinom boolean de mnedeterminate este o sum˘ a de termeni din
mult ¸imea
f0;1g [ fxi1xi2: : :xikj0·i1< i2< : : : < i k·m¡1; k¸1g:
Funct ¸ia 0este numit˘ a polinom boolean de gradul ¡1, funct ¸ia 1este numit˘ a polinom
boolean de gradul 0, iar orice alt polinom boolean are gradul kunde keste num˘ arul
maxim de factori dintr-un termen al lui f.
Exemplul 5.4 Polinomul boolean 1+x0x1de3nedeterminate are gradul 2. El
este negat ¸ia polinomului
x0x1= (01010101)(00110011) = 00010001 .
Deci1+x0x1= 11101110 .
Acela¸ si polinom, considerat ca funct ¸ie de 4nedeterminate, este cuvˆ antul
1110111011101110 .
Exemplul 5.5 Polinomul xixj(i6=j)este cuvˆ antul binar ˆ ın care pe pozit ¸ia keste
1dac˘ a ¸ si numai dac˘ a reprezentarea binar˘ a a lui kare1pe pozit ¸iile i¸ sij. Num˘ arul
acestor situat ¸ii este 2m¡2(deoarece celelalte m¡2pozit ¸ii din scrierea binar˘ a a lui k
pot fi alese arbitrar). Deci w(xixj) = 2m¡2.
Mai general,
Dac˘ a i1; i2; : : : ; i rsunt valori distincte din [0 ; m¡1], atunci
w(xi1xi2: : :xir) = 2m¡r: (¤)
Fiecare polinom boolean de mvariabile determin˘ a un cuvˆ ant binar de lungime
2m: pentru o singur˘ a nedeterminat˘ a, se folose¸ ste Exemplul 5.3, dup˘ a care se opereaz˘ a
adun˘ arile ¸ si multiplic˘ arile necesare.
Invers, orice cuvˆ ant binar f=f0f1: : : f 2m¡1poate fi translatat ˆ ıntr-un polinom
boolean pe baza urm˘ atoarei propozit ¸ii:
Propozit ¸ia 5.1 Dac˘ a feste o funct ¸ie boolean˘ a de mvariabile, atunci:
f(x0; : : : ; x m¡2; xm¡1) =f(x0; : : : ; x m¡2;0)+
+[f(x0; : : : ; x m¡2;0) +f(x0; : : : ; x m¡2;1)]xm¡1:
Demonstrat ¸ie : Deoarece xm¡1poate lua doar dou˘ a valori (0 ;1), este suficient s˘ a
verific˘ am identitatea pentru acestea. Cazul xm¡1= 0 se verific˘ a banal. Pentru
xm¡1= 1 avem:
f(x0; : : : ; x m¡2;0)+[f(x0; : : : ; x m¡2;0)+f(x0; : : : ; x m¡2;1)] = f(x0; : : : ; x m¡2;1).
2

52 PRELEGEREA 5. CODURI REED – MULLER
Exemplul 5.6 S˘ a translat˘ am f= 01101110 ˆ ıntr-un polinom boolean de 3variabile.
Vom aplica pe etape formula din Propozit ¸ia 5.1:
f= 0110 + [0110 + 1110] x2= 0110 + 1000 x2=
= (01 + [01 + 10] x1) + (10 + [10 + 00] x1)x2= 01 + 11 x1+ 10×2+ 10x1x2=
= (0 + [0 + 1] x0) + (1 + [1 + 1] x0)x1+ (1 + [1 + 0] x0)x2+ (1 + [1 + 0] x0)x1x2=
=x0+x1+x2+x0x2+x1x2+x0x1x2:
Teorema 5.1 Spat ¸iul liniar Zn
2;(n= 2m)are o baz˘ a format˘ a din toate monoamele
booleene:
1
xi (i= 0;1; : : : ; m ¡1)
xixj (i; j= 0;1; : : : ; m ¡1; i6=j)

x0x1: : :xm¡1
Demonstrat ¸ie : Fiecare cuvˆ ant de lungime n= 2meste o funct ¸ie boolean˘ a de mnede-
terminate, care poate fi exprimat˘ a printr-un polinom boolean. Monoamele booleene
pot fi considerate ˆ ın Zn
2¸ si sunt evident liniar independente. ˆIn plus, deoarece pentru
fiecare k= 0;1; : : : ; m sunt Ck
mmonoame de grad k, num˘ arul lor total va fi
mX
k=0Ck
m= 2m=n, adic˘ a dimensiunea spat ¸iului liniar. 2
5.1.2 Coduri Reed – Muller
Definit ¸ia 5.3 Se nume¸ ste cod Reed – Muller de lungime n= 2m¸ si grad r
(0·r·m), codul liniar RM(r; m)al tuturor cuvintelor binare de lungime ncare
au – ca polinoame booleene – gradul maxim r.
Exemplul 5.7 RM(0; m)este format din toate polinoamele de grad cel mult 0,
adic˘ a 0¸ si1. Deci RM(0; m)este codul cu repetit ¸ie de lungime 2m.
Exemplul 5.8 RM(1; m)are baza 1;x0; : : : ;xm¡1; orice polinom de grad cel mult
1se poate scrie ca sum˘ a de o parte din aceste m+1polinoame (liniar independente).
Deci,RM(1; m)este un (2m; m+ 1) – cod liniar.
De exemplu, RM(1;3)are matricea generatoare:
G=0
BBB@1
x0
x1
x21
CCCA=0
BBB@1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 11
CCCA:
care genereaz˘ a codul Hamming extins (8;4).
Similar, RM(1;4)este un (16;5)- cod liniar binar, iar RM(1;5)este un (32;6)
– cod liniar, folosit ˆ ın 1969 de programul Mariner, dup˘ a cum s-a ment ¸ionat anterior.
Propozit ¸ia 5.2 RM(r; m)arek=C0
m+C1
m+: : :+Cr
msimboluri de informat ¸ie.

5.1. DEFINIREA PRIN FUNCT ¸II BOOLEENE 53
Demonstrat ¸ie : Codul RM(r; m) are ca baz˘ a monoamele booleene
f1g [ fxi1xi2: : :xisjs·r;0·i1< i2< : : : < i s< mg.
Num˘ arul acestor monoame este C0
m+C1
m+: : :+Cr
m. Cum ele sunt liniar in-
dependente, vor forma liniile matricii generatoare Ga codului; ori num˘ arul de linii
este egal cu num˘ arul de simboluri de informat ¸ie. 2
Propozit ¸ia 5.3 Dualul codului RM(r; m)este codul RM(m¡r¡1; m).
Demonstrat ¸ie : Trebuie ar˘ atat c˘ a cele dou˘ a coduri au baze ortogonale ¸ si suma di-
mensiunilor lor este egal˘ a cu suma ˆ ıntregului spat ¸iu.
A: Fievi1vi2: : :vip(p·r) un monom din baza codului RM(r; m) ¸ si
vj1vj2: : :vjs(s·m¡r¡1) un monom din baza codului RM(m¡r¡1; m).
Produsul lor are t(t·r+m¡r¡1 =m¡1) variabile distincte (variabilele comune
apar o singur˘ a dat˘ a), deci ponderea lui este (conform ( ¤)) 2m¡t¸2. Fiind un num˘ ar
par, rezult˘ a c˘ a produsul scalar (adic˘ a suma ˆ ın binar a termenilor) este 0.
B: Suma dimensiunilor celor dou˘ a coduri este:
rX
i=0Ci
m+m¡r¡1X
i=0Ci
m=rX
i=0Ci
m+mX
i=r+1Ci
m=mX
i=0Ci
m= 2m=n. 2
Exemplul 5.9 RM(m¡2; m)este codul Hamming extins de lungime 2m.ˆIntr-
adev˘ ar, codul s˘ au dual este RM(m¡(m¡2)¡1; m) =RM(1; m), deciRM(m¡
2; m)are matricea de control
H=0
BBBB@1
x0

xm1
CCCCA=0
BBBB@1 1 1 1 : : :1 1 1 1
0 1 0 1 : : :0 1 0 1

0 0 0 0 : : :1 1 1 11
CCCCA:
Dac˘ a adun˘ am prima linie la toate celelalte ¸ si apoi o permut˘ am cu ultima linie,
se obt ¸ine alt˘ a matrice de control a codului:
H»0
BBBBBBB@1 0 1 0 : : :1 0 1 0
1 1 0 0 : : :1 1 0 0

1 1 1 1 : : :0 0 0 0
1 1 1 1 : : :1 1 1 11
CCCCCCCA:
Dup˘ a eliminarea ultimei linii ¸ si coloane se obt ¸ine un (2m¡1; m)- cod ale c˘ arui
coloane sunt nenule ¸ si diferite dou˘ a cˆ ate dou˘ a, adic˘ a matricea de control H0a unui
cod Hamming binar. Deci Heste matricea de control a unui cod Hamming extins.
Codificarea mesajelor cu un cod R¡Mse realizeaz˘ a normal, ˆ ınmult ¸ind mesajul de
informat ¸ie cu matricea generatoare. ˆIn acest fel bit ¸ii de informat ¸ie devin coeficient ¸ii
polinomului boolean corespunz˘ ator. De exemplu, ˆ ın RM(1; m) codificarea celor
m+ 1 caractere de informat ¸ie este:
(a1; a2; : : : ; a m+1)0
BBBB@1
x0

xm¡11
CCCCA=a11+a2x0+: : :+am+1xm¡1:

54 PRELEGEREA 5. CODURI REED – MULLER
5.2 Definirea recursiv˘ a a codurilor R – M
S˘ a introducem o alt˘ a modalitate de definire a codurilor Reed – Muller, nu prin
polinoame booleene, ci prin construct ¸ie recursiv˘ a.
Definit ¸ia 5.4 Fiem¸0un num˘ ar natural. Se define¸ ste codul Reed – Muller
RM(r; m)de ordin r(0·r·m)¸ si lungime n= 2mastfel:
²RM(0; m) =f00: : :0;11: : :1g;RM(m; m ) =Zn
2.
²RM(p; m) =f[a;a+b]ja2 RM (p; m¡1);b2 RM (p¡1; m¡1)g;0< p·r:
S-a notat cu [ x;y] un cuvˆ ant de lungime 2mscris ca al˘ aturare de dou˘ a subcuvinte
de lungimi egale (2m¡1), separate prin virgul˘ a.
Exemplul 5.10 RM(0;0) =f0;1g
RM(0;1) =f00;11g; RM(1;1) =f00;01;10;11g
RM(0;2) =f0000;1111g;RM(2;2) = Z4
2
RM(1;2) =f(a;a+b)ja2 f00;01;10;11g;b2 f00;11gg=
=f0000;0011;0100;0111;1000;1011;1100;1111g
ˆIn mod similar se poate da o definit ¸ie recursiv˘ a a matricii generatoare G(r; m) pentru
codul RM(r; m).
²G(0; m) = (11 : : :1);
²pentru 0 < p < m; G (p; m) =Ã
G(p; m¡1) G(p; m¡1)
0 G(p¡1; m¡1)!
;
²G(m; m ) =Ã
G(m¡1; m)
00: : :01!
.
Teorema 5.2 G(r; m)este matrice generatoare pentru codul RM(r; m).
Demonstrat ¸ie : Se verific˘ a prin induct ¸ie dup˘ a r. 2
Exemplul 5.11 S˘ a consider˘ am r= 2; atunci lungimea este n= 22= 4¸ si pentru
r= 1;2avem
G(1;2) =Ã
G(1;1)G(1;1)
0 G(0;1)!
G(2;2) =Ã
G(1;2)
0001!
.
Din definit ¸ie, matricile generatoare pentru RM(0;1)¸ siRM(1;1)sunt
G(0;1) = (11) ; G (1;1) =Ã
1 1
0 1!
, a¸ sa c˘ a
G(1;2) =0
B@1 1 1 1
0 1 0 1
0 0 1 11
CA; G (2;2) =0
BBB@1 1 1 1
0 1 0 1
0 0 1 1
0 0 0 11
CCCA.

5.3. DEFINIREA GEOMETRIC ˘A A CODURILOR R-M 55
Propozit ¸ia 5.4 RM(r¡1; m)µ RM (r; m).
Demonstrat ¸ie : S˘ a consider˘ am init ¸ial matricea
G(1; m) =Ã
G(1; m¡1)G(1; m¡1)
0 G(0; m¡1)!
:
Pentru c˘ a 1este prima linie a lui G(1; m¡1), cuvˆ antul [ 1;1] formeaz˘ a prima
linie a matricii ( G(1; m¡1)G(1; m¡1)). Deci RM(0; m) =f0;1geste cont ¸inut
ˆ ın codul RM(1; m).
ˆIn general, deoarece G(r¡1; m¡1) este submatrice a lui G(r; m¡1) ¸ si
G(r¡2; m¡1) este o submatrice a lui G(r¡1; m¡1), este evident c˘ a
G(r¡1; m) =Ã
G(r¡1; m¡1)G(r¡1; m¡1)
0 G(r¡2; m)!
este o submatrice a lui G(r; m), deci RM(r¡1; m) este subcod al lui RM(r; m).
2
Teorema 5.3 RM(r; m)are distant ¸a d= 2m¡r.
Demonstrat ¸ie : Vom folosi o induct ¸ie dup˘ a r:
Pentru r= 0, evident ( RM(0; m) fiind codul cu repetit ¸ie, distant ¸a sa este
d=n= 2m).
La pasul II, deoarece
RM(r; m) =f[x;x+y]jx2 RM (r; m¡1);y2 RM (r¡1; m¡1)g¸ si
RM(r¡1; m¡1)µ RM (r; m¡1) (Propozit ¸ia 5.4), rezult˘ a x+y2 RM (r; m¡1).
Dac˘ a x6=y, conform ipotezei de induct ¸ie w(x+y)¸2m¡1¡r. Cum ¸ si w(x)¸
2m¡1¡r, putem scrie w([x+y;x]) =w(x+y) +w(x)¸2m¡r.
Dac˘ a x=y, atunci [ x;x+y] = [ y;0]; dar y2 RM (r¡1; m¡1) ¸ si deci
w([y;0]) =w(y)¸2m¡r.
Cum orice linie a matricii generatoare este cuvˆ ant – cod, iar ultima linie are
ponderea exact 2m¡r, demonstrat ¸ia este ˆ ıncheiat˘ a. 2
5.3 Definirea geometric˘ a a codurilor R-M
Codurile Reed – Muller mai pot fi definite ¸ si geometric – prin folosirea spat ¸iilor
afine. Avantajul acestei reprezent˘ ari const˘ a ˆ ın modalitatea mai simpl˘ a de aplicare
a algoritmilor de decodificare.
Pentru u¸ surint ¸a descrierii am construit ˆ ıntˆ ai cazul tridimensional. De asemenea,
pentru a vedea echivalent ¸a cu definirea anterioar˘ a a codurilor Reed – Muller, vom
face permanent leg˘ atura cu polinoamele booleene (sau cu funct ¸iile lor caracteristice).

56 PRELEGEREA 5. CODURI REED – MULLER
5.3.1 Cazul 3-dimensional
Spat ¸iul euclidian 3 – dimensional binar este mult ¸imea f(a; b; c )ja; b; c2Z2g. Spre
deosebire de spat ¸iul euclidian obi¸ snuit – unde cele trei coordonate luau valori ˆ ın R
– aici num˘ arul punctelor este finit: numai 8. Ele pot fi listate, renotˆ andu-le astfel:
Punct Funct ¸ie caracteristic˘ a
p0= 000 00000001
p1= 001 00000010
p2= 010 00000100
p3= 011 00001000
p4= 100 00010000
p5= 101 00100000
p6= 110 01000000
p7= 111 10000000
Liniile pot fi definite ˆ ın geometria euclidian˘ a prin expresii de forma
a+tb a ;b2Z3
2;b6=0:
unde teste un parametru binar ( t2 f0;1g). Deci o linie ˆ ın spat ¸iul 3 – dimensional
binar are numai 2 puncte: a;a+b. Invers, orice pereche de dou˘ a puncte distincte
a;a0formeaz˘ a o dreapt˘ a, anume a+t(a0¡a). Putem astfel s˘ a consider˘ am liniile ca
fiind totalitatea celor C2
8= 28 submult ¸imi de cˆ ate dou˘ a puncte
fp0;p1g;fp0;p2g; : : : ;fp6;p7g.
ˆIn mod similar, planele din geometria euclidian˘ a sunt definite
a+t1b+t2c;a;b;c2Z3
2;b;cliniar independente ;
unde t1; t2sunt parametri binari. Un plan este format deci din patru puncte:
a;a+b;a+c;a+b+c. Aparent, de¸ si num˘ arul planelor ˆ ın geometria euclidian˘ a
binar˘ a 3 – dimensional˘ a ar trebui s˘ a fie C4
8= 70, condit ¸ia de liniar independent ¸˘ a
reduce acest num˘ ar la 14:
Plan Funct ¸ie caracteristic˘ a Polinom boolean
fp1;p3;p5;p7g 10101010 x0
fp2;p3;p6;p7g 11001100 x1
fp4;p5;p6;p7g 11110000 x2
fp0;p2;p4;p6g 01010101 1+x0
fp0;p1;p4;p5g 00110011 1+x1
fp0;p1;p2;p3g 00001111 1+x2
fp1;p2;p5;p6g 01100110 x0+x1
fp1;p3;p4;p6g 01011010 x0+x2
fp2;p3;p4;p5g 00111100 x1+x2
fp1;p2;p4;p7g 10010110 x0+x1+x2
fp0;p3;p4;p7g 10011001 1+x0+x1
fp0;p2;p5;p7g 10100101 1+x0+x2
fp0;p1;p6;p7g 11000011 1+x1+x2
fp0;p3;p5;p6g 01101001 1+x0+x1+x2

5.3. DEFINIREA GEOMETRIC ˘A A CODURILOR R-M 57
ˆIn general, un plan este descris de ecuat ¸ia general˘ a
h0x0+h1x1+h2x2=c
care define¸ ste un subspat ¸iu 2 – dimensional al lui Z3
2.
Din faptul c˘ a orice dreapt˘ a este o intersect ¸ie de dou˘ a plane, ea poate fi descris˘ a
printr-o pereche de dou˘ a ecuat ¸ii:
h0x0+h1x1+h2x2=c; h0
0x0+h0
1×1+h0
2×2=c0:
Liniile ¸ si planele sunt exemple de spat ¸ii afine. Un spat ¸iu afin ˆ ınZ3
2este o mult ¸ime
de forma
a+A=fa+bjb2Ag
undea2Z3
2iarAeste un subspat ¸iu liniar din Z3
2. Dac˘ a dimensiunea lui Aestes,
numim acea mult ¸ime un s- spat ¸iu afin .
Deci liniile sunt 1 – spat ¸ii afine, iar planele: 2 – spat ¸ii afine. Pentru fiecare punct
piavem un 0 – spat ¸iu afin, ¸ si – ˆ ın sfˆ ar¸ sit – exist˘ a un 3 – spat ¸iu afin unic – Z3
2.
Orice spat ¸iu afin Lpoate fi descris de un cuvˆ ant binar fL=f7: : : f 1f0definit
prin
fi=(
1 dac˘ a pi2L;
0 altfel
Cuvˆ antul fL(sau funct ¸ia boolean˘ a de trei variabile corespunz˘ atoare) se nume¸ ste
funct ¸ia caracteristic˘ a a spat ¸iului afin L(tabelele anterioare listeaz˘ a aceste funct ¸ii
pentru 0 ¸ si 2 – spat ¸ii afine).
Fiind date spat ¸iile afine L; L0, intersect ¸ia lor L\L0este caracterizat˘ a de produsul
logicfLfL0.
Exemplul 5.12 Primele dou˘ a plane din tabelul de sus se intersecteaz˘ a dup˘ a linia
fp3;p7g. Produsul logic al funct ¸iilor lor caracteristice este
x0x1= 10001000 ;
care se poate verifica imediat ca fiind funct ¸ia caracteristic˘ a a dreptei fp3;p7g.
5.3.2 Cazul m- dimensional
Vom prezenta construct ¸iile anterioare ˆ ıntr-un cadru mai general, al geometriei eu-
clidiene m- dimensionale binare. Punctele (elementele lui Zm
2) pot fi renotate dup˘ a
extensia binar˘ a a indicilor; mai clar, vom scrie Zm
2=fp0;p1; : : : ;p2m¡1gunde
p0= 000 : : :00;p1= 000 : : :01;p2= 000 : : :10; : : : ; p2m¡1= 111 : : :11.
Definit ¸ia 5.5 FieAun subspat ¸iu liniar r- dimensional al lui Zm
2¸ sia2Zm
2.
Mult ¸imea
Aa=a+A=fa+bjb2Ag
se nume¸ ste r- spat ¸iu afin ˆ ın geometria euclidian˘ a m- dimensional˘ a.
Un(m¡1)- spat ¸iu afin se nume¸ ste ”hiperplan”.

58 PRELEGEREA 5. CODURI REED – MULLER
Dac˘ a b1; : : : ;breste o baz˘ a a lui A,r- spat ¸iul afin Aase noteaz˘ a
a+t1b1+: : :+trbr:
El are 2rpuncte (date de variantele de alegere ale parametrilor binari ti;1·i·r).
O alt˘ a modalitate de notare a r- spat ¸iilor afine se realizeaz˘ a cu ajutorul sis-
temelor de ecuat ¸ii liniare: astfel, dac˘ a Aeste definit ca mult ¸imea solut ¸iilor sistemului
HxT=0T, atunci Aaeste dat de mult ¸imea solut ¸iilor sistemului
HxT=HaT:
Acest sistem are m¡recuat ¸ii. ˆIn particular, un hiperplan este definit printr-o
singur˘ a ecuat ¸ie:
h0x0+h1x1+: : :+hm¡1xm¡1=c.
Exemplul 5.13 Un0- spat ¸iu afin cuprinde un singur punct. Exist˘ a deci 2m
0- spat ¸ii afine distincte: fp0g;fp1g; : : : ;fp2m¡1g.
Similar, orice 1- spat ¸iu afin (sau ”linie”) este o mult ¸ime format˘ a din dou˘ a
puncte
a+tb´ fa;a+bg;
¸ si invers, orice mult ¸ime de dou˘ a puncte distincte formeaz˘ a un 1- spat ¸iu afin.
Exist˘ a deci C2
2m1- spat ¸ii afine.
Exemplul 5.14 FiePispat ¸iul afin definit de ecuat ¸ia xi= 1. Deci Pieste mult ¸imea
punctelor pkcare au 1pe pozit ¸ia i. De exemplu P0=fp1;p3; : : : ;p2m¡1g.
Fiecare Pieste un hiperplan ¸ si – deoarece p2iare un singur 1pe pozit ¸ia i¸ si0ˆ ın
rest, putem scrie
Pi´p2i+A
unde Aeste spat ¸iul liniar definit de ecuat ¸ia xi= 0, (deci tot un hiperplan).
Propozit ¸ia 5.5 Exist˘ a 2(2m¡1)hiperplane.
Demonstrat ¸ie : Deoarece se pot construi 2m¡1 ecuat ¸ii cu coeficient ¸i binari ¸ si variabile
x0; x1; : : : ; x m¡1,Zm
2are 2m¡1 subspat ¸ii Ade dimensiune m¡1. Fiecare din ele
are 2m¡1puncte, deci vor exista2m
2m¡1= 2 spat ¸ii afine modulo A. 2
Exemplul 5.15 Pentru i6=j, intersect ¸ia Pi\Pj(mult ¸imea punctelor care au 1pe
pozit ¸iile i¸ sij) este un (m¡2)- spat ¸iu afin. ˆIntr-adev˘ ar, dac˘ a se ia a=p2i+2j,
avem
Pi\Pj´a+A;
unde Aeste determinat de ecuat ¸iile xi=xj= 0(deci Aare dimensiunea m¡2).
Definit ¸ia 5.6 Funct ¸ia caracteristic˘ a a unui r- spat ¸iu afin Leste cuvˆ antul binar
fL=f2m¡1: : : f 1f0definit prin
fj=(
1dac˘ a pj2L;
0altfel

5.3. DEFINIREA GEOMETRIC ˘A A CODURILOR R-M 59
Funct ¸ia caracteristic˘ a poate fi interpretat˘ a ca un polinom boolean fL(x0; : : : ; x m¡1).
Din propriet˘ at ¸ile acestor polinoame rezult˘ a
a0a1: : : a m¡12L () fL(a0; a1; : : : a m¡1) = 1
Observat ¸ii :
1.Singurul m- spat ¸iu afin ( Zm
2) are funct ¸ia caracteristic˘ a 1= 11 : : :1.
2.Un hiperplan Piare funct ¸ia fPi=xi.
3.FieLun hiperplan definit de ecuat ¸ia h0x0+: : : h m¡1xm¡1=c. Funct ¸ia sa
caracteristic˘ a va fi un polinom boolean de gradul 1, anume
fL(x0; : : : ; x m¡1) =h0x0+: : :+hm¡1xm¡1+c+ 1
Aceast˘ a relat ¸ie rezult˘ a din faptul c˘ a un punct a0: : : a m¡1este ˆ ın plan dac˘ a ¸ si
numai dac˘ a h0a0+: : :+hm¡1am¡1=c, adic˘ a fL(a0; : : : ; a m¡1) = 1.
4.Pentru dou˘ a spat ¸ii afine L; L0, funct ¸ia caracteristic˘ a a intersect ¸iei L\L0este
fLfL0.
Astfel, pentru Pi\Pj(care este un ( m¡2) – spat ¸iu afin) funct ¸ia caracteristic˘ a
estexixj.
Mai general, polinomul boolean xi1xi2: : :xiseste funct ¸ia caracteristic˘ a a unui
(m¡s) – spat ¸iu afin.
Teorema 5.4 Funct ¸ia caracteristic˘ a a unui r- spat ¸iu afin este un polinom boolean
de gradul m¡r.
Demonstrat ¸ie : Un r- spat ¸iu afin Leste definit ca solut ¸ia sistemului de ecuat ¸ii
HxT=cT, sau, detaliind,
m¡1X
j=0hijxj=ci; 1·i·m¡r:
Aceste ecuat ¸ii se pot scrie
m¡1X
j=0hijxj+ci+ 1 = 1 ; 1·i·m¡r:
Atunci, polinomul boolean de grad m¡r
f(x0; : : : ; x m¡1) =m¡rY
i=10
@m¡1X
j=0hijxj+ci+ 11
A
este funct ¸ia caracteristic˘ a a lui L. 2
Definit ¸ia 5.7 RM(r; m)este codul liniar generat de toate funct ¸iile caracteristice
ale spat ¸iilor afine de dimensiune cel put ¸in m¡rˆ ın geometria euclidian˘ a m- dimen-
sional˘ a peste Z2.

60 PRELEGEREA 5. CODURI REED – MULLER
Faptul c˘ a aceasta coincide cu definit ¸ia anterioar˘ a a codurilor Reed – Muller rezult˘ a
din construt ¸ia spat ¸iilor afine: RM(r; m) cont ¸ine toate funct ¸iile caracteristice ale s
– spat ¸iilor afine, unde s¸m¡r. Faptul c˘ a aceste funct ¸ii genereaz˘ a tot spat ¸iul
RM(r; m) rezult˘ a din Observat ¸ia 4.
Exemplul 5.16 Codul RM(1;3)este generat de funct ¸iile caracteristice ale tuturor
planelor. Orice astfel de funct ¸ie este un polinom de trei variabile de gradul 1.
Codul RM(2;3)este generat de funct ¸iile caracteristice ale tuturor planelor ¸ si
liniilor. Cum o linie este intersect ¸ia a dou˘ a plane, funct ¸ia sa caracteristic˘ a este
produsul a dou˘ a polinoame de gradul 1, deci un polinom de gradul 2(cuvˆ ant – cod
dinRM(2;3)).
5.4 Exercit ¸ii
5.1Ce polinom boolean are ultima linie a tabelei de adev˘ ar:
10100110 1010011010100110 0101001110011100
5.2Determinat ¸i tabela de adev˘ ar a polinomului boolean 1+x0+x1x2:
1.Ca funct ¸ie de trei variabile;
2.Ca funct ¸ie de patru variabile.
5.3Demonstrat ¸i afirmat ¸ia (¤).
5.4G˘ asit ¸i un (15;5)- cod liniar binar corector de 3erori (folosit ¸i un cod R¡M
relaxat).
5.5Fiind dat codul RM(1;3), codificat ¸i toate mesajele de informat ¸ie posibile.
Acela¸ si lucru pentru codul RM(2;3).
5.6Demonstrat ¸i Teorema 5.2
5.7Construit ¸i matricile generatoare G(1;3); G(2;3); G(r;4); r= 0;1;2:
5.8Demonstrat ¸i c˘ a G(r; m)arek+ 1linii, unde keste dat de Propozit ¸ia 5.2
5.9Calculat ¸i num˘ arul de 2- spat ¸ii afine ˆ ın geometria euclidian˘ a peste Zm
2.
5.10 Este orice funct ¸ie boolean˘ a funct ¸ia caracteristic˘ a a unui anumit spat ¸iu afin ?
Caracterizat ¸i astfel de funct ¸ii.
5.11 Orice funct ¸ie caracteristic˘ a a unui (r+ 1) – spat ¸iu afin apart ¸ine codului dual
luiRM(r; m).
5.12 S˘ a se arate c˘ a RM(2;5)este auto – dual. S˘ a se determine toate codurile
RM auto – duale.

Prelegerea 6
Decodificarea codurilor Reed –
Muller
Avantajul principal al codurilor Reed – Muller const˘ a ˆ ın facilitatea decodific˘ arii,
facilitate bazat˘ a pe o tehnic˘ a diferit˘ a de cea de pˆ an˘ a acum. Aceast˘ a tehnic˘ a, numit˘ a
decodificare majoritar˘ a nu apeleaz˘ a la ideea de sindrom, ci corecteaz˘ a direct bit ¸ii
modificat ¸i, folosind diverse propriet˘ at ¸i ale cuvˆ antului recept ¸ionat.
6.1 Decodificarea majoritar˘ a
S˘ a prezent˘ am pe scurt principiile generale ale decodific˘ arii majoritare. Vom ˆ ıncepe
cu un exemplu foarte simplu:
Exemplul 6.1 Fie codul binar cu repetit ¸ie de lungime 2n+ 1 :
C=f00: : :0|{z}
2n+1;11: : :1|{z}
2n+1g:
Ca sistem de ecuat ¸ii de control se poate lua
8
>>>><
>>>>:x1+x2 = 0
x1+x3 = 0

x1+x2n+1= 0
Dac˘ a se recept ¸ioneaz˘ a cuvˆ antul y=x+e, la ˆ ınlocuirea lui ˆ ın sistem, acesta devine
y1+yi=e1+ei;2·i·2n+ 1.
Dac˘ a mai mult de ndin cele 2nexpresii y1+yiiau valoarea 1, aceasta ˆ ınseamn˘ a
c˘ a:
²Au ap˘ arut mai put ¸in de nerori, printre care ¸ si pe prima pozit ¸ie ( e1= 1), sau
²Au ap˘ arut mai mult de nerori, dar nu pe prima pozit ¸ie ( e1= 0).
Din aceste dou˘ a variante, prima este mai probabil˘ a. Deci valoarea majoritar˘ a pe
care o iau cele nvalori y1+yiva fi valoarea lui e1.
Definit ¸ia 6.1 FieAn;kun cod liniar. Un set de ecuat ¸ii de control pentru An;keste
ortogonal pe mult ¸imea de pozit ¸ii P½ f1;2; : : : ; n gdac˘ a ¸ si numai dac˘ a:
61

62 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
1.8i2P, termenul xiapare (cu coeficient nenul) ˆ ın fiecare ecuat ¸ie;
2.8i62P, termenul xiapare cel mult ˆ ıntr-o ecuat ¸ie.
Decodificarea se realizeaz˘ a caracter cu caracter, dup˘ a urm˘ atorul procedeu:
Fiea=a1: : : a ncuvˆ antul recept ¸ionat ¸ si i(1·i·n) o pozit ¸ie.
Se construie¸ ste mult ¸imea maximal˘ a de ecuat ¸ii de control ortogonale pe pozit ¸ia
i.
Fieeivaloarea obt ¸inut˘ a ˆ ın majoritatea acestor ecuat ¸ii. Al i-lea caracter de-
codificat este ai+ei.
Exemplul 6.2 Fie dualul (15;11)- codului Hamming cu matricea de control
H=0
BBB@0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 1 0 1 0 1 0 1 0 1 0 1 0 11
CCCA
Pentru fiecare pereche de coloane distincte din Hexist˘ a o a treia coloan˘ a astfel ˆ ıncˆ at
suma celor trei coloane este 0. Deci, fiecare cuvˆ ant de pondere 3al codului Hamming
d˘ a o ecuat ¸ie de control cu trei termeni pentru codul dual; ˆ ın acest fel se obt ¸ine pentru
fiecare caracter xicˆ ate un sistem de 7ecuat ¸ii ortogonale pe pozit ¸ia i. Astfel,
pentru x1ele sunt: x1=x2+x3=x4+x5=x6+x7=x8+x9=x10+x11=
x12+x13=x14+x15;
pentru x2:x2=x1+x3=x4+x6=x5+x7=x8+x10=x9+x11=x12+x14=
x13+x15, etc.
Codul are distant ¸a d= 8; deci poate corecta maxim 3erori.
Dac˘ a ˆ ın mesajul primit yapar cel mult 3erori, atunci un sistem de ecuat ¸ii
ortogonal pe x1va avea cel mult trei ecuat ¸ii care s˘ a dea pentru x1o valoare gre¸ sit˘ a
¸ si cel put ¸in cinci cu valoarea calculat˘ a corect. Valoarea g˘ asit˘ a majoritar va fi cea ˆ ın
care se decodific˘ a primul caracter.
Procedeul se reia pentru y2; y3; : : :.
S˘ a presupunem de exemplu c˘ a s-a recept ¸ionat mesajul 001011110101011 . Pentru
decodificarea primului caracter vom calcula sumele
0 + 1 ;0 + 1 ;1 + 1 ;1 + 0 ;1 + 0 ;1 + 0 ;1 + 1 .
Se obt ¸in 5valori de 1¸ si dou˘ a de 0; deci, primul simbol este 1.
Procedˆ and similar pentru fiecare (folosind ecuat ¸iile ortogonale corespunz˘ atoare
fiec˘ arei pozit ¸ii), se ajunge la cuvˆ antul 10101011010101010 .
Aceast˘ a metod˘ a este nu numai u¸ sor de implementat, dar are adesea ¸ si alte complet˘ ari
(gen ”bitul de testare a parit˘ at ¸ii”) care fac posibil˘ a corectarea mai multor erori.
ˆIn aceast˘ a prelegere vom construi trei algoritmi de decodificare a codurilor R¡
M. Doi din ei sunt bazat ¸i pe modurile de reprezentare (geometric ¸ si algebric) ale
acestor coduri; al treilea este un algoritm bzat pe definirea recursiv˘ a a codurilor
R¡M¸ si este prezentat numai pentru cazul r= 1. Tot ¸ii algoritmii sunt foarte u¸ sor
de implementat, utilizarea unuia sau a altuia depinzˆ and de criterii particulare ˆ ın
alegerea parametrilor codului.

6.2. ALGORITM GEOMETRIC DE DECODIFICARE MAJORITAR ˘A 63
6.2 Algoritm geometric de decodificare majori-
tar˘ a
Deoarece distant ¸a unui cod RM(r; m) este d= 2m¡r, el va fi capabil s˘ a corecteze
pˆ an˘ a la 2m¡r¡1¡1 erori. ˆIn cele ce urmeaz˘ a vom presupune c˘ a s-a recept ¸ionat
cuvˆ antul y=y2m¡1: : : y 1y0, ˆ ın care au fost modificate maxim 2m¡r¡1¡1 pozit ¸ii.
Problema este de a determina pentru fiecare i(0·i·2m¡1) dac˘ a bitul yitrebuie
corectat sau nu. Sau – altfel spus – de a vedea dac˘ a pozit ¸ia lui ycorespunz˘ atoare 0
– spat ¸iului afin fpigtrebuie sau nu corectat˘ a.
Pentru a folosi propriet˘ at ¸ile codurilor Reed – Muller exprimate de spat ¸iile afine,
vom reformula totul ˆ ın maniera urm˘ atoare:
Pentru fiecare s- spat ¸iu afin L(0·s·r+ 1) vom cerceta dac˘ a pozit ¸iile
cuvˆ antului recept ¸ionat ycorespunz˘ atoare punctelor lui L(adic˘ a acei bit ¸i yipentru
carepi2L) sunt modificat ¸i sau nu.
Vom da ˆ ıntˆ ai cˆ ateva not ¸iuni ¸ si notat ¸ii ajut˘ atoare pentru a simplifica demons-
trat ¸iile.
Definit ¸ia 6.2 FieGun grup, Aun subgrup al s˘ au ¸ si x2G. Se nume¸ ste ”subgrup
modulo A” al lui Gmult ¸imea
Ax=x+A=fx+aja2Ag:
Lema 6.1 Subgrupurile unui grup modulo un subgrup arbitrar A, au urm˘ atoarele
propriet˘ at ¸i:
1:8a2G;9x2G; a2Ax;
2:Dac˘ a x6=yatunci Ax\Ay=;sauAx=Ay;
3:Dac˘ a a; b2Axatunci a¡b2A;
4:8x; card (Ax) =card(A).
Demonstrat ¸ie : Este l˘ asat˘ a ca exercit ¸iu.
Teorema principal˘ a a acestui paragraf este:
Teorema 6.1 Orice s- spat ¸iu afin din geometria binar˘ a m- dimensional˘ a este
cont ¸inut ˆ ın exact 2m¡s¡1 (s+ 1) – spat ¸ii afine distincte. ˆIn plus, orice punct din
afara lui Leste exact ˆ ın unul din aceste (s+ 1) – spat ¸ii afine.
Demonstrat ¸ie :I: S˘ a ar˘ at˘ am ˆ ıntˆ ai c˘ a orice s- subspat ¸iu liniar AµZm
2este cont ¸inut
ˆ ın exact 2m¡s¡1 subspat ¸ii distincte de dimensiune s+ 1.
Orice ( s+ 1) – spat ¸iu care cont ¸ine Aeste de forma
A=A+tb´ fa+tbja2A; t= 0;1g;
undeb62Aeste un punct arbitrar fixat. Aceasta rezult˘ a imediat din faptul c˘ a orice
baz˘ a a lui Apoate fi extins˘ a la o baz˘ a a lui A.
Pentru dou˘ a puncte b;b062A, spat ¸iile liniare A+tb¸ siA+tb0coincid dac˘ a ¸ si
numai dac˘ a b¸ sib0sunt ˆ ın acela¸ si subspat ¸iu modulo A(Lema 6.1).

64 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
Din aceea¸ si lem˘ a rezult˘ a c˘ a sunt2m
2ssubspat ¸ii modulo A. Unul este chiar A, iar
celelalte cont ¸in numai puncte dinafara lui A. Deci exist˘ a 2m¡s¡1 spat ¸ii distincte
A+tbpentru b62A.
II: Orice s- spat ¸iu afin L´a+A(dimA =s) este cont ¸inut ˆ ın 2m¡s¡1
(s+ 1) – spat ¸ii afine distincte de forma a+A:
CuI, orice spat ¸iu care cont ¸ine Leste de forma b+A. Deoarece Leste de forma
a+A, rezult˘ a c˘ a a2b+A, deci a¡b2A, de unde rezult˘ a (Lema 6.1) c˘ a punctele
a;bsunt ˆ ın acela¸ si subspat ¸iu modulo A.
III: Orice punct b62L=a+Aeste ˆ ıntr-un ( s+ 1) – spat ¸iu afin care cont ¸ine L,
anume a+Aunde A=A+t(b¡a).
ˆIntr-adev˘ ar, alegˆ and t= 1 ¸ si 02A, avem b=a+ [0+ (b¡a)].
Pentru a verifica c˘ a Aare dimensiunea s+1 este suficient de ar˘ atat c˘ a b¡a62A;
dac˘ a prin absurd b¡a2A, atunci a+ (b¡a) =b2A, contradict ¸ie.
ˆIn final, ar mai trebui ar˘ atat c˘ a acest ( s+ 1) – spat ¸iu afin care ˆ ıl cont ¸ine pe
beste unic. Orice ( s+ 1) – spat ¸iu afin care cont ¸ine a+Aare forma a+Aunde
dim(A) =s+ 1. Dac˘ a b2a+A, atunci b¡a2A, deci Acont ¸ine spat ¸iul liniar
A+ (b¡a). Cum ambele spat ¸ii au aceea¸ si dimensiune ( s+ 1), ele coincid. 2
Corolarul 6.1 Dac˘ a num˘ arul de erori din cuvˆ antul recept ¸ionat este t <2m¡r¡1,
atunci pentru fiecare s- spat ¸iu afin L(0·s·r)majoritatea (s+ 1) – spat ¸iilor
afine care cont ¸in Lau aceea¸ si paritate a erorilor ca L.
Demonstrat ¸ie : Conform Teoremei 6.1, Leste cont ¸inut ˆ ın 2m¡r¡1>2t
(s+ 1) – spat ¸ii afine L0, fiecare L0fiind unic determinat de un punct din afara lui L.
S˘ a consider˘ am toate punctele pi62Lpentru care caracterul yieste modificat. Lor
le corespund cel mult t(s+ 1) – spat ¸ii afine L0. Toate celelalte spat ¸ii L0r˘ amase au
proprietatea c˘ a nu cont ¸in nici un punct pidin afara lui Lpentru care yieste gre¸ sit.
Deci aceste spat ¸ii au aceea¸ si paritate de erori ca ¸ si L, iar num˘ arul lor este cel put ¸in
(2m¡r¡1)¡t > t, deci majoritar. 2
Algoritm de decodificare pentru RM(r; m):
1:(Init ¸ializare ): La recept ¸ionarea unui cuvˆ ant a2Zm
2se consider˘ a toate
(r+ 1) – spat ¸iile afine L. Un spat ¸iu Lse nume¸ ste impar dac˘ aafL= 1 (fLeste
funct ¸ia caracteristic˘ a a spat ¸iului afin L).ˆIn caz contrar Lestepar.
2:(Induct ¸ie ): Pentru fiecare s=r; r¡1; : : : ; 0 unde ( s+ 1) – spat ¸iile afine
au fost definite drept pare sau impare, se consider˘ a toate s- spat ¸iile afine. Un
s- spat ¸iu afin Leste par dac˘ a majoritatea ( s+ 1) – spat ¸iilor afine care cont ¸in
peLsunt pare; altfel Leste impar.
3:(Final ): Pentru i= 0;1; : : : ; 2m¡1, se corecteaz˘ a aidac˘ a ¸ si numai dac˘ a
0 – spat ¸iul afin fpigeste impar.

6.2. ALGORITM GEOMETRIC DE DECODIFICARE MAJORITAR ˘A 65
Exemplul 6.3 S˘ a consider˘ am RM(1;3)ˆ ın care s-a recept ¸ionat cuvˆ antul
a= 11101010 .
Tabelul 6.1: Primul pas al decodific˘ arii 11101010
Plan Paritate Plan Paritate
fp1;p3;p5;p7g par fp1;p3;p4;p6gimpar
fp2;p3;p6;p7gimpar fp2;p3;p4;p5g par
fp4;p5;p6;p7gimpar fp0;p3;p4;p7g par
fp0;p2;p4;p6gimpar fp0;p2;p5;p7g par
fp0;p1;p4;p5g par fp0;p1;p6;p7gimpar
fp0;p1;p2;p3g par fp1;p2;p4;p7g par
fp1;p2;p5;p6gimpar fp0;p3;p5;p6gimpar
Tabelul 6.2: Al doilea pas al decodific˘ arii 11101010
Linie Paritate Linie Paritate Linie Paritate
fp0;p1g par fp1;p5g par fp3;p5g par
fp0;p2g par fp1;p6g par fp3;p6gimpar
fp0;p3g par fp1;p7g par fp3;p7g par
fp0;p4g par fp2;p3g par fp4;p5g par
fp0;p5g par fp2;p4g par fp4;p6gimpar
fp0;p6gimpar fp2;p5g par fp4;p7g par
fp0;p7g par fp2;p6gimpar fp5;p6gimpar
fp1;p2g par fp2;p7g par fp5;p7g par
fp1;p3g par fp3;p4g par fp6;p7gimpar
fp1;p4g par
La primul pas trebuie s˘ a decidem care plane sunt pare ¸ si care sunt impare. De
exemplu planul L=fp1;p3;p5;p7geste par deoarece afL= 11101010 ¢10101010 = 0
(vezi Prelegerea V, Paragraful 5:3:1). Se obt ¸ine Tabelul 6.1.
La pasul urm˘ ator trebuie s˘ a decidem paritatea fiec˘ arei linii.
De exemplu, linia fp0;p1geste cont ¸inut˘ a ˆ ın trei plane:
fp0;p1;p4;p5g(par), fp0;p1;p2;p3g(impar), fp0;p1;p6;p7g(impar).
deci, prin majoritate, fp0;p1geste par˘ a. ˆIn mod similar se efectueaz˘ a calculele
pentru toate liniile, obt ¸inˆ andu-se Tabelul 6.2.
Se poate trece acum la corectarea erorilor. RM(1;3)poate corecta maxim
2m¡r¡1¡1 = 23¡1¡1¡1 = 1 erori. fp0geste cont ¸inut ˆ ın ¸ sapte linii, ¸ sase pare ¸ si una
impar˘ a, deci a0este corect, etc. Singurul bit care trebuie corectat este a6deoarece
fp6geste ˆ ın ¸ sapte linii impare. Cuvˆ antul trimis a fost deci 10101010 .
Algoritmul de decodificare se bazeaz˘ a pe urm˘ atoarea observat ¸ie:

66 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
Fie codul RM(r; m) ¸ sia2Zm
2un cuvˆ ant recept ¸ionat.
Un (r+ 1) – spat ¸iu afin Leste par () afL= 0.
ˆIntr-adev˘ ar, dac˘ a aeste cuvˆ ant – cod, atunci afL= 0 (Prelegerea V, Exercit ¸iul
5:11). Acum, dac˘ a au fost perturbate un num˘ ar par de caractere din a, cores-
punz˘ atoare unor puncte din L, valoarea produsului scalar afLnu se modific˘ a. Pentru
un num˘ ar impar de pozit ¸ii perturbate, valoarea produsului scalar este 1.
6.3 Algoritm algebric de decodificare majoritar˘ a
ˆIn afar˘ a de algoritmul prezentat anterior, care folose¸ ste reprezentarea geometric˘ a a
codurilor R¡M, se poate da ¸ si o variant˘ a algebric˘ a de decodificare, bazat˘ a direct
pe definit ¸ia decodific˘ arii majoritare.
ˆIn cele ce urmeaz˘ a s˘ a consider˘ am un cod RM(r; m) fixat ¸ si k= 1+ C1
m+: : :+Cr
m
num˘ arul simbolurilor de informat ¸ie, n= 2m- lungimea codului.
ˆIn matricea Um;n=0
BBBB@x0
x1

xm¡11
CCCCAcare cont ¸ine pe coloane toate elementele spat ¸iului
liniar Zm
2, vom nota cu ui(0·i·m¡1) coloanele care reprezint˘ a baza (natural˘ a)
a lui Zm
2. Deci, orice coloan˘ a wj;0·j·n¡1 din Zm
2se poate scrie
wj=m¡1X
i=0tijui; t ij2 f0;1g:
Orice cuvˆ ant v2Zn
2poate fi considerat indicatorul unei mult ¸imi de cuvinte din Zm
2:
acele coloane din Ucare corespund pozit ¸iilor din vunde se afl˘ a valoarea 1.
Exemplul 6.4 Pentru orice j= 0; : : : ; n ¡1, cuvˆ antul ej= 00 : : :010: : :0cu1pe
pozit ¸ia jcorespunde coloanei cuvˆ antului de pe coloana jdinU;
Cuvˆ antul 1= 11 : : :1corespunde ˆ ıntregului spat ¸iu Zm
2.
Propozit ¸ia 6.1
ej=m¡1Y
i=0[xi+ (1 + tij)1];8j;0·j·2m¡1:
Demonstrat ¸ie : S˘ a ar˘ at˘ am ˆ ıntˆ ai c˘ a xi+(1+ tij)1reprezint˘ a indicatorul acelor coloane
dinUcare au aceea¸ si component˘ a ica ¸ si coloana wj.
ˆIntr-adev˘ ar:
1.Dac˘ a tij= 1, atunci xi+ (1 + tij)1=xi+ (1 + 1) 1=xicare este indicatorul
mult ¸imii coloanelor cu 1 (ca ¸ si wj) pe linia i.

6.3. ALGORITM ALGEBRIC DE DECODIFICARE MAJORITAR ˘A 67
2.Dac˘ a tij= 0, atunci xi+ (1 + tij)1=xi+1care are componentele lui xicu 0
¸ si 1 permutate, fiind deci indicatorul mult ¸imii coloanelor care au 0 (ca ¸ si wj)
pe linia i.
Cuvˆ antulm¡1Y
i=0[xi+ (1 + tij)1] reprezint˘ a indicatorul mult ¸imii acelor coloane din ma-
tricea Ucare au toate componentele egale cu cele ale coloanei wj. Cum coloanele
matricii Usunt distincte, aceast˘ a mult ¸ime este chiar fwjg, al c˘ arei indicator este ej.
2
Fie mesajul de informat ¸ie a1a2: : : a k2Zk
2. Ele se codific˘ a cu ajutorul (2m; k) –
codului Reed – Muller ˆ ın cuvˆ antul – cod
f= (f0; f1; : : : ; f n¡1) =
a11+a2x0+: : :+am+1xm¡1+am+2x0x1+: : :+akxm¡rxm¡r+1: : :xm¡1.
Putem enunt ¸a acum rezultatul principal pe baza c˘ aruia se construie¸ ste algoritmul
algebric de decodificare majoritar˘ a al codurilor R¡M.
Teorema 6.2 Pentru fiecare component˘ a asdin mesajul de informat ¸ie care se ˆ ın-
mult ¸e¸ ste – la codificare – cu un produs de forma xi1xi2: : :xir, exist˘ a 2m¡rsume
disjuncte (cu termeni diferit ¸i) cont ¸inˆ and fiecare 2rcomponente ale cuvˆ antului – cod
corespunz˘ ator f=f0f1: : : f n¡1, care sunt toate egale cu as.
Demonstrat ¸ie : T ¸inˆ and cont de Propozit ¸ia 6.1 ¸ si de faptul c˘ a e0;e1; : : : ;en¡1consti-
tuie de asemenea o baz˘ a pentru Zn
2, putem scrie:
f= (f0; f1; : : : ; f n¡1) =n¡1X
j=0fjej=n¡1X
j=0fjm¡1Y
i=0[xi+ (1 + tij)1].
Prin urmare, ca un produs de forma xi1: : :xius˘ a fie ˆ ın aceast˘ a sum˘ a, trebuie ca
tij= 0 pentru i62 fi1; i2: : : ; i ug. Dac˘ a not˘ am
C(i1; : : : ; i j) =fpjp=m¡1X
i=0tip2i; tip= 0 dac˘ a i62 fi1; : : : ; i jgg=
=fpjp=ti1p2i1+ti2p2i2+: : :+tijp2ij; tip2 f0;1gg;
vom avea
f= (f0; f1; : : : ; f n¡1) =X
i1<i2<:::<i u0
@X
j2C(i1;:::;iu)fj1
Axi1xi2: : :xiu
Pe de-alt˘ a parte,
f= (f0; : : : ; f n¡1) =a11+a2x0+: : :+am+1xm¡1+am+2x0x1+: : :+akxm¡r: : :xm¡1:
Prin identificare, rezult˘ a c˘ a elementul as, coeficient al produsului xi1xi2: : :xireste
as=X
j2C(i1;:::;ir)fj (1)
Fiez62 fi1; : : : ; i rg. Deoarece baza codului RM(r; m) nu cont ¸ine monoame de
forma xi1: : :xirxir+1, vom obt ¸ine prin codificare

68 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
X
j2C(i1;:::;ir;z)fj= 0 (2)
ˆIns˘ a, C(i1; : : : ; i r; z) =C(i1; : : : ; i r)[[C(i1; : : : ; i r) + 2z]
unde s-a notat C+®=fx+®jx2Cg.ˆIntr-adev˘ ar, putem scrie
C(i1; : : : ; i r; z) =fjjj=ti1j2i1+: : :+tirj2ir+tzj2zg=
=fjjj=ti1j2i1+: : :+tirj2irg [ fjjj=ti1j2i1+: : :+tirj2ir+ 2zg=
=C(i1; : : : ; i r)[[C(i1; : : : ; i r) + 2z],
cele dou˘ a mult ¸imi ale reuniunii fiind disjuncte.
Deci relat ¸ia (2) se scrieX
j2C(i1;:::;ir)fj+X
j2C(i1;:::;ir)+2zfj= 0 ¸ si – t ¸inˆ and cont de (1),
avem
as+X
j2C(i1;:::;ir)+2zfj= 0 (3)
Din (1) ¸ si (3) rezult˘ a urm˘ atoarea afirmat ¸ie: dac˘ a m=r+ 1, pentru orice simbol de
informat ¸ie asˆ ınmult ¸it la codificare cu un produs de forma xi1: : :xirexist˘ a 2m¡r= 2
sume disjuncte ((1) ¸ si (3)), fiecare de cˆ ate 2rcomponente ale lui f.
Aceste dou˘ a relat ¸ii se numesc relat ¸ii de determinare a componentei as.
Fie acum t1; t262 fi1; : : : ; i rg. Deoarece baza codului nu are produse de forma
xi1: : :xirxir+1xir+2, vom avea
X
j2C(i1;:::;ir;t1;t2)fj= 0: (4)
DarC(i1; : : : ; i r; t1; t2) =C(i1; : : : ; i r)[[C(i1; : : : ; i r) + 2t1][[C(i1; : : : ; i r) + 2t2][
[[C(i1; : : : ; i r) + 2t1+ 2t2].
Deci (4) se descompune ˆ ınX
j2C(i1;:::;ir)fj+X
j2C(i1;:::;ir)+2t1fj+X
j2C(i1;:::;ir)+2t2fj+X
j2C(i1;:::;ir)+2t1+2t2fj= 0
ceea ce, t ¸inˆ and cont de (1) ¸ si (3) devine as+as+as+X
j2C(i1;:::;ir)+2t1+2t2fj= 0
deci
as=X
j2C(i1;:::;ir)+2t1+2t2fj (5)
Am ar˘ atat astfel c˘ a, dac˘ a m=r+ 2, atunci exist˘ a 2m¡r= 22= 4 sume ((1), de
dou˘ a ori (3) pentru t1respectiv t2, ¸ si (5)) care dau pe as, fiecare sum˘ a cont ¸inˆ and 2r
componente ale lui f. Deci, pentru asexist˘ aˆ ın acest caz patru relat ¸ii de determinare.
Teorema rezult˘ a ˆ ın continuare printr-un procedeu de induct ¸ie finit˘ a. 2
S˘ a vedem cum se folose¸ ste Teorema 6.2 la decodificarea majoritar˘ a a codurilor
Reed – Muller:
Dup˘ a cum s-a v˘ azut, pentru fiecare component˘ a ascorespunz˘ atoare unui produs
de forma xi1: : :xirexist˘ a 2m¡rsume disjuncte, cont ¸inˆ and fiecare 2rcomponente ale
luifcare – ˆ ın absent ¸a erorilor – vor fi toate egale cu as.

6.4. DECODIFICAREA CODURILOR RM(1; M) 69
Deoarece sumele sunt disjuncte (deci termenii lor sunt elemente diferite ale
cuvˆ antului – cod), orice eroare va afecta o singur˘ a relat ¸ie de determinare a lui as.
Prin urmare, dac˘ a apar ˆ ın transmiterea cuvˆ antului – cod fcel mult 2m¡r¡1¡1 erori
independente, putem determina – prin majoritate – pe as, identificˆ andu-l cu valoarea
ajum˘ atate plus unu din relat ¸iile de determinare corespunz˘ atoare.
Dup˘ a ce se determin˘ a ˆ ın acest mod coeficient ¸ii tuturor produselor xi1: : :xir, se
scade din vectorul recept ¸ionat combinat ¸ia liniar˘ a
apx0: : :xr¡1+: : :+akxm¡r: : :xm¡1:
ˆIn acest fel problema se reduce la decodificarea ˆ ıntr-un cod de ordin r¡1 ¸ si lungime
2m; procedeul este similar, fiind determinate aici componentele de informat ¸ie care
se codific˘ a prin ˆ ınmult ¸irea cu produsele de forma xj1: : :xjr¡1, ¸ s. a. m. d.
Exemplul 6.5 Fie codul RM(2;4). El are lungimea n= 16, ordinul r= 2; k=
1 +C1
4+C2
4= 11 simboluri de informat ¸ie ¸ si n¡k= 5simboluri de control. Deci
este un (16;11)- cod liniar.
Orice mesaj de informat ¸ie (a1; a2; : : : ; a 11)2Z11
2se codific˘ a ˆ ın cuvˆ antul
f= (f0; : : : ; f 15) =a11+a2x0+a3x1+a4x2+a5x3+a6x0x1+a7x0x2+a8x0x3+
a9x1x2+a10x1x3+a11x2x3.
S˘ a stabilim de exemplu relat ¸iile de determinare pentru a9, care se codific˘ a prin
ˆ ınmult ¸ire cu x1x2. Trebuiesc calculate mult ¸imile:
C(1;2) =fjjj=t1j21+t2j22g=f0;2;4;6g
C(1;2) + 20=f1;3;5;7g
C(1;2) + 23=f8;10;12;14g
C(1;2) + 20+ 23=f9;11;13;15g.
Deci relat ¸iile de determinare corespunz˘ atoare lui a9devin
a9=f0+f2+f4+f6 a9=f1+f3+f5+f7
a9=f8+f10+f12+f14 a9=f9+f11+f13+f15
Dac˘ a intervine o eroare ˆ ın timpul transmiterii cuvˆ antului – cod f, va fi afectat˘ a o
singur˘ a relat ¸ie de determinare, celelalte trei relat ¸ii dˆ and valoarea corect˘ a a lui a9.
Dup˘ a ce s-a determinat valorile a6; a7; a8; a9; a10; a11, se trece la etapa a doua a
decodific˘ arii, sc˘ azˆ and din cuvˆ antul recept ¸ionat combinat ¸ia
a6x0x1+a7x0x2+a8x0x3+a9x1x2+a10x1x3+a11x2x3
¸ si aplicˆ and cuvˆ antului obt ¸inut procedeul de corectare a erorilor pentru codul R¡M
de ordinul r¡1 = 1 .
6.4 Decodificarea codurilor RM (1; m)
Pentru cazul r= 1 se poate da ¸ si un alt algoritm de decodificare, extrem de eficient.
El folose¸ ste transformarea Hadamard pentru aflarea celui mai apropiat cuvˆ ant – cod.
Vom da init ¸ial cˆ ateva not ¸iuni ajut˘ atoare.

70 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
Definit ¸ia 6.3 FieAm;n; Bp;qdou˘ a matrici. Se define¸ ste produsul Kronecker A£B
ca fiind matricea Cmp;nq = [aijB].
Acest produs este evident asociativ ¸ si necomutativ; el va fi utilizat pe larg ¸ si ˆ ın alte
prelegeri.
Exemplul 6.6 FieH=Ã
1 1
1¡1!
; I 2=Ã
1 0
0 1!
. Atunci
I2£H=0
BBB@1 1 0 0
1¡1 0 0
0 0 1 1
0 0 1 ¡11
CCCA; H £I2=0
BBB@1 0 1 0
0 1 0 1
1 0 ¡1 0
0 1 0 ¡11
CCCA.
Se consider˘ a ¸ sirul de matrici definit
Hi
m=I2m¡i£H£I2i¡1; i= 1;2; : : :
unde Heste matricea (Hadamard) definit˘ a ˆ ın Exemplul 6.6.
Exemplul 6.7 Fiem= 2. Atunci
H1
2=I2£H£I1=I2£H; H2
2=I1£H£I2=H£I2.
Exemplul 6.8 Fiem= 3. Atunci:
H1
3=I4£H£I1=0
BBBBBBBBBBBBB@1 1 0 0 0 0 0 0
1¡1 0 0 0 0 0 0
0 0 1 1 0 0 0 0
0 0 1 ¡1 0 0 0 0
0 0 0 0 1 1 0 0
0 0 0 0 1 ¡1 0 0
0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 ¡11
CCCCCCCCCCCCCA;
H2
3=I2£H£I2=0
BBBBBBBBBBBBB@1 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0
1 0 ¡1 0 0 0 0 0
0 1 0 ¡1 0 0 0 0
0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 1 0 ¡1 0
0 0 0 0 0 1 0 ¡11
CCCCCCCCCCCCCA;

6.4. DECODIFICAREA CODURILOR RM(1; M) 71
H3
3=I1£H£I4=0
BBBBBBBBBBBBB@1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
1 0 0 0 ¡1 0 0 0
0 1 0 0 0 ¡1 0 0
0 0 1 0 0 0 ¡1 0
0 0 0 1 0 0 0 ¡11
CCCCCCCCCCCCCA:
Modalitatea recursiv˘ a de construct ¸ie a codurilor RM(r; m) (Prelegerea V, sect ¸iunea
5:2) sugereaz˘ a existent ¸a unui algoritm similar de decodificare. Acest algoritm exist˘ a
numai pentru RM(1; m) ¸ si ˆ ıl prezent˘ am f˘ ar˘ a a demonstra corectitudinea lui.
Algoritm de decodificare a codurilor RM(1; m):
Fiea2Zm
2cuvˆ antul recept ¸ionat ¸ si G(1; m) matricea generatoare a codului.
1. Se ˆ ınlocuie¸ ste 0 cu ¡1 ˆ ına; fiea0noul cuvˆ ant;
2. Se calculeaz˘ a a1=a0H1
m;ai=ai¡1Hi
m;2·i·m;
3. Se determin˘ a pozit ¸ia ja celei mai mari componente (ˆ ın valoare absolut˘ a)
a luiam.
Fiev(j)2Zm
2reprezentarea binar˘ a a lui j(ˆ ıncepˆ and cu bit ¸ii cei mai
nesemnificativi). Cuvˆ antul decodificat este:
(1; v(j)) dac˘ a a j- a component˘ a a lui ameste pozitiv˘ a,
(0; v(j)) dac˘ a a j- a component˘ a a lui ameste negativ˘ a.
Exemplul 6.9 Fiem= 3¸ siG(1;3)matricea generatoare a codului RM(1;3). S˘ a
presupunem c˘ a s-a recept ¸ionat cuvˆ antul a= 10101011 .
Primul pas al algoritmului transform˘ a acest cuvˆ ant ˆ ın
a0= (1;¡1;1;¡1;1;¡1;1;1). Se calculeaz˘ a apoi:
a1=a0H1
3= (0;2;0;2;0;2;2;0)
a2=a1H2
3= (0;4;0;0;2;2;¡2;2)
a3=a2H3
3= (2;6;¡2;2;¡2;2;2;¡2).
Cea mai mare compoment˘ a a lui a3este6pe pozit ¸ia 1. Cum v(1) = 100 ¸ si6>0,
rezult˘ a c˘ a a fost trimis cuvˆ antul 1100.
Dac˘ a s-a recept ¸ionat cuvˆ antul a= 10001111 , atunci a0= (1;¡1;¡1;¡1;1;1;
1;1)¸ si
a1=a0H1
3= (0;2;¡2;0;2;0;2;0),
a2=a1H2
3= (¡2;2;2;2;4;0;0;0),
a3=a2H3
3= (2;2;2;2;¡6;2;2;2).
Cea mai mare component˘ a a lui a3este¡6aflat˘ a pe pozit ¸ia 4. Deoarece v(4) = 001
¸ si¡6<0, mesajul transmis este 0001.

72 PRELEGEREA 6. DECODIFICAREA CODURILOR REED – MULLER
6.5 Exercit ¸ii
6.1ˆIn codul Hamming (15;11)s˘ a se decodifice mesajele
111100000000000 ;011101000111001 .
6.2Demonstrat ¸i Lema 6.1.
6.3S˘ a se decodifice cuvˆ antul 01111100 ˆ ınRM(1;3). Verificat ¸i corectitudinea de-
codific˘ arii.
6.4S˘ a se decodifice 0111100 ˆ ınRM(2;3).
6.5S˘ a se scrie toate relat ¸iile de determinare din codul RM(2;4).
6.6Aceea¸ si problem˘ a pentru codul RM(1;3).
6.7S˘ a se decodifice 1111111011111111 ˆ ınRM(2;4).
6.8Ar˘ atat ¸i c˘ a orice hiperplan Lˆ ın geometria euclidian˘ a peste Zm
2are drept com-
plement Zm
2nLtot un hiperplan.
6.9ˆIn codul RM(1;3), s˘ a se decodifice cuvintele
01011110 ; 01100111 ; 00010100 ; 11001110 .
6.10 S˘ a se calculeze Hi
4pentru i= 1;2;3;4.
6.11 ˆIn codul RM(1;4), s˘ a se decodifice cuvintele:
1011011001101001 ; 1111000001011111 .

Prelegerea 7
Alte clase de coduri elementare
ˆInafara codurilor Hamming ¸ si Reed – Muller se pot construi ¸ si alte clase de coduri
cu propriet˘ at ¸i remarcabile. Vom prezenta numai cˆ ateva astfel de coduri – nu toate
liniare – punˆ and ˆ ın evident ¸˘ a la fiecare clas˘ a caracteristicile sale specifice.
7.1 Codurile MacDonald
FieAn;kun cod liniar peste Z2¸ siGmatricea sa generatoare.
Vom nota cu Mk;2k¡1o matrice care cont ¸ine toate coloanele nenule posibile cu
kelemente care se pot construi peste Z2. Ordinea acestor coloane este arbitrar˘ a
dar fixat˘ a. Coloana idin matricea Mse va numi coloan˘ a de tip i. Pentru u¸ surint ¸a
notat ¸iei se admite asert ¸iunea c˘ a tipul de coloan˘ a ieste reprezentarea ˆ ın binar a
num˘ arului zecimal i.
Deoarece codul An;knu este influent ¸at de operat ¸iile elementare efectuate asupra
coloanelor din matricea generatoare (ˆ ın particular permutarea de coloane), este sufi-
cient s˘ a definim acest cod indicˆ and doar num˘ arul coloanelor de fiecare tip care intr˘ a
ˆ ın component ¸a matricii generatoare.
Se obt ¸ine astfel reprezentarea modular˘ a a codului An;k:
N= (n1; n2; : : : ; n 2k¡1) (1)
unde nieste num˘ arul coloanelor de tip icare apar (sau nu) ˆ ın matricea G;
2k¡1X
i=1ni=n.
Exemplul 7.1 S˘ a lu˘ am k= 2; n= 3¸ si matricea generatoare G=Ã
0 1 0
1 1 1!
Avem matricea M=Ã
0 1 1
1 0 1!
(coloanele sunt reprezent˘ arile binare ale
numerelor 1;2;3).
Reprezentarea modular˘ a a codului generat de matricea Geste atunci N= (2;0;1)
(pentru c˘ a ˆ ın Gexist˘ a dou˘ a coloane de tipul 1, nici una de tipul 2¸ si una de tipul
3).
73

74 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
S˘ a introducem matricea
K2k¡1;n=MTG (2)
Kare drept linii toate cuvintele nenule ale codului An;k.
Fie de asemenea matricea p˘ atrat˘ a simetric˘ a:
C2k¡1;2k¡1=MTM (3)
Astfel, pentru Exemplul 7.1, K=0
B@1 0 1
0 1 0
1 1 11
CA; C =0
B@1 1 1
0 1 0
1 0 11
CA.
Teorema 7.1 O list˘ a a ponderilor cuvintelor codului An;kse obt ¸ine ˆ ınmult ¸ind (ˆ ın
R) matricea de reprezentare modular˘ a cu matricea C:
W2k¡1=NC (4)
Demonstrat ¸ie : Scriem matricea Msub forma unei matrici linie
M= (v1;v2; : : : ;v2k¡1)
undevi(1·i·2k¡1) este coloana de tip idin matricea M.
Matricea generatoare corespunz˘ atoare reprezent˘ arii modulare N= (n1; n2; : : : ;
n2k¡1) este G= (v1; : : : ;v1|{z}
n1;v2; : : : ;v2|{z}
n2; : : : ;v2k¡1; : : : ;v2k¡1| {z }
n2k¡1)
unde n1+n2+: : :+n2k¡1=n. Se obt ¸ine deci
C=0
BBBB@v1
v2

v2k¡11
CCCCA(v1; : : : ;v2k¡1) =0
BBBB@v1v1 v1v2: : : v1v2k¡1
v2v1 v2v2: : : v2v2k¡1…
v2k¡1v1v2k¡1v2: : :v2k¡1v2k¡11
CCCCA,
unde produsele scalare sunt efectuate ˆ ın Z2.
Acum, W= (w1; w2; : : : ; w 2k¡1) = ( n1; n2; : : : ; n 2k¡1)C, ˆ ınmult ¸ire efectuat˘ a ˆ ın
R.
Prin identificare rezult˘ a wi=n1v1vi+n2v2vi+: : :+n2k¡1v2k¡1vi.
Deoarece toate produsele scalare vjvisunt 0 sau 1 ; wieste un num˘ ar natural.
El este chiar ponderea cuvˆ antului cod care ocup˘ a linia iˆ ın matricea K.ˆIntr-adev˘ ar,
avem
K2k¡1;n=0
BBBB@v1v1 v1v1: : : v1v2k¡1
v2v1 v2v1: : : v2v2k¡1…
v2k¡1v1v2k¡1v1: : :v2k¡1v2k¡11
CCCCA,
produsele scalare fiind ˆ ın Z2.
Deci ponderea cuvˆ antului situat pe linia iˆ ın matricea Keste:
viv1+: : :+viv1| {z }
n1+: : :+viv2k¡1+: : :+viv2k¡1| {z }
n2k¡1=n1viv1+: : :+n2k¡1viv2k¡1.
2
Ne punem problema de a determina un cod atunci cˆ and se d˘ a vectorul ponderilor
cuvintelor sale (deci ¸ si ponderea minim˘ a, adic˘ a distant ¸a Hamming). Formal, din (4)
se obt ¸ine

7.1. CODURILE MACDONALD 75
N=WC¡1(5)
ˆ ınmult ¸ire efectuat˘ a ˆ ın R. Formula este adev˘ arat˘ a numai dac˘ a demonstr˘ am c˘ a ma-
tricea Ceste inversabil˘ a. ˆIn acest sens avem:
Teorema 7.2 Matricea Ceste nesingular˘ a. Inversa ei se calculeaz˘ a ˆ ınlocuind ˆ ın C
pe0cu¡1¸ si ˆ ımp˘ art ¸ind toate elementele cu 2k¡1.
Demonstrat ¸ie :I: Fiecare linie (deci ¸ si coloan˘ a) din Ccont ¸ine 1 pe 2k¡1pozit ¸ii. Dou˘ a
linii (coloane) distincte din Cau ˆ ın comun 1 ˆ ın 2k¡2pozit ¸ii.
ˆIntr-adev˘ ar, liniile lui C- la care se adaug˘ a linia nul˘ a – formeaz˘ a un spat ¸iu liniar
cu 2kcuvinte binare. S˘ a consider˘ am submult ¸imea liniilor care au 1 ˆ ın componentele
i¸ sij. Ele formeaz˘ a un subspat ¸iu liniar cu2k
22= 2k¡2elemente deoarece, factorizˆ and
cu acest spat ¸iu se obt ¸in patru clase de resturi corepunz˘ atoare componentelor ( i; j)
de forma (0 ;0);(0;1);(1;0);(1;1).
Pentru a ar˘ ata c˘ a 1 apare pe fiecare linie din Cde 2k¡1ori se rat ¸ioneaz˘ a similar.
II:ˆIn aceste condit ¸ii, putem scrie
C2=0
BBBB@2k¡12k¡2: : :2k¡2
2k¡22k¡1: : :2k¡2

2k¡22k¡2: : :2k¡11
CCCCA= 2k¡2(I+J)
unde Ieste matricea unitate iar Jeste matricea p˘ atrat˘ a cu toate elementele
egale cu 1, ambele de ordin 2k.
Se mai observ˘ a c˘ a CJ= 2k¡1J. Deci
I=1
2k¡1(2C2¡2k¡1J) =1
2k¡1(2C2¡CJ) =C2C¡J
2k¡1=CC¡1.
De aici rezult˘ a c˘ a Ceste inversabil˘ a ¸ si C¡1=1
2k¡1(2C¡J). 2
Exemplul 7.2 S˘ a lu˘ am k= 3; n= 5. Vom avea:
M=0
B@0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 11
CA; C =MTM=0
BBBBBBBBBBB@1 0 1 0 1 0 1
0 1 1 0 0 1 1
1 1 0 0 1 1 0
0 0 0 1 1 1 1
1 0 1 1 0 1 0
0 1 1 1 1 0 0
1 1 0 1 0 0 11
CCCCCCCCCCCA,
C¡1=1
40
BBBBBBBBBBB@1¡1 1 ¡1 1 ¡1 1
¡1 1 1 ¡1¡1 1 1
1 1 ¡1¡1 1 1 ¡1
¡1¡1¡1 1 1 1 1
1¡1 1 1 ¡1 1 ¡1
¡1 1 1 1 1 ¡1¡1
1 1 ¡1 1 ¡1¡1 11
CCCCCCCCCCCA.
Dac˘ a lu˘ am codul generat de matricea G=0
B@1 0 0 1 1
0 1 0 1 0
0 0 1 0 11
CA, el are reprezenta-
rea modular˘ a N= (1;1;0;1;1;1;0). Vectorul ponderilor cuvintelor – cod este

76 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
W= (2;2;4;3;3;3;3).ˆIntr-adev˘ ar, cuvintele – cod sunt liniile matricii
K=0
BBBBBBBBBBB@0 0 1 0 1
0 1 0 1 0
0 1 1 1 1
1 0 0 1 1
1 0 1 1 0
1 1 0 0 1
1 1 1 0 01
CCCCCCCCCCCA.
S˘ a determin˘ am acum reprezentarea modular˘ a a unui cod liniar binar ˆ ın care toate
cuvintele – cod au aceea¸ si pondere w(¸ si deci distant ¸a minim˘ a va fi d=w). Vom
avea prin ipotez˘ a W= (w; w; : : : ; w|{z}
2k¡1).
Dup˘ a cum am remarcat ˆ ın demonstrat ¸ia Teoremei 7.2, 1 apare pe fiecare linie
dinCˆ ın 2k¡1pozit ¸ii. Rezult˘ a (Teorema 7.2) c˘ a ˆ ın C¡1, 1 va apare pe fiecare linie
(coloan˘ a) tot ˆ ın 2k¡1pozit ¸ii, ˆ ın rest fiind ¡1. Deci
N=WC¡1= (w2¡(k¡1); : : : ; w 2¡(k¡1)
| {z }
2k¡1)
Problema enunt ¸at˘ a are solut ¸ie dac˘ a wse divide cu 2k¡1; ˆ ın acest caz, reprezenta-
rea modular˘ a este de forma N= (r; r; : : : ; r|{z}
2k¡1), adic˘ a fiecare tip de coloan˘ a apare ˆ ın
matricea generatoare de r=w¢2¡(k¡1)ori.
Plecˆ and de la aceste considerente, McDonald a introdus o clas˘ a de coduri pentru
care reprezentarea modular˘ a este de forma 0i1j. Mai exact,
n d N
2k¡1 2k¡1(1;1;1; : : : ; 1)
2k¡2 2k¡1¡1 (0 ;1;1; : : : ; 1)
2k¡3 2k¡1¡2 (0 ;0;1; : : : ; 1)
: : : : : : : : :
2k¡2u2k¡1¡2u¡1(0; : : : ; 0|{z}
2u¡1;1; : : : ; 1|{z}
2k¡2u)
Aceste coduri au proprietatea c˘ a prezint˘ a o distant ¸˘ a minim˘ a foarte apropiat˘ a de
marginea Plotkin.
S˘ a lu˘ am de exemplu al treilea cod din tabelul de sus. Reamintim, marginea
Plotkin este
d·nqk¡1(q¡1)
qk¡1:
ˆIn cazul codului McDonald avem q= 2; n= 2k¡3; d= 2k¡1¡2, deci
nqk¡1(q¡1)
qk¡1¡d=(2k¡3)2k¡1
2k¡1¡(2k¡1¡2) =2k¡2
2k¡1<1.

7.2. CODURI DERIVATE DIN MATRICILE HADAMARD 77
7.2 Coduri derivate din matricile Hadamard
ˆIn prelegerea anterioar˘ a am folosit o matrice Hadamard pentru a construi un al-
goritm de decodificare al codurilor RM(1; m). De fapt matricile Hadamard pot fi
utilizate ˆ ın mod direct la construct ¸ia de coduri.
Definit ¸ia 7.1 Se nume¸ ste matrice Hadamard Hno matrice p˘ atrat˘ a de ordinul ncu
elemente 1¸ si¡1, ale c˘ arei linii sunt ortogonale dou˘ a cˆ ate dou˘ a.
Teorema 7.3 Fiind dat˘ a matricea Hadamard Hn;(npar) se poate construi un cod
de distant ¸˘ a minim˘ a d=n
2, format din 2ncuvinte de lungime n.
Demonstrat ¸ie :ˆIn matricea Hnvomˆ ınlocui 1 cu 0 ¸ si ¡1 cu 1. Vom nota v1;v2; : : : ;vn
vectorii care formeaz˘ a liniile noii matrici. Codul c˘ autat este
C=fv1;v2; : : : ;vn;¡v1;¡v2; : : : ;¡vng:
Acest cod (care nu este neap˘ arat liniar) are 2 ncuvinte de lungime n. Mai trebuie
ar˘ atat c˘ a distant ¸a sa minim˘ a este n=2.
Deoarece v¸ si¡vdifer˘ a ˆ ın toate componentele, distant ¸a Hamming dintre ele este
n. Pe de-alt˘ a parte, din proprietatea matricilor Hadamard rezult˘ a
vi(§vj) = 0 ;8i; j2 f1; : : : ; n g; i6=j:
Pentru ca aceast˘ a egalitate s˘ a fie adev˘ arat˘ a, este necesar ca vi¸ sivjs˘ a coincid˘ a ˆ ın
jum˘ atate din componente ¸ si s˘ a difere ˆ ın cealalt˘ a jum˘ atate (atent ¸ie, calculele se fac
ˆ ınR, nu ˆ ın Z2!). Rezult˘ a c˘ a distant ¸a Hamming dintre cele dou˘ a cuvinte esten
2.
Deci d=n
2. 2
Pentru n= 32 un astfel de cod a fost folosit de programul spat ¸ial Mariner.
Teorema 7.4 Dac˘ aHneste matrice Hadamard, atunci H2n=Ã
HnHn
Hn¡H n!
este matrice Hadamard.
Demonstrat ¸ie : Evident, H2neste o matrice 2 n£2ncu elemente §1. Mai trebuie
ar˘ atat c˘ a liniile sale sunt ortogonale dou˘ a cˆ ate dou˘ a.
Avem: [ vi;vi][vi;¡vi] =vivi¡vivi=n¡n= 0:
De asemenea, pentru i6=j;[vi;vi][vj;§vj] = [vi;vj]§[vi;vj] = 0§0 = 0. 2
Pe baza acestei teoreme, putem construi coduri Hadamard a c˘ aror distant ¸˘ a s˘ a
fie oricˆ at de mare. Este suficient s˘ a g˘ asim o matrice Hadamard init ¸ial˘ a, pe care
(folosind Teorema 7.4) s˘ a o ”dilat˘ am” ulterior cˆ at este nevoie. O astfel de matrice
Hadamard init ¸ial˘ a a fost dat˘ a ˆ ın Prelegerea anterioar˘ a: ea este
H2=Ã
1 1
1¡1!
.
Pentru construct ¸ia altor matrici (¸ si coduri) Hadamard mai generale au fost elaborate
diverse tehnici. Una din cele mai cunoscute este cea a lui Paley ¸ si Hall.

78 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
Definit ¸ia 7.2 O matrice p˘ atrat˘ a Cde ordin ncu0pe diagonala principal˘ a ¸ si §1
ˆ ınafara ei, astfel ca CCT= (n¡1)Inse nume¸ ste matrice de conjunctur˘ a (conference
matrix).
Exemplul 7.3 MatricileÃ
0 1
1 0!
;0
BBB@0 1 1 1
¡1 0 ¡1 1
¡1 1 0 ¡1
¡1¡1 1 01
CCCA
sunt matrici de conjunctur˘ a.
Fieq=prcupnum˘ ar prim impar, r¸1. Pe Zqdefinim funct ¸ia Âastfel:
Â(x) =8
><
>:0 dac˘ a x= 0
1 dac˘ a xeste un p˘ atrat nenul
¡1 ˆ ın rest
Vom nota elementele lui Zqcua0; a1; : : : ; a q¡1unde a0= 0, cu Inmatricea unitate
de ordin n¸ si cu Jnmatricea p˘ atrat˘ a de ordin ncu toate elementele egale cu 1.
Teorema 7.5 Matricea Paley Sq= (sij)de ordin qdefinit˘ a prin sij=Â(ai¡aj);
0·i; j < q are urm˘ atoarele propriet˘ at ¸i:
1.SqJq=JqSq=0;
2.SqST
q=qIq¡Jq;
3.ST
q= (¡1)q¡1
2Sq.
Demonstrat ¸ie : Este l˘ asat˘ a ca exercit ¸iu.
Exemplul 7.4 Pentru q= 3, matricea Paley este S3=0
B@0¡1 1
1 0 ¡1
¡1 1 01
CA,
iar pentru q= 5; S 5=0
BBBBBB@0 1 ¡1¡1 1
1 0 1 ¡1¡1
¡1 1 0 1 ¡1
¡1¡1 1 0 1
1¡1¡1 1 01
CCCCCCA.
De remarcat c˘ a ST
3=¡S3; ST
5=S5.
Teorema 7.6 Dac˘ a q=pr(pnum˘ ar prim impar, r¸1) astfel ˆ ıncˆ at q´3 (mod 4),
atunci exist˘ a o matrice Hadamard de ordin q+ 1.
Demonstrat ¸ie : Din ipotez˘ a ¸ si Teorema 7.5, exist˘ a o matrice Paley Sde ordin q.
Construim matricea Cde ordin q+ 1 astfel:
C=0
BBB@0 1 : : :1
¡1
¡1 S
¡11
CCCA

7.3. CODURI PRODUS 79
Se verific˘ a faptul c˘ a Ceste o matrice de conjunctur˘ a cu proprietatea CT=¡C
(q´3mod 4 conduce la relat ¸ia ST=¡S). Fie H=Iq+1+C.
Avem HHT= (Iq+1+C)(Iq+1+C)T= (Iq+1+C)(Iq+1+CT) =Iq+1+C+
CT+CCT=Iq+1+qIq+1= (q+ 1)Iq+1, deci orice dou˘ a linii distincte ale lui Hsunt
ortogonale. Rezult˘ a c˘ a Heste matrice Hadamard de ordin q+ 1. 2
Plecˆ and de la matricile Paley se pot construi alte coduri Hadamard.
FieSo matrice Paley de ordin n(conform Teoremei 7.5). Un cod Hadamard de
ordin npoate fi definit cu 0;1¸ si cu liniile matricilor1
2(S+In+Jn);1
2(¡S+In+Jn).
Acesta este un cod care cont ¸ine 2 n+ 2 cuvinte – cod de lungime n¸ si are distant ¸a
d=n¡1
2.
Exemplul 7.5 Pentru n= 9 = 32, codul este format din cele 20cuvinte care
formeaz˘ a linile matricii
0
BBBBBBBBBBBBB@0 0 0 0 0 0 0 0 0
J P2P
P J P2
P2P J
I J ¡P2J¡P
J¡P I J ¡P2
J¡P2J¡P I
1 1 1 1 1 1 1 1 11
CCCCCCCCCCCCCA
unde P=0
B@0 1 0
0 0 1
1 0 01
CA, iar I¸ siJsunt matricile unitate, respectiv cu toate ele-
mentele egale cu 1, ambele de ordin 3.
7.3 Coduri produs
S˘ a consider˘ am un cod de lungime n=n1n2.ˆIn loc s˘ a scriem cuvintele sale sub
form˘ a de linii de lungime n, le putem reprezenta ca matrici cu n1linii ¸ si n2coloane.
Un mod simplu de a realiza acest lucru este de a scrie cuvˆ antul cod a=a0a1: : : a n¡1
ca o matrice X= [xij];0·i·n1¡1;0·j·n2¡1, unde xij=ain2+j. Aceasta
va fi numit˘ a scrierea canonic˘ a .
Definit ¸ia 7.3 FieA1; A2dou˘ a coduri liniare de lungime n1respectiv n2. Se cons-
truie¸ ste codul Ade lungime n1n2ca mai sus (cu scrierea canonic˘ a). Spunem c˘ a
A=A1£A2este codul produs al lui A1cuA2dac˘ a ¸ si numai dac˘ a Aconst˘ a din
toate cuvintele – cod ˆ ın care reprezentarea matricial˘ a verific˘ a propriet˘ at ¸ile:
²Fiecare coloan˘ a a unei matrici este un cuvˆ ant – cod din A1;
²Fiecare linie a unei matrici este un cuvˆ ant – cod din A2.
De remarcat c˘ a prin permutarea lui A1cuA2se obt ¸ine un cod echivalent.

80 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
Teorema 7.7 Dac˘ a A1este un (n1; k1)- cod liniar ¸ si A2este un (n2; k2)- cod
liniar, atunci A1£A2este un (n1n2; k1k2)- cod liniar.
Demonstrat ¸ie : Fie Gi; i= 1;2 matricile generatoare ale celor dou˘ a coduri, pe care
le presupunem ˆ ın forma e¸ salonat canonic˘ a, deci Gi= [IkiBni¡ki]. Vom nota cu
g(1)
i(1·i·k1) respectiv g(2)
i(1·i·k2) liniile celor dou˘ a matrici.
Definim matricile Xij(1·i < k 1;1·j < k 2) de dimensiune n1£n2, astfel:
²Primele k1linii sunt 0cu except ¸ia liniei icare este g(2)
j;
²Primele k2coloane sunt 0cu except ¸ia coloanei jcare este g(1)
iT.
²Pentru k > k 1, linia kesteg(1)
ikg(2)
j;
²Pentru k > k 2, coloana kesteg(2)
jkg(1)
iT.
Schematic, o astfel de matrice arat˘ a astfel:
Xij=0
BBBBBBBBBBBBB@0: : : 00: : : 0
: : : : : : : : : : : : : : : : : :
1 x x x
: : : : : : : : : : : : : : : : : :
0: : : 00: : : 0
0x0
: : : x : : : X
0x01
CCCCCCCCCCCCCA
Evident, Xijreprezint˘ a un cuvˆ ant – cod din A1£A2¸ si orice alt cuvˆ ant – cod este
o combinat ¸ie liniar˘ a format˘ a din aceste matrici. Deci Xij;1·i·k1;1·j·k2
formeaz˘ a o baz˘ a a codului A1£A2.
Submatricile formate din primele k1linii ¸ si k2coloane din Xijformeaz˘ a mult ¸imea
mesajelor de informat ¸ie. 2
Exemplul 7.6 S˘ a consider˘ am codurile liniare binare A1; A2generate de matricile
G1=Ã
1 0 1
0 1 1!
respectiv G2=Ã
1 0 1
0 1 0!
.
Deci n1=n2= 3; k1=k2= 2. Sunt 4matrici Xij, toate de dimensiune 3£3:
X11=0
B@1 0 1
0 0 0
1 0 11
CA X12=0
B@0 1 0
0 0 0
0 1 01
CA
X21=0
B@0 0 0
1 0 1
1 0 11
CA X22=0
B@0 0 0
0 1 0
0 1 01
CA.
S˘ a consider˘ am mesajul de informat ¸ie 1011 pe care ˆ ıl a¸ sez˘ am sub forma unei matrici
2£2 :Ã
1 0
1 1!
. Matricea – cod va fi

7.3. CODURI PRODUS 81
X11+X21+X22=0
B@1 0 1
0 0 0
1 0 11
CA+0
B@0 0 0
1 0 1
1 0 11
CA+0
B@0 0 0
0 1 0
0 1 01
CA=0
B@1 0 1
1 1 1
0 1 01
CA:
Se observ˘ a c˘ a liniile sunt cuvinte – cod din A2, iar coloanele sunt cuvinte – cod
dinA1.
Propozit ¸ia 7.1 Matricea generatoare a codului produs A1£A2esteG1£G2unde
G1¸ siG2sunt matricile generatoare ale celor dou˘ a coduri, iar00£00este produsul
Kronecker.
Demonstrat ¸ie : Fie ( n1; k1);(n2; k2) cele dou˘ a coduri, cu matricile generatoare G1
respectiv G2, ¸ si s˘ a consider˘ am matricea G1£G2obt ¸inut˘ a prin produsul Kronecker
(Prelegerea 6, Definit ¸ia 6 :3). Dac˘ a se ia linia k2i+jdin aceast˘ a matrice ¸ si se
reprezint˘ a sub form˘ a canonic˘ a ca o matrice n1£n2, se obt ¸ine exact matricea Xijdin
construct ¸ia Teoremei 7.7. Cum Xijreprezint˘ a o baz˘ a pentru codul A1£A2, rezult˘ a
c˘ aG1£G2este matricea sa generatoare.
Din acest motiv, ˆ ın primii ani, codurile produs erau numite ¸ si coduri Kronecker.
2
Exemplul 7.7 Matricea generatoare a codului produs A1£A2din Exemplul 7.6
este:
G=G1£G2=Ã
G20G2
0G2G2!
=0
BBB@1 0 1 0 0 0 1 0 1
0 1 0 0 0 0 0 1 0
0 0 0 1 0 1 1 0 1
0 0 0 0 1 0 0 1 01
CCCA.
Se observ˘ a imediat c˘ a prin ”plierea” celor patru linii din aceast˘ a matrice se obt ¸in
matricile Xijdin Exemplul 7.6.
S˘ a consider˘ am din nou mesajul de informat ¸ie 1011. Prin ˆ ınmult ¸irea cu matricea
Gse ajunge la cuvˆ antul – cod 101111010 care – scris ca o matrice 3£3- coincide
cu rezultatul din Exemplul 7.6.
Teorema 7.8 Distant ¸a codului A1£A2este egal˘ a cu d1¢d2(d1¸ sid2fiind distant ¸ele
codurilor A1respectiv A2).
Demonstrat ¸ie : Dac˘ a Aiare lungimea ni(i= 1;2), s˘ a consider˘ am o matrice X
reprezentˆ and un cuvˆ ant – cod nenul din A1£A2(am v˘ azut c˘ a asemenea cuvinte
exist˘ a). Putem g˘ asi deci cel put ¸in o linie cu minim d2elemente nenule. Fiecare
astfel de element se afl˘ a pe o coloan˘ a cu minim d1elemente nenule; deci matricea
Xare minim d1¢d2elemente nenule. 2
Exemplul 7.8 Cele dou˘ a coduri din Exemplul 7.6 au d1=d2= 2(se g˘ asesc imediat
cuvintele – cod ¸ si se observ˘ a c˘ a ponderea lor nenul˘ a minim˘ a este 2). Deci codul produs
va avea distant ¸a d= 2¢2 = 4 . De remarcat c˘ a – de¸ si A1¸ siA2nu pot corecta erori,
A1£A2este capabil s˘ a corecteze o eroare.
Codurile produs – de¸ si cunoscute de la ˆ ınceputul anilor060, au devenit foarte impor-
tante odat˘ a cu folosirea lor ˆ ın transmisiile telefonice f˘ ar˘ a fir ¸ si codificarea informat ¸iei
peCD- uri. Vom relua ulterior – pe larg – analiza acestor coduri.

82 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
7.4 Coduri optimal maximale
Fie mult ¸imea AµZn
q. Se nume¸ ste diametrul mult ¸imii Anum˘ arul
d(A) = min
x;y2Ad(x;y);x6=y:
De remarcat c˘ a, dac˘ a Aeste cod liniar, atunci d(A) este chiar distant ¸a minim˘ a a
codului.
Definit ¸ia 7.4 Aeste mult ¸ime optimal˘ a de distant ¸˘ a minim˘ a ddac˘ a:
²d(A) =d;
²8x2Zn
qnA; d(A[ fxg)< d.
Exemplul 7.9 ˆInZ6
2, urm˘ atoarele mult ¸imi sunt optimale de distant ¸˘ a minim˘ a 3:
A=f000000 ;010101 ;101010 ;111111 g
B=f000000 ;101010 ;011001 ;000111 ;110100 ;111111 g
Definit ¸ia 7.5 Se nume¸ ste mult ¸ime optimal˘ a cardinal maximal˘ a de distant ¸˘ a do
mult ¸ime optimal˘ a cu un num˘ ar maxim de elemente.
Vom nota acest num˘ ar cu a(n; d).
Exemplul 7.10 Mult ¸imile date ˆ ın Exemplul 7.9 sunt optimale dar nu cardinal ma-
ximale pentru distant ¸a 3. O mult ¸ime optimal˘ a cardinal maximal˘ a din Z6
2pentru
d= 3este:
C=f000000 ;001011 ;010101 ;011110 ;100110 ;101101 ;110011 ;111000 g;
decia(6;3) = 8 .
Definit ¸ia 7.6 Un cod liniar Ade distant ¸˘ a deste optimal dac˘ a Aeste mult ¸ime
optimal˘ a cardinal maximal˘ a de distant ¸˘ a d.
Spunem c˘ a un astfel de cod satisface condit ¸ia max – min , deoarece are un num˘ ar
maxim de vectori aflat ¸i la distant ¸a minim˘ a d.
Nu se cunosc algoritmi de construct ¸ie a unor astfel de coduri. ˆIn aceast˘ a sect ¸iune
vom da cˆ ateva condit ¸ii necesare pentru codurile optimale.
Teorema 7.9 ˆIntr-un cod optimal maximal Ade distant ¸˘ a minim˘ a d(d < n ),
a(n; d)·q¢a(n¡1; d):
Demonstrat ¸ie : Putem presupune – f˘ ar˘ a a mic¸ sora generalitatea – c˘ a primul caracter
al codului este caracter de informat ¸ie.
FieKmult ¸imea cuvintelor din Acare au 0 pe prima component˘ a. Cum pe prima
component˘ a pot apare qcaractere distincte, va rezulta
card(K) =a(n; d)
q.

7.4. CODURI OPTIMAL MAXIMALE 83
Keste un cod cu distant ¸a dˆ ın care toate cuvintele au 0 pe prima pozit ¸ie. Dac˘ a
elimin˘ am aceast˘ a component˘ a, se obt ¸ine un cod din Zn¡1
q, tot de distant ¸˘ a d, cu
acela¸ si num˘ ar de cuvinte. Acest cod nu este neap˘ arat optim, deci condit ¸ia va fi
a(n¡1; d)¸a(n; d)
q
Mai trebuie f˘ acut˘ a observat ¸ia c˘ a a(n¡1; n¡1) = qpentru c˘ a un cod cu repetit ¸ie
este optimal maximal de distant ¸˘ a minim˘ a egal˘ a cu lungimea cuvintelor – cod. 2
Corolarul 7.1 Dac˘ a j¸d, atunci qn¡ja(j; d)¸a(n; d).
Demonstrat ¸ie : Din Teorema 7.9 rezult˘ a inegalit˘ at ¸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 ˆ ınmult ¸ire se obt ¸ine qi¢a(n¡i; d)¸a(n; d), dup˘ a care se face notat ¸ia n¡i=j.
2
Teorema 7.10 FieAun cod liniar optimal maximal de distant ¸˘ a minim˘ a d.
Dac˘ a n <qd
q¡1, atunci num˘ arul simbolurilor de informat ¸ie verific˘ a inegalitatea
k·n¡dq¡1
q¡1+ 1 + logqd:
Demonstrat ¸ie : Deoarece Aeste cod liniar, num˘ arul de simboluri de informat ¸ie va fi
dat de relat ¸ia a(n; d) =qk.
Rescriem inegalitatea lui Plotkin sub forma d(qk¡1)·nqk¡1(q¡1), sau
qk¡1(dq+n¡nq)·n.
Deoarece – din ipotez˘ a – dq+n¡nq > 0, avem qk·dq
dq+n¡nq, sau
a(n; d)·dq
dq+n¡nq.
Fiedq¡1
q¡1=i+funde i="dq¡1
q¡1#
; f=(dq¡1
q¡1)
.
Deci qd¡1 = ( q¡1)i+ (q¡1)f¸ si avem
a(i; d)·dq
dq+i¡iq=dq
dq¡(q¡1)i=dq
1 + (q¡1)f.
Folosind Corolarul 7.1 ¸ si i¸d(deoarece"dq¡1
q¡1#
="
d+d¡1
q¡1#
¸d), rezult˘ a
a(n; d)·qn¡ia(i; d)·qn¡dq¡1
q¡1+f
1 + (q¡1)fqd
Dezvoltˆ and ˆ ın serie Taylor, qf·1 + (q¡1)f (f <1) ¸ si deci
a(n; d)·qn¡dq¡1
q¡1qd;
sauqk·qn¡dq¡1
q¡1qd, de unde – prin logaritmare – se obt ¸ine relat ¸ia din enunt ¸. 2

84 PRELEGEREA 7. ALTE CLASE DE CODURI ELEMENTARE
7.5 Exercit ¸ii
7.1S˘ a se construiasc˘ a vectorul ponderilor pentru codurile Hamming (7;4)¸ si
RM(1;3).
7.2Folosind vectorul ponderilor, s˘ a se construiasc˘ a num˘ ar˘ atorul de ponderi al unui
cod liniar.
7.3S˘ a se construiasc˘ a matricile generatoare ¸ si matricile Kpentru codurile
McDonald cu k= 2;3;4.
7.4S˘ a se construiasc˘ a matricile ¸ si codurile Hadamard pentru n= 4¸ sin= 8.
7.5S˘ a se arate c˘ a dac˘ a Hneste o matrice Hadamard, atunci HnHT
n=nIn.
7.6S˘ a se construiasc˘ a o matrice Hadamard de ordin 12.
7.7S˘ a se arate c˘ a matricea Hadamard H8genereaz˘ a (8;4)- codul Hamming binar
extins.
7.8S˘ a se construiasc˘ a codurile produs pentru codul cu repetit ¸ie de lungime n(A1)
¸ si codul cu repetit ¸ie de lungime p(A2).
7.9S˘ a se construiasc˘ a matricea generatoare a codului produs A1£A2unde A1=A2
este codul Hamming (7;4).
7.10 Aceea¸ si problem˘ a pentru codul RM(1;3).
7.11 Demonstrat ¸i Teorema 7.5.
7.12 Folosind matricile Paley, s˘ a se construiasc˘ a codurile Hadamard de ordin 5¸ si
respectiv 7.
7.13 S˘ a se arate c˘ a un cod binar liniar optimal maximal de distant ¸˘ a minim˘ a dare
cel put ¸in 2d¡1¡log2dsimboluri de control.

Prelegerea 8
Circuite liniare ¸ si extensii Galois
8.1 Circuite liniare pentru operat ¸ii elementare
ˆIn aceast˘ a sect ¸iune presupunem c˘ a toate calculele se realizeaz˘ aˆ ın Zq(qnum˘ ar prim).
Uncircuit liniar este un graf orientat, cu trei tipuri de noduri (conectori):
²sumator – este un conector cu cel put ¸in dou˘ a intr˘ ari ¸ si o ie¸ sire. Efectul este
acela de a scoate suma modulo qa elementelor aflate la intrare. Operat ¸ia se
execut˘ a instantaneu. Sumatorul se noteaz˘ a astfel:
½¼¾»
-?
– +
²Multiplicator – este un conector cu o singur˘ a intrare ¸ si o ie¸ sire unde se obt ¸ine
rezultatul ˆ ınmult ¸irii cu c2Zqa elementului de la intrare. Operat ¸ia se execut˘ a
(de asemenea) instantaneu. Notat ¸ie:
½¼¾»
– -c
²Element de ˆ ınmagazinare – Este un registru buffer cu o intrare ¸ si o ie¸ sire; efectul
este ˆ ıntˆ arzierea cu un tact a intr˘ arii: elementul a2Zqintr˘ a ˆ ın momentul k¸ si
iese ˆ ın momentul k+ 1. Notat ¸ie:
– –
Aceste trei tipuri de conectori se pot grupa arbitrar – folosind eventual ¸ si noduri
obi¸ snuite. Utilizarea practic˘ a revine la obt ¸inerea de circuite liniare care pot realiza
automat operat ¸ii uzuale cu polinoame: adun˘ ari, sc˘ aderi, ˆ ınmult ¸iri ¸ si ˆ ımp˘ art ¸iri.
ˆIn cele ce urmeaz˘ a, vom identifica un vector cu n+ 1 componente
a= (a0; a1; : : : ; a n)
cu polinomul de gradul ncu o variabil˘ a
a(x) =a0+a1X+: : :+anXn.
85

86 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS
ˆIn cursul transmisiei mesajului a, ordinea de prelucrare (transmisie) se face dup˘ a
puterile descresc˘ atoare ale lui X; deci, sensul de circulat ¸ie a semnalelor va fi:
a0a1: : : a n¡!
8.1.1 Construct ¸ia unor circuite liniare uzuale
ACircuit de ˆ ınmult ¸ire cu un polinom .
Fieh(X) =b0+b1X+: : :+bnXnun polinom fixat ¸ si a(X) =a0+a1X+: : :+akXk
un polinom arbitrar. Coeficient ¸ii ambelor polinoame pot fi luat ¸i ˆ ıntr-un inel arbitrar
(din considerente pur aplicative, acesta este de obicei Zq, dar construct ¸iile r˘ amˆ an
valabile ˆ ın general).
Un circuit de ˆ ınmult ¸ire cu h(X) este:
Figura 8.1:
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·n n n
– – – – – -6 6
s6
s6
s6-
6- –
6-
6-
a(X)bn bn¡1 b1 b0+ + + : : :
: : :
Init ¸ial elementele de ˆ ınmagazinare cont ¸in 0; coeficient ¸ii polinomului a(X) intr˘ a
ˆ ın stˆ anga jos – dup˘ a puterile descresc˘ atoare ale lui X- cˆ ate unul la un tact, iar
coeficient ¸ii produsului ies ˆ ın dreapta sus. Circuitul funct ¸ioneaz˘ a n+k+1 tact ¸i; dup˘ a
k+ 1 tact ¸i, la intrare se introduc zerouri ˆ ın cei ntact ¸i r˘ ama¸ si, pˆ ın˘ a ce elementele de
ˆ ınmagazinare cont ¸in din nou numai 0.
De remarcat c˘ a un element de ˆ ınmagazinare funct ¸ioneaz˘ a dup˘ a principiile unei
variabile de memorie (aducerea unei valori face s˘ a dispar˘ a vechea valoare din locat ¸ie).
Circuitul lucreaz˘ a dup˘ a formula de ˆ ınmult ¸ire obi¸ snuit˘ a:
a(X)h(X) =a0b0+ (a0b1+a1b0)X+: : :+ (ak¡1bn+akbn¡1)Xk+n¡1+akbnXn+k
Exemplul 8.1 S˘ a lu˘ am polinomul h(X) =X3¡5X2+ 22Z[X](vectorul core-
spunz˘ ator este h= (2;0;¡5;1)). Circuitul de ˆ ınmult ¸ire cu h(X)va fi:
½¼¾»
½¼¾»±°²¯
±°²¯
– – – -6 66
s s- –
6 6
¡5 2+ +
De remarcat c˘ a multiplicarea cu 1se face prin arc simplu (f˘ ar˘ a conector), iar
multiplicarea cu 0revine la suprimarea arcului. ˆIn cazul operat ¸iilor cu polinoame
dinZ2[X], tot ¸i multiplicatorii se reduc la aceste dou˘ a cazuri.

8.1. CIRCUITE LINIARE PENTRU OPERAT ¸II ELEMENTARE 87
Dac˘ a dorim s˘ a ˆ ınmult ¸im h(X)cu polinomul a(X) = 2 X+ 8(vector a= (8;2)),
circuitul liniar va funct ¸iona 5tact ¸i (pˆ an˘ a cˆ and toate elementele de ˆ ınmagazinare
revin la 0); comportarea sa este relatat˘ a de tabelul:
Nr. tact Intrare ˆInmagazinare Ie¸ sire
0 0 0 0 0 0
1 2 0 0 0 2
2 8 2 0 0 ¡2
3 0 8 2 0 ¡40
4 0 0 8 2 4
5 0 0 0 8 16
6 0 0 0 0 0
Deci, polinomul produs este 2X4¡2X3¡40X2+ 4X+ 16; sau – ˆ ın termeni de
vectori, (16;4;¡40;¡2;2).
Aceea¸ si operat ¸ie de ˆ ınmult ¸ire este realizat˘ a ¸ si de circuitul liniar:
Figura 8.2:
±°²¯
±°²¯
±°²¯
±°²¯
½¼¾»
½¼¾»
½¼¾»
½¼¾»
½¼¾»
– -6 6 6 6 6
s s s s6- – – – – – – – –
6 6 6 6
b0 b1 b2 bn¡1 bn+ + + + : : :
: : :
Exemplul 8.2 Circuitul liniar care realizeaz˘ a ˆ ınmult ¸irea cu polinomul
h(X) = 1 + X+X4peste Z2este
±°²¯
±°²¯
-66
s- – – – – – –
6
s+ +
deoarece vectorul corespunz˘ ator polinomului h(X)esteh= (1;1;0;0;1).
B. Fie h(X) =h0+h1X+: : :+hnXn¸ sig(X) =g0+g1X+: : :+gnXndou˘ a
polinoame fixate. Un circuit liniar care s˘ a realizeze operat ¸ia
a(X)h(X) +b(X)g(X)
pentru dou˘ a polinoame arbitrare a(X); b(X), este:

88 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS
±°²¯
±°²¯
±°²¯
±°²¯
½¼¾»
½¼¾»
½¼¾»
½¼¾»½¼¾»
½¼¾»
½¼¾»
½¼¾»- –
?
– -6 6s 6s 6s6 6 6 6? ? ?s s s
? ? ? ?
– – – – – – – -b(X)
a(X)g0 g1 gn¡1 gn
h0 h1 hn¡1 hn+ + + +: : :
: : :
: : :
De remarcat c˘ a polinoamele g(X) ¸ sih(X) pot avea grade diferite; ˆ ın acest caz se
alege nca fiind gradul cel mai mare ¸ si se completeaz˘ a cel˘ alalt polinom cu coeficient ¸i
nuli pˆ an˘ a la gradul n.
Exemplul 8.3 Fie polinoamele g(X) = 1+ X2; h(X) =X+X2+X4cu coeficient ¸i
ˆ ınZ2; deci vectorii corespunz˘ atori vor fi h= (0;1;1;0;1);g= (1;0;1;0;0). Cir-
cuitul liniar care realizeaz˘ a expresia a(X)h(X) +b(X)g(X)este:
±°²¯
±°²¯
±°²¯-
?
?s
– – – – – – – –
-6 6 6s sb(X)
a(X)+ + +
C.Circuit liniar de ˆ ımp˘ art ¸ire cu un polinom.
Fie polinomul (fixat) g(X) =g0+g1X+: : :+gkXk; gk6= 0. Un circuit liniar
care realizeaz˘ a ˆ ımp˘ art ¸irea unui polinom arbitrar a(X) =a0+a1X+: : :+anXnla
g(X) este:
Figura 8.3:
±°²¯
±°²¯
±°²¯"!#Ã
"!#Ã
"!#Ã
"!#Ã
– – – – – – – -6
? ?s
?s
6¾ ¾
?-
? ?
¡g0 ¡g1 ¡gk¡1 g¡1
k
a(X) + + + : : :: : :
Init ¸ial, toate cele kelemente de ˆ ınmagazinare cont ¸in 0. La intrare, timp de
n+ 1 tact ¸i se introduc coeficient ¸ii polinomului a(X) (ˆ ın ordinea descresc˘ atoare a
puterilor). ˆIn primii ktact ¸i, ie¸ sirea va scoate numai 0. Primul coeficient nenul
apare la ie¸ sire la momentul k+ 1 ¸ si este ang¡1
k(operat ¸ii ˆ ın inelul coeficient ¸ilor celor
dou˘ a polinoame) – coeficientul termenului Xn¡kdin cˆ at.
Pentru fiecare coeficient qjal cˆ atului, polinomul qjg(X) trebuie sc˘ azut din deˆ ım-
p˘ art ¸it; aceast˘ a operat ¸ie se realizeaz˘ a printr-un procedeu de conexiune invers˘ a (feed-
back).

8.1. CIRCUITE LINIARE PENTRU OPERAT ¸II ELEMENTARE 89
Dup˘ a momentul n+1 (cˆ and au intrat tot ¸i coeficient ¸ii polinomului a(X)) la ie¸ sire
s-a obt ¸inut cˆ atul q(X) al ˆ ımp˘ art ¸irii la g(X), iar ˆ ın elementele de ˆ ınmagazinare se
g˘ asesc coeficient ¸ii restului.
Exemplul 8.4 Un circuit liniar de ˆ ımp˘ art ¸ire (peste Q) la polinomul g(X) = 2 + X
este:
½¼¾»
±°²¯- – -6¾ –
?¡2
+
Exemplul 8.5 Fie polinomul g(X) = 1 + X2+X5+X62Z2[X]. Circuitul care
realizeaz˘ a ˆ ımp˘ art ¸irea este:
±°²¯
±°²¯
±°²¯- – – – – – – – -6¾
? ?s
?s –
+ + +
S˘ a lu˘ am polinomul a(X) = 1 + X4+X5+X7+X9+X10pe care s˘ a-l ˆ ımp˘ art ¸im ˆ ın
Z2la polinomul g(X). Se obt ¸ine cˆ atul X4+X¸ si restul X5+X3+X+ 1.
Circuitul funct ¸ioneaz˘ a 11tact ¸i. Etapele prin care trece ˆ ın efectuarea acestei
ˆ ımp˘ art ¸iri sunt reprezentate de tabelul urm˘ ator:
Nr. tact Intrare Elemente de ˆ ınmagazinare Ie¸ sire
0¡ 0 0 0 0 0 0 ¡
1 1 1 0 0 0 0 0 0
2 1 1 1 0 0 0 0 0
3 0 0 1 1 0 0 0 0
4 1 1 0 1 1 0 0 0
5 0 0 1 0 1 1 0 0
6 1 1 0 1 0 1 1 0
7 1 0 1 1 1 0 0 1
8 0 0 0 1 1 1 0 0
9 0 0 0 0 1 1 1 0
10 0 1 0 1 0 1 0 1
11 1 1 1 0 1 0 1 0
Vectorii (1;1;0;1;0;1)- de pe ultima linie ¸ si (0;1;0;0;1)- scris mai gros ¸ si ˆ ın
ordine invers˘ a pe ultima coloan˘ a – reprezint˘ a restul 1 +X+X3+X5respectiv cˆ atul
X+X4ˆ ımp˘ art ¸irii lui a(X)lag(X).

90 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS
D. Circuitul liniar are realizeaz˘ a ˆ ınmult ¸irea cu polinomul h(X) =h0+h1X+
: : :+hnXnurmat˘ a de ˆ ımp˘ art ¸irea la polinomul g(X) =g0+g1X+: : :+gnXneste:
½¼¾»
±°²¯
±°²¯
±°²¯
±°²¯½¼¾»
½¼¾»
½¼¾»
½¼¾»
½¼¾»
½¼¾»
½¼¾»
– -6 6 6s6s6 6 6 6- – – – – – – -66¾ –
?s ¾
? ?s
? ? ?¡g0 ¡g1 ¡gn¡1 g¡1
n
+ + + +
h0 h1 hn¡1 hn: : :
: : :
: : :
Cˆ and gradele polinoamelor sunt diferite, se construie¸ ste ˆ ıntˆ ai circuitul liniar co-
respunz˘ ator polinomului de grad maxim, dup˘ a care se completeaz˘ a cu circuitul cores-
punz˘ ator celuilalt polinom.
Exemplul 8.6 S˘ a lu˘ am polinoamele h(X) = 1 + X+X3; g(X) = 2 + X+X4cu
coeficient ¸i ˆ ın Z3. Circuitul liniar care realizeaz˘ a ˆ ınmult ¸irea cu h(X)¸ si ˆ ımp˘ art ¸irea la
g(X)este
±°²¯
±°²¯`
±°²¯¹¸ș·
-6 6s6s- – – – – – -6¾
?-
?s
?2
+ + +
Deoarece calculele se fac ˆ ın Z3;¡2 = 1 ;¡1 = 2 ;¸ si1¡1= 1.
Pentru intrarea a(X) = 1 + 2 X+ 2X2, comportarea circuitului este urm˘ atoarea:
¡0 0 0 0 ¡
22 2 0 2 ¡
21 2 2 2 2
10 0 2 0 2
ceea ce corespunde cˆ atului 2 + 2 X¸ si restului 2X2.
De remarcat c˘ a primul coeficient (de grad maxim) al cˆ atului este scos de circuit
cu o ˆ ıntˆ arziere de grad(g(X))¡grad(f(X)) = 1 tact.

8.2. EXTENSII GALOIS 91
Exemplul 8.7 Un circuit liniar pentru ˆ ınmult ¸irea cu h(X) = 1 ¡X2+ 2X4¸ si
ˆ ımp˘ art ¸irea la g(X) = 3¡2X+X2, ambele din Z[X], este:
±°²¯
±°²¯
±°²¯
½¼¾»
½¼¾»½¼¾»
½¼¾»
-6 6s6- – – – – -6¾
?s –
?
? ?
6¡3 2
¡1 26- + + +
Fie intrarea a(X) =¡2 +X; comportarea circuitului este:
¡ 0 0 0 0 ¡
11 0 ¡7 4 2
¡2¡2 1 2 ¡7 0
00¡2 22 ¡12¡7
00 0 34 ¡2¡12
deci cˆ atul este 2X3¡7X¡12iar restul 34¡2X.
De remarcat c˘ a circuitul este l˘ asat s˘ a funct ¸ioneze grad(h(X))¡grad(f(X)) = 2
tact ¸i ˆ ın plus (prin introducerea de zero-uri), pentru golirea elementelor de ˆ ınmagazi-
nare necontrolate de ˆ ımp˘ art ¸itor.
8.2 Extensii Galois
Fiequn num˘ ar prim ¸ si g(X) =g0+g1X+: : :+gnXn2Zq[X]. Vom considera
algebra polinoamelor modulo g(X).
Fiind dat un polinom oarecare din Zq[X], clasa sa de resturi modulo g(X) se
g˘ ase¸ ste ˆ ımp˘ art ¸ind polinomul respectiv cu g(X). Restul ˆ ımp˘ art ¸irii specific˘ a clasa de
resturi respectiv˘ a.
Dou˘ a polinoame c˘ arora le corespunde acela¸ si rest la ˆ ımp˘ art ¸irea cu g(X) sunt
echivalente, intrˆ and ˆ ın aceea¸ si clas˘ a de resturi modulo g(X).
Fiecare clas˘ a de resturi modulo g(X) se reprezint˘ a prin polinomul (unic) de grad
strict mai mic decˆ at n, care apart ¸ine clasei respective. Tot ¸i ace¸ sti reprezentant ¸i pot
fi considerat ¸i ca polinoame de gradul n¡1, avˆ and eventual coeficient ¸i nuli.
Vom nota cu ff(X)gclasa de resturi a polinomului f(X) modulo g(X). Deci
f(X) va corespunde unui vector (distinct) de lungime n, cu componente din Zq(prin
completare eventual cu zerouri).
Operat ¸iile ˆ ın algebra claselor de resturi sunt:
fa(X)g+fb(X)g=fa(X) +b(X)g
cfa(X)g=fca(X)g; c2Zq
fa(X)gfb(X)g=fa(X)b(X)g

92 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS
toate calculele fiind f˘ acute modulo g(X).
Evident, f0g=fg(X)g, unde f0geste polinomul de grad n¡1 cu tot ¸i coeficient ¸ii
nuli (sau vectorul cu ncomponente zero). Vom nota f0g=0.
Pentru un polinom s(X)2Zq[X], clasa de resturi modulo g(X) se obt ¸ine foarte
u¸ sor. Teorema ˆ ımp˘ art ¸irii cu rest d˘ a:
s(X) =a(X)g(X) +r(X) unde grad(r(X))< grad (g(X)) =n. Atunci:
fs(X)g ¡ f r(X)g=fs(X)¡r(X)g=fa(X)g(X)g=fa(X)gfg(X)g=0.
S˘ a relu˘ am circuitul liniar de ˆ ımp˘ art ¸ire definit ˆ ın Figura 8.3, ˆ ın care facem urm˘ a-
toarele modific˘ ari (vezi Figura 8.4):
²Se neglijeaz˘ a intrarea ¸ si ie¸ sirea;
²La momentul init ¸ial elementele de ˆ ınmagazinare cont ¸in coeficient ¸ii unui poli-
nom b(X) =b0+b1X+: : :+bn¡1Xn¡1.
Figura 8.4:
b0±°²¯
b1 ±°²¯
bn¡1"!#Ã
"!#Ã
"!#Ã
"!#Ã
– – – – – -66¾
?s

?
?-?s
?¡g0 ¡g1 ¡gn¡1 g¡1
n
+ +: : :
: : :
La urm˘ atorul tact, ˆ ın elementele de ˆ ınmagazinare se obt ¸in coeficient ¸ii polinomu-
lui:
b0(X) =¡g0g¡1
nbn¡1+ (b0¡g1g¡1
nbn¡1)X+ (b1¡g2g¡1
nbn¡1)X2+: : :
+(bn¡2¡gn¡1g¡1
nbn¡1)Xn¡1=
=b0X+b1X2+: : :+bn¡1Xn¡bn¡1Xn¡g¡1
nbn¡1(g0+g1X+: : :+gn¡1Xn¡1) =
=Xb(X)¡g¡1
nbn¡1g(X).
Dac˘ a not˘ am ®=fXg(fXgeste clasa de resturi a polinomului X), din relat ¸ia
de mai sus se obt ¸ine:
b0(®) =fb0(X)g=fXb(X)g=fXgfb(X)g=fXgb(fXg) =®b(®):
Deci circuitul de ˆ ımp˘ art ¸ire cu polinomul g(X) poate fi utilizat pentru ˆ ınmult ¸irea lui
b(®) cu®.
Teorema 8.1 ˆIn algebra polinoamelor modulo g(X); grad (g(X)) =n, avem:
1.g(®) =0unde ®=fXg;
2.geste polinomul de grad minim care are pe ®ca r˘ ad˘ acin˘ a.
Demonstrat ¸ie :

8.2. EXTENSII GALOIS 93
1.Fieg(X) = g0+g1X+: : :+gnXn2Zq[X]; gn6= 0. Vom avea g(®) =
g0+g1®+: : :+gn®n=g0+g1fXg+: : :+gnfXgn=g0+g1fXg+: : :+gnfXng=
fg0+g1X+: : :+gnXng=fg(X)g=0.
2.Folosind acela¸ si rat ¸ionament, se obt ¸ine pentru orice polinom f(X) cu
grad(f(X))< n, c˘ af(®) =ff(X)g 6=0, deoarece toate polinoamele ne-
identic nule de grad strict mai mic decˆ at napart ¸in la clase de resturi distincte.
2
S˘ a presupunem acum c˘ a g(X)2Zq[X] este un polinom ireductibil. Conform
Teoremei 8.1, ®=fXgeste r˘ ad˘ acin˘ a a lui g(X). Acest element ®poate fi considerat
fie ca polinom de grad n¡1 (cu tot ¸i coeficient ¸ii nuli ˆ ınafar˘ a de cel al lui X), fie ca
vector cu ncomponente (0 ;1;0; : : : ; 0).
Vom nota cu GF(qn) mult ¸imea vectorilor din Zn
q, sau – echivalent:
– mult ¸imea polinoamelor de grad n¡1 cu coeficient ¸i ˆ ın Zq, sau
– mult ¸imea claselor de resturi modulo polinomul g(X)2Zq[X], ireductibil
peste Zq.
GF(qn) se nume¸ ste extensia Galois de grad na lui Zq.
Spunem c˘ a GF(qn) se obt ¸ine prin ad˘ augarea la Zqa unei r˘ ad˘ acini a polinomului
g(X)2Zq[X] de grad n, ireductibil peste corpul de baz˘ a Zq.
Observat ¸ie : Procedeul de trecere de la ZqlaGF(qn) este similar trecerii de la
corpul numerelor reale Rla cel complex C, prin ad˘ augarea r˘ ad˘ acinii i=fXgˆ ın
algebra claselor de resturi modulo 1 + X2, ireductibil peste R. Putem considera
mult ¸imea Ca numerelor complexe fie ca mult ¸imea polinoamelor de grad 2 ¡1 =
1; a+bicua; b2 R, fie ca mult ¸imea vectorilor ( a; b) cu dou˘ a componente reale.
Dac˘ a polinomul g(X)2Zq[X] este ireductibil peste Zq¸ si primitiv, puterile lui
®=fXgvor genera toate elementele lui GF(qn)nf0gunde n=grad(g(X)). Acest
lucru se poate realiza cu circuitul liniar din Figura 8.4, introducˆ and la momentul
init ¸ial ˆ ın elementele de ˆ ınmagazinare coeficient ¸ii polinomului b(X) = 1 (adic˘ a vec-
torul (1 ;0; : : : ; 0)). Conform celor observate mai sus, la momentul urm˘ ator se obt ¸ine
fXb(X)g=fXg=®, dup˘ a care urmeaz˘ a pe rˆ and ®2; ®3; : : :. Cum g(X) a fost ales
primitiv, el va genera toate elementele nenule din GF(qn).
Exemplul 8.8 Fie polinomul 1+X+X4ireductibil peste Z2¸ si®=fXgˆ ın algebra
claselor de resturi modulo 1+X+X4. Circuitul liniar care va genera toate elementele
nenule din GF(24)este:
±°²¯-6¾
?s
– -?
– – – +
unde, la momentul init ¸ial, ˆ ın elementele de ˆ ınmagazinare este vectorul (1;0;0;0).
Conform Teoremei 8.1, ®este o r˘ ad˘ acin˘ a a polinomului 1 +X+X4, adic˘ a
1 +®+®4= 0:
L˘ asˆ and circuitul s˘ a funct ¸ioneze, ˆ ın elementele de ˆ ınmagazinare se obt ¸in toate ele-
mentele lui GF(24), pe care le interpret˘ am fie ca vectori cu patru componente peste
Z2, fie ca polinoame de gradul 3ˆ ın®cu coeficient ¸i ˆ ın Z2

94 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS®0= 1 1 0 0 0
®1= ® 0 1 0 0
®2= ®20 0 1 0
®3= ®30 0 0 1
®4= 1 + ® 1 1 0 0
®5= ®+®20 1 1 0
®6= ®2+®30 0 1 1
®7= 1 + ® +®31 1 0 1
®8= 1 + ®21 0 1 0
®9= ® +®30 1 0 1
®10= 1 + ®+®21 1 1 0
®11= ®+®2+®30 1 1 1
®12= 1 + ®+®2+®31 1 1 1
®13= 1 + ®2+®31 0 1 1
®14= 1 + ®31 0 0 1
®15= 1 1 0 0 0
Vedem deci c˘ a polinomul 1 +X+X4este primitiv, puterile lui ®epuizˆ and tot ¸i
vectorii nenuli din GF(24) =f0; ®0; ®; : : : ; ®14g.
Exemplul 8.9 Tabelul din exemplul precedent descrie operat ¸ia de ˆ ınmult ¸ire din
GF(24), generat˘ a de r˘ ad˘ acina ®a polinomului primitiv 1 +X+X4. Dac˘ a s-ar
alege ®ca r˘ ad˘ acin˘ a a altui polinom primitiv – de exemplu 1 +X3+X4, se va genera
totGF(24), dar ˆ ıntr-o alt˘ a ordine. L˘ as˘ am ca exercit ¸iu aceast˘ a generare.
ˆInGF(24)se poate defini ¸ si operat ¸ia de adunare, ˆ ınsumˆ and modulo 2cei doi
operanzi, pe componente. Astfel, dac˘ a relu˘ am GF(24)generat ˆ ın Exemplul 8.8 de
r˘ ad˘ acina polinomului 1 +X+X4, tabela de adunare va fi:
+0 ®0® ®2®3®4®5®6®7®8®9®10®11®12®13®14
00 ®0® ®2®3®4®5®6®7®8®9®10®11®12®13®14
®0®00 ®4®8®14® ®10®13®9®2®7®5®12®11®6®3
® ® ®40 ®5®9®0®2®11®14®10®3®8®6®13®12®7
®2®2®8®50 ®6®10® ®3®12®0®11®4®9®7®14®13
®3®3®14®9®60 ®7®11®2®4®13® ®12®9®10®8®0
®4®4® ®0®10®70 ®8®12®3®5®14®2®13®6®11®9
®5®5®10®2® ®11®80 ®9®13®4®6®0®3®14®7®12
®6®6®13®11®3®2®12®90 ®10®14®3®7® ®4®0®8
®7®7®9®14®12®4®3®13®100 ®11®0®6®8®2®9®
®8®8®2®10®0®13®5®4®14®110 ®12® ®7®9®3®6
®9®9®7®3®11® ®14®6®5®0®120 ®13®2®8®10®4
®10®10®5®8®4®12®2®0®7®6® ®130 ®14®3®9®11
®11®11®12®6®9®5®13®3® ®8®7®2®140 ®0®4®10
®12®12®11®13®7®10®6®14®4®2®9®8®3®00 ® ®5
®13®13®6®12®14®8®11®7®0®5®3®10®9®4®0 ®2
®14®14®3®7®13®0®9®12®8® ®6®4®11®10®5®20
Fie acum a(X) =a0+a1X+: : :+ak¡1Xk¡12Zq[X]. Valoarea a(®) se obt ¸ine
folosind circuitul de ˆ ımp˘ art ¸ire dat ˆ ın Figura 8.3, cu urm˘ atoarele observat ¸ii:

8.2. EXTENSII GALOIS 95
²Se ignor˘ a ie¸ sirea;
²Coeficient ¸ii lui a(X) se introduc la intrareˆ ın ordinea descresc˘ atoare a puterilor;
²Init ¸ial, elementele de ˆ ınmagazinare cont ¸in valorile (0 ;0; : : : ; 0).
Pentru calculul unei valori de forma a(®)®j;(j¸0 fixat), se pot construi circuite
liniare care s˘ a realizeze direct acest produs.
Exemplul 8.10 Fie®2GF(24)element primitiv, solut ¸ie a ecuat ¸iei 1+X+X4= 0.
Polinomul a(X)va avea atunci gradul maxim 3. Fie a(X) =a0+a1X+a2X2+a3X3.
S˘ a construim un circuit liniar care s˘ a efectueze a(®)®5.
Folosind tabelul din Exemplul 8.8, avem:
(a0+a1®+a2®2+a3®3)®5=a0®5+a1®6+a2®7+a3®8=a0(®+®2) +a1(®2+
®3)+a2(1+®+®2)+a3(1+®2) = (a2+a3)+(a0+a2)®+(a0+a1+a3)®2+(a1+a2)®3
Pentru acest polinom se va construi circuitul liniar:
a0 a1 a2 a3
±°²¯
±°²¯
±°²¯
±°²¯-
? ¾6-6
66 6 6-
? -6 ¾6 66-
?¾ -6-
? – ¾ + + + +
La momentul init ¸ial, ˆ ın elementele de ˆ ınmagazinare se g˘ asesc coeficient ¸ii lui a(®);
dup˘ a un tact, aici vor fi coeficient ¸ii polinomului a(®)®5.

96 PRELEGEREA 8. CIRCUITE LINIARE S ¸I EXTENSII GALOIS
8.3 Exercit ¸ii
8.1S˘ a se realizeze circuite liniar (ˆ ın ambele modalit˘ at ¸i de construct ¸ie) care s˘ a
efectueze ˆ ınmult ¸iri cu polinoamele:
h(X) = 1 + 2 X+ 3X2+ 4X32Z[X]
h(X) = 1 + 2 X+X52Z7[X]
8.2S˘ a se reprezinte comportamentul circuitelor realizate anterior, la ˆ ınmult ¸irea cu
polinoamele:
a(X) = 2 + 5 X+X3; a (X) =X¡X3¡2X4; a (X) = 0 :
8.3Se d˘ a cavˆ antul g= (1 ;0;0;¡1;0;1). S˘ a se realizeze circuitul de ˆ ınmult ¸ire
cu polinomul corespunz˘ ator ¸ si s˘ a se reprezinte comportamentul acestui circuit la
ˆ ınmult ¸irea cu a= (1) ¸ sia= (1;1;1;0;0;0;1).
8.4S˘ a se realizeze un circuit liniar care realizeaz˘ a produsul a(X)g(X) +b(X)h(X)
pentru polinoamele:
g(X) = 1 + X+X3; h(X) = 1¡5X¡2X2+ 3X3;
g(X) =¡4X3+X5¡2X8; h(X) =X2+ 2X4+X6;
g(X) =X¡X3+ 3X4; h(X) = 2 X3+X5+X9:
8.5S˘ a se fac˘ a ˆ ımp˘ art ¸irea ˆ ın Q[X]la polinomul g(X) =X2¡2X+1a polinoamelor
a(X) =X5¡4X3¡2X+ 5; a (X) =X+ 7:
8.6Aceea¸ si problem˘ a pentru polinoamele g(X) = 2 X¡1¸ si respectiv a(X) =X3¡3.
(1) : ˆInQ[X];
(2) : ˆInZ3[X].
8.7S˘ a realizeze un circuit care s˘ a efectueze (ˆ ın Q) ˆ ınmult ¸irea cu polinomul
g(X) = 1¡2X+X3¸ si ˆ ımp˘ art ¸irea cu polinomul h(X) =g(X).
8.8Aceea¸ si problem˘ a pentru polinoamele:
g(X) =X¡2X3¡X4; h(X) = 2 + X+X3ˆ ınZ5[X];
g(X) =¡1 +X¡X6; h(X) =X2¡4X3¡2X5+ 3X7ˆ ınZ11[X].
8.9S˘ a se rezolve problema enunt ¸at˘ a ˆ ın Exemplul 8.9.
8.10 S˘ a se genereze toate puterile lui ®, r˘ ad˘ acin˘ a a polinomului 1 +X2+X52
Z2[X]¸ si1 +X+X32Z3[X].
8.11 Folosind elementele din Exemplul 8.10 s˘ a se construiasc˘ a circuite de generare
pentru a(®)®; a(®)®2¸ sia(®)®7.
8.12 S˘ a se construiasc˘ a circuite de generare ˆ ın GF(25)pentru a(®)¸ sia(®)®10,
unde ®este r˘ ad˘ acin˘ a a polinomului 1 +X2+X52Z2[X].

Prelegerea 9
Coduri ciclice
9.1 Relat ¸ii de recurent ¸˘ a liniar˘ a
Teorema 9.1 Fieqprim ¸ si f(X)2Zq[X]; grad (f(X) = n.ˆIn algebra poli-
noamelor modulo f(X), fie Iun ideal ¸ si g(X)polinomul de grad minim a c˘ arui
clas˘ a de resturi apart ¸ine lui I:fg(X)g 2I. Atunci:
1. fs(X)g 2I() g(X)js(X);
2. g(X)jf(X).
Demonstrat ¸ie : (1): Fie fs(X)g 2I. Folosind identitatea ˆ ımp˘ art ¸irii, avem
s(X) =b(X)g(X) +r(X); grad (r(X))< grad (g(X)).
Trecˆ and la clasele de resturi respective, se obt ¸ine fs(X)g=fb(X)gfg(X)g+
fr(X)g. Cum fs(X)g 2 I;fb(X)gfg(X)g 2 Ideoarece Ieste ideal, rezult˘ a
fr(X)g 2I, absurd, deoarece g(X) este polinomul de grad minim a c˘ arui clas˘ a de
resturi apart ¸ine idealului I. Deci r(X)´0, adic˘ a s(X) =b(X)g(X).
Reciproca este imediat˘ a, deoarece din s(X) = b(X)g(X) rezult˘ a fs(X)g=
fb(X)gfg(X)g 2I.
(2): Prin ˆ ımp˘ art ¸irea polinomului f(X) cug(X) se obt ¸ine
f(X) =c(X)g(X) +r(X) unde grad(r(X))< grad (g(X)).
Avem 0=ff(X)g=fc(X)gfg(X)g+fr(X)gde unde rezult˘ a fr(X)g 2I, absurd;
decir(X)´0. 2
Teorema 9.2 ˆIn algebra polinoamelor modulo f(X), pentru orice ideal Iexist˘ a un
polinom normat unic g(X)de grad minim, cu fg(X)g 2I.
Reciproc, pentru orice divizor normat al lui f(X)exist˘ a un ideal generat de acel
divizor.
g(X) se nume¸ ste generatorul idealului I¸ si scriem I= (fg(X)g).
Demonstrat ¸ie : Fie h(X) un polinom de grad minim cu fh(X)g 2I; vom nota
g(X) =h¡1
nh(X) unde hneste coeficientul termenului de grad maxim din polinomul
h(X)).
S˘ a presupunem c˘ a g(X); g0(X) sunt dou˘ a astfel de polinoame de grad minim,
normate, ale c˘ aror clase de resturi sunt ˆ ın I. Conform Teoremei 9.1, g(X) ¸ sig0(X)
97

98 PRELEGEREA 9. CODURI CICLICE
se divid unul pe altul ¸ si – avˆ and acela¸ si grad – difer˘ a printr-o constant˘ a. Polinoamele
fiind normate, aceast˘ a constant˘ a este 1. Deci g(X) =g0(X).
Reciproc, fie g(X) un divizor normat al polinomului f(X) ¸ si (fg(X)g) idealul
generat de el. Un element al acestui ideal este fa(X)g 2(fg(X)g), deci are forma
fa(X)g=fb(X)gfg(X)g=fb(X)g(X)g. 2
Teorema 9.3 Fiequn num˘ ar prim, f(X)2Zq[X];normat, cu grad(f(X)) = n
¸ si fie f(X) =g(X)h(X). Dac˘ a grad(h(X)) = k, atunci ˆ ın algebra polinoamelor
modulo f(X), idealul (fg(X)g)are dimensiunea k.
Demonstrat ¸ie : S˘ a observ˘ am c˘ a vectorii (asociat ¸i polinoamelor)
fg(X)g;fXg(X)g; : : : ; fXk¡1g(X)g
sunt liniar independent ¸i. ˆIntr-adev˘ ar, pentru orice kelemente c0; : : : ; c k¡12Zq, nu
toate nule, avem
c0fg(X)g+c1fXg(X)g+: : :+ck¡1fXk¡1g=f(c0+c1X+: : :+ck¡1Xk¡1)g(X)g 6= 0
deoarece s-a obt ¸inut un polinom de grad cel mult n¡k+k¡1 =n¡1< n.
ˆIn acela¸ si timp, pentru orice fs(X)g 2(fg(X)g) avem
fs(X)g=fa(X)g(X)g=f(a0+a1X+: : :+ak¡1Xk¡1)g(X)g=a0fg(X)g+
a1fXg(X)g+: : :+ak¡1fXk¡1g(X)g, unde unii din coeficient ¸ii a0; a1; : : : ; a k¡1pot
fi nuli.
Deci vectorii de sus formeaz˘ a o baz˘ a a subspat ¸iului liniar ( fg(X)g), care are deci
dimensiunea k. 2
Teorema 9.4 Fief(X)2Zq[X]un polinom normat ¸ si f(X) =g(X)h(X).ˆIn
algebra polinoamelor modulo f(X),
fa(X)g 2(fg(X)g)() f a(X)geste ˆ ın spat ¸iul nul al idealului (fh(X)g).
Demonstrat ¸ie :00=)00: Fiefa(X)2(fg(X)g), deci fa(X)g=fv(X)g(X)g.
Fie de asemenea fb(X)g 2(fh(X)g), deci fb(X)g 2 f w(X)h(X)g. Vom avea
fa(X)gfb(X)g=fv(x)w(X)g(X)h(X)g=fv(X)w(X)f(X)g=
=fv(X)w(X)gff(X)g=0.
00(=00: S˘ a consider˘ am fa(X)gˆ ın spat ¸iul nul al idealului ( fh(X)g). Atunci
fa(X)gfh(X)g=0, adic˘ a a(X)h(X) = c(X)f(X) = c(X)g(X)h(X) de unde
rezult˘ a a(X) =c(X)g(X). Deci fa(X)g 2(fg(X)g). 2
Definit ¸ia 9.1 Se nume¸ ste relat ¸ie de recurent ¸˘ a liniar˘ a egalitatea
kX
j=0hjai+j= 0 (1)
unde i¸0; hk= 1; h06= 0; hj2Zq; ai+j2Zq.
Realt ¸iile de recurent ¸˘ a liniar˘ a se pot scrie ¸ si
ai+k=¡k¡1X
j=0hjai+j; i= 0;1; : : :
O solut ¸ie a unei astfel de relat ¸ii de recurent ¸˘ a liniar˘ a este orice succesiune infinit˘ a de
forma a0; a1; : : : ; a p; : : :care verific˘ a relat ¸ia dat˘ a, cu h0; h1; : : : ; h kdate, h06= 0;

9.1. RELAT ¸II DE RECURENT ¸ ˘A LINIAR ˘A 99
hk= 1. Relat ¸ia va determina succesiv pe akdina0; : : : ; a k¡1, apoi pe ak+1din
a1; : : : ; a k, ¸ s.a.m.d.
Altfel spus, ”condit ¸iile init ¸iale” a0; a1; : : : ; a k¡1determin˘ a o solut ¸ie a relat ¸iei de
recurent ¸˘ a liniar˘ a.
Observat ¸ii :
²Orice combinat ¸ie liniar˘ a de solut ¸ii ale unei relat ¸ii de recurent ¸˘ a liniar˘ a este tot
o solut ¸ie.
²Solut ¸iile pentru care condit ¸iile init ¸iale sunt respectiv (1 ;0; : : : ; 0);(0;1; : : : ; 0);
: : : ;(0;0; : : : ; 1) determin˘ a orice alt˘ a solut ¸ie. Deci, spat ¸iul solut ¸iilor relat ¸iei de
recurent ¸˘ a (1) are dimensiunea cel mult k.
Fiind date condit ¸iile init ¸iale (arbitrare) a0; a1; : : : ; a k¡1, solut ¸ia relat ¸iei de recurent ¸˘ a
liniar˘ a (1) corespunz˘ atoare lor se poate obt ¸ine folosind circuitul liniar
aj aj+1¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
aj+k¡2 aj+k¡1j j j
¡h0 ¡h1 ¡hk¡2 ¡hk¡16- – – – –
?¾ ¾ ¾¾ ¾ ¾6 6r6
6r6
6r6+ + + : : :
: : :
ˆ ın care, la momentul init ¸ial, ˆ ın elementele de ˆ ınmagazinare se g˘ asesc a0; a1; : : : ; a k¡1.
S˘ a consider˘ am acum polinomul (fixat) h(X)2Zq[X]; h(X) =h0+h1X+: : :+
hkXk; h06= 0; hk= 1, ¸ si fie ncel mai mic num˘ ar natural pentru care Xn¡1 se
divide cu h(X). Not˘ am
g(X) =Xn¡1
h(X)(2)
Pe baza acestor date construim relat ¸ia de recurent ¸˘ a liniar˘ a
ai+k=¡k¡1X
j=0hjai+j; i¸0 (3)
Teorema 9.5
1.Solut ¸iile relat ¸iei de recurent ¸˘ a (3)sunt periodice, de perioad˘ a n.
2.Mult ¸imea format˘ a din prima perioad˘ a a fiec˘ arei solut ¸ii, scris˘ a ca polinom
a(X) =a0Xn¡1+: : :+an¡2X+an¡1constituie idealul (fg(X)g)ˆ ın algebra
polinoamelor modulo Xn¡1.
Demonstrat ¸ie : (a): Vom ar˘ ata c˘ a oric˘ arui element fa(X)g 2(fg(X)g) cu
a(X) =a0Xn¡1+: : :+an¡2X+an¡1ˆ ıi corespunde o solut ¸ie periodic˘ a
a1; a1; : : : ; a n¡1; a0; a1; : : : ; a n¡1; a0; : : :
a relat ¸iei de recurent ¸˘ a (3). Evident, nu este obligatoriu ca tot ¸i coeficient ¸ii ais˘ a
fie nuli, gradul real al polinomului f(X) putˆ and fi chiar zero.

100 PRELEGEREA 9. CODURI CICLICE
Fiefa(X)gfh(X)g=fc(X)g. Vom nota c(X) =c0+c1X+: : :+cn¡1Xn¡1.
Avem:
– pentru k·p·n¡1; c p=h0an¡1¡p+h1an¡1¡p+1+: : :+hkan¡1¡p+k(4)
– pentru 0 ·p < k; c p=h0an¡1¡p+h1an¡1¡p+1+: : :+hpan¡1+hp+1a0+: : :+
hkak¡p¡1: (5)
Conform Teoremei 9.4, dac˘ a fa(X)g 2 (fg(X)g) atunci fa(X)gfh(X)g=0,
adic˘ a cp= 0;(0·p·n¡1).
Considerˆ and ( ai)ica o succesiune periodic˘ a, vom avea evident ai+n=ai; i=
0;1; : : :. T ¸inˆ and cont de aceasta introducˆ and cp= 0 ˆ ın (4) ¸ si (5), se obt ¸ine (3).
(b): Idealul ( fg(X)g) are dimensiunea k=grad(h(X)) (Teorema 9.3) ¸ si fiecare
element al acestui ideal (polinom sau vector – dup˘ a cum este scris) va da (conform
cu (a)) o solut ¸ie a relat ¸iei de recurent ¸˘ a liniar˘ a (3). Dar spat ¸iul solut ¸iilor relat ¸iei (3)
are dimensiunea cel mult k. Deci idealul ( fg(X)gva da toate solut ¸iile relat ¸iei de
recurent ¸˘ a liniar˘ a (3). Mai trebuie ar˘ atat c˘ a perioada acestor solut ¸ii este chiar n.
Din cele de pˆ an˘ a acum a rezultat c˘ a perioada este cel mult n. Vom ar˘ ata c˘ a
solut ¸ia corespunz˘ atoare clasei de resturi fg(X)gare perioada n.
S˘ a presupunem prin absurd c˘ a solut ¸ia corespunz˘ atoare lui fg(X)gare perioada
m < n . Dar neste divizibil cu m¸ si deci coeficient ¸ii polinomului g(X) – considerat
ca fiind de grad n¡1 (prin completare cu coeficient ¸i nuli) formeaz˘ an
mblocuri care
se repet˘ a.
Deci g(X) =q(X)(1 + Xm+x2m+: : :+Xn¡m) unde q(X) este un polinom de
gradul m¡1. Relat ¸ia se poate scrie ¸ si g(X) =q(X)Xn¡1
Xm¡1.
Vom avea acum ( Xn¡1)(Xm¡1) = g(X)h(X)(Xm¡1) = q(X)h(X)(Xn¡1)
adic˘ a Xm¡1 =q(X)h(X), ceea ce contrazice definit ¸ia num˘ arului n(minim).
Deci m=n. 2
Exemplul 9.1 S˘ a consider˘ am polinomul h(X) = 1+ X+X2+X42Z2[X]. Relat ¸ia
de recurent ¸˘ a liniar˘ a asociat˘ a este
ai+4=ai+2+ai+1+ai; i¸0.
Circuitul liniar corespunz˘ ator are forma
±°²¯
±°²¯
¾6- – –
?¾ ¾ ¾ ¾6 6s s+ +
Cel mai mic npentru care Xn¡1se divide cu h(X)esten= 7. Cum g(X) =
X7¡1
h(X)=X3+X+ 1, rezult˘ a c˘ a circuitul va genera cuvintele idealului (fg(X)g).
Fiecare din ele este caracterizat de cele patru valori binare init ¸iale din elementele
de ˆ ınmagazinare. Vor fi deci 24= 16 cuvinte de lungime 7. Ele corespund tuturor
polinoamelor de grad maxim 6dinZ2[X], care se divid cu g(X).
De exemplu, pentru valorile init ¸iale (1;0;1;1), funct ¸ionarea circuitului timp de
¸ sapte tact ¸i este:

9.2. DEFINIREA CODURILOR CICLICE 101 Ie¸ sire
¡ 1 0 1 1
1 0 1 1 0
0 1 1 0 0
1 1 0 0 0
1 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 1 0 1 1
ˆIn elementele de ˆ ınmagazinare se reg˘ asesc valorile init ¸iale, iar la ie¸ sire s-a obt ¸inut
polinomul f(X) =X6+X4+X3=X3g(X).
Exemplul 9.2 Circuitul liniar corespunz˘ ator polinomului
h(X) = 1 + X3+X5+X6+X82Z2[X]este
±°²¯
±°²¯
±°²¯
¾6- – – –
?¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾6 6 6
r r r+ + +
El d˘ a solut ¸iile relat ¸iei de recurent ¸˘ a liniar˘ a ai+ai+3+ai+5+ai+6+ai+8= 0,
care formeaz˘ a idealul generat de polinomul g(X) =X255¡1
h(X)ideal compus din
28= 256 cuvinte de lungime 255.
9.2 Definirea codurilor ciclice
Fien¸2 un num˘ ar natural. S˘ a not˘ am cu Analgebra polinoamelor din Zq[X],
modulo Xn¡1. Dup˘ a cum s-a convenit, identific˘ am cuvˆ antul cuvˆ antul a0a1: : : a n¡1
cu vectorul ( a0; a1; : : : ; a n¡1) ¸ si cu polinomul a(X) =a0+a1X+: : :+an¡1Xn¡1.
ˆIn cadrul dualismului vector – polinom vom face o deosebire: anularea produsului
a dou˘ a polinoame nu ˆ ınseamn˘ a ortogonalitatea vectorilor corespunz˘ atori. Pentru
aceast˘ a situat ¸ie se folose¸ ste urm˘ atoarea propozit ¸ie:
Propozit ¸ia 9.1 Produsul a dou˘ a polinoame este zero dac˘ a ¸ si numai dac˘ a toate
produsele scalare dintre vectorul unui polinom ¸ si permut˘ arile ciclice ale vectorilor
celuilalt polinom sunt zero.
Demonstrat ¸ie : Fie a(X); b(X)2Zq[X]; a(X) =n¡1X
i=0aiXi; b(X) =n¡1X
i=0biXi.
Atunci fc(X)g=fa(X)gfb(X)g=fc0+c1X+: : :+cn¡1Xn¡1gunde
cj=jX
i=0aibj¡i+n¡1X
i=j+1aibj+n¡i= (a0a1: : : a n¡1)¢(bjbj¡1: : : b 0bn¡1bn¡2: : : b j+1)T
¸ si Propozit ¸ia rezult˘ a din faptul c˘ a cj= 08j. 2
Definit ¸ia 9.2 Un subspat ¸iu liniar Vn½Anse nume¸ ste ciclic dac˘ a
(a0; a1; : : : ; a n¡1)2Vn =) (an¡1; a0; : : : ; a n¡2)2Vn:
Teorema 9.6 Un subspat ¸iu liniar VnµAneste ciclic dac˘ a ¸ si numai dac˘ a este ideal.

102 PRELEGEREA 9. CODURI CICLICE
Demonstrat ¸ie :ˆInmult ¸irea cu clasa de resturi fXgˆ ınseamn˘ a de fapt permutarea
ciclic˘ a a componentelor cu o unitate spre dreapta, pentru c˘ a:
fXgfa0+a1X+: : :+an¡1Xn¡1g=fan¡1+a0X+: : :+an¡2Xn¡1g
”(=”: Dac˘ a VnµAneste ideal, atunci pentru orice v2Vnavem v0=fXgv2Vn
(s-a notat tot cu vclasa de resturi modulo Xn¡1 corespunz˘ atoare polinomului ai
c˘ arui coeficient ¸i sunt componentele vectorului v). Deci Vneste ciclic.
”=)”: Presupunem c˘ a subspat ¸iul liniar VnµAneste ciclic ¸ si fie v2Vn. Atunci,
dinfXgv2Vnrezult˘ a fXjgv2Vn;8j= 1; : : : ; n ¡1. Deci
fc0+c1X+: : :+cn¡1Xn¡1gv2Vn, adic˘ a Vneste ideal ˆ ın An. 2
Definit ¸ia 9.3 Se nume¸ ste cod ciclic un ideal din An.
Codurile ciclice au fost introduse de Prange (1957), care a evident ¸iat bog˘ at ¸ia de
informat ¸ie rezultat˘ a din structura lor algebric˘ a.
9.3 Generarea codurilor ciclice
Pentru a construi un cod ciclic se folose¸ ste structura idealelor ˆ ın algebra modulo
Xn¡1. Fie Iun idealˆ ın An¸ sig(X) polinomul normat de grad minim cu fg(X)g 2I.
Atunci (Teorema 9.1) ff(X)g 2Idac˘ a ¸ si numai dac˘ a g(X)jf(X).
De asemenea, g(X)jXn¡1. Oric˘ arui divizor al lui Xn¡1 ˆ ıi corespunde un ideal
ˆ ınAn, generat de el.
Pentru a da un cod ciclic este suficient s˘ a d˘ am generatorul s˘ au g(X), divizor al
luiXn¡1. Fie g(X) =g0+g1X+: : :+gn¡kXn¡k;(k < n ). O baz˘ a a idealului
(fg(X)g) se poate alege (Teorema 9.3)
fg(X)g;fXg(X)g; : : : ;fXk¡1g(X)g:
Matricea generatoare corespunz˘ atoare codului ciclic va fi
Gn;k=0
BBBB@g0g1: : : g n¡k 0 0 : : : 0
0g0: : : g n¡k¡1gn¡k0: : : 0

0 0 : : : 0 g0g1: : : g n¡k1
CCCCA
Rezult˘ a c˘ a un cod ciclic poate fi organizat ca un ( n; k) – cod liniar, unde neste
gradul polinomului Xn¡1 iar keste gradul polinomului h(X) =Xn¡1
g(X).
Exemplul 9.3 Codul cu repetit ¸ie este un cod ciclic al c˘ arui polinom generator este
g(X) = 1 + X+X2+: : :+Xn¡1.
Exemplul 9.4 S˘ a consider˘ am codul ciclic binar Ade lungime 7, cu polinomul gen-
erator g(X) = 1 + X+X3(vezi ¸ si Exemplul 9.1). El are matricea generatoare
G=0
BBB@1 1 0 1 0 0 0
0 1 1 0 1 0 0
0 0 1 1 0 1 0
0 0 0 1 1 0 11
CCCA:

9.3. GENERAREA CODURILOR CICLICE 103
Exemplul 9.5 Fie codul ciclic de lungime 6peste Z3, de polinom generator g(X) =
2 +X2. Matricea sa generatoare este
G=0
BBB@2 0 1 0 0 0
0 2 0 1 0 0
0 0 2 0 1 0
0 0 0 2 0 11
CCCA.
El este deci un (6;4)- cod ternar.
Idealul generat de fg(X)geste spat ¸iul nul al idealului ( fh(X)g) unde
h(X) =Xn¡1
g(X). Acest ideal ( fh(X)g) se construie¸ ste luˆ and ca baz˘ a polinoamele
fh(X)g;fXh(X)g: : : ;fXn¡k¡1h(X)g:
T ¸inˆ and cont de Propozit ¸ia 9.1, pentru a construi matricea de control Ha codului
ciclic ( fg(X)g), lu˘ am ca linii ale matricii cele n¡kpolinoame de sus, cu ordinea
componentelor inversat˘ a.
Exemplul 9.6 S˘ a relu˘ am codul din Exemplul 9.4. Deoarece X7¡1 = (1 + X)(1 +
X+X3)(1 + X2+X3), pentru acest cod, avem
h(X) = (1 + X)(1 + X+X3) = 1 + X2+X3+X4.
Matricea generatoare a codului (fh(X)g)este0
B@1 0 1 1 1 0 0
0 1 0 1 1 1 0
0 0 1 0 1 1 11
CA.
deci matricea de control asociat˘ a codului din Exemplul 9.4 va fi
H=0
B@0 0 1 1 1 0 1
0 1 1 1 0 1 0
1 1 1 0 1 0 01
CA.
Deoarece coloanele sale sunt nenule ¸ si distincte dou˘ a cˆ ate dou˘ a, codul astfel cons-
truit este echivalent cu un cod Hamming (7;4).
Pentru a obt ¸ine un cod ciclic sistematic, este convenabil s˘ a alegem o alt˘ a baz˘ a pentru
idealul ( fg(X)g). S˘ a observ˘ am c˘ a pentru i=n¡k; n¡k+ 1; : : : ; n ¡1, putem scrie
Xi=qi(X)g(X) +ri(X) cugrad(ri(X))< grad (g(X)) =n¡k:
Deci fXi¡ri(X)g 2(fg(X)g); i=n¡k; n¡k+ 1; : : : ; n ¡1.
Aceast˘ a mult ¸ime de vectori este liniar independent˘ a ¸ si conduce la o matrice
generatoare de forma
G= [¡R I]
unde linia jdin matricea Reste vectorul coeficient ¸ilor lui rj(X) pentru j=n¡
k; : : : ; n ¡1. Codul obt ¸inut este deci sistematic, iar matricea sa de control se scrie
imediat:
H= [I RT]
De remarcat c˘ a matricea HTare pe linii componentele resturilor ri(X) pentru i=
0;1; : : : ; n ¡1.

104 PRELEGEREA 9. CODURI CICLICE
Exemplul 9.7 S˘ a lu˘ am din nou X7¡1 =g(X)h(X)peste Z2, unde
g(X) = 1 + X2+X3; h(X) = 1 + X2+X3+X4(deci n= 7; k= 4). Avem
X0= 0 g(X) + 1
X1= 0 g(X) + X
X2= 0 g(X) + X2
X3= g(X) + 1 + X2
X4= (1 + X)g(X) + 1 + X+X2
X5= (1 + X+X2)g(X) + 1 + X
X6= (X+X2+X3)g(X) + X+X2
Baza corespunz˘ atoare idealului (fg(X)g)este
f1 +X2+X3g;f1 +X+X2+X4g;f1 +X+X5g;fX+X2+X6g
care conduce la matricea generatoare a unui cod sistematic:
G7;4=0
BBB@1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 1 1 0 0 0 11
CCCA= [¡R4;3I4]:
Matricea de control corespunz˘ atoare se scrie simplu:
H7;3=0
B@1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 11
CA= [I3RT
3;4].
9.4 Generarea automat˘ a a codurilor ciclice
Codurile ciclice sunt coduri a c˘ aror implementare este mult facilitat˘ a de circuitele
liniare. Cu ajutorul acestora se poate realiza automat codificarea, calculul sindro-
mului, corectarea ¸ si detectarea erorilor.
ˆIn construct ¸ia practic˘ a vom distinge dou˘ a cazuri:
9.4.1 Circuit cu kelemente de ˆ ınmagazinare
Este o metod˘ a de generare a codurilor ciclice, avantajoas˘ a dac˘ a sunt mai put ¸ine
simboluri de informat ¸ie decˆ at de control: k < n ¡k.
Fie codul ciclic ( fg(X)g)µAn¸ sih(X) =Xn¡1
g(X)=h0+h1X+: : :+hkXkcu
h06= 0; hk= 1. Conform Teoremei 9.5, idealul ( fg(X)g) este generat de circuitul
liniar care construie¸ ste secvent ¸ial solut ¸iile relat ¸iei de recurent ¸˘ a liniar˘ a
kX
j=0hjai+j= 0; i= 0;1; : : :
Mesajul de informat ¸ie care trebuie codificat – cont ¸inˆ and ksimboluri pe fiecare bloc
– se introduce la momentul init ¸ial ˆ ın elementele de ˆ ınmagazinare ale circuitului,
sub form˘ a de ”condit ¸ii init ¸iale”. L˘ asˆ and circuitul s˘ a funct ¸ioneze, obt ¸inem dup˘ a n
momente cuvˆ antul – cod corespunz˘ ator, apart ¸inˆ and idealului ( fg(X)g) ¸ si avˆ and pe
primele kpozit ¸ii elementele de informat ¸ie.

9.4. GENERAREA AUTOMAT ˘A A CODURILOR CICLICE 105
Exemplul 9.8 Circuitul liniar construit ˆ ın Exemplul 9.1 este un circuit de codificare
pentru codul generat de polinomul g(X) = 1 + X+X3. Exemplul descrie ¸ si un mod
de funct ¸ionare pentru cuvˆ antul de informat ¸ie 1011.
Dac˘ a s-ar lua drept polinom generator 1 +X2+X3+X4, idealul generat de el
este dat de circuitul liniar
±°²¯
¾6- –
?¾ ¾ ¾6s+
deoarece h(X) =X7¡1
1 +X2+X3+X4= 1 + X2+X3.
9.4.2 Circuit cu n¡kelemente de ˆ ınmagazinare
Este o strategie avantajos de utilizat ˆ ın cazul n¡k < k .
Dac˘ a interpret˘ am mesajul de informat ¸ie ca un polinom de gradul k¡1, atunci
codificarea se poate face utilizˆ and un circuit de ˆ ınmult ¸ire cu polinomul generator
g(X) (vezi Prelegerea anterioar˘ a). La decodificare se recap˘ at˘ a mesajul init ¸ial (dac˘ a
nu au ap˘ arut erori) folosind un circuit de ˆ ımp˘ art ¸ire cu g(X).
Exemplul 9.9 Codul ciclic de polinom generator g(X) = 1+ X+X3poate codifica
mesajele de informat ¸ie folosind circuitul liniar:
±°²¯
±°²¯
– – – -66- – –
6s+ +
u3u2u1u0
Astfel, mesajul de informat ¸ie u= 1001 se codific˘ a ˆ ın v= 1100101 , conform
calculelor:
v(X) =u(X)g(X) = (1 + X3)(1 + X+X3) = 1 + X+X4+X6
Pentru decodificare se folose¸ ste circuitul
±°²¯
±°²¯– – – -6- ¾
? ?s
+ + v(X)u(X)
Dezavantajul unei asemenea metode ˆ ıl constituie faptul c˘ a, nefiind un cod sis-
tematic, prin codificare pozit ¸iile de informat ¸ie se pierd. Pentru a obt ¸ine un cod
sistematic, proced˘ am ˆ ın felul urm˘ ator: mesajul de informat ¸ie este considerat un
polinom u0(X) de gradul n¡1 avˆ and pozit ¸iile de informat ¸ie drept coeficient ¸ii lui
Xn¡k; : : : ; Xn¡1, restul coeficient ¸ilor fiind nuli. Atunci avem u0(X) =q(X)g(X) +
r(X) cugrad(r(X))< grad (g(X)) =n¡kde unde
fu0(X)¡r(X)g 2(fg(X)g):
fu0(X)¡r(X)greprezint˘ a un cuvˆ ant – cod ˆ ın care coeficient ¸ii lui Xn¡k; : : : ; Xn¡1
sunt pozit ¸iile de informat ¸ie nealterate, iar coeficient ¸ii lui r(X) cu semnul schimbat
(deci coeficient ¸ii lui X0; X1; : : : ; Xn¡k¡1) sunt caracterele de control.
Circuitul care realizeaz˘ a aceast˘ a codificare este urm˘ atorul:

106 PRELEGEREA 9. CODURI CICLICE
±°²¯
±°²¯
±°²¯
±°²¯
Canal"!#Ã
"!#Ã
"!#Ã
"!#Ã
"!#Ã6¾ PPPP i
s s s¾ ¾
?
?- – – – – -r6?
??
??
?
-6
s±°²¯
¡1?
-´´ 3-+ + + +¡g0 ¡g1 ¡g2 ¡gn¡k¡1 g¡1
n¡k
u(X): : :: : :
El funct ¸ioneaz˘ a astfel:
²Init ¸ial cele n¡kelemente de ˆ ınmagazinare cont ¸in 0, ˆ ıntrerup˘ atorul de ie¸ sire
este decuplat iar cel de feedback – cuplat.
²Se introduc cele kelemente ale mesajului de informat ¸ie atˆ at ˆ ın circuit cˆ at ¸ si
ˆ ın canalul de comunicat ¸ie. Dup˘ a kmomente, ˆ ın elementele de ˆ ınmagazinare
avem coeficient ¸ii restului r(X).
²Se decupleaz˘ a feedbackul ¸ si se cupleaz˘ a circuitul la canalul de comunicat ¸ie.
²Coeficient ¸ii restului – cu semn schimbat – se transmit ˆ ın canal imediat dup˘ a
pozit ¸iile de informat ¸ie.
Deoarece provine din circuitul de ˆ ımp˘ art ¸ire cu g(X), acela¸ si circuit poate fi folosit
¸ si pentru detectarea erorilor la recept ¸ie. Pentru aceasta, dup˘ a decuplarea ˆ ıntrerup˘ a-
torului de ie¸ sire ¸ si cuplarea celui de feedback, se introduce ˆ ın circuit cuvˆ antul
recept ¸ionat. Dac˘ a ˆ ın momentul nrestul nu este nul (cel put ¸in un element de
ˆ ınmagazinare cont ¸ine un element nenul) ˆ ınseamn˘ a c˘ a a ap˘ arut cel put ¸in o eroare
ˆ ın transmisie.
Exemplul 9.10 Codul de lungime 7generat de g(X) = 1 + X2+X3, poate fi
construit folosind circuitul liniar:
jr
j
Canal6¾ ZZ } ¾
?-?- – -r
-6r?-½½ >-+ +
u3u2u1u0
9.5 Exercit ¸ii
9.1S˘ a se determine toate codurile ciclice de lungime 5
(a) :peste Z2; ( b) :peste Z3.
9.2Construit ¸i o baz˘ a pentru cel mai mic cod ciclic de lungime ncare cont ¸ine
cuvˆ antul v:
(a)v= 1101000 ; n = 7;
(b)v= 010101 ; n = 6;
(c)v= 11011000 ; n = 8:
9.3Pentru fiecare din cuvintele de mai jos g˘ asit ¸i polinomul generator al celui mai
mic cod ciclic care cont ¸ine cuvˆ antul:

9.5. EXERCIT ¸II 107
010010 01100110 0101100
001000101110000 000010010000000 010111010000000
9.4S˘ a se afle polinomul generator al codului ciclic C¸ stiind o baz˘ a Sa sa:
S=f010;011;111g;
S=f1010;0101;1111g;
S=f0101;1010;1100g;
S=f1000;0100;0010;0001g;
S=f11000 ;01111 ;11110 ;01010g.
9.5ˆIntr-o codificare sistematic˘ a, codificat ¸i mesajul de informat ¸ie 1101 ˆ ıntr-un cu-
vˆ ant – cod al unui cod binar ciclic de lungime 7cu polinomul generator g(X) =
1 +X2+X3.
9.6Pentru codul definit mai sus codificat ¸i mesajele de informat ¸ie date de poli-
noamele: 1 +X2; X; X +X2+X3.
Fiind date cuvintele – cod X2+X4+X5;1+X+X2+X4; X2+X3+X4+X6,
g˘ asit ¸i mesajele de informat ¸ie corepunz˘ atoare.
9.7Construit ¸i circuite liniare pentru codificare ¸ si decodificare ale codului ciclic bi-
nar de lungime 7generat de polinomul g(X) = (1 + X2+X3)(1 + X).
9.8Care este lungimea minim˘ a a unui cod ciclic binar de polinom generator
g(X) = 1 + X2+X3+X4?
Construit ¸i circuite liniare pentru codificarea ¸ si decodificarea sa.
9.9Construit ¸i un circuit liniar pentru codificarea (15;11)- codului Hamming binar.
9.10 Construit ¸i matricea de control a codului ciclic binar de lungime n¸ si polinom
generator g(X):
n= 6; g(X) = 1 + X2;
n= 8; g(X) = 1 + X2;
n= 9; g(X) = 1 + X3+X6;
n= 15; g(X) = 1 + X+X4(genereaz˘ a codul Hamming);
n= 23; g(X) = 1 + X+X5+X6+X7+X9+X11(genereaz˘ a codul Golay);
n= 15; g(X) = 1 + X4+X6+X7+X8.
9.11 Sunt ciclice codurile liniare binare definite de matricile generatoare definite
mai jos ?
0
BBB@1 0 1 1 1 0 0
1 1 0 1 0 0 0
1 1 0 0 1 0 1
0 0 1 0 1 1 11
CCCA0
BBB@1 1 1 1 0 0 0
0 1 1 1 1 0 0
0 0 1 1 1 1 0
0 0 0 1 1 1 11
CCCA
9.12 Ar˘ atat ¸i c˘ a dac˘ a polinomul generator al unui cod binar se divide cu polinomul
1 +X, atunci toate cuvintele sale au pondere par˘ a.
Reciproca este adev˘ arat˘ a ?

108 PRELEGEREA 9. CODURI CICLICE
9.13 Dat ¸i o condit ¸ie necesar˘ a ¸ si suficient˘ a pentru polinomul generator al unui cod
ciclic de lungime impar˘ a pentru ca 11: : :1s˘ a fie cuvˆ ant – cod.
9.14 Ar˘ atat ¸i c˘ a dac˘ a g(X)genereaz˘ a un (n; k)- cod ciclic, atunci g(Xi)genereaz˘ a
un(in; kn )- cod ciclic.
Descriet ¸i codurile pentru g(X) = 1 + X¸ sig(X) = 1 + X+X3cun= 7.
9.15 Ar˘ atat ¸i c˘ a intersect ¸ia a dou˘ a coduri ciclice de aceea¸ si lungime este tot un cod
ciclic.
Care este polinomul s˘ au generator ?

Prelegerea 10
Decodificarea codurilor ciclice
Dup˘ a cum se ¸ stie de la codurile liniare, o caracterizare important˘ a a tipurilor de
erori care pot apare ˆ ın transmisia mesajelor este dat˘ a de sindrom. ˆIn cazul codurilor
ciclice este convenabil s˘ a lucr˘ am cu un sindrom polinomial .
Definit ¸ia 10.1 FieAun cod ciclic de lungime ncu polinomul generator g(X). Se
nume¸ ste ”sindrom polinomial” s(X)al cuvˆ antului ade lungime n, restul ˆ ımp˘ art ¸irii
polinomului corespunz˘ ator a(X)lag(X).
Deci, dac˘ a se transmite cuvˆ antul – cod q(X)g(X) ¸ si se prime¸ ste a(X), sindromul va

e(X) =a(X)¡q(X)g(X); grad (e(X)< grad (g(X)):
Observat ¸ii :
²Deoarece a(X)¡e(X) este divizibil cu g(X), rezult˘ a c˘ a resturile ˆ ımp˘ art ¸irii lui
a(X) ¸ sie(X) lag(X) coincid. Deci se poate vorbi despre ”tipul de eroare” e.
²Similar cu rat ¸ionamentul de la coduri liniare, sindromurile vor fi toate poli-
noamele din Zq[X] de grad < n¡k; pentru fiecare sindrom s(X) putem alege
o eroare – tip e(X) de pondere minim˘ a care are acel sindrom.
Structura algebric˘ a a codurilor ciclice permite construct ¸ia de metode de decodificare
(cu corectarea posibilelor erori aferente) mai eficiente decˆ at algoritmii similari de la
codurile liniare.
Vom ˆ ıncepe cu prezentarea unui exemplu.
Exemplul 10.1 FieAcodul Hamming de lungime 7, care are polinomul generator
g(X) = 1 + X+X3(Prelegerea 9, Exemplele 9:4¸ si9:6).
Eroare – tip Sindrom
0 0
1 1
X X
X2X2
X31 +X
X4X+X2
X51 +X+X2
X61 +X2
109

110 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Sindromul cuvˆ antului recept ¸ionat a= 1011001 este restul ˆ ımp˘ art ¸irii lui X6+X3+
X2+1laX3+X+1, adic˘ a s(X) =X+1. Se ¸ stie c˘ a orice cod Hamming corecteaz˘ a
o eroare, deci va fi util s˘ a avem un tabel cu sindromurile tuturor erorilor – tip
e(X) =Xi(0·i·6). Pentru c˘ a X+ 1este sindromul lui e(X) =X3, tragem
concluzia c˘ a a fost perturbat al treilea bit ¸ si vom decodifica
a(X)¡e(X) = 1011001 ¡0001000 = 1010001 :
O dificultate ˆ ın aceast˘ a metod˘ a de decodificare bazat˘ a pe sindrom const˘ a ˆ ın necesi-
tatea de a lista toate erorile – tip corespunz˘ atoare sindromurilor ¸ si de a le parcurge la
recept ¸ia fiec˘ arui cuvˆ ant. O simplificare este ˆ ıns˘ a propus˘ a de Meggitt (1960), bazat˘ a
pe structura ciclic˘ a a codurilor. Vom face corect ¸ia numai pentru ultimul caracter
(de grad maxim) al cuvˆ antului arecept ¸ionat. Dup˘ a aceea se efectueaz˘ a o permutare
ciclic˘ a ¸ si se studiaz˘ a din nou ultimul caracter. ˆIn acest fel, dup˘ a npermut˘ ari ciclice,
toate pozit ¸iile au fost corectate.
Metoda prezint˘ a dou˘ a avantaje majore:
1.Se folose¸ ste o list˘ a a erorilor – tip numai pentru sindromurile de grad n¡1.
(Astfel, ˆ ın Exemplul 10.1 numai un sindrom are gradul 6).
2.Calculul sindromului se efectueaz˘ a o singur˘ a dat˘ a– la ˆ ınceput – folosind cir-
cuitul liniar de ˆ ımp˘ art ¸ire cu g(X). Dup˘ a ce a funct ¸ionat nmomente, ˆ ın ele-
mentele deˆ ınmagazinare se g˘ ase¸ ste sindromul. Dup˘ a aceea se neglijeaz˘ a ie¸ sirea
¸ si se las˘ a s˘ a funct ¸ioneze circuitul. La fiecare pas (Prelegerea 8, Figura 8 :4) sin-
dromul se ˆ ınmult ¸e¸ ste cu X, avˆ and ca efect permutarea sa ciclic˘ a cu o pozit ¸ie.
Propozit ¸ia 10.1 Dac˘ a un cuvˆ ant a= (a0; a1; : : : ; a n¡1)are sindromul s(X), atunci
permutarea sa ciclic˘ a are sindromul s0(X), care este restul ˆ ımp˘ art ¸irii lui Xs(X)la
polinomul generator g(X).
Demonstrat ¸ie : Sindromul s(X) este dat de identitatea ˆ ımp˘ art ¸irii
a(X) =q(X)g(X) +s(X)
unde q(X) este cˆ atul ˆ ımp˘ art ¸irii lui a(X) lag(X). Deoarece se lucreaz˘ a ˆ ın alge-
bra polinoamelor modulo Xn¡1, permutarea ciclic˘ a a lui fa(X)gestefa0(X)g=
fXa(X)g, construit astfel:
a0(X) =Xa(X)¡an¡1Xn+an¡1=Xa(X)¡an¡1(Xn¡1) =
=Xa(X)¡an¡1g(X)h(X) =Xq(X)g(X) +Xs(X)¡an¡1g(X)h(X) =
=Xs(X) +g(X)[Xq(X)¡an¡1h(X)].
Rezult˘ a de aici c˘ a resturile ˆ ımp˘ art ¸irii lui a0(X) ¸ siXs(X) la polinomul generator
g(X) sunt acelea¸ si. 2
Se poate da acum

111
Algoritmul de decodificare Meggitt pntru (n; k)- codurile ciclice
binare :
1. Se listeaz˘ a toate sindromurile reprezentate prin polinoame de grad
n¡k¡1;
2. Cuvˆ antul recept ¸ionat aeste introdus ˆ ın circuitul liniar de ˆ ımp˘ art ¸ire cu
g(X), care va funct ¸iona ntact ¸i;
3. Dac˘ a sindromul rezultat esteˆ ın list˘ a, se modific˘ a bitul cel mai din dreapta
al cuvˆ antului primit;
4. Simultan se permut˘ a ciclic cuvˆ antul primit ¸ si ¸ si se las˘ a s˘ a funct ¸ioneze un
tact circuitul liniar (neglijˆ and ie¸ sirea), dup˘ a care se reia Pasul (3).
Se repet˘ a acest procedeu de n¡1 ori.
Exemplul 10.2 Reluˆ and codul Hamming din Exemplul 10.1, algoritmul va lucra
astfel:
– Singurul sindrom din list˘ a este 1 +X2.
– Dac˘ a se recept ¸ioneaz˘ a de exemplu a= 1011001 , el se introduce ˆ ın circuitul
liniar
j1j1 0-6¾
? ?– – – + + 1011001
Dup˘ a 7tact ¸i, ˆ ın elementele de ˆ ınmagazinare se obt ¸ine sindromul 110.
-110nu este pe list˘ a, deci a6a fost corect.
– Se permut˘ a circular aˆ ın1101100 ¸ si se las˘ a circuitul s˘ a funct ¸ioneze un tact;
elementele de ˆ ınmagazinare vor cont ¸ine 011.
– Nici acest sindrom nu este pe list˘ a, deci a5a fost corect, etc.
Pa¸ sii de lucru ai algoritmului sunt reprezentat ¸i ˆ ın tabloul:
Pas Bit Sindrom
7a6 110
8a5 011
9a4 111
10 a3101
11 a2 100
12 a1 010
13 a0 001
Deci singurul bit corectat (unde se transform˘ a 1ˆ ın0) este a3.
Exemplul 10.3 S˘ a consider˘ am codul ciclic binar generat de polinomul g(X) = 1 +
X4+X6+X7+X8. El este un (15;7)- cod de distant ¸˘ a d= 5(dup˘ a cum vom
vedea mai tˆ arziu) deci poate corecta 2erori. Lista complet˘ a a sindromurilor (deci a
tuturor erorilor – tip de pondere 0;1;2) are C0
15+C1
15+C2
15= 121 elemente. Folosind
algoritmul Meggitt, num˘ arul lor se reduce la 15, anume

112 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Tip eroare Sindrom
X14X7+X6+X5+X3
1 +X14X7+X6+X5+X3+ 1
X+X14X7+X6+X5+X
X2+X14X7+X6+X5+X3+X2
X3+X14X7+X6+X5
X4+X14X7+X6+X5+X4+X3
X5+X14X7+X6+X3
X6+X14X7+X5+X3
X7+X14X6+X5+X3
X8+X14X5+X4+X3+ 1
X9+X14X7+X4+X3+X+ 1
X10+X14X3+X2+X
X11+X14X7+X6+X5+X4+X2+X
X12+X14X7+X6+X4+X
X13+X14X7+X4+X3+X2
Deci, la primirea unui cuvˆ ant ade lungime 15, vom calcula sindromul ¸ si – dac˘ a
acesta se afl˘ a ˆ ın tabelul de sus – vom modifica bitul a14. Apoi se face o permutare
ciclic˘ a ¸ si se corecteaz˘ a a13, ¸ s.a.m.d.
De remarcat c˘ a ˆ ın Exemplul 10.3 decodificarea nu este complet˘ a: algoritmul Meggitt
corecteaz˘ a ˆ ın total 121 erori – tip. Privit ˆ ıns˘ a ca un cod liniar tabela de decodificare
va avea 215=27= 256 linii. Deci cu algoritmul Meggitt se vor corecta toate erorile
simple sau duble ignorˆ and complet posibilitatea altor tipuri de erori.
Vom ˆ ıncerca ˆ ın continuare s˘ a ˆ ımbun˘ at˘ at ¸im aceast˘ a situat ¸ie.
10.1 Corectarea pachetelor de erori
FieAµAnun (n; k) – cod ciclic peste Zqcapabil s˘ a corecteze terori.
Definit ¸ia 10.2 Pentru un polinom e(X) =Xse0(X)2Zq[X]cue0(0) = 1 , spunem
c˘ a ”lungimea pachet” a lui eeste1 +grad(e0(X)).
Cuvˆ antul e2Zn
qeste un ”pachet – tip de lungime j” dac˘ a gradul minim al
polinoamelor fXse(X)gestej¡1.
Dac˘ a se trimite un cuvˆ ant v¸ si se recept ¸ioneaz˘ a a, spunem c˘ a erorile au afectat
jpozit ¸ii dac˘ a eroarea – tip e=a¡veste un pachet – tip de lungime j.
Exemplul 10.4 Fien= 7 ¸ sie= 0101100 . Atunci e(X) = X+X3+X4=
X(1+X2+X3). Efectuˆ and toate permut˘ arile ciclice, se obt ¸ine c˘ a toate au grad mai
mare decˆ at 3, ˆ ınafar˘ a de fX6e(X)g=f1 +X2+X3g, tot de gradul 3. Deci eeste
un pachet – tip de lungime 4.
Dac˘ a se ia e= 1000100 ,1 +X4are gradul 4, dar permutarea ciclic˘ a fX3(1 +
X4)g=f1 +X3gare gradul 3, deci ¸ si acesta este un pachet – tip de lungime 4.

10.2. DETECTAREA PACHETELOR DE ERORI 113
Reamintim c˘ a la codurile liniare se construia un tablou standard ˆ ın care pe fiecare
linie se aflau toate cuvintele cu acela¸ si sindrom. Codul era corector de terori dac˘ a
toate cuvintele din Zn
qde pondere cel mult terau pe linii diferite; acestea constituiau
reprezentant ¸ii sindromurilor ¸ si ap˘ areau pe prima coloan˘ a, fiind considerate erori –
tip pentru fiecare linie.
Astfel de tabele se pot construi ¸ si pentru codurile ciclice; aici se iau ca reprezen-
tant ¸i ˆ ın fiecare linie, pachetele de erori de lungime minim˘ a. ˆIn acest fel, un cod
liniar corector de terori (independente) este corector de pachete de jerori dac˘ a
toate cuvintele de lungime – pachet cel mult jsunt reprezentant ¸i.
Lema 10.1 Dac˘ a un cod Aeste corector de terori independente ¸ si corector de
pachete de jerori, atunci t·j.
Demonstrat ¸ie : Exercit ¸iu. 2
Definit ¸ia 10.3 Un(n; k)- cod ciclic corecteaz˘ a pachetele de jerori dac˘ a orice
pachet – tip de lungime cel mult jeste un sindrom.
Exemplul 10.5 S˘ a consider˘ am toate pachetele – tip nenule de lungime cel mult 3
ˆ ınZ15
2. Fiecare astfel de cuvˆ ant este de forma
fe(X)g=fXse0(X)gcu0·s·14¸ sie0(X)2 f1;1 +X;1 +X2;1 +X+X2g.
ˆIn total sunt 15¢4 = 60 astfel de pachete de erori.
Exemplul 10.6 Fieg(X) = 1 + X+X2+X3+X6polinomul generator al unui
(15;9)- cod ciclic binar. El nu este un cod corector de 3erori independente pentru
c˘ a sunt 576tipuri de erori de pondere cel mult 3¸ si numai 215=29= 64 sindromuri.
ˆIn schimb sunt numai 61pachete – tip de lungime maxim 3(Exemplul 10.5, la care
se adaug˘ a pachetul nul), deci acest cod poate corecta pachetele de 3erori. Faptul c˘ a
este un cod ciclic corector de pachete de 3erori rezult˘ a din calculul sindromurilor
polinoamelor fXse0(X)gunde 0·s·14¸ sie0(X)2 f1;1+X;1+X2;1+X+X2g.
10.2 Detectarea pachetelor de erori
Teorema 10.1 Un(n; k)- cod ciclic detecteaz˘ a orice pachet de maxim n¡kerori.
Demonstrat ¸ie : Dac˘ a fe(X)geste o eroare – tip de lungime cel mult n¡k, atunci
e(X) =Xse0(X) cugrad(e0(X))< n¡k. Fie g(X) polinomul generator al codului,
cugrad(g(X)) =n¡k.
S ¸tim c˘ a fe(X)geste cuvˆ ant – cod () g(X)je(X).
Cum g(X)jXn¡1, el va fi prim cu Xs; deci fe(X)geste ˆ ın cod dac˘ a ¸ si numai
dac˘ a g(X)je0(X), absurd deoarece grad(e0(X))< n¡k=grad(g(X)). 2
Teorema 10.2 Proport ¸ia pachetelor – tip de j > n ¡kerori pe care nu le poate
detecta un (n; k)- cod ciclic este
q¡(n¡k¡1)
q¡1dac˘ a j=n¡k+ 1
q¡(n¡k)dac˘ a j > n¡k+ 1.

114 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Demonstrat ¸ie : Fiefe(X)g=fXse0(X)gunde grad(e0(X)) = j¡1. S˘ a num˘ ar˘ am
cˆ ate asemenea pachete – tip de erori sunt posibile. Ca prim ¸ si ultim coeficient al
luie0(X) poate fi orice element din Zqn f0g(ˆ ın num˘ ar de q¡1), iar coeficient ¸ii
intermediari pot fi orice elemente din Zq(ˆ ın num˘ ar de q). Deci sunt ( q¡1)2qj¡2
pachete – tip de eroare care ˆ ıncep ¸ si se termin˘ a ˆ ın aceea¸ si pozit ¸ie.
Un pachet – tip de eroare fe(X)gnu este detectat de un ( n; k) – cod ciclic
dac˘ a ¸ si numai dac˘ a fe(X)geste cuvˆ ant – cod, adic˘ a e0(X) = g(X)h(X), unde
grad(h(X)) = grad(e0(X))¡grad(g(X)) = j¡1¡(n¡k). Deci polinomul h(X)
arej¡n+kcoeficient ¸i. Apar dou˘ a situat ¸ii:
1.grad(h(X)) = 0, adic˘ a j=n¡k+ 1. Atunci h(X) se reduce la o constant˘ a
¸ si exist˘ a q¡1 asemenea polinoame h(X). Deci, raportul dintre num˘ arul pa-
chetelor – tip de lungime jnedetectabile ¸ si num˘ arul total al pachetelor – tip
de lungime jcare pot fi localizate este
q¡1
(q¡1)2qj¡2=q¡(n¡k¡1)
q¡1:
2.Dac˘ a grad(h(X))>0, adic˘ a j > n¡k+1, vom avea ( q¡1)2qj¡n+k¡2polinoame
h(X) posibile (pachete – tip de lungime j) nedetectabile. Rezult˘ a c˘ a raportul
de sus este ˆ ın acest caz
(q¡1)qj¡n+k¡2
(q¡1)2qj¡2=q¡(n¡k):
2
Exemplul 10.7 Codul ciclic definit ˆ ın Exemplul 10.6 detecteaz˘ a orice pachet de
maxim 9erori.
Dintre pachetele de 10erori posibile care pot apare, doar 1=28nu pot fi detectate,
iar dintre pachetele de 11¡15erori nu pot fi detectate 1=29.
10.3 Corectarea pachetelor de erori
Algoritmul este o variant˘ a a Algoritmului Meggitt.
FieA= (fg(X)g) un ( n; k) – cod ciclic corector de pachete – tip de jerori ¸ si
a2Zn
qun cuvˆ ant recept ¸ionat.
1. Se calculeaz˘ a sindromul fs(X)g;
2. Pentru fiecare i¸0 se calculeaz˘ a si(X) =Xis(X)mod g (X), pˆ an˘ a se
ajunge la un pcugrad(sp(X))< j¡1.
Atunci eroarea – tip este fe(X)g=fXn¡psp(X)g¸ si se genereaz˘ a cuvˆ antul
a+e.

10.4. TRANSPUNERE 115
Exemplul 10.8 Polinomul g(X) = 1 + X+X2+X3+X6genereaz˘ a un (15;9)-
cod ciclic corector de pachete – tip de 3erori. S˘ a folosim algoritmul de sus pentru a
decodifica a= 111100100001010 .
s(X) = 1+ X+X2+X3+X6+X11+X13(mod g (X)) = 1+ X3+X4+X5.
s1(X) =Xs(X) (mod g (X)) = 1 = X2+X3+X4+X5;
s2(X) =X2s(X) = 1 + X2+X4+X5;
s3(X) =X3s(X) = 1 + X2+X5;
s4(X) =X4s(X) = 1 + X2.
S-a ajuns la grad(s4(X)) = 2 <3¡1. Deci eroarea – tip este
fe(X)g=fX15¡4s4(X)g=X11+X13.
Cuvˆ antul – cod transmis a fost
v=a+e= 111100100001010 + 000000000001010 = 111100100000000 .
10.4 Transpunere
O metod˘ a eficient˘ a de utilizare a capacit˘ at ¸ilor de corectare a pachetelor – tip de erori
de c˘ atre codurile ciclice este utilizarea de transpuneri ( interleaving ).
ˆIn mod natural, mesajele de informat ¸ie m1;m2; : : :sunt codificate ˆ ın cuvintele
– cod c1;c2; : : :¸ si transmise prin canal ˆ ın ordinea codific˘ arii. Transmisia se poate
realiza ˆ ıns˘ a ¸ si dup˘ a o rearanjare a caracterelor de informat ¸ie din mai multe cuvinte
– cod consecutive.
Formal, prin transpunere la adˆ ancimea sse ˆ ınt ¸elege scrierea a scuvinte – cod
c1;c2; : : : ;csca linii ale unei matrici
Cs;n=0
BBBB@c11c12c13: : : c 1n
c21c22c23: : : c 2n

cs1cs2cs3: : : c sn1
CCCCA
¸ si transmiterea a nmesaje de lungime s, formate din coloanele matricii C:
c11c21: : : c s1; c 12c22: : : c s2; : : : ; c 1nc2n: : : c sn
Exemplul 10.9 S˘ a consider˘ am codul generat de G=0
B@1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 11
CA
¸ si ¸ sase mesaje codificate c1;c2; : : : ;c6, unde
c1= 100110 c2= 010101 c3= 111000
c4= 010101 c5= 100110 c6= 111000
Deci – la nivel de caracter – secvent ¸a va ar˘ ata:
100110 010101 111000 010101 100110 111000 :
Printr-o transpunere la adˆ ancimea 3, forma mesajelor este:
101 011 001 110 100 010 011 101 001 110 010 100
iar cu o transpunere la adˆ ancimea 6:
101011 011101 001001 110110 100010 010100 :

116 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Ce efect are o transpunere la adˆ ıncimea sasupra capacit˘ at ¸ii de corect ¸ie de pachete
– tip de erori ale codului ? R˘ aspunsul este dat de
Teorema 10.3 FieAun cod corector de pachete – tip de jerori. Dac˘ a Aeste
transpus la adˆ ancimea s, atunci toate pachetele de cel mult sjerori pot fi corectate,
ˆ ın ipoteza c˘ a fiecare cuvˆ ant – cod este afectat de maxim un pachet – tip de jerori.
Demonstrat ¸ie : Dac˘ a primul caracter al cuvˆ antului – cod ceste al i- lea caracter
transmis, atunci celelalte caractere apar pe pozit ¸iile i+s; i+ 2s; : : : ; i + (n¡1)s.
Orice pachet de maxim sjerori va produce un pachet – tip de maxim jerori ˆ ın c,
decicva putea fi reg˘ asit la recept ¸ie (dac˘ a el nu a mai fost cumva afectat ¸ si de alte
pachete de erori). 2
Restrict ¸ia ca fiecare cuvˆ ant – cod s˘ a fie afectat de cel mult un pachet de erori
impune condit ¸ia ca pachetele de erori s˘ a fie separate de perioade ˆ ın care transmisia
este corect˘ a, perioade suficient de lungi pentru evitarea situat ¸iei ca un bloc de s
cuvinte s˘ a fie afectat de dou˘ a pachete distincte de erori. ˆIn acest fel, crescˆ and s,
cre¸ ste ¸ si lungimea pachetului de erori care poate fi corectat, dar cre¸ ste ¸ si lungimea
perioadelor necesare de transmisie f˘ ar˘ a erori.
Exemplul 10.10 Codul din Exemplul 10.9 corecteaz˘ a o eroare. Folosind o transpu-
nere la adˆ ancimea 3, el poate corecta toate pachetele – tip de cel mult 3erori.
Un dezavantaj al transpunerii este acela c˘ a nu se poate face transmisia pˆ an˘ a nu au
fost codificate toate cele scuvinte, fapt care nu va permite folosirea direct˘ a a cir-
cuitelor liniare. Pentru a evita acest neajuns se va folosi un s-cadru de transpunere
ˆ ıntˆ arziat˘ a , care aranjeaz˘ a caracterele codificate, nu sub forma unei matrici Cci sub
form˘ a de ”scar˘ a” – ca ˆ ın tabelul:
c1;1c2;1: : : c s+1;1cs+2;1: : : c 2s+1;1c2s+2;1: : : c (n¡1)s+1;1: : :
c1;2c2;2: : : c s+1;2cs+2;2: : : c (n¡2)s+1;2: : :
c1;3 c2;3 : : : c (n¡3)s+1;3: : :

c1;n : : :
Deoarece transmisia se face pe coloane, spat ¸iile libere trebuiesc marcate. Acest lucru
se realizeaz˘ a practic introducˆ and pe aceste pozit ¸ii un caracter special ¤ 62Zq.
Exemplul 10.11 S˘ a relu˘ am mesajul codificat c1;c2; : : : ;c6din Exemplul 10.9.
Un1- cadru de transpunere ˆ ıntˆ arziat˘ a va fi
1 0 1 0 1 1 : : :
¤0 1 1 1 0 1 : : :
¤ ¤ 0 0 1 0 0 1 : : :
¤ ¤ ¤ 1 1 0 1 1 0 : : :
¤ ¤ ¤ ¤ 1 0 0 0 1 0 : : :
¤ ¤ ¤ ¤ ¤ 0 1 0 1 0 0 : : :
Scvent ¸a de caractere transmise este
1¤ ¤ ¤ ¤ ¤ 00¤ ¤ ¤ ¤ 110¤ ¤ ¤ 0101¤ ¤11111 ¤100000 : : :
Dac˘ a se folose¸ ste un 2- cadru de transpunere ˆ ıntˆ arziat˘ a, avem

10.4. TRANSPUNERE 117
1 0 1 0 1 1 : : :
¤ ¤ 0 1 1 1 0 1 : : :
¤ ¤ ¤ ¤ 0 0 1 0 0 1 : : :
¤ ¤ ¤ ¤ ¤ ¤ 1 1 0 1 1 0 : : :
¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ 1 0 0 0 1 0 : : :
¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ ¤ 0 1 0 1 0 0 : : :
iar secvent ¸a de caractere transmise este:
1¤ ¤ ¤ ¤ ¤ 0¤ ¤ ¤ ¤ ¤ 10¤ ¤ ¤ ¤ 01¤ ¤ ¤ ¤ 110¤ ¤ ¤ 110¤ ¤ ¤ : : :
Este u¸ sor de g˘ asit o teorem˘ a analog˘ a cu Teorema 10.3:
Teorema 10.4 FieAun cod capabil s˘ a corecteze pachetele – tip de jerori. Dac˘ a A
folose¸ ste un s- cadru de transpunere ˆ ınˆ arziat˘ a, atunci se poate corecta orice pachet
– tip de maxim j(sn+ 1) erori, ˆ ın ipoteza c˘ a orice cuvˆ ant – cod este afectat de cel
mult un pachet – tip de jerori.
Demonstrat ¸ie : Exercit ¸iu.
Ca o alt˘ a facilitate, pentru codificarea unui mesaj se folosesc adesea dou˘ a coduri.
De exemplu, pentru codificarea muzicii pe compact – discuri se utilizeaz˘ a dou˘ a coduri
Reed – Solomon, iar NASA ¸ si Agent ¸ia Spat ¸ial˘ a European˘ a folosesc dou˘ a coduri
convolut ¸ionale (ambele vor fi definite mai tˆ arziu).
FieCi(i= 1;2) dou˘ a ( ni; ki) coduri liniare. Transpunerea ˆ ıncruci¸ sat˘ a a lui C1
cuC2se realizeaz˘ a astfel:
1. Mesajele de informat ¸ie sunt codificate cu C1iar cuvintele – cod rezultate
sunt transpuse la adˆ ancimea k2.
2. Coloanele obt ¸inute ˆ ın acest proces de transpunere (care sunt de lungime
k2) – privite ca mesaje de informat ¸ie – sunt codificate de codul C2.
3. Cuvintele – cod rezultate sunt transpuse la o adˆ ancime sfixat˘ a, sau cu
uns- cadru de transpunere ˆ ıntˆ arziat˘ a.
Avantajul principal al celei de-a doua codific˘ ari este urm˘ atorul:
Fied1; d2distant ¸ele celor dou˘ a coduri. C2poate detecta d2¡1 erori (nu ne punem
problema corect˘ arii lor). Dac˘ a s-au detectat erori pentru un cuvˆ ant – cod din C2,
atunci toate caracterele acestui cuvˆ ant sunt marcate ¸ si tratate drept simboluri care
pot fi incorecte. Se consider˘ a apoi cuvintele – cod din C1. Dac˘ a n1¡d1+1 caractere
dintr-un cuvˆ ant – cod din C1sunt corecte, atunci se pot determina unic celelalte
d1¡1 caractere (deoarece este imposibil ca dou˘ a cuvinte – cod distincte din C1s˘ a
coincid˘ a pe n1¡d1+1 pozit ¸ii, ele diferind pe minim d1pozit ¸ii; afirmat ¸ia este bazat˘ a
¸ si pe faptul c˘ a pozit ¸iile caracterelor corecte sunt cunoscute).
Deci, dac˘ a un cuvˆ ant – cod din C1are cel mult d1¡1 simboluri marcate ¸ si se ¸ stie
c˘ a toate caracterele gre¸ site sunt marcate, cuvintele – cod pot fi decodificate corect.

118 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
Cˆ at de mare este un pachet de erori pe care ˆ ıl poate corecta aceast˘ a schem˘ a ?
S˘ a presupunem c˘ a C2a fost transpus la adˆ ancimea s, ¸ si c˘ a orice cuvˆ ant – cod (atˆ at
dinC1cˆ at ¸ si din C2) a fost afectat de cel mult un pachet de erori. Dac˘ a apare un
pachet de cel mult s(d2¡1) erori, atunci el va afecta maxim d2¡1 simboluri din
fiecare cuvˆ ant – cod din C2. Deci aceste erori vor fi detectate ¸ si se vor marca toate
caracterele cuvintelor – cod implicate. Dac˘ a s·d1¡1, atunci orice cuvˆ ant – cod
dinC1are cel mult d1¡1 simboluri marcate. ˆIn ipoteza c˘ a nu exist˘ a decˆ at maxim
un pachet de erori care l-a perturbat, caracterele marcate pot fi corectate.
Am ar˘ atat astfel:
Teorema 10.5 Fie o codificare care folose¸ ste transpunerea ˆ ıncruci¸ sat˘ a a (n1; k1)-
codului C1cu(n2; k2)- codul C1,C2fiind transpus la adˆ ancimea s(s·d1¡1).
Dac˘ a fiecare cuvˆ ant – cod este afectat de cel mult un pachet – tip de erori, atunci
toate pachetele – tip de erori de lungime maxim s(d2¡1)pot fi corectate.
(d1; d2sunt distant ¸ele minime ale celor dou˘ a coduri).
Exemplul 10.12 FieC1¸ siK2codurile binare, definite respectiv de matricile gene-
ratoare
G1=0
BBB@1 0 0 0 1 1 1 0
0 1 0 0 1 1 0 1
0 0 1 0 1 0 1 1
0 0 0 1 0 1 1 11
CCCAG2=0
B@1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 11
CA.
Deci, n1= 8; k1= 4; d1= 4; n 2= 6; k2= 3; d2= 3.
S˘ a codific˘ am mesajele de informat ¸ie m1= 1000 ;m2= 1100 ;m3= 1010
folosind o transpunere ˆ ıncruci¸ sat˘ a a lui C1cuK2; C2fiind transpus la o adˆ ancime
s= 3 = d1¡1.
Codificarea mesajelor de informt ¸ie cu codul C1d˘ a:
c1=m1G1= 10001110 ;c2=m2G1= 11000011 ;c3=m3G1= 10100101 :
Transpunerea acestor cuvinte la adˆ ancimea k2= 3conduce la mesajul
111 010 001 000 100 101 110 011
Aceste 8mesaje de informat ¸ie sunt codificate cu C2ˆ ın:
c0
1= 111000 ;c0
2= 010101 ;c0
3= 001011 ;c0
4= 000000 ;
c0
5= 100110 ;c0
6= 101101 ;c0
7= 110011 ;c0
8= 011110 :
¸ si apoi transpuse la adˆ ancimea s= 3 (c0
6¸ sic0
7vor fi transpuse cu urm˘ atorul
cuvˆ ant – cod c0
9obt ¸inut de urm˘ atoarele trei mesaje de informat ¸ie m4;m5;m6).
Scvent ¸a de caractere transmis˘ a va ˆ ıncepe cu
100 110 101 010 001 011 011 000 001 011 010 001 : : :
Conform Teoremei 10.5, folosind C2pentru a detecta d2¡1 = 2 erori, ¸ si apoi C1
pentru a corecta toate caracterele marcate, se pot corecta ˆ ın ansamblu toate pachetele
de cel mult s(d2¡1) = ( d1¡1)(d2¡1) = 6 erori.

10.5. EXERCIT ¸II 119
De exemplu, s˘ a presupunem c˘ a primii 6bit ¸i au fost transmi¸ si incorect, deci s-a
primit 011 001 101 010 001 011 : : :. Eliminˆ and efectul transpunerii la adˆ ancimea
s= 3, se ajunge la cuvintele
001000 100101 111011
(care comparate respectiv cu c0
1;c0
2;c0
3au erori fiecare pe primele dou˘ a pozit ¸ii). Deoa-
rece sindromurile sunt nenule, C2va detecta erori ˆ ın toate cele trei cuvinte, deci tot ¸i
cei18bit ¸i sunt marcat ¸i (ˆ ıi vom ˆ ınlocui cu ¤).
Presupunˆ and c˘ a nu mai sunt alte erori, dup˘ a un procedeu similar se obt ¸in cuvin-
telec0
4; : : : ;c0
8, f˘ ar˘ a caractere marcate.
Eliminˆ and acum efectul transpunerii la adˆ ancimea k2= 3, se obt ¸in cuvintele
c1=¤ ¤ ¤01110 ;c2=¤ ¤ ¤00011 ;c3=¤ ¤100101 :
Exist˘ a o modalitate unic˘ a de a ajunge la cuvinte – cod din C1prin ˆ ınlocuirea ¤cu
caractere 0sau1.
10.5 Exercit ¸ii
10.1 Demonstrat ¸i Lema 10.1
10.2 Ar˘ atat ¸i c˘ a dac˘ a un cod ciclic detecteaz˘ a o eroare – tip e, atunci detecteaz˘ a
toate erorile – tip obt ¸inute prin permut˘ ari ciclice ale lui e.
10.3 Verificat ¸i c˘ a pachetele ciclice – tip de erori de lungime 3dinZ15
2au sindromuri
diferite pentru codul din Exemplul 10.6.
10.4 Ar˘ atat ¸i c˘ a g(X) = 1+ X2+X4+X5genereaz˘ a un (15;10)- cod ciclic corector
de pachete de maxim 2erori. Este acesta un cod corector de 2erori independente ?
10.5 Ar˘ atat ¸i c˘ a g(X) = 1 + X3+X4+X5+X6genereaz˘ a un (15;9)- cod ci-
clic corector de pachete de maxim 3erori. Este acesta un cod corector de 3erori
independente ?
10.6 Ar˘ atat ¸i c˘ a g(X) = 1 + X4+X6+X7+X8genereaz˘ a un (15;7)- cod ciclic
corector de 2erori independente ¸ si de pachete de 4erori.
10.7 Fie codul din Exemplul 10.6. S˘ a se decodifice mesajele:
101101110001000 ; 001101100010101 ; 100110101010011
101101000010111 ; 000000111110000
10.8 Fie(15;10)- codul ciclic binar generat de g(X) = 1 + X2+X4+X5:
Cˆ ate erori au pachetele – tip pe care le poate corecta ?
Decodificat ¸i mesajele:
010101000010010 ; 011010010010100 ; 001101000000100
000100010100101 ; 000000011111001 .

120 PRELEGEREA 10. DECODIFICAREA CODURILOR CICLICE
10.9 Fie codul generat de polinomul g(X) = 1 + X+X2+X3+X6. Codificat ¸i
mesajele de informat ¸ie m1(X) = 1 ; m 2(X) =X2; m 3(X) = 1 + X;
m4(X) = 1 + X2; m 5(X) =X3; m 6(X) = 1 .
Determinat ¸i ¸ sirul de bit ¸i transmi¸ si dac˘ a se folose¸ ste o transpunere la adˆ ancimea
sunde
(a)s= 1 ( b)s= 2 ( c)s= 3.
10.10 Ce secvent ¸˘ a de caractere este transmis˘ a dac˘ a se folose¸ ste un 0- cadru de
transpunere ˆ ıntˆ arziat˘ a ?
10.11 Demonstrat ¸i Teorema 10.4
10.12 Folosind codurile definite ˆ ın Exemplul 10.12, s˘ a se codifice urm˘ atoarele me-
saje de informat ¸ie prin transpunerea ˆ ıncruci¸ sat˘ a a lui C1cuC2:
(a)m1= 0110 ;m2= 1011 ;m3= 1111 ; s = 2
(b)m1= 0110 ;m2= 1011 ;m3= 1111 ; s = 3
(c)m1= 0010 ;m2= 1111 ;m3= 1010 ; s = 3
(d)m1= 1000 ;m2= 0100 ;m3= 0010 ;m4= 0001 ;m5= 0011 ;
m6= 0100 s= 3
10.13 Folosind codurile din Exemplul 10.12 au fost obt ¸inute prin transpunere
ˆ ıncruci¸ sat˘ a a lui C1cuC2la adˆ ancimea s= 3, urm˘ atoarele secvent ¸e binare:
(a) 000001001110110001000111000111000111000000000000000000 : : :
(b) 100011001111101010011001111010100110100100011101000100 : : :
Aflat ¸i meajele de informat ¸ie m1;m2;m3.
10.14 G˘ asit ¸i un rezultat analog Teoremei 10.5 dac˘ a pentru C2se folose¸ ste s- cadrul
de transpunere ˆ ıntˆ arziat˘ a ˆ ın loc de s- transpunere.

Prelegerea 11
Alte definit ¸ii ale codurilor ciclice
Primele dou˘ a sect ¸iuni ale acestei prelegeri vor treceˆ ın revist˘ a cˆ ateva not ¸iuni algebrice
fundamentale ˆ ın construirea codurilor ciclice.
11.1 Elemente primitive ˆ ın extensii Galois
Definit ¸ia 11.1 FieFun corp finit. Un element a2Fare ordin n(n¸1)dac˘ a
an= 1¸ siak6= 1;8k;0< k < n . Vom scrie ord(a) =n.
Propozit ¸ia 11.1 ˆIntr-un corp finit:
– Orice element nenul are un ordin finit;
– Dac˘ a n=ord(a)atunci a; a2; : : : ; ansunt distincte;
-ak= 1dac˘ a ¸ si numai dac˘ a ord(a)jk(ord(a)este divizor al lui k).
Demonstrat ¸ie : Fie a2F; a6= 0. Cum Feste finit, elementele a; a2; a3; : : :nu pot
fi toate distincte. Vom alege cel mai mic npentru care 9i an+i=ai. Relat ¸ia se
poate simplifica (lucr˘ am ˆ ıntr-un corp) cu ai¸ si se obt ¸ine an= 1. Din construct ¸ie,
a; a2; : : : ; ansunt distincte, deci neste ordinul lui a.
Pentru k=niavem ak= (an)i= 1i= 1. Reciproc, s˘ a presupunem ak= 1.
Teorema ˆ ımp˘ art ¸irii cu rest d˘ a k=qn+r; r < n . Avem 1 = ak=aqnar=ar.
Cum r < n rezult˘ a r= 0. 2
Definit ¸ia 11.2 Un element a2Feste primitiv dac˘ a toate puterile sale genereaz˘ a
Fn f0g.
Observat ¸ie : Dac˘ a Farerelemente, atunci un element este primitv dac˘ a ¸ si numai
dac˘ a are ordinul r¡1.
Teorema 11.1 Orice corp finit are cel put ¸in un element primitiv.
Demonstrat ¸ie : Cum Feste finit ( card(F) =r), se poate g˘ asi un element a2Fde
ordin nmaxim. Evident n·r¡1. Mai trebuie ar˘ atat c˘ a n¸r¡1.
Fieb2Fde ordin s. S˘ a-l descompunem pe sˆ ın factori primi: s=piqj: : :(p; q; : : :
numere prime). La rˆ andul lui n=ptn0unde n0nu este divizibil cu p(iartpoate fi
eventual zero).
121

122 PRELEGEREA 11. ALTE DEFINIT ¸II ALE CODURILOR CICLICE
S˘ a consider˘ am s0=s=pi(deci s=pis0) ¸ si fie c=aptbs02F. Vrem s˘ a ar˘ at˘ am c˘ a
care ordinul m=pin0. Pentru aceasta, avem:
cm=aptmbs0m=aptn0pibpis0n0= (an)pi(bs)n0= 1pi1n0= 1.
Mai r˘ amˆ ane de ar˘ atat c˘ a cm0= 1 =)m0¸m. Este suficient s˘ a verific˘ am c˘ a pi
¸ sin0sunt divizori ai lui m0; deoarece ei sunt primi intre ei, va rezulta c˘ a produsul
m=pin0este de asemenea divizor al lui m0.
Din calculul 1 = ( cm0)n0=apin0m0bs0m0= (an)m0bs0m0=bs0m0rezult˘ a (Propozit ¸ia
11.1) c˘ a ordinul s=pis0al lui bdivide s0m0; deci pijm0.
ˆIn plus, din 1 = ( cm0)p0=aptpim0bpis0m0=aptpim0(bs)m0=aptpim0rezult˘ a c˘ a ordinul
n=ptn0al lui adivide ptpim0; deci n0jpim0.
Cum neste cel mai mare ordin ale elementelor din F, avem pin0·ptn0, deci
i·t, adic˘ a pidivide n=pin0.
ˆIn mod similar, tot ¸i factorii lui ssunt divizori ai lui n, deci sjn.
Am ar˘ atat urm˘ atoarea afirmat ¸ie:
8b2F=)ord(b)jn
Deci beste p r˘ ad˘ acin˘ a a polinomului Xn¡1 = 0, de unde rezult˘ a c˘ a polinomul
Xn¡1 = 0 are r¡1 r˘ ad˘ acini, adic˘ a r¡1·n. 2
FieFun corp fixat ¸ si f(X)2F[X] un polinom arbitrar. Spunem c˘ a a2Feste
r˘ ad˘ acin˘ a a lui fdac˘ a f(a) = 0.
Se poate demonstra imediat afirmat ¸ia:
Propozit ¸ia 11.2 Dac˘ a un polinom fare r˘ ad˘ acinile distincte a1; a2; : : : ; a natunci
el este divizibil cu polinomul (X¡a1)(X¡a2): : :(X¡an).
Exemplul 11.1 Polinomul X3+ 1are o r˘ ad˘ acin˘ a 1ˆ ınZ2. Deci X3+ 1se divide
cuX+ 1:
X3+ 1 = ( X+ 1)( X2+X+ 1)
Aceasta este o factorizare complet˘ a; deoarece X2+X+ 1nu are r˘ ad˘ acini ˆ ın Z2,
el nu poate fi descompus ˆ ın produsul a dou˘ a polinoame de gradul 1. Acela¸ si polinom
X3+ 1are ˆ ın Z3pe2ca r˘ ad˘ acin˘ a tripl˘ a, deci aici putem scrie:
X3+ 1 = ( X+ 1)3.
Rezult˘ a c˘ a factorizarea unui polinom depinde de corpul ˆ ın care este definit.
Din Teorema 11.1 ¸ si Propozit ¸ia 11.2 rezult˘ a ca dac˘ a a2Feste un element de
ordin n, atunci Xn¡1 se poate descompune ˆ ın
Xn¡1 = ( X¡a)(X¡a2): : :(X¡an):
Definit ¸ia 11.3 Un polinom f(X)2F[X]de grad neste ireductibil dac˘ a nu se poate
descompune ˆ ın produsul a dou˘ a polinoame din F[X]de grad mai mic decˆ at n.
Observat ¸ii ;
²Orice polinom liniar este ireductibil. Pentru polinoame de grad cel put ¸in 2,
Propozit ¸ia 11.2 afirm˘ a c˘ a:
Un polinom ireductibil ˆ ıntr-un corp nu are r˘ ad˘ acini ˆ ın acel corp.
Este interesant c˘ a reciproca nu este adev˘ arat˘ a decˆ at pentru polinoamele de
grad 2 ¸ si 3. Astfel, polinomul f(X) = ( X2+X+ 1)22Z2[X], de¸ si nu are
r˘ ad˘ acini ˆ ın Z2, este reductibil.

11.2. POLINOAME MINIMALE 123
²ˆInRsingurele polinoame ireductibile sunt de gradul 1 sau 2. Dac˘ a un polinom
are grad impar, el are sigur o r˘ ad˘ acin˘ a real˘ a, iar dac˘ a este de grad par, atunci
are sau cel put ¸in o r˘ ad˘ acin˘ a real˘ a, sau cel put ¸in dou˘ a r˘ ad˘ acini complexe de
forma a§ib.ˆIn acest ultim caz, el se va divide cu ( x¡a)2+b2, care este un
polinom din R[X] de gradul 2.
²ˆIn corpul complex C, teorema fundamental˘ a a algebrei asigur˘ a c˘ a orice polinom
ireductibil are gradul 1.
Definit ¸ia 11.4 Caracteristica unui corp finit Feste cel mai mic num˘ ar de termeni
ai sumei S= 1 + 1 + : : :+ 1cu proprietatea S= 0.
Propozit ¸ia 11.3 Caracteristica unui corp finit este num˘ ar prim.
Demonstrat ¸ie : S˘ a consider˘ am elementele ai= 1 + 1 + : : :+ 1 de cˆ ate itermeni
fiecare. Deoarece nu pot fi o infinitate de valori distincte, fie pminim cu proprietatea
9i; a i=ai+p. Rezult˘ a ap=ai+p¡ai= 0. Deci Fare caracteristica p.
Presupunem p=stcu 1·s < p . Evident 0 = ast=as+as+: : :+as(ttermeni).
Deoarece s < p avem as6= 0. ˆImp˘ art ¸ind relat ¸ia cu asse obt ¸ine 0 = 1+1+ : : :+1 = at.
Deci t=p. 2
Corolarul 11.1 Orice corp de caracteristic˘ a peste o extensie a lui Zp.
Demonstrat ¸ie : Exercit ¸iu.
Corolarul 11.2 GF(qr)este un corp de caracteristic˘ a q.
Demonstrat ¸ie : Reamintim c˘ a GF(qr) cont ¸ine toate polinoamele din Zq[X] de grad
cel mult r¡1.ˆIn particular, polinoamele de grad 0 (constantele) formeaz˘ a un
subcorp izomorf cu Zqcare are caracteristica q. 2
Propozit ¸ia 11.4 ˆIntr-un corp de caracteristic˘ a pavem (a+b)p=ap+bp
Demonstrat ¸ie : Se folose¸ ste binomul lui Newton, ˆ ın care Ck
p= 0;8k;0< k < p .2
11.2 Polinoame minimale
ˆIn cele ce urmeaz˘ a vom restrˆ ange studiul la cazul F=Zq; qnum˘ ar prim.
Definit ¸ia 11.5 Fie¯un element dintr-o extensie a lui Zq. Se nume¸ ste ”polinom
minimal” al lui ¯polinomul normat g(X)2Zq[X]de grad minim, cu g(¯) = 0 .
Exemplul 11.2 S˘ a consider˘ am extensia GF(23)generat˘ a de r˘ ad˘ acina ®a plinomu-
lui1+X+X3. Deoarece ®este primitiv, avem GF(23) =f0;1; ®; ®2; ®3; ®4; ®5; ®6g.
Polinoamele minimale ale fiec˘ arui element sunt date ˆ ın tabelul:
Element Polinom minimal
0 X
1 1 + X
®; ®2; ®41 +X+X3
®3; ®5; ®61 +X2+X3

124 PRELEGEREA 11. ALTE DEFINIT ¸II ALE CODURILOR CICLICE
Propozit ¸ia 11.5 Un polinom minimal g(X)2Zq[X]este ireductibil peste Zq.
Demonstrat ¸ie : Dac˘ a ar exista descompunerea g(X) =u(X)v(X) cuu(X); v(X)2
Zq[X], atunci vom avea u(¯) = 0 sau v(¯) = 0, ceea ce contrazice definit ¸ia polino-
mului minimal pentru ¯. 2
Propozit ¸ia 11.6 Dac˘ a f(X)2Zq[X]verific˘ a f(¯) = 0 atunci g(X)jf(X).
Demonstrat ¸ie : Conform identit˘ at ¸ii ˆ ımp˘ art ¸irii, avem
f(X) =q(X)g(X) +r(X) cugrad(r(X))< grad (g(X)).
Cum f(¯) = 0 ; g(¯) = 0, va rezulta r(¯) = 0, contradict ¸ie.
Singura posibilitate r˘ amˆ ane r(X)´0, deci f(X) =q(X)g(X). 2
Din Propozit ¸iile 11.5 ¸ si 11.6 rezult˘ a c˘ a un polinom normat peste Zqcare admite
pe¯ca r˘ ad˘ acin˘ a este polinom minimal al lui ¯. Acest polinom este unic.
Teorema 11.2 Fie¯2GF(qk). Atunci exist˘ a un polinom minimal al lui ¯de grad
cel mult k.
Demonstrat ¸ie : Dup˘ a cum am v˘ azut (Prelegerea 8), GF(qk) are dimensiunea k. O
baz˘ a a lui este f1g;fXg; : : : ;fXk¡1g. Deci cele k+ 1 elemente 1 ; ¯; ¯2; : : : ; ¯k2
GF(qk) sunt liniar dependente.
Rezult˘ a c˘ a exist˘ a un polinom de grad maxim kpentru care ¯este r˘ ad˘ acin˘ a. 2
Teorema 11.3 Solut ¸iile ecuat ¸iei Xq¡1¡1 = 0 dau elementele nenule din Zq.
Demonstrat ¸ie : Elementele nenule din Zqformeaz˘ a grup multiplicativ. Ordinul
fiec˘ arui element divide ordinul grupului, care este q¡1 (Teorema 11.1).
Fie¯2Zqnf0g; subgrupul ciclic generat de ¯este 1 ; ¯; ¯2; : : : ; ¯t¡1unde bt= 1
¸ sitjq¡1. Deci ¯q¡1= 1.
ˆIn plus, ecuat ¸ia Xq¡1¡1 = 0 are q¡1 r˘ ad˘ acini. 2
Teorema 11.4 Xm¡1jXn¡1() mjn:
Demonstrat ¸ie : ”(”: Fie n=md. Cum Y¡1 divide pe Yd¡1, dac˘ a se ia Y=Xm,
vom avea Xm¡1jXmd¡1.
”)”: S˘ a presupunem c˘ a Xm¡1jXn¡1 ¸ si fie n=md+s;(s < m ). Avem
Xn¡1 =Xs(Xmd¡1) +Xs¡1 =q(X)(Xm¡1) +r(X) cugrad(r(X)) =s < m:
Pentru a verifica ipoteza, trebuie ca s= 0, deci n=md. 2
Teorema 11.5 Fief(X)2Zq[X]¸ si¯o r˘ ad˘ acin˘ a a sa (eventual dintr-o extensie
a lui Zq). Atunci ¸ si ¯qeste r˘ ad˘ acin˘ a a lui f(X).
Demonstrat ¸ie : Scriem f(X) =a0+a1X+: : :+anXn. Cum Zqeste corp de carac-
teristic˘ a q, este adev˘ arat˘ a relat ¸ia ( a+b)q=aq+bq(Propozit ¸ia 11.4).
De asemenea (Teorema 11.3) 8a2Zqn f0gavem aq¡1¡1 = 0, deci aq=a.
Atunci se poate scrie
(f(X))q=aq
0+aq
1Xq+: : :+aq
n(Xn)q=a0+a1Xq+: : :+anXnq=f(Xq).
ˆIn particular, f(¯q) = (f(¯))q= 0. 2

11.2. POLINOAME MINIMALE 125
Teorema 11.6 Orice polinom normat ireductibil peste Zqde grad meste un factor
al polinomului Xqm¡X.
Demonstrat ¸ie : Dac˘ a g(X) =X, afirmat ¸ia este banal˘ a.
S˘ a presupunem c˘ a g(X)6=X¸ si fie ¯2GF(qm) o r˘ ad˘ acin˘ a nenul˘ a a sa, deci
g(¯) = 0. Atunci (Teorema 11.3) ¯satisface ecuat ¸ia Xqm¡1¡1 = 0, deci (Propozit ¸ia
11.6) Xqm¡1¡1 se divide cu polinomul minimal g(X). 2
Teorema 11.7 Orice factor ireductibil g(X)2Zq[X]al lui Xqm¡Xare gradul cel
mult m.
Demonstrat ¸ie : Fie g(X)jXqm¡X, ireductibil peste Zq, cugrad(g(X)) =k.
Vom considera algebra polinoamelor modulo g(X), ˆ ın care lu˘ am ®=fXg. Se
¸ stie (Prelegerea 8) c˘ a g(®) = 0. Un element oarecare din aceast˘ a algebr˘ a este de
forma
¯=a0+a1®+: : :+ak¡1®k¡1:
Atunci ¯qm=aqm
0+aqm
1®qm+: : :+aqm
k¡1(®k¡1)qm=a0+a1®qm+: : :+ak¡1(®qm)k¡1=
a0+a1®+: : :+ak¡1®k¡1=¯
deoarece GF(qm) are tot caracteristica qca ¸ siZq, iar®fiind o r˘ ad˘ acin˘ a a lui g(X),
este r˘ ad˘ acin˘ a ¸ si a lui Xqm¡X, deci ®qm=®, de unde rezult˘ a ®jqm=®j8j¸0.
Am obt ¸inut ˆ ın final faptul c˘ a ¯este o solut ¸ie a ecuat ¸iei Xqm¡X= 0. Sunt
posibile qkasemenea elemente ¯distincte, iar cum ecuat ¸ia are qmr˘ ad˘ acini, rezult˘ a
qk·qmsauk·m. 2
Teorema 11.8 Fie¯2GF(qm)de polinom minimal g(X); grad (g(X)) = k¸ si
ord(¯) =t. Atunci
(i)tjqk¡1;
(ii)keste minim cu proprietatea (i).
Demonstrat ¸ie : S ¸tim (Teorema 11.6) c˘ a g(X) este un factor al lui Xqk¡X; deci
¯qk=¯, de unde rezult˘ a tjqk¡1.
S˘ a presupunem acum c˘ a exist˘ a p < k cutjqp¡1. Atunci ¯qp¡1= 1, adic˘ a ¯este
o r˘ ad˘ acin˘ a a ecuat ¸iei Xqp¡X= 0, deci g(X) este un factor al polinomului Xqp¡X.
Conform Teoremei 11.7, rezult˘ a k·p, contradict ¸ie. 2
Teorema 11.9 Fie polinomul g(X)2Zq[X]; grad (g(X)) = m¸ si¯2GF(qm)o
r˘ ad˘ acin˘ a a sa. Atunci ¯; ¯q; ¯q2; : : : ; ¯qm¡1sunt toate r˘ ad˘ acinile lui g(X).
Demonstrat ¸ie : Deoarece g(¯) = 0, avem – conform Teoremei 11.5 – c˘ a ¯q; ¯q2; : : : ;
¯qm¡1sunt ¸ si ele r˘ ad˘ acini ale lui g(X). De asemenea, conform Teoremei 11.6, ¯este
r˘ ad˘ acin˘ a a lui Xqm¡X, adic˘ a ¯qm=¯. Mai r˘ amˆ ane de ar˘ atat c˘ a aceste r˘ ad˘ acini
sunt distincte. Presupunem c˘ a exist˘ a 0 ·i < j < m cu¯qi=¯qj. Avem
¯=¯qm=³
¯qj´qm¡j

¯qi´qm¡j
=¯qm+i¡j
Deci ¯este r˘ ad˘ acin˘ a a polinomului Xqm+i¡j=X¸ si – cu Teorema 11.7,
grad(g(X)) =m·m+i¡j < m , contradict ¸ie. 2
Din Teorema 11.9 rezult˘ a c˘ a ˆ ın extensia GF(qm)[X] se poate scrie
g(X) = (X¡¯)(X¡¯q): : :(X¡¯qm¡1):

126 PRELEGEREA 11. ALTE DEFINIT ¸II ALE CODURILOR CICLICE
Teorema 11.10 Fieg(X)un polinom normat ireductibil peste Zq; grad (g(X)) =
m, ¸ si¯o r˘ ad˘ acin˘ a a sa din GF(qm). Atunci toate r˘ ad˘ acinile lui g(X)au acela¸ si
ordin.
Demonstrat ¸ie : Fie p=ord(¯); p0=ord(¯qj) care – conform Teoremei 11.9 – este
tot r˘ ad˘ acin˘ a a lui g(X). Avem:³
¯qj´p= (¯p)qj= 1 ¸ si deci p0jp.
De asemenea,
¯p0=³
¯qm´p0
=µ³
¯qj´qm¡j¶p0
=µ³
¯qj´p0¶qm¡j
= 1 )pjp0.
S-a mai folosit Teorema 11.8, conform c˘ areia pdivide qm¡1 dar nu divide nici
un num˘ ar de forma qs¡1 cus < m .
Deci p=p0. 2
11.3 Definirea codurilor ciclice prin r˘ ad˘ acini
O alt˘ a metod˘ a de definire a unui cod ciclic const˘ a ˆ ın a da init ¸ial toate r˘ ad˘ acinile
(eventual ˆ ıntr-o extensie a lui Zq) cuvintelor – cod, considerate ca polinoame.
Definit ¸ia 11.6 Fie®1; ®2; : : : ; ® relemente dintr-o extensie a lui Zq. Codul ciclic
Aeste format din toate elementele ff(X)gdin algebra polinoamelor modulo Xn¡1
care admit pe ®i;1·i·rca r˘ ad˘ acini simple.
De remarcat c˘ a ˆ ın aceast˘ a definit ¸ie neste deocamdat˘ a nedeterminat.
Conform Definit ¸iei 11.6, f(X) se va divide cu fiecare polinom minimal mi(X)
corespunz˘ ator r˘ ad˘ acinii ®i(1·i·r). Deci polinomul generator al codului ciclic
este
g(X) =cmmmc fm1(X); m2(X); : : : ; m r(X)g:
Propozit ¸ia 11.7 A= (fg(X)g).
Demonstrat ¸ie : Este l˘ asat˘ a ca exercit ¸iu.
Deoarece polinomul generator g(X) divide pe Xn¡1, rezult˘ a c˘ a fiecare ®ieste
r˘ ad˘ acin˘ a a lui Xn¡1. Deci ordinul ord(®i) al fiec˘ arei r˘ ad˘ acini ®i(1·i·r) va
divide pe n. O modalitate natural˘ a de definire a lui neste
n=cmmmc ford(®1); ord(®2); : : : ; ord (®r)g
Un caz particular important este acela ˆ ın care toate r˘ ad˘ acinile ®1; ®2; : : : ; ® rsunt
puteri ale unui anumit element, adic˘ a
®i=®ui;1·i·r:
Fiep=ord(®). Atunci polinomul minimal mi(X) al lui ®iva avea (Teorema 11.9)
toate r˘ ad˘ acinile printre elementele ®ui; ®qui; ®q2ui; : : :.
Num˘ arul factorilor lui g(X) ¸ si gradul fiec˘ arui polinom minimal mi(X) se vor
determina atunci din ordinul p¸ si din exponent ¸ii ui; qui; q2ui; : : :(1·i·r).ˆIntr-
adev˘ ar, num˘ arul de clase de resturi modulo pˆ ın succesiunea ui; qui; : : :va da gradul
polinomului minimal mi(X).

11.3. DEFINIREA CODURILOR CICLICE PRIN R ˘AD˘ACINI 127
Exemplul 11.3 Fie®2GF(24)primitiv, r˘ ad˘ acin˘ a a polinomului 1 +X+X4,
ireductibil peste Z2. S˘ a definim un cod care s˘ a aib˘ a ca r˘ ad˘ acini ®; ®2; ®3; ®4; ®5; ®6.
Fiind primitiv, ord(®) = 24¡1 = 15 (vezi ¸ si Prelegerea 8, Exemplul 8:8).
Fiemi(X)polinomul minimal al r˘ ad˘ acinii ®i;1·i·6.
R˘ ad˘ acinile lui m1(X)sunt ®; ®2; ®4; ®8(®16=®), deci
m1(X) =m2(X) =m4(X) = (X¡®)(X¡®2)(X¡®4)(X¡®8).
Acest polinom este cunoscut, anume 1 +X+X4.
R˘ ad˘ acinile lui m3(X)sunt ®3; ®6; ®12; ®24=®9(®18=®3), deci m3(X)este un
polinom de gradul 4, egal cu m6(X). Not˘ am m3(X) =a0+a1X+a2X2+a3X3+X4.
Detaliind m3(®3) = 0 , avem
a00
BBB@1
0
0
01
CCCA+a10
BBB@0
0
0
11
CCCA+a20
BBB@0
0
1
11
CCCA+a30
BBB@0
1
0
11
CCCA+0
BBB@1
1
1
11
CCCA=0
BBB@0
0
0
01
CCCA.
de unde se poate scrie sistemul de ecuat ¸ii
a0+ 1 = 0 ; a 3+ 1 = 0 ; a 2+ 1 = 0 ; a 1+a2+a3+ 1 = 0
cu solut ¸ia a0=a1=a2=a3= 1, deci m3(X) =m6(X) = 1 + X+X2+X3+X4.
R˘ ad˘ acinile lui m5(X)sunt ®5; ®10(®20=®5), deci m5(X)este un polinom de
gradul 2 : m5(X) =b0+b1X+X2. Cum m5(®5) = 0 , se obt ¸ine:
b00
BBB@1
0
0
01
CCCA+b10
BBB@0
1
1
01
CCCA+0
BBB@1
1
1
01
CCCA=0
BBB@0
0
0
01
CCCA
care are solut ¸ia b0=b1= 1, deci m5(X) = 1 + X+X2.
Polinomul generator este
g(X) =cmmmc fm1(X); m2(X); m3(X); m4(X); m5(X); m6(X)g=
=m1(X)m3(X)m5(X) = (1 + X+X4)(1 + X+X2+X3+X4)(1 + X+X2) =
1 +X+X2+X4+X5+X8+X10:
De remarcat c˘ a era suficient s˘ a cerem ca ®; ®3; ®5s˘ a fie r˘ ad˘ acini ale codului.
Exemplul 11.4 Fie¯=®89unde ®2GF(211)este primitiv. Deoarece
211¡1 = 89 ¢23, rezult˘ a ¯23=®211¡1= 1.
S˘ a consider˘ am drept r˘ ad˘ acini elementele ¯; ¯3; ¯9; ¯16.
Fiem(X)polinomul minimal al lui ¯. R˘ ad˘ acinile lui m(X)sunt (conform Teo-
remei 11.9) ¯; ¯2; ¯4; ¯8; ¯16; ¯32=¯9; ¯18; ¯36=¯13; ¯26=¯3; ¯6; ¯12:(¯24=¯)
Deci m(X)este un polinom de gradul 11care are ca r˘ ad˘ acini pe ¯; ¯3; ¯9; ¯16,
deci polinomul generator al codului respectiv este g(X) =m(X).
Fie polinomul f(X) =a0+a1X+: : :+an¡1Xn¡12Zq[X] ¸ si®o r˘ ad˘ acin˘ a a sa.
Atunci 0 = f(®) =a0+a1®+a2®2+: : :+an¡1®n¡1, sau – altfel scris:
(a0a1a2: : : a n¡1)0
BBBB@1
®

®n¡11
CCCCA= 0

128 PRELEGEREA 11. ALTE DEFINIT ¸II ALE CODURILOR CICLICE
Deci cuvˆ antul corespunz˘ ator polinomului f(X) este ˆ ın spat ¸iul nul al matricii
(1® : : : ®n¡1) (1).
Aceasta este ¸ si condit ¸ia de divizibilitate a polinomului f(X) cu polinomul mini-
malm(X) al lui ®. Mult ¸imea polinoamelor care satisfac condit ¸ia formeaz˘ a idealul
generat de m(X). Dimensiunea acestui ideal este (Prelegerea 9) n¡kunde
k=grad(m(X)). Deci spat ¸iul liniar generat de matricea (1) are dimensiunea k.
Prin urmare, a cere ca f(X) s˘ a admit˘ a pe ®1; ®2; : : : ; ® r2GF(qm) ca r˘ ad˘ acini
este echivalent cu a cere ca vectorul corespunz˘ ator s˘ a apart ¸in˘ a spat ¸iului nul al ma-
tricii
Hmr;n=0
BBBB@1®1®2
1: : : ®n¡1
1
1®2®2
2: : : ®n¡1
2…
1®r®2
r: : : ®n¡1
r1
CCCCA
Exemplul 11.5 S˘ a revenim la Exemplul 11.3. Polinomul ff(X)gapart ¸ine codului
respectiv dac˘ a ¸ si numai dac˘ a vectorul corespunz˘ ator apart ¸ine spat ¸iului nul al matricii
H=0
B@1® ®2®3®4®5®6®7®8®9®10®11®12®13®14
1®3®6®9®121®3®6®9®121®3®6®9®12
1®5®101®5®101®5®101®5®101®5®101
CA
=0
BBBBBBBBBBBBBBBBBBBBBBB@1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
0 1 0 0 1 1 0 1 0 1 1 1 1 0 0
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 1
1 0 0 0 1 1 0 0 0 1 1 0 0 0 1
0 0 0 1 1 0 0 0 1 1 0 0 0 1 1
0 0 1 0 1 0 0 1 0 1 0 0 1 0 1
0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
1 0 1 1 0 1 1 0 1 1 0 1 1 0 1
0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 01
CCCCCCCCCCCCCCCCCCCCCCCA
S-a obt ¸inut o matrice 12£15, de¸ si – conform rezultatelor teoretice, n= 15; n¡
k= 10; k= 5¸ si deci matricea de control a codului ar trebui s˘ a aib˘ a dimensiunile
(n¡k)£n= 10£15. Se observ˘ a ˆ ıns˘ a c˘ a de fapt ultima linie este nul˘ a, iar
urm˘ atoarele dou˘ a linii sunt identice (deci penultima se poate elimina).

11.4. ALT ˘A DEFINIT ¸IE A CODURILOR CICLICE 129
11.4 Alt˘ a definit ¸ie a codurilor ciclice
Vom mai prezenta ¸ si o a treia construct ¸ie a codurilor ciclice, realizat˘ a de Edwin
Berlekamp ˆ ın 1968.
Definit ¸ia 11.7 Fie polinomul Tr(X) =X+Xq+Xq2+: : :+Xqr¡12GF(qr)[X].
Se nume¸ ste ”urma” lui ®2GF(qr)expresia Tr(®).
Propozit ¸ia 11.8 Treste o aplicat ¸ie :GF(qr)!Zq.
Demonstrat ¸ie : Trebuie ar˘ atat c˘ a 8®2GF(qr) avem Tr(®)2Zq. Pentru aceasta
este suficient s˘ a ar˘ at˘ am c˘ a Tr(®) verific˘ a ecuat ¸ia Xq¡X= 0. Folosind faptul c˘ a
c˘ aGF(qr) este corp de caracteristic˘ a q¸ si c˘ a8®2GF(qr) avem ®qr=®, se verific˘ a
imediat relat ¸ia [ TR(®)]q=TR(®). 2
Propozit ¸ia 11.9 Treste aplicat ¸ie liniar˘ a.
Demonstrat ¸ie : Relat ¸ia Tr(®+¯) =Tr(®) +Tr(¯) este u¸ sor de verificat, deoarece
se lucreaz˘ a ˆ ın corpuri de caracteristic˘ a q. 2
Propozit ¸ia 11.10 Pentru orice a2Zqexist˘ a qr¡1valori ®2GF(qr)cuTr(®) =
a.
Demonstrat ¸ie : Fiecare ecuat ¸ie Tr(X) =aadmite maxim qr¡1r˘ ad˘ acini, iar num˘ arul
de elemente aposibile este q. Mai trebuie ar˘ atat c˘ a toate cele qecuat ¸ii au r˘ ad˘ acini
distincte. Aceasta se poate deduce foarte simplu folosind derivata formal˘ a ˆ ıntr-un
corp de caracteristic˘ a q: toate ecuat ¸iile au aceea¸ si derivat˘ a: 1. 2
Teorema 11.11 Polinomul Tr(X)se poate descompune ˆ ın GF(qr)ˆ ın produs de
polinoame minimale.
Demonstrat ¸ie : Demonstrat ¸ia se bazeaz˘ a pe urm˘ atorul algoritm:
(1) Fie polinomul g(X) =Tr(X);
(2) Se consider˘ a ®2GF(qr) cug(®) = 0. Deci g(X) este divizibil cu polinomul
minimal m(X) al lui ®.
(3)g(X) :=g(X)=m(X). Dac˘ a g(X) = 1, STOP, altfel se reia pasul (2).
Existent ¸a r˘ ad˘ acinilor pentru g(X) (pasul (2)) este asigurat˘ a de faptul c˘ a ˆ ın
GF(qr) orice polinom ireductibil este polinom minimal.
Exemplul 11.6 S˘ a consider˘ am GF(24), deci q= 2; r= 4. Aici se poate verifica
descompunerea
Tr(X) =X+X2+X4+X8=X(1 +X)(1 + X+X2)(1 + X+X4)
care sunt toate polinoame minimale.
Fie®2GF(24)r˘ ad˘ acin˘ a (primitiv˘ a) a ecuat ¸iei 1 +X+X4= 0. Deci toate
elementele nenule din GF(24)se pot scrie ca puteri ale lui ®. Vom folosi aceasta
pentru a lista valorile funct ¸iei Tr:GF(24)!Z2:

130 PRELEGEREA 11. ALTE DEFINIT ¸II ALE CODURILOR CICLICE
X Tr (X)X Tr (X)X Tr (X)X Tr (X)
0 0 ®31 ®71 ®111
1 0 ®40 ®80 ®121
® 0 ®50 ®91 ®131
®20 ®61 ®100 ®141
Dup˘ a cum se observ˘ a, sunt 8 = 23valori 0¸ si8valori 1.
Putem da acum teorema principal˘ a care define¸ ste codurile ciclice folosind oper-
atorul Tr:
Teorema 11.12 Fiennum˘ ar natural, qnum˘ ar prim, kordinul lui qmodulo n
(qk´1mod n )¸ si¯2GF(qk)element primitiv de ordin n. Atunci
A=fc®= (Tr(®); Tr(®¯); Tr(®¯2); : : : ; Tr (®¯n¡1))j®2GF(qk)g
este un (n; k)- cod ciclic peste Zq.
Demonstrat ¸ie : Din Propozit ¸ia 11.9 rezult˘ a c˘ a Aeste cod liniar.
Se verific˘ a apoi c˘ a c®¯¡12Aeste o permutare ciclic˘ a a lui c®; deci Aeste
cod ciclic. Deoarece ¯este primitiv, ˆ ınseamn˘ a c˘ a polinomul s˘ au minimal m(X) =
h0+h1X+: : :+hkXkare gradul k. Dac˘ a c®= (c0; c1; : : : ; c n¡1), avem
kX
i=0cihi=Tr(®m(¯)) =Tr(0) = 0
care constituie una din cele n¡kecuat ¸ii de control pentru A. Deoarece m(X) este
minimal (deci ireductibil), h(X) =Xkm(X¡1) este polinomul de control pentru A.
Cum gradul lui este k, avem un ( n; k) – cod ciclic peste Zq. 2
De remarcat c˘ a aceast˘ a teorem˘ a define¸ ste numai codurile ciclice ”ireductibile”
(care nu cont ¸in subcoduri ciclice proprii), deci clasa lor este inclus˘ a strict ˆ ın clasa
codurilor ciclice dat˘ a de cele dou˘ a definit ¸ii anterioare (prin ideale ¸ si prin r˘ ad˘ acinile
polinomului generator).
Exemplul 11.7 S˘ a lu˘ am n= 15 ; q= 2, deci k= 4.ˆInGF(24)vom lua ®,
r˘ ad˘ acina polinomului 1 +X+X4. Se ¸ stie c˘ a ea este un element primitiv. Aplicat ¸ia
TresteTr(X) =X+X2+X4+X8iar codul Aeste format din 16cuvinte de forma
(Tr(¯); Tr(¯®); : : : ; Tr (¯®n¡1));8¯2GF(24).
Pentru ¯= 0;00: : :02A.
Pentru ¯= 1;(Tr(1); Tr(®); : : : ; Tr (®n¡1)) = 000100110101111
Celelalte 14cuvinte sunt permut˘ arile circulare ale acestuia.
Polinomul de control al codului este h(X) =X4µ
1 +1
X+1
X4¶
= 1 + X3+X4,
iar polinomul generator
g(X) =X16¡X
X4+X3+ 1=X+X4+X5+X7+X9+X10+X11+X12,
al c˘ arui vector corespunz˘ ator se obt ¸ine ˆ ın construct ¸ia de sus pentru ¯=®2.
Acesta este un (15;4)- cod ciclic, ireductibil.
De remarcat c˘ a pentru n= 15 sunt numai dou˘ a astfel de coduri, cel˘ alalt fiind
codul dual (r˘ ad˘ acina polinomului 1 +X3+X4este de asemenea primitiv˘ a).

11.5. EXERCIT ¸II 131
11.5 Exercit ¸ii
11.1 Demonstrat ¸i Corolarul 11.1.
11.2 Demonstrat ¸i Propozit ¸ia 11.7
11.3 Construit ¸i urm˘ atoarele corpuri:
(a)GF(22);
(b)GF(23)folosind polinomul 1 +X2+X3;
(c)GF(24)folosind polinomul 1 +X3+X4;
(d)GF(25)folosind polinomul 1 +X2+X5.
11.4 G˘ asit ¸i o extensie a lui Z2ˆ ın care X9¡1s˘ a se descompun˘ a ˆ ın factori liniari.
11.5 G˘ asit ¸i toate elementele primitive din GF(23)¸ siGF(24).
11.6 G˘ asit ¸i toate elementele primitive din GF(32)¸ siGF(52).
11.7 Construit ¸i GF(24)ca o extensie a lui GF(22).
11.8 Fie®2GF(24), r˘ ad˘ acin˘ a a polinomului 1 +X+X4.
G˘ asit ¸i polinoamele minimale al lui ¯=®7¸ si¯=®10.
11.9 G˘ asit ¸i polinoamele minimale al tuturor elementelor din:
-GF(23), generat cu 1 +X+X3;
-GF(25), generat cu 1 +X2+X5;
-GF(32), generat cu 2 +X+X2;
-GF(52), generat cu 3 + 2 X+X2.
11.10 Orice element nenul din GF(qm)are un ordin prim cu q.
11.11 G˘ asit ¸i polinomul generator al unui cod ciclic de lungime 15, de r˘ ad˘ acini
1; ®5; ®7; ®2GF(24)fiind r˘ ad˘ acin˘ a a polinomului 1 +X+X4.
Construit ¸i matricea de control a codului.
Ar˘ atat ¸i c˘ a v(X)este polinom – cod dac˘ a ¸ si numai dac˘ a ponderea w(v)este par˘ a.
11.12 G˘ asit ¸i polinomul generator al unui cod ciclic de r˘ ad˘ acini ®2; ®3; ®6unde
®2GF(23)este r˘ ad˘ acina polinomului 1 +X+X3.
11.13 Ar˘ atat ¸i c˘ a orice cuvˆ ant – cod al unui cod ciclic are pondere par˘ a dac˘ a ¸ si
numai dac˘ a 1 +Xeste un factor al polinomului generator.
11.14 S˘ a se descompun˘ a Tr(X)ˆ ın produs de polinoame minimale ˆ ın corpurile:
(a)GF(23) ( b)GF(25) ( c)GF(32) ( d)GF(33) ( e)GF(52).
11.15 Folosind Teorema 11.12 s˘ a se construiasc˘ a toate codurile ireductibile pentru
GF(23); GF (25); GF (32).
11.16 Verificat ¸i c˘ a polinomul h(X)construit ˆ ın demonstrat ¸ia Teoremei 11.12 este
polinomul generator al codului dual.

Prelegerea 12
Coduri BCH
Codurile BCH constituie cea mai relevant˘ a clas˘ a de coduri ciclice. Ele au fost
definite ˆ ın mod independent de Bose ¸ si Chaudhuri pe de-o o parte, Hocquenheim
de pe de-alt˘ a parte. Numele de BCH ( Bose – Chaudhuri – Hocquenheim) a fost
dat de Peterson, care s-a ocupat de ele ˆ ın mod special, construind ¸ si algoritmul de
decodificare.
12.1 Definirea codurilor BCH
Definit ¸ia 12.1 Fieqnum˘ ar prim, m0; m; d numere naturale ¸ si ®2GF(qm). Un
cuvˆ ant ff(X)geste ˆ ın codul BCH dac˘ a polinomul are ca r˘ ad˘ acini
®m0; ®m0+1; : : : ; ®m0+d¡2:
ˆIn majoritatea cazurilor studiate se consider˘ a m0= 0 sau m0= 1.
Teorema 12.1 Lungimea na cuvintelor – cod este egal˘ a cu ordinul eal lui ®.
Demonstrat ¸ie : Conform construct ¸iei codurilor ciclice bazat˘ a pe r˘ ad˘ acinile polino-
mului generator, lungimea na cuvintelor – cod este cel mai mic multiplu comun al
ordinelor r˘ ad˘ acinilor. ˆIn cazul codurilor BCH avem
(®m0)n=®m0n= 1 ¸ si 1 = ( ®m0+1)n=®m0+n=®m0®n
deci®n= 1. Prin urmare ejn¸ sin¸e.
De asemenea, ( ®j)e= (®e)j= 18j=m0; m0+ 1; : : : ; m 0+d¡2, adic˘ a n·e.
Rezult˘ a n=e. 2
De remarcat c˘ a, dac˘ a ®este primitiv, atunci e=qm¡1.
Teorema 12.2 ˆIntr-un cod BCH definit de r˘ ad˘ acinile ®m0; ®m0+1; : : : ; ®m0+d¡2(®2
GF(qm)), distant ¸a minim˘ a a codului este cel put ¸in d(¸ si deci codul poate corecta cel
put ¸in orice combinat ¸ie de t·"d¡1
2#
erori).
133

134 PRELEGEREA 12. CODURI BCH
Demonstrat ¸ie : Un cod BCH este spat ¸iul nul al matricii
H=0
BBBB@1 ®m0 (®m0)2: : : (®m0)n¡1
1®m0+1(®m0+1)2: : : (®m0+1)n¡1

1®m0+d¡2(®m0+d¡2)2: : :(®m0+d¡2)n¡11
CCCCA
S˘ a consider˘ am urm˘ atorul determinant, obt ¸inut prin alegerea arbitrar˘ a a d¡1
coloane din H:
D=¯¯¯¯¯¯¯¯¯¯(®m0)j1 (®m0)j2: : : (®m0)jd¡1
(®m0+1)j1 (®m0+1)j2: : : (®m0+1)jd¡1

(®m0+d¡2)j1(®m0+d¡2)j2: : :(®m0+d¡2)jd¡1¯¯¯¯¯¯¯¯¯¯=
=®m0(j1+j2+:::+jd¡1)¯¯¯¯¯¯¯¯¯¯1 1 : : : 1
®j1 ®j2 : : : ®jd¡1

(®j1)d¡2(®j2)d¡2: : :(®jd¡1)d¡2¯¯¯¯¯¯¯¯¯¯=
=®m0(j1+j2+:::+jd¡1)Y
i>k(®ji¡®jk)6= 0
pentru c˘ a ji6=jkdac˘ a i6=k.
Deci orice submult ¸ime format˘ a cu maxim d¡1 coloane din Heste liniar inde-
pendent˘ a de unde – conform Teoremei 2 :4 (Prelegerea 2) – distant ¸a minim˘ a a codului
este cel put ¸in d. 2
Exemplul 12.1 Dac˘ a se lucreaz˘ a ˆ ın binar, puterile pare ale r˘ ad˘ acinilor se pot omite
din list˘ a(dac˘ a ®ieste r˘ ad˘ acin˘ a, atunci ¸ si ®2ieste r˘ ad˘ acin˘ a – conform Teoremei 11:9,
Prelegerea 11). Atunci un cod BCH binar corector de 3erori este dat de r˘ ad˘ acinile
¯; ¯3; ¯5, unde ¯este un element primitiv dintr-o extensie a lui Z2. De exemplu,
dac˘ a ¯=®, r˘ ad˘ acin˘ a a polinomului 1 +X+X4, se obt ¸ine codul din Exemplul 11:3,
Prelegerea 11.
Exemplul 12.2 FieGF(32)generat de r˘ ad˘ acina ®a polinomului ireductibil 2 +
X+X2. Deoarece ord(®) = 8 , orice cod va avea lungimea 8. S˘ a construim codul
BCH de r˘ ad˘ acini ®2; ®3; ®4. Polinoamele minimale sunt:
m2(X) = 1 + X2cu r˘ ad˘ acini ®2; ®6;
m3(X) = 2 + X+X2cu r˘ ad˘ acini ®3; ®
m4(X) = 1 + Xnumai cu r˘ ad˘ acina ®4.
Deci polinomul generator este
g(X) = (1 + X2)(2 + X+X2)(1 + X) = 2 + X2+X3+ 2X4+X5.
Codul este un (8;3)- cod ciclic. Deoarece printre r˘ ad˘ acini este ¸ si ®, se poate
considera m0= 1; d= 5, deci codul poate corecta cel put ¸in dou˘ a erori.
De remarcat c˘ a dac˘ a folosim acest cod drept cod liniar, cum ponderea minim˘ a
a cuvintelor sale este 4(de exemplu 02010201 este cuvˆ ant – cod), distant ¸a minim˘ a
este4, deci codul nu poate corecta decˆ at o singur˘ a eroare. Astfel, tratarea codurilor
ciclice sub form˘ a de coduri liniare scade de obicei puterea de corect ¸ie a erorilor.

12.2. ALGORITMUL PETERSON DE DECODIFICARE 135
Numerele m; m 0; d; q sunt parametrii codului BCH. Ideea este de a-l m˘ ari pe d,
pentru a putea corecta cˆ ate mai multe combinat ¸ii de erori. Acest lucru este posibil
totdeauna, deoarece m¸ siqsunt arbitrari.
S˘ a observ˘ am c˘ a pentru ®primitiv, toate puterile lui ®pˆ an˘ a la qm¡1 sunt
distincte. ˆIn cazul binar, avem urm˘ atorul rezultat:
Teorema 12.3 Fiemun num˘ ar natural oarecare ¸ si ®2GF(2m)primitiv. Atunci
exist˘ a un cod BCH de lungime n= 2m¡1care corecteaz˘ a orice combinat ¸ie de
t··2m¡1

erori independente, folosind mtpozit ¸ii de control.
Demonstrat ¸ie : Vom considera codul binar definit de r˘ ad˘ acinile ®; ®2; : : : ; ®2t. Acesta
este un cod BCH pentru q= 2; m 0= 1; d= 2t+ 1; n= 2m¡1 ¸ si care are distant ¸a
minim˘ a cel put ¸in 2 t+ 1. Pentru ca r˘ ad˘ acinile ment ¸ionate mai sus s˘ a fie distincte,
trebuie ca 2 t·2m¡1.
S˘ a observ˘ am c˘ a orice putere par˘ a a lui ®este r˘ ad˘ acin˘ a a unui polinom minimal
al unei puteri impare anterioare a lui ®. Deci este suficient s˘ a d˘ am la ˆ ınceput doar
r˘ ad˘ acinile ®; ®3; : : : ; ®2t¡1ale cuvintelor codului binar.
Avem – dup˘ a definit ¸ie: g(X) =cmmmc fm1(X); m3(X); : : : ; m 2t¡1(X)g.
Pe de – alt˘ a parte, mi(X)jXn¡1 =X2m¡1¡1 ¸ si deci – conform Teoremei 11 :7
(Prelegerea 11), grad(mi(X))·m. Din cele dou˘ a relat ¸ii rezult˘ a grad(g(X))·mt.
Cum grad(g(X)) d˘ a num˘ arul de simboluri de control, teorema este demonstrat˘ a. 2
12.2 Algoritmul Peterson de decodificare
Fie codul BCH definit de r˘ ad˘ acinile ®m0; ®m0+1; : : : ; ®m0+2t¡1(d= 2t+ 1) cu
®2GF(qm).
Un asemenea cod corecteaz˘ a orice combinat ¸ie de maxim terori independente.
Fieff(X)gun cuvˆ ant – cod transmis ¸ si
fr(X)g=ff(X) +e(X)g=ff(X)g+fe(X)g
secvent ¸a recept ¸ionat˘ a, unde fe(X)geste vectorul – eroare.
Avem, pentru j=m0; m0+ 1; : : : ; m 0+ 2t¡1 :
Sj=r(®j) =f(®j) +e(®j) =e(®j):
Sjse numesc componentele sindromului .
La decodificare, tipul ede eroare este determinat complet dac˘ a se ¸ stiu:
²Valorile erorilor Yi2Zq;
²Localiz˘ arile erorilor Xi2GF(qm).
Vom nota pozit ¸iile elementelor cuvintelor din GF(qm) prin puterile lui ®; pe pozit ¸ia
iˆ ıne(®) se afl˘ a coeficientul lui ®i¡1, deci ®i¡1va localiza a i- a component˘ a dintr-un
cuvˆ ant.
Dac˘ a au intervenit terori, modelul de eroare este complet caracterizat de cunoa¸ s-
terea celor tperechi nenule ( Yi; Xi);1·i·t.

136 PRELEGEREA 12. CODURI BCH
Putem conveni (evident) c˘ a
Yi= 0 () Xi= 0:
De remarcat c˘ a Xinu reprezint˘ a ®ici un ®jarbitrar care va trebui aflat.
Deci, a g˘ asi pe fe(X)grevine la a determina 2 telemente Xi; Yi;1·i·t,
grupate ˆ ın tperechi, cu proprietatea Yi= 08i; t < i ·qm¡1. Avem
Sj=e(®j) =tX
i=1YiXj
i; m 0·j·m0+ 2t¡1:
Atunci
(Sj)q=ÃtX
i=1YiXj
i!q
=tX
i=1Yq
iXjq
i=tX
i=1YiXjq
i=Sjq
Deci, determinarea polinomului – eroare fe(X)gse reduce la aflarea solut ¸iilor
(Yi; Xi);1·i·tale sistemului de ecuat ¸ii
tX
i=1YiXj
i=Sj; m 0·j·m0+ 2t¡1: (1)
Dac˘ a au intervenit k(k < t ) erori, se completeaz˘ a cele kperechi nenule cu alte
t¡kperechi nule ( Yi; Xi). De fapt, acest num˘ ar knu este cunoscut apriori; de aceea,
se pleac˘ a de la terori potent ¸iale (maximul pe care codul BCH ˆ ıl poate corecta sigur),
caracterizate de tperechi ( Yi; Xi). Problema care se pune este deci de a-l determina
pek¸ si cele 2 knecunoscute Yi; Xi(1·i·k).
Orice metod˘ a de corectare a erorilor revine la rezolvarea sistemului de ecuat ¸ii
(1), care este un sistem neliniar de 2 tecuat ¸ii cu 2 tnecunoscute, problem˘ a NP-
complet˘ a.
Fie polinomul
(X1¡X)(X2¡X): : :(Xt¡X) =¾t+¾t¡1(¡X)+: : :+¾1(¡X)t¡1+(¡X)t.
unde ¾jsunt funct ¸iile simetrice date de relat ¸iile lui V i`ete.
Dac˘ a ˆ ın aceast˘ a relat ¸ie se ia X=Xi(i= 1; : : : ; t ), obt ¸inem
Xt
i+ (¡1)¾1Xt¡1
i+: : :+ (¡1)t¡1¾t¡1Xi+ (¡1)t¾t= 0;1·i·t.
ˆInmult ¸im cu YiXj
i¸ si sum˘ am dup˘ a i. Se obt ¸ine:
tX
i=1YiXj+t
i+ (¡1)¾1tX
i=1YiXj+t¡1
i +: : :+ (¡1)t¡1¾t¡1tX
i=1YiXj+1
i+ (¡1)t¾tYiXj
i=
0; j=m0; m0+ 1; : : : ; m 0+t¡1
relat ¸ie care se poate scrie
Sj(¡1)t¾t+Sj+1(¡1)t¡1¾t¡1+: : :+Sj+t¡1(¡1)¾1+Sj+t= 0;
m0·j·m0+t¡1 (2)
Algoritmul lui Peterson de corectare a k(k·t) erori ˆ ıntr-un cod BCH este:

12.2. ALGORITMUL PETERSON DE DECODIFICARE 137
1. Se rezolv˘ a sistemul (2) ˆ ın care necunoscutele sunt ( ¡1)p¾p;1·p·t;
2. Se ˆ ınlocuiesc valorile aflate ˆ ın ecuat ¸ia
Xt+ (¡1)¾1Xt¡1+: : :+ (¡1)t¡1¾t¡1X+ (¡1)t¾t= 0
¸ si se afl˘ a cele tr˘ ad˘ acini X1; X2; : : : ; X t2GF(qm) ale sale;
3. Cu aceste valori introduse ˆ ın sistemul (1), se determin˘ a din primele t
ecuat ¸ii valorile Y1; Y2; : : : ; Y t2Zq;
4. Dac˘ a ( Yi; Xi); Xi=®jisunt cele k·tvalori nenule ale solut ¸iei obt ¸inute,
atunci:
²Pentru k= 0, cuvˆ antul recept ¸ionat este fr(X)g(f˘ ar˘ a erori);
²Pentru 0 < k·t, fiee(X) =kX
i=1YiXji.
Cuvˆ antul – cod decodificat este ff(X)g=fr(X)g ¡ f e(X)g.
De remarcat c˘ a ˆ ın cazul binar, pasul (3) nu mai este necesar, deoarece
Yi= 1;8i·k.
Pentru corectitudinea algoritmului, trebuie studiate compatibilit˘ at ¸ile sistemelor
de ecuat ¸ii (1) ¸ si (2).
Teorema 12.4 SistemultX
i=1YiXj
i=Sj; m 0·j·m0+t¡1, de necunoscute Yi
este compatibil dac˘ a ¸ si numai dac˘ a au intervenit terori.
Demonstrat ¸ie : Considerat ca sistem ˆ ın Y, este liniar; determinantul principal este
¯¯¯¯¯¯¯¯¯¯¯¯¯Xm0
1 Xm0
2 : : : Xm0
t
Xm0+1
1 Xm0+1
2 : : : Xm0+1
t
Xm0+2
1 Xm0+2
2 : : : Xm0+2
t…
Xm0+t¡1
1 Xm0+t¡1
2 : : : Xm0+t¡1
t¯¯¯¯¯¯¯¯¯¯¯¯¯=Xm0
1Xm0
2: : : Xm0
t¯¯¯¯¯¯¯¯¯¯¯¯¯1 1 : : :1
X1X2: : : X t
X2
1X2
2: : : X2
t…
Xt¡1
1Xt¡1
2: : : Xt¡1
t¯¯¯¯¯¯¯¯¯¯¯¯¯
=Xm0
1Xm0
2: : : Xm0
tY
1·j<i·t(Xi¡Xj)
El este nenul numai dac˘ a au intervenit terori, pentru c˘ a atunci tot ¸i Xisunt distinct ¸i
¸ si nenuli. 2
Teorema 12.5 Matricea M=0
BBBB@Sm0 Sm0+1: : : S m0+t¡1
Sm0+1 Sm0+2: : : S m0+t

Sm0+t¡1Sm0+t: : : S m0+2t¡11
CCCCA
este nesingular˘ a dac˘ a au intervenit terori ¸ si este singular˘ a dac˘ a au intervenit
mai put ¸in de terori.

138 PRELEGEREA 12. CODURI BCH
Demonstrat ¸ie : T ¸inˆ and cont de forma sistemului (1), este posibil˘ a descompunerea
matricii Mˆ ın produs de 3 matrici M=ABATunde:
A=0
BBBBBBB@1 1 : : :1
X1X2: : : X t
X2
1X2
2: : : X2
t…
Xt¡1
1Xt¡1
2: : : Xt¡1
t1
CCCCCCCAB=0
BBBB@Y1Xm
1 0 : : : 0
0 Y2Xm
2: : : 0

0 0 : : : Y tXm
t1
CCCCA
Meste nesingular˘ a dac˘ a cele dou˘ a matrici din descompunere sunt nesingulare.
Matricea Aeste nesingular˘ a dac˘ a ¸ si numai dac˘ a valorile Xi;(1·i·t) sunt distincte
¸ si nenule, deci dac˘ a au intervenit terori. Matricea diagonal˘ a Beste nesingular˘ a dac˘ a
toate elementele de pe diagonala principal˘ a sunt nenule, deci dac˘ a toate perechile
(Yi; Xi);1·i·tsunt nenule – adic˘ a au ap˘ arut terori. 2
Aplicarea algoritmului Peterson se face ˆ ın felul urm˘ ator:
1.Folosind polinomul recept ¸ionat fr(X)g, se calculeaz˘ a m˘ arimile
Sj=r(®j); j =m0; m0+ 1; : : : ; m 0+ 2t¡1
2.Se studiaz˘ a compatibilitatea sistemului
Sj(¡1)t¾t+Sj+1(¡1)t¡1¾t¡1+: : :+Sj+t¡1(¡1)¾1+Sj+t= 0;
m0·j·m0+t¡1:
Dac˘ a matricea Ma sistemului este nesingular˘ a, ˆ ınseamn˘ a c˘ a au ap˘ arut terori.
Dac˘ a Meste singular˘ a, atunci se observ˘ a c˘ a ¾t= 0 (deoarece ¾t=X1X2: : : X t)
¸ si – neglijˆ and prima sau ultima din ecuat ¸iile de mai sus, ˆ ın care se ˆ ınlocuie¸ ste
¾t= 0 – se obt ¸ine un nou sistem liniar format din t¡1 ecuat ¸ii cu t¡1
necunoscute.
Se studiaz˘ a matricea acestui nou sistem. Dac˘ a ea este nesingular˘ a, ˆ ınseamn˘ a
c˘ a au ap˘ arut t¡1 erori. Dac˘ a ¸ si aceasta este singular˘ a, cum ¾t¡1= 0, se
repet˘ a procedeul.
Primul sistem compatibil (cu matricea nesingular˘ a) care se obt ¸ine va da num˘ a-
rulk·tde erori care au intervenit ˆ ın transmisie, precum ¸ si valorile
(¡1)¾1;(¡1)2¾2; : : : ; (¡1)k¾k.
3.Se introduc valorile determinate mai sus ˆ ın polinomul
P=Xk+ (¡1)¾1Xk¡1+: : :+ (¡1)k¡1¾k¡1X+ (¡1)k¾k
¸ si se afl˘ a cele kr˘ ad˘ acini X1; X2; : : : ; X k2GF(qm) ale ecuat ¸iei P= 0 (prin
diverse metode, eventual chiar prin simpla verificare a ecuat ¸iei cu toate ele-
mentele din GF(qm)). Aceste r˘ ad˘ acini vor da localiz˘ arile erorilor.
De remarcat c˘ a ordinea de notare a erorilor X1; X2; : : : ; X meste neesent ¸ial˘ a.

12.2. ALGORITMUL PETERSON DE DECODIFICARE 139
4.Se introduc aceste solut ¸ii ˆ ın ecuat ¸iile sistemului
kX
i=1YiXj
i=Sj; j =m0; m0+ 1; : : : ; m 0+k¡1
¸ si se determin˘ a valorile erorilor Y1; Y2; : : : ; Y k.
5.Se calculeaz˘ a astfel polinomul eroare fe(X)g, care se scade din polinomul
recept ¸ionat ¸ si se obt ¸ine cuvˆ antul – cod transmis:
fr(X)g ¡ f e(X)g=fr(X)¡e(X)g=ff(X)g
Exemplul 12.3 Fie codul BCH definit de r˘ ad˘ acinile ®; ®2; ®3; ®4; ®5®6unde ®2
GF(24)este element primitiv, r˘ ad˘ acin˘ a a polinomului 1 +X+X4(Exemplul 11:3,
Prelegerea 11¸ si Exemplul 12.1). Deoarece t= 3, acest cod este capabil s˘ a corecteze
maxim 3erori.
S˘ a presupunem c˘ a au ap˘ arut dou˘ a erori, pe pozit ¸iile ®3¸ si®10(adic˘ a pe pozit ¸iile
4¸ si11) ale cuvˆ antului transmis. Ele reprezint˘ a polinomul eroare e(X) =X3+X10.
S˘ a calcul˘ am sindromul (pentru operat ¸ile folosite, a se vedea Exemplele 8:8¸ si8:9,
Prelegerea 8):
S1=r(®) =e(®) =®3+®10=®12
S2= (S1)2=®24=®9
S3=r(®3) =e(®3) =®9+®30=®9+®0=®7
S4= (S2)2=®18=®3
S5=r(®5) =e(®5) =®15+®50=®0+®5=®10
S6= (S3)2=®14.
Observ˘ am c˘ a ˆ ıntr-o situat ¸ie real˘ a, nu se ¸ stie unde sunt localizate erorile ¸ si deci
– ˆ ın cazul ˆ ın care au intervenit dou˘ a erori pe pozit ¸iile ®3¸ si®10(care nu se cunosc
ˆ ınc˘ a), din vectorul recept ¸ionat se obt ¸ine direct sindromul
S= (S1; S2; S3; S4; S5; S6) = (®12; ®9; ®7; ®3; ®10; ®14)
f˘ ar˘ a s˘ a ¸ stim din combinat ¸iile c˘ aror localiz˘ ari ale erorilor provin aceste compo-
nente ale sindromului.
S˘ a consider˘ am sistemul de ecuat ¸ii8
><
>:S1¾3+S2¾2+S3¾1=S4
S2¾3+S3¾2+S4¾1=S5
S2¾3+S4¾2+S5¾1=S6adic˘ a8
><
>:®12¾3+®9¾2+®7¾1=®3
®9¾3+®7¾2+®7¾1=®10
®7¾3+®3¾2+®10¾1=®14
ˆInmult ¸im cele trei ecuat ¸ii ale sistemului respectiv cu
®¡7=®8; ®¡3=®12; ®¡10=®5
¸ si obt ¸inem:8
><
>:®5¾3+®2¾2+¾1=®11
®6¾3+®4¾2+¾1=®7
®12¾3+®8¾2+¾1=®4
Adun˘ am prima ecuat ¸ie la ultimele dou˘ a ¸ si atunci
(
®9¾3+®10¾2=®8
®14¾3+®0¾2=®13

140 PRELEGEREA 12. CODURI BCH
Deoarece a doua ecuat ¸ie se obt ¸ine din prima prin ˆ ınmult ¸ire cu ®5, ele nu sunt in-
dependente; deci au ap˘ arut mai put ¸in de 3erori. Facem ¾3= 0¸ si a doua ecuat ¸ie
va da ¾2=®13. Din prima ecuat ¸ie a sistemului se ajunge la ®0+¾1=®11, adic˘ a
¾1=®12.
Deci, ˆ ın acest caz k= 2; ¾1=®12; ¾2=®13. Se ajunge la polinomul X2+
¾1X+¾2=X2+®12X+®13, care are ca r˘ ad˘ acini X1=®3; X 2=®10.
Am redescoperit astfel cele dou˘ a localiz˘ ari ale erorilor. Codul fiind binar, corecta-
rea se face imediat: se modific˘ a (din 1ˆ ın0sau din 0ˆ ın1) bit ¸ii de pe pozit ¸iile 4
respectiv 11din cuvˆ antul recept ¸ionat.
Exemplul 12.4 Fie codul BCH definit de r˘ ad˘ acinile ®; ®2; ®3; ®4unde ®2GF(24)
este r˘ ad˘ acina polinomului 1 +X+X4. Acest cod are m0= 1; m 0+ 2t¡1 = 4 , deci
t= 2; codul poate corecta ˆ ın mod sigur cel put ¸in dou˘ a erori. S˘ a presupunem c˘ a s-a
recept ¸ionat cuvˆ antul
r= 100100110000100
de15componente. S˘ a determin˘ am cuvˆ antul – cod transmis.
Polinomul corespunz˘ ator acestui cuvˆ ant este r(X) = 1 + X3+X6+X7+X12.
Componentele sindromului sunt
S1=r(®) =®0S2=r(®2) = (S1)2=®0
S3=r(®3) =®4S4=r(®4) = (S2)2=®0
Trebuie rezolvat sistemul
(
S1¾2+S2¾1=S3
S2¾2+S3¾1=S4adic˘ a(
®0¾2+®0¾1=®4
®0¾2+®4¾1=®0,
de unde se obt ¸ine ¾1=®0; ¾1=®.
Polinomul de localizare a erorilor este X2+¾1X+¾2=X2+X+®, cu r˘ ad˘ acinile
X1=®7; X 2=®9. Au ap˘ arut deci dou˘ a erori, pe pozit ¸iile 8¸ si10. Pentru c˘ a suntem
ˆ ın cazul binar, Y1=Y2= 1; vectorul – eroare obt ¸inut este e(X) =X7+X9, deci
cuvˆ antul – cod transmis este
ff(X)g=fr(X)g ¡ f e(X)g=fr(X) +e(X)g= 1 + X+X6+X9+X12
adic˘ a f= 100100100100100 .
12.3 Localizarea erorii la codurile BCH binare
Dup˘ a cum s-a observat, ˆ ın cazul codurilor BCH binare este suficient s˘ a se localizeze
eroarea; corectarea se face imediat prin complementaritatea bit ¸ilor aflat ¸i pe pozit ¸iile
respective. Dup˘ a determinarea valorilor ¾1; ¾2; : : : ; ¾ t, algoritmul Peterson nu ex-
pliciteaz˘ a modul de rezolvare a ecuat ¸iei de localizare al erorii, care uneori poate fi
dificil de prelucrat.
Un procedeu eficient de determinare a pozit ¸iilor erorilor pentru codurile BCH
binare a fost realizat de Chien.
Fie polinomul (de localizare a erorii):
S(X) = (1 ¡X1X)(1¡X2X): : :(1¡XtX) =¾0+¾1X+¾2X2+: : :+¾tXt

12.3. LOCALIZAREA ERORII LA CODURILE BCH BINARE 141
unde
¾0= 1
¾1=X1+X2+: : :+Xt
: : :
¾t=X1X2: : : X t
(operat ¸iile fiind efectuate ˆ ın binar, semnul ¡este asimilat cu +).
R˘ ad˘ acinile acestui polinom sunt inversele localiz˘ arilor erorilor X¡1
i;1·i·t.
Procedeul lui Chien de corectare a erorilor ˆ ın cazul binar pentru codurile BCH,
este urm˘ atorul:
Fier=r0r1: : : r n¡1cuvˆ antul recept ¸ionat; componentele lui se vor decodifica pas
– cu – pas (pe m˘ asur˘ a ce sunt recept ¸ionate).
S˘ a consider˘ am primul bit primit rn¡1¸ si s˘ a cercet˘ am dac˘ a el este corect sau nu.
Aceasta este echivalent cu a verifica dac˘ a ®n¡1este o localizare a erorii, sau dac˘ a
®¡(n¡1)=®este o r˘ ad˘ acin˘ a a polinomului S(X) de localizare a erorii.
Dac˘ a ¾1®+¾2®2+: : :+¾t®t=1adic˘ a S(®) =0, atunci a intervenit o eroare
pe pozit ¸ia ®n¡1¸ si deci componenta rn¡1trebuie corectat˘ a.
Dac˘ a ¾1®+¾2®2+: : :+¾t®t6=1adic˘ a S(®)6=0, atunci rn¡1s-a recept ¸ionat
corect.
Procedeul se repet˘ a: ˆ ın general componenta recept ¸ionat˘ a rn¡seste corect˘ a dac˘ a
®¡(n¡s)=®snu este r˘ ad˘ acin˘ a a polinomului S(X), adic˘ a
¾1®s+¾2®2s+: : :+¾t®st6=1
ˆIn caz contrar, rn¡sva fi corectat˘ a ˆ ın rn¡s+ 1.
Algoritmul lui Chien este deci:
1.s:= 0;
2.while s·ndo
(a)s:=s+ 1;
(b) Se calculeaz˘ a P:=¾1®s+¾2®2s+: : :+¾t®ts;
(c) Se decodific˘ a an¡s:=rn¡s+vunde v=(
0 dac˘ a P=0
1 dac˘ a P6=0
Circuitul liniar care implementeaz˘ a acest algoritm este:
¾1 ¾2 ¾t
¹¸ș·
®
¹¸ș·
®2
¹¸ș·
®ttX
i=1¾i®si
A6-
?6-
?6-
?
? ? ?
¾6-
¾6-
¾6-
¹¸ș·
– –
-6+: : :
: : :
r0; r1; : : : ; r n¡1

142 PRELEGEREA 12. CODURI BCH
Cele tcircuite din stˆ anga realizeaz˘ a la fiecare tact multiplicarea cu ®i.
La momentul init ¸ial blocul Acalculeaz˘ a suma ¾1®+¾2®2+: : :+¾t®tdˆ and la
ie¸ sire valoarea 1 (scalar) dac˘ a aceast˘ a sum˘ a este egal˘ a cu 1¸ si 0 (scalar) dac˘ a suma
anterioar˘ a d˘ a orice element din GF(2m) diferit de 1= (1;0; : : : ; 0).ˆIn funct ¸ie de
acest rezultat, componenta rn¡1este schimbat˘ a, respectiv p˘ astrat˘ a.
La momentul urm˘ ator, blocul Acalculeaz˘ a suma ¾1®2+¾2®4+: : :+¾t®2t. Dac˘ a
aceast˘ a sum˘ a este 1; ®2este r˘ ad˘ acin˘ a a polinomului de localizare a erorii S(X),
deci®¡2=®n¡2este o localizare a erorii. ˆIn caz contrar, suma este diferit˘ a de
1. La ie¸ sirea din blocul Ase obt ¸ine scalarul 1 respectiv 0 – componenta rn¡2fiind
modificat˘ a respectiv p˘ astrat˘ a.
Exemplul 12.5 Fie®2GF(24)primitiv, r˘ ad˘ acina polinomului 1 +X+X4. S˘ a
presupunem ¸ si c˘ a se ¸ stiu ¾1¸ si¾2. Circuitul care multiplic˘ a cu ®este (Prelegerea 8,
Figura 8:4) circuitul de ˆ ımp˘ art ¸ire cu m(X) = 1 + X+X4:
±°²¯s
+- – – – -6¾
?-?
Circuitul de ˆ ınmult ¸ire cu ®2este – conform egalit˘ at ¸ii
®2(a1+a2®+a3®2+a4®3) =a1®2+a2®3+a3®4+a4®5=a3+ (a3+a4)®+
(a1+a4)®2+a2®3urm˘ atorul (vezi ¸ si Exemplul 8:10, Prelegerea 8):
±°²¯s
s±°²¯- –
? -6- –
? ¾6
66- -6¾
?-?

? -+
+
Init ¸ial ˆ ın elementele de ˆ ınmagazinare ale celor dou˘ a circuite se afl˘ a ¾1respectiv ¾2.
Pentru cazul binar vom nota cu
³
´–

-x1x2xnx1_x2_: : :_xn
dispozitivul ”sau” care d˘ a valoarea (scalar) 0dac˘ a ¸ si numai dac˘ a
x1=x2=: : :=xn=0;
¸ si cu
– – x x
dispozitivul ”non”.
Atunci, circuitul de implementare a procedeului Chien de localizare a erorii este:

12.4. EXERCIT ¸II 143
1±°²¯r±°²¯r
±°²¯r
±°²¯
±°²¯
±°²¯
±°²¯
µ´
±°²¯++
?+
+
+
+
+
+?- ?¾

??- ? ¾
?? – ? ¾
?-
?? -?
? – ? ¾
ă
?-
?
?
?

?––6¾
?-?
¾6-
?¾?
¾6¾
¾6-
?
?¾6¾

r0; r1; : : : ; r n¡1
ˆIn acest circuit, cele patru elemente de ˆ ınmagazinare din stˆ anga formeaz˘ a circuitul
de ˆ ınmult ¸ire cu ®(unde init ¸ial se introduce ¾1), iar cele patru elemente din dreapta
formeaz˘ a circuitul de ˆ ınmult ¸ire cu ®2, aranjat ˆ ın ordine invers˘ a (unde ¾2se introduce
init ¸ial de la dreapta spre stˆ anga).
De asemenea, exist˘ a un element de ˆ ınmagazinare care cont ¸ine numai 1, element
pe care ˆ ıl furnizeaz˘ a la fiecare tact.
Init ¸ial, circuitul funct ¸ioneaz˘ a odat˘ a la momentul 0f˘ ar˘ a a introduce nimic de pe
canal (pentru ”amorsarea” ˆ ın elementele de ˆ ınmagazinare a coeficient ¸ilor pentru ¾1®
respectiv ¾2®2).
La momentul urm˘ ator se ˆ ıncepe procesul efectiv de decodificare. Dac˘ a rn¡1a fost
perturbat, atunci ®n¡1este localizarea erorii, adic˘ a ®este r˘ ad˘ acin˘ a a polinomului de
localizare a erorii ¸ si avem 1+¾1®+¾2®2=0.ˆIn acest caz, la intrarea ˆ ın sumatorul
”sau” este vectorul 0= (0;0;0;0), iar la ie¸ sire scalarul 0. Dup˘ a negare se obt ¸ine
scalarul 1, care se adun˘ a (pentru corect ¸ie) la rn¡1.
Dac˘ a rn¡1este corect, la intrarea ˆ ın sumator se obt ¸ine o valoare nenul˘ a, deci
ie¸ sirea va fi 1, care prin negare este 0¸ sirn¡1r˘ amˆ ane nemodificat.
12.4 Exercit ¸ii
12.1 S˘ a se verifice valabilitatea descompunerii M=ABATdin demonstrat ¸ia Teo-
remei 12.5
12.2 Fie®2GF(2m); m > 2primitiv. Atunci polinoamele minimale m1(X)¸ si
m3(X)au acela¸ si grad.
12.3 Construit ¸i un cod BCH binar corector de 2erori de lungime 11.
12.4 Construit ¸i un cod BCH ternar de lungime 26¸ sid= 5.

144 PRELEGEREA 12. CODURI BCH
12.5 S˘ a se determine polinomul generator ¸ si cel de control pentru codul BCH binar
corector de 3erori de lungime
(a) 15 ( b) 31.
Codificat ¸i mesajul de informat ¸ie format numai din 1.
12.6 Caracterizat ¸i codurile BCH care sunt definite de toate elementele extensiei
Galois GF(qm).
12.7 Dac˘ a g(X) = 1 + X4+X6+X7+X8este polinomul generator al unui cod
BCH binar de lungime 15, s˘ a se cerceteze dac˘ a urm˘ atoarele secvent ¸e sunt cuvinte –
cod:
(a) 011001011000010 ( b) 000111010000110
(c) 011100000010001 ( d) 111111111111111
12.8 Aflat ¸i r˘ ad˘ acinile polinoamelor cu coeficient ¸i ˆ ın GF(24)(®este r˘ ad˘ acina poli-
nomului 1 +X+X4):
X2+®4X+®13; X2+®7X+®2; X2®2X+®5
X2+®6; X2+®2X; X2+X+®8.
12.9 Definim codul BCH de polinom generator g(X) =m1(X)m3(X)peste GF(24)
folosind elementul primitiv ®, r˘ ad˘ acin˘ a a polinomului 1 +X+X4. Se recept ¸ioneaz˘ a
cuvintele a¸ si se calculeaz˘ a sindromurile aH. S ¸tiind aceste sindromuri, localizat ¸i
erorile (dac˘ a se poate):
01000101 11101000 11001101 01000000
00000100 10100100 00111101 00000000
12.10 Pentru codul BCH definit ˆ ın exemplul anterior, decodificat ¸i mesajele:
110000000000000 000010000100001 010001010100000
110011100111000 110011100100000 111000000000001
101110000000000 101010010110001 010000100000000
010101001011000 110111011101100 101110000001000
111001011000000 000111010000110
12.11 ˆIn codul BCH de lungime 15corector de 3erori, s˘ a se decodifice mesajele:
(a) 001000100000000 ;(b) 101011001000000 .
12.12 ˆIn codul BCH peste Z3de lungime 8, corector de 2erori, s˘ a se decodifice
mesajele
(a) 00100000 ( b) 12121212 ( c) 11211122
(d) 02020202 ( e) 10201020 ( f) 22110011 :
12.13 Fie®2GF(25)primitiv, r˘ ad˘ acin˘ a a polinomului 1 +X2+X5. Se define¸ ste
un cod BCH de lungime 31cud= 5.
1.S˘ a se construiasc˘ a polinomul generator al codului: g(X) =m1(X)m3(X).
2.S˘ a se decodifice mesajul 1001011011110000110101010111111 .

Prelegerea 13
Coduri Reed – Solomon
13.1 Definirea codurilor RS
O clas˘ a foarte interesant˘ a de coduri ciclice a fost definit˘ aˆ ın 1960 de Reed ¸ si Solomon.
Numite ˆ ın articolul init ¸ial coduri polinomiale , Peterson arat˘ a un an mai tˆ arziu c˘ a ele
sunt de fapt un caz particular de coduri BCH. Construct ¸ia dat˘ a de Reed – Solomon
a fost urm˘ atoarea:
Fie®2GF(qm) primitiv (deci ord(®) =n=qm¡1).
Dac˘ a a0a1: : : a k¡12GF(qm)keste secvent ¸a de informat ¸ie, se define¸ ste polinomul
h(X) =a0+a1X+: : :+ak¡1Xk¡12GF(qm)[X]. Codul polinomial va fi format de
toate cuvintele de forma h(1)h(®): : : h(®n¡1).
Teorema 13.1 Un cod polinomial este un cod BCH peste GF(qm), definit de r˘ ad˘ a-
cinile ®; ®2; : : : ; ®n¡k.
Demonstrat ¸ie : S˘ a consider˘ am polinomul ff(X)gasociat cuvˆ antului – cod:
f(X) =h(1) +h(®)X+: : :+h(®n¡1)Xn¡1=a0(1 +X+X2+: : :+Xn¡1) +
a1(1 +®X+®2X2+: : :+®n¡1Xn¡1) +a2(1 +®2X+®4X2+: : :+ (®2X)n¡1) +: : :+
ak¡1(1 +®k¡1X+: : :+ (®k¡1X)n¡1).
Se ¸ stie c˘ a toate elementele nenule din GF(qm) sunt r˘ ad˘ acinile polinomului
Xqm¡1¡1 =Xn¡1 = ( X¡1)(1 + X+X2+: : :+Xn¡1), deci toate elementele din
GF(qm)n f0;1gsunt r˘ ad˘ acini ale polinomului 1 + X+X2+: : :+Xn¡1.
Prin calcul se obt ¸ine f(1) =a0; f(®¡1) =¡a1; f(®¡2) =¡a2; : : : ;
f(®¡(k¡1)) =¡ak¡1¸ sif(®¡j) = 0 dac˘ a n¡1¸j¸k.
Dar cum ®n= 1, avem ®¡j=®n¡j¸ si deci f(®i) = 0 ;1·i·n¡k. 2
ˆIn continuare vom numi aceste coduri Reed – Solomon pentru care vom folosi
urm˘ atoarea definit ¸ie:
Definit ¸ia 13.1 Fie®2GF(qm)primitiv. Se nume¸ ste cod Reed – Solomon (RS)
codul BCH de polinom generator g(X)2GF(qm)[X],
g(X) = (X¡®m0)(X¡®m0+1): : :(X¡®m0+d¡2).
Deci, diferent ¸a fat ¸˘ a de codurile BCH generale este aceea c˘ a un cod RS este definit
direct pe extensie, nu pe corpul de baz˘ a. Astfel, la un cod BCH cuvintele – cod sunt
dinZn
q, pe cˆ and la un cod RS, ele sunt din GF(qm)n. Cum ¸ si GF(qm) este corp,
toate propriet˘ at ¸ile codurilor BCH se p˘ astreaz˘ a ¸ si ˆ ın cazul codurilor RS.
145

146 PRELEGEREA 13. CODURI REED – SOLOMON
Deoarece au fost studiate (¸ si utilizate) numai codurile Reed – Solomon de carac-
teristic˘ a 2, vom considera ˆ ın continuare q= 2.
Exemplul 13.1 FieGF(23)generat de r˘ ad˘ acina ®a polinomului 1 +X+X3, ¸ si
s˘ a consider˘ am codul RS definit de polinomul g(X) = ( ®+X)(®2+X) = 1 + ®+
(®+®2)X+X2. Este un cod ciclic de lungime n= 7; k= 5¸ sid= 3. Folosind
definit ¸ia din sect ¸iunea 9:3, se poate construi matricea generatoare a codului:
G=0
BBBBBB@1+® ® +®21 0 0 0 0
0 1 +® ® +®21 0 0 0
0 0 1 +® ® +®21 0 0
0 0 0 1 +® ® +®21 0
0 0 0 0 1 +® ® +®211
CCCCCCA
Codul are 85cuvinte, obt ¸inute prin ˆ ınmult ¸irea cu g(X)a tuturor polinoamelor din
GF(23)[X]de grad cel mult 4sau – echivalent – din ˆ ınmult ¸irea cu matricea Ga
tuturor cuvintelor din GF(23)5.
De exemplu, codificarea mesajului de informat ¸ie a=1®00®3, sau a(X) = 1 +
®X+®3X4estea(X)g(X) = 1+ ®+(®+®2)X2+®X3+(1+ ®2)X4+X5+(1+ ®)X6
(respectiv ®30®4®®61®3).
O matrice de control foarte simpl˘ a se obt ¸ine folosind (conform sect ¸iunii 11:3)
r˘ ad˘ acinile ®¸ si®2ale cuvintelor – cod:
H=Ã
1® ®2®3®4®5®6
1®2®4®6® ®3®5!
.
Teorema 13.2 Distant ¸a minim˘ a a unui cod RS este d=n¡k+ 1.
Demonstrat ¸ie : S˘ a not˘ am – temporar – cu dHdistant ¸a minim˘ a a unui cod. Conform
Teoremei 3 :3,dH·n¡k+ 1. Pe de-alt˘ a parte, ˆ ıntr-un cod RS, grad(g(X)) =
n¡k=d¡1 deci d=n¡k+ 1. Din cele dou˘ a afirmat ¸ii rezult˘ a dH·d. Pe de-alt˘ a
parte, din Teorema 12 :2, cum codul RS este un caz particular de cod BCH, rezult˘ a
dH¸d. 2
Din aceast˘ a teorem˘ a rezult˘ a c˘ a un cod RS are distant ¸a maxim˘ a separabil˘ a (se
mai spune c˘ a este un cod DMS).
13.2 Coduri RS scurte
Deoarece ®2GF(2m) este primitiv, toate cuvintele unui cod RS au lungimea
n= 2m¡1 ¸ sik=n¡d+ 1 = 2m¡dsimboluri de informat ¸ie. Uneori ˆ ıns˘ a sunt
necesare coduri RS a c˘ aror lungime s˘ a nu fie de aceast˘ a form˘ a. Ele se obt ¸in astfel:
FieAun (n; k) – cod RS de distant ¸˘ a d¸ sis(1·s <2m¡d) un num˘ ar ˆ ıntreg.
Se construie¸ ste codul RS scurt A(s) format din toate cuvintele lui Acare au 0pe
ultimele spozit ¸ii, din care apoi aceste spozit ¸ii se ignor˘ a.
Exemplul 13.2 FieAcodul dat de g(X) =®+Xunde ®este r˘ ad˘ acina polinomului
1 +X+X2¸ si genereaz˘ a GF(22).Aare deci n= 3; k= 2; d= 2¸ si16cuvinte

13.2. CODURI RS SCURTE 147
– cod. Codul A(1)se obt ¸ine luˆ and toate cuvintele lui Acare au 0pe ultima pozit ¸ie
(acestea sunt 000; ®10; ®2®0;1®0), din care se elimin˘ a ultimul caracter.
Deci A(1) =f00; ®1; ®2®;1®g.
Atent ¸ie: Ultima pozit ¸ie nu ˆ ınseamn˘ a ultimul bit. Fiecare element din cuvˆ ant are
aici dou˘ a pozit ¸ii binare. Astfel, cele patru cuvinte – cod alese din Aau reprezentarea
binar˘ a
000000 ;011000 ;110100 ;100100
iar codul scurt, reprezentat ˆ ın binar este ˆA(1) =f0000;0110;1101;1001g.
Dac˘ a g(X) este polinomul generator al codului A, atunci
A(s) =fb2Ajgrad(b(X))< n¡sg:
Sau – altfel spus – A(s) cont ¸ine toate polinoamele de forma b(X) unde
b(X) =a(X)g(X); grad (a(X))< k¡s= 2m¡d¡s(deoarece grad(g(X)) =
d¡1 =n¡k).
De aici rezult˘ a c˘ a matricea generatoare a unui cod RS scurt A(s) este
G=0
BBBB@g(X)
Xg(X)

Xk¡s¡1g(X)1
CCCCA
care se obt ¸ine din matricea generatoare a codului A, din care se elimin˘ a ultimele s
linii. Num˘ arul de simboluri de informat ¸ie este egal cu num˘ arul de linii din G, deci
ks=k¡s= 2m¡d¡s
S˘ a not˘ am acum cu drespectiv dsdistant ¸ele minime ale celor dou˘ a coduri. Se
observ˘ a c˘ a 8c1;c22A(s);c0
1=c100: : :0;c0
2=c200: : :02A¸ si deci d(c1;c2) =
d(c0
1;c0
2), adic˘ a ds¸d.
Pe de-alt˘ a parte (Teorema 3 :3),ds·ns¡ks+1 = 2m¡1¡s¡(2m¡d¡s)+1 = d,
decids=d.
Din cele ar˘ atate mai sus putem enunt ¸a teorema:
Teorema 13.3 FieAun(n; k)- cod RS cu distant ¸a minim˘ a d¸ siA(s)codul s˘ au
scurt, cu parametrii ns; ks; ds. Atunci
ns= 2m¡1¡s; k s= 2m¡d¡s; d s=d
¸ siA(s)este un cod DMS.
Observat ¸ie : Alte coduri scurte se pot obt ¸ine eliminˆ and orice set de selemente din
cuvintele unui cod RS. Se poate vedea imediat c˘ a propriet˘ at ¸ile ar˘ atate mai sus nu
se schimb˘ a.
Exemplul 13.3 Plecˆ and de la codul RS din Exemplul 13.1, codul scurt A(2)va
avea ca matrice generatoare matricea Gf˘ ar˘ a ultimele dou˘ a linii ¸ si coloane, iar ca
parametri n2= 5; k2= 3; d2= 3.

148 PRELEGEREA 13. CODURI REED – SOLOMON
13.3 Decodificarea codurilor RS
Fiind cazuri particulare de coduri BCH, codurile RS se pot decodifica folosind al-
goritmul Peterson (Sect ¸iunea 12 :2). S˘ a relu˘ am detaliat pe un exemplu aplicarea
acestui algoritm.
Exemplul 13.4 Fieg(X) = (1 + X)(®+X)(®2+X)(®3+X)unde ®2GF(23)
este r˘ ad˘ acina (primitiv˘ a) a polinomului 1 +X+X3. Codul are d= 5, deci poate
corecta maxim 2erori independente. Mai ¸ stim c˘ a:
®3= 1 + ®; ®4=®+®2; ®5= 1 + ®+®2; ®6= 1 + ®2.
S˘ a presupunem c˘ a s-a recept ¸ionat cuvˆ antul v=®6®®5®210®2. Pentru decodifi-
care se aplic˘ a urm˘ atorii pa¸ si:
(1): Se calculeaz˘ a cele patru sindromuri:
S0=v(®0) =®6+®+®5+®2+1+0+®2=1+®2+®+1+®+®2+®2+1+®2=1
S1=v(®) =®6+®2+®7+®5+®4+0+®8=®3
S2=v(®2) =®6+®3+®9+®8+®8+0+®14=®3
S3=v(®3) =®6+®4+®11+®11®12+0+®20=1
(2)Deoarece rangul matriciiÃ
S0S1
S1S2!

1®3
®3®3!
este2, cuvˆ antul
vare dou˘ a erori; cum distant ¸a este 5, ele pot fi corectate.
(3)Se rezolv˘ a sistemul liniar
(
S0¾2+S1¾1=S2
S1¾2+S2¾1=S3adic˘ a(
¾2+®3¾1=®3
®3¾2+®3¾1=1
Adunˆ and cele dou˘ a ecuat ¸ii, se obt ¸ine (1+®3)¾2=1+®3, deci ¾2=1.
ˆInlocuind ˆ ın prima ecuat ¸ie, avem ®3¾1=®3+1=®, de unde, prin ˆ ınmult ¸ire cu
®4se ajunge la ¾1=®5.
(4)Polinomul de localizare a erorii este ¾(X) =X2+¾1X+¾2=X2+
®5X+1. Prin ˆ ıncerc˘ ari se obt ¸ine ¾(®) =¾(®6) = 0 , deci cele dou˘ a erori sunt pe
pozit ¸iile X1=®; X 2=®6.
(5)Se rezolv˘ a sistemul liniarÃ
X0
1X0
2
X1X2!
¢Ã
Y1
Y2!

S0
S1!
, adic˘ a:
(
Y1+ Y2=1
®Y1+®6Y2=®3
ˆInmult ¸ind a doua ecuat ¸ie cu ®¸ si adunˆ and, se obt ¸ine ®6Y1=®5, deci Y1=®6. Dup˘ a
ˆ ınlocuire ˆ ın prima ecuat ¸ie, se determin˘ a ¸ si Y2=®2.
(6)Rezumˆ and, au ap˘ arut erorile ®6pe pozit ¸ia 1¸ si®2pe pozit ¸ia 6. Deci
eroarea este e=0®60000 ®2, iar cuvˆ antul – cod trimis a fost
c=v+e=®6®5®5®2100.
13.4 Alt˘ a construct ¸ie a codurilor RS
Plecˆ and de la construct ¸ia init ¸ial˘ a, se poate realiza ¸ si o alt˘ a definit ¸ie pentru codurile
RS. Ea se bazeaz˘ a pe o modalitate diferit˘ a de reprezentare a cuvintelor din Zn
q:
folosind polinoamele ca funct ¸ii.

13.4. ALT ˘A CONSTRUCT ¸IE A CODURILOR RS 149
Exemplul 13.5 FieS=GF(23), construit folosind r˘ ad˘ acina primitiv˘ a ®a polino-
mului 1 +X+X3. Definim funct ¸ia f:S!Z2prin
x0 1 ® ®2®3®4®5®6
f(x)0 0 1 1 0 1 0 0
Atunci f(x)se poate reprezenta prin
vf=f(0)f(1)f(®)f(®2)f(®3)f(®4)f(®5)f(®6) = 00110100 .
Exemplul 13.6 FieS=GF(23)¸ si funct ¸ia f:S!Sdefinit˘ a vf=®401®21®00.
Pe baza valorilor ˆ ın fiecare punct din S,fse poate reprezenta ¸ si ca un polinom
f(X) =®4+®2X+®3X2+X3.
Definit ¸ia 13.2 FieSµGF(2m). Dou˘ a polinoame p(X); q(X)reprezint˘ a aceea¸ si
funct ¸ie :S!GF(2m)dac˘ a ¸ si numai dac˘ a 8¯2S; p(¯) =q(¯).
Mult ¸imea A=ff(X)2GF(2m)[X]jgrad(f(X))·k¡1gse poate structura evident
ca un spat ¸iu liniar de dimensiune k, cu baza f1; X; X2; : : : ; Xk¡1g. Deoarece toate
aceste polinoame pot fi scrise ¸ si ca funct ¸ii definite pe o mult ¸ime SµGF(2m), vom
numi A”spat ¸iul funct ¸iilor pe S”.
De remarcat c˘ a ˆ ın aceast˘ a faz˘ a Snu este definit explicit.
Teorema 13.4 Fie mult ¸imea S;jSj=n¸ sik·n. Mult ¸imea tuturor funct ¸iilor
:S!GF(2m)reprezentate prin polinoame de grad ·k¡1formeaz˘ a un spat ¸iu
liniar de funct ¸ii, cu baza f1; X; : : : ; Xk¡1g.
Demonstrat ¸ie : Evident, orice polinom de grad cel mult k¡1 este generat de
f1; X; : : : ; Xk¡1g. Tot ce trebuie ar˘ atat este c˘ a fiecare funct ¸ie are o reprezentare
unic˘ a sub form˘ a de polinom.
S˘ a presupunem (prin absurd) c˘ a p(X) ¸ siq(X) sunt egale ca funct ¸ii pe S. Deci
8®2S; p(®) =q(®). Dar atunci p(X)¡q(X) este un polinom de grad < kcare
aren(n¸k) r˘ ad˘ acini, deci p(X)¡q(X)´0, adic˘ a p(X)´q(X). 2
Exemplul 13.7 FieS=GF(23)construit folosind 1 +X+X3, ¸ si s˘ a consider˘ am
toate polinoamele din GF(23)[X], de grad cel mult doi. O baz˘ a pentru acest spat ¸iu
de funct ¸ii este f1; X; X2g, cu reprezentarea corespunz˘ atoare:
1 ¡ 11111111
X ¡ 01®®2®3®4®5®6
X2¡ 01®2®4®6®®3®5
Atunci, orice polinom p(X) =a0+a1X+a2X2considerat ca o funct ¸ie, poate fi
reprezentat sub form˘ a de vector prin
vp= (a0a1a2)0
B@1 1 1 1 1 1 1 1
0 1 ® ®2®3®4®5®6
0 1 ®2®4®6® ®3®51
CA
Teorema 13.5 Spat ¸iul funct ¸iilor pe SµGF(2m) (jSj=n)al tuturor polinoamelor
dinGF(2m)[X]de grad ·k¡1formeaz˘ a un (n; k)- cod liniar DMS.

150 PRELEGEREA 13. CODURI REED – SOLOMON
Demonstrat ¸ie : Alegem o mult ¸ime SµGF(2m) de cardinal n¸ si consider˘ am spat ¸iul
funct ¸iilor tuturor polinoamelor p:S!GF(2m) de grad cel mult k¡1. Lungimea
fiec˘ arui cuvˆ ant – cod este n, iar dimensiunea este k(cu Teorema 13.4). Mai r˘ amˆ ane
de ar˘ atat c˘ a acest cod este DMS (are distant ¸˘ a maxim˘ a separabil˘ a), adic˘ a d=n¡
k+ 1. Pentru aceasta, s˘ a observ˘ am c˘ a orice polinom p(X) are maxim k¡1 r˘ ad˘ acini
distincte; deci reprezentarea vpare cel mult k¡1 zero-uri, adic˘ a w(vp)¸n¡k+ 1.
Conform Teoremei 3 :3,d·n¡k+ 1, deci d=n¡k+ 1. 2
Fienun divizor al lui 2m¡1 ¸ siS=f®2GF(2m)j®n= 1gmult ¸imea r˘ ad˘ acinilor
de ordinul nale unit˘ at ¸ii din GF(2m). Evident, Scont ¸ine toate r˘ ad˘ acinile din GF(2m)
ale ecuat ¸iei Xn+ 1 = 0 ¸ si Sare cel put ¸in un element primitiv (Teorema 11 :1).
Teorema 13.6 Fiep(X); q(X)2GF(2m)[X]¸ siSµGF(2m)mult ¸imea r˘ ad˘ acinilor
de ordinul nale unit˘ at ¸ii. Atunci p(X)¸ siq(X)reprezint˘ a aceea¸ si funct ¸ie f:S!
GF(2m)dac˘ a ¸ si numai dac˘ a p(X)´q(X) (mod 1 +Xn).
Demonstrat ¸ie : Fie q(X) =h(X)(1 + Xn) +p(X). Atunci pentru orice ®2Savem
q(®) =h(®)(1 + ®n) +p(®). Dar 1 + ®n= 0, deci q(®) =p(®).
Invers, fie ®2Sprimitiv. Deci orice element din Sare forma ®i(0·i < n ).
Dac˘ a q(®i) =p(®i), atunci ®ieste r˘ ad˘ acin˘ a a polinomului p(X)¡q(X). Putem scrie
atunci
p(X)¡q(X) =h(X)n¡1Y
i=0(1 +®i) =h(X)(1 + Xn):
2
Teorema 13.7 FieSmult ¸imea r˘ ad˘ acinilor de ordinul nale unit˘ at ¸ii din GF(2m).
Atunci spat ¸iul funct ¸iilor tuturor polinoamelor din GF(2m)[X]de grad ·k¡1peS
formeaz˘ a un (n; k)- cod ciclic peste GF(2m).
Demonstrat ¸ie : S˘ a not˘ am cu Cacest spat ¸iu ¸ si fie Sgenerat de ®primitiv. Atunci,
dac˘ a p(X)2GF(2m)[X] este un polinom de grad cel mult k¡1, avem vp=
p(1)p(®): : : p(®n¡1)2C.
Fieq(X) =p(®X). Cum grad(q(X))·k¡1, rezult˘ a vq2C. Dar
q(1)q(®): : : q(®n¡1) =p(®)p(®2): : : p(®n¡1)p(1)2C;
ceea ce reprezint˘ a chiar definit ¸ia unui cod ciclic. 2
Exemplul 13.8 S˘ a consider˘ am GF(23)construit cu 1 +X+X3¸ si fie p(X) =
®4+®2X+®3X2+X3, care are reprezentarea 01®21®00. Permutarea ei ciclic˘ a
este1®21®000, care corespunde funct ¸iei p(®X) =®4+®3X+®5X2+®3X3=
(®4+X)(®5+X)(®6+X)®3.
Definit ¸ia 13.3 Fie polinomul V(X) =V0+V1X+: : :+Vn¡1Xn¡12GF(2m)[X]
¸ si®2GF(2m)o r˘ ad˘ acin˘ a primitiv˘ a de ordinul na unit˘ at ¸ii. Spunem c˘ a v(X) =
v0+v1X+: : :+vn¡1Xn¡1este ”transformata” lui V(X)dac˘ a
V(®j) =n¡1X
i=0Vi®ji=vj; j = 0;1; : : : ; n ¡1

13.4. ALT ˘A CONSTRUCT ¸IE A CODURILOR RS 151
Altfel spus, dac˘ a se noteaz˘ a cu A= (aij); aij=®ij, atunci
(V0V1: : : V n¡1)A= (v0v1: : : v n¡1):
Matricea Aeste numit˘ a transformata Fourier finit˘ a . Ea este nesingular˘ a, deci se
poate scrie ( V0V1: : : V n¡1) = (v0v1: : : v n¡1)A¡1sau
Vi=n¡1X
i=1vj®¡ij=v(®¡i)
Vom ar˘ ata aceasta ˆ ıns˘ a ˆ ın mod direct, f˘ ar˘ a a folosi inversa matricii A:
Teorema 13.8 Fie®2GF(2m)o r˘ ad˘ acin˘ a primitiv˘ a de ordin na unit˘ at ¸ii. Dac˘ a
vj=V(®j)pentru V(X) = V0+V1X+: : :+Vn¡1Xn¡12GF(2m)[X], atunci
Vi=v(®¡i)unde v(X) =v0+v1X+: : :+vn¡1Xn¡1.
Demonstrat ¸ie : Deoarece ®este primitiv, vom avea
n¡1X
j=0®(k¡i)j=(
n(mod 2) dac˘ a k¡i= 0
0 dac˘ a k¡i6= 0
Atunci
v(®¡i) =n¡1X
j=0vj®¡ij=n¡1X
j=0Ãn¡1X
k=0Vk®kj!
®¡ij=n¡1X
k=0Vk0
@n¡1X
j=0®(k¡i)j1
A=Vi. 2
Deci, fiind dat un vector de valori ( v0; v1; : : : ; v n¡1), se pot reg˘ asi coeficient ¸ii
polinomului V(X) =V0+V1X+: : :+Vn¡1Xn¡1, lucru esent ¸ial ˆ ın definirea unui
algoritm de decodificare.
Teorema 13.9 FieSµGF(2m)mult ¸imea r˘ ad˘ acinilor de ordinul nale unit˘ at ¸ii din
GF(2m), generat˘ a de elementul primitiv ®. Spat ¸iul funct ¸iilor tuturor polinoamelor
de grad < n¡d+ 1peSeste un cod ciclic DMS cu polinomul generator
g(X) = (®+X)(®2+X): : :(®d¡1+X).
Demonstrat ¸ie : Funct ¸ia polinomial˘ a V(X) a c˘ arei reprezentare corespunde lui v(X) =
a(X)g(X) este V(X) =n¡1X
i=0v(®n¡i)X. Deoarece v(®n¡i) = 0 pentru i=n¡d+
1; n¡d+ 2; : : : ; n ¡1 (grad(v(X)< n¡d+ 1), coeficientul lui XidinV(X) este
zero, deci V(X) are gradul < n¡d+ 1. 2
Dac˘ a se ia n= 2m¡1, se ajunge la o alt˘ a modalitate de construct ¸ie a codurilor
RS, care are o alt˘ a matrice generatoare (deci o alt˘ a dispunere a bit ¸ilor de informat ¸ie).
Exemplul 13.9 Fie®r˘ ad˘ acina polinomului 1 +X+X3cu care se construie¸ ste
GF(23). Consider˘ am codul RS de polinom generator g(X) = (1 + X)(®+X)(®2+
X)(®3+X) = ®6+®5X+®5X2+®2X3+X4care corespunde reprezent˘ arii
®6®5®5®2100). Transformata lui g(X)este polinomul G(X) =6X
k=0g(®7¡k)Xk.
Pentru c˘ a g(®0)g(®): : : g(®6) =00001 ®®4, avem
G(X) =g(®7¡1)X+g(®7¡2)X2+g(®7¡3)X3=®4X+®X2+X3=X(®4+®X+X2).
Se verific˘ a u¸ sor c˘ a G(X)este o funct ¸ie cu reprezentarea

152 PRELEGEREA 13. CODURI REED – SOLOMON
G(®0)G(®): : : G(®6) =®6®5®5®2100.
Putem gˆ andi acest cod RS ca spat ¸iul tuturor polinoamelor de grade 1;2¸ si3, adic˘ a
fXp(X)jp(X)2GF(23)[X]; grad (p(X))<3g.
Baza pentru acest spat ¸iu liniar este fX; X2; X3g, iar matricea generatoare
0
B@1® ®2®3®4®5®6
1®2®4®6® ®3®5
1®3®6®2®5® ®41
CA
Deci G(X) =®4X+®X2+X3va avea reprezentarea
(®4®1)0
B@1® ®2®3®4®5®6
1®2®4®6® ®3®5
1®3®6®2®5® ®41
CA= (®6®5®5®21 0 0 ):
13.4.1 Algoritmul de decodificare Berlekamp – Massey
Fieg(X) polinomul generator al unui cod RS, c(X) = a(X)g(X) un polinom –
cod transmis, ¸ si v(X) =c(X) +e(X) polinomul recept ¸ionat. Not˘ am V(X); C(X)
¸ siE(X) transformatele lui v(X); c(X) respectiv e(X). Cum transformata Fourier
finit˘ a este o aplicat ¸ie liniar˘ a, se verific˘ a imediat V(X) =C(X) +E(X).
Deoarece g(X) are d¡1 r˘ ad˘ acini consecutive ®i; m 0·i·m0+d¡2, sindromul
s(X) va avea s(®n¡i) =e(®n¡i) =Eipentru n¡m0¡d+ 1·i·n¡m0. Deci
sindromul va putea determina d¡1 coeficient ¸i ai transformatei E(X). Pentru ceilalt ¸i
coeficient ¸i va trebui s˘ a relu˘ am polinomul de localizare a erorilor ¾(X).
¾(X) are proprietatea c˘ a ¾(®k) = 0 () ek6= 0. Deoarece E(®k) =ek, vom
avea ¾(®k)E(®k) = 08k, deci – lucrˆ and ˆ ın algebra polinoamelor modulo 1 + Xn:
f¾(X)gfE(X)g= 0
¸ si
f¾(X)gfE(X)g=(ÃtX
i=0¾iXi! Ãn¡1X
k=0EkXk!)
unde t= [(d¡1)=2]. Calculˆ and ˆ ın ambele relat ¸ii coeficientul lui Xt+k, se obt ¸ine:
¾tEk+¾t¡1Ek+1+: : :+¾0Ek+t= 0:
Pentru c˘ a ¸ stim deja d¡1 valori consecutive ale lui Ek, putem determina recursiv
coeficient ¸ii ¾i, pe care ˆ ıi folosim la generarea tuturor valorilor Ek.
ˆIn [5] se define¸ ste o alt˘ a form˘ a a acestui algoritm.
Exemplul 13.10 S˘ a relu˘ am codul RS definit ˆ ın Exemplul 13.4, ˆ ın care consider˘ am
c˘ a s-a recept ¸ionat cuvˆ antul v=®6®®5®210®2. Deoarece d= 5, avem t·2¸ si
E0=v(®0) =1; E6=v(®) =®3; E5=v(®2) =®3; E4=v(®3) =1. Polinomul de
localizare a erorii este ¾(X) =X2+¾1X+¾0. Determin˘ am ¾0; ¾1ca ˆ ın Exemplul
13.4 ¸ si g˘ asim ¾0=1; ¾1=®5. Se poate determina astfel relat ¸ia de recurent ¸˘ a:
Ek=®5Ek+1+Ek+2
Deoarece (E0; E6; E5; E4) = (1; ®3; ®3;1), vom avea:
E3=®5E4+E5=®5+®3=®2,
E2=®5E3+E4=®5¢®2+1=0,
E1=®5E2+E3=0+®2=®2

13.5. S ¸TERGERI 153
Am determinat transformata lui e(X), adic˘ a E(X) =1+®2X+®2X3+X4+
®3X5+®3X6. De aici rezult˘ a e= (E(®0); E(®); E(®2); : : : ; E (®6)) =0®60000 ®2,
deci cuvˆ antul decodificat este
c=v+e=®6®5®5®2100.
Pe de-alt˘ a parte, dac˘ a s-ar fi folosit matricea generatoare din Exemplul 13.9, nu
ar mai fi fost necesar s˘ a se determine vectorul eroare e, ci doar s˘ a se calculeze toate
valorile lui v(®k);0·k·6, din care se obt ¸ine direct mesajul transmis; mai precis,
se afl˘ a transformata lui v(X), care se adun˘ a la transformata lui e(X):
v0v1: : : v 6=v(®0)v(®6)v(®5): : : v(®) =1®®®61®3®3;
E0E1: : : E 6=1®20®21®3®3;¸ si deci
C0C1: : : C 6=V0V1: : : V 6+E0E1: : : E 6=0®4®1000 .
S-a obt ¸inut C(X) =®4X+®X2+X3. Deci bit ¸ii de informat ¸ie sunt (®4; ®;1).
De aici se obt ¸ine forma cuvˆ antului transmis c=®6®5®5®2100.
13.5 S ¸tergeri
O¸ stergere este o eroare detectat˘ a, pentru corectarea c˘ areia trebuind determinat˘ a
doar valoarea erorii. Num˘ arul locat ¸iei de ¸ stergere este pozit ¸ia elementului perturbat.
Acest num˘ ar este ˆ ın general cunoscut (din citirea fizic˘ a a mesajului primit sau din
structura codului).
Astfel, fie Aun cod RSpeste GF(2m) ¸ si s˘ a consider˘ am codul ˆAformat din
reprezentarea binar˘ a a cuvintelor codului A(fiecare element din GF(2m) se scrie ca
un cuvˆ ant binar de lungime m). Se define¸ ste ¸ si codul ˆA0obt ¸inut prin ad˘ augarea cˆ ate
unui bit de paritate la fiecare simbol din component ¸a cuvintelor codului ˆA.
Exemplul 13.11 S˘ a consider˘ am codul RS din Exemplul 13.2. Pentru a forma ˆA0,
se ˆ ınlocuie¸ ste fiecare element 0;1; ®; ®2respectiv cu 000;101;011;110(al treilea bit
este bitul de paritate). Astfel, pentru ®102Aavem 011101000 2ˆA0.
Deoarece fiecare element dintr-un cuvˆ ant – cod c2Aeste reprezentat printr-un
cuvˆ ant binar de lungime m+ 1, cuvˆ antul – cod corespunz˘ ator ˆ c02ˆA0va avea
lungimea (2m¡1)(m+ 1). Se observ˘ a c˘ a fiecare element nenul din ceste ˆ ınlocuit
cu un cuvˆ ant de pondere par˘ a. Deci, ˆ c0va fi format din 2m¡1 cuvinte binare de
lungimi m+ 1, fiecare de pondere par˘ a. ˆIn acest fel, dac˘ a ˆ ın cuvˆ antul recept ¸ionat
ˆv0exist˘ a un grup de pondere impar˘ a, ¸ stim c˘ a a ap˘ arut o eroare printre cei m+ 1
bit ¸i corespunz˘ atori. Considerat din nou ca un cuvˆ ant cu elemente din GF(2m), ¸ stim
c˘ a acest cuvˆ ant are un element perturbat; nu cunoa¸ stem valoarea erorii, dar ¸ stim
pozit ¸ia sa. Avem deci o ”¸ stergere”.
Exemplul 13.12 Reluˆ and construct ¸ia din exemplul anterior, s˘ a presupunem c˘ a s-
a primit 011100000 . Deci, au ap˘ arut erori ˆ ın al doilea grup de 3bit ¸i (acesta are
pondere impar˘ a), a¸ sa c˘ a ®1este un num˘ arul locat ¸iei de ¸ stergere. S ¸tiind acest num˘ ar,
putem ˆ ınlocui al doilea element cu 0(u¸ sureaz˘ a calculul sindromului), ¸ si vom ˆ ıncerca
decodificarea lui v=®00ˆ ın cel mai apropiat cuvˆ ant – cod din A, ¸ stiind c˘ a pozit ¸ia
erorii este X1=®.

154 PRELEGEREA 13. CODURI REED – SOLOMON
Teorema 13.10 FieAun cod RSpeste GF(2m)de distant ¸a d, ¸ sivun cuvˆ ant
recept ¸ionat care are s¸ stergeri ¸ si terori care nu sunt ¸ stergeri. Atunci vpoate fi
decodificat corect dac˘ a 2t+s·d¡1.
Demonstrat ¸ie : De remarcat c˘ a ˆ ın Teorema 3 :7, o condit ¸ie mai slab˘ a ( t+s·d¡1)
asigur˘ a corectarea celor terori, dar detecteaz˘ a numai celelalte s¸ sters˘ aturi. Aceast˘ a
teorem˘ a realizeaz˘ a corectarea complet˘ a a cuvˆ antului.
FieBmult ¸imea pozit ¸iilor ¸ sters˘ aturilor ¸ si Amult ¸imea pozit ¸iilor erorilor; deci
AnBeste mult ¸imea pozit ¸iilor erorilor care nu sunt ¸ sters˘ aturi. Definim ¾B(X) =Y
i2B(®i+X) ca fiind polinomul de localizare a ¸ sters˘ aturilor. Atunci polinomul de
localizare a erorilor se poate scrie
¾A(X) =¾B(X)¾AnB(X).
Aflarea pozit ¸iilor erorilor revine la determinarea r˘ ad˘ acinilor polinomului ¾AnB(X).
Pentru aceasta se poate folosi algoritmul Peterson de decodificare a codurilor BCH,
cu cˆ ateva schimb˘ ari, corespunz˘ atoare sindromurilor ”modificate”.
Astfel, fie ¾B(X) =B0+B1X+: : :+Bs¡1Xs¡1+Xs¸ si¾AnB(X) =A0+A1X+
: : :+At¡1Xt¡1+Xt.
Similar algoritmului Peterson, vom ˆ ınmult ¸i ambii membrii ai egalit˘ at ¸ii
¾B(X)¾AnB(X) =¾A(X) cu YiXj
i(m0·j·m0+d¡2) (reamintim, Xisunt
locat ¸iile, iar Yisunt valorile erorilor).
Apoi se ˆ ınlocuie¸ ste X=Xi¸ si se face suma dup˘ a i= 1; : : : ; t +s. Se obt ¸ine
S0
jA0+S0
j+1A1+: : :+S0
j+t¡1At¡1+S0
j+t= 0 ( m0·j·m0+d¡2) (1)
unde S0
ksunt sindromurile modificate, de forma
S0
k=B0Sk+B1Sk+1+: : :+Bs¡1Sk+s¡1+Sk+s: (2)
Pentru c˘ a se ¸ stiu valorile lui Sjpentru j=m0; : : : ; m 0+d¡2 iarB0; B1; : : : ; B s¡1
sunt cunoscute, se pot determina S0
jpentru m0·j·d¡1¡s. Deoarece 2 t+s·
d¡1, deci 2 t·d¡1¡s, se poate rezolva sistemul (1) scris matricial
0
BBBB@S0
m0S0
m0+1: : : S0
m0+t¡1
S0
m0+1 S0
m0+2: : : S0
m0+t…
S0
m0+t¡1S0
m0+t: : : S m0+2t¡11
CCCCA0
BBBB@A0
A1

At¡11
CCCCA=0
BBBB@S0
m0+t
S0
m0+t+1…
Sm0+2t1
CCCCA(3)
cutnecunoscute A0; A1; : : : ; A t¡1.
Dup˘ a determinarea polinomului de localizare a erorilor, algoritmul Peterson se
poate aplica ˆ ın continuare nemodificat. 2
FieAun cod RS peste GF(2m), de polinom generator g(X) = (®m0+X): : :
(®m0+d¡2+X). Se transmite cuvˆ antul – cod c¸ si se recept ¸ioneaz˘ a vcus¸ stergeri
localizate ˆ ın elementele mult ¸imii B=fX1; : : : ; X sg. Fie ¾B(X) =B0+B1X+: : :+
Bs¡1Xs¡1+Xspolinomul de localizare al ¸ stergerilor.
Polinomul de localizare a erorilor ¾A(X) =¾AnB(X)¾B(X) poate fi determinat
aflˆ and ¾AnB(X) =A0+A1X+: : :+At¡1Xt¡1+Xtastfel:
(a) Se calculeaz˘ a Sj=v(®j) pentru j=m0; m0+ 1; : : : ; m 0+d¡2;
(b) Se determin˘ a S0
j(m0·j·m0+d¡2¡s) cu relat ¸iile (2);
(c) Se rezolv˘ a sistemul liniar (3) de necunoscute Ai.

13.6. EXERCIT ¸II 155
Exemplul 13.13 FieAcodul RS peste GF(24)construit de 1 +X+X4, cu poli-
nomul generator g(X) = (1 + X)(®+X): : :(®4+X)¸ siˆA0codul binar asociat ˆ ın
care sunt codificate mesajele. S-a primit mesajul
ˆv0= 11101 11001 00101 00110 10010 0 : : :0;
deciv=®100®20®6®140: : :0.
Singura ¸ stergere localizat˘ a este ®1, deci ¾B(X) =®+X.
Trebuie s˘ a determin˘ am polinomul de localizare a erorilor.
Dinv(X) =®10+®2X2+®6X4+®14X5calcul˘ am sindromurile
S0=®5; S1=0; S2=®3; S3=®4; S4=®3.
Deoarece B0=®¸ sis= 1, relat ¸ia de recurent ¸˘ a pentru sindromurile modificate
este S0
j=B0Sj+Sj+1=®Sj+Sj+1(0·j·3).
Se determin˘ a astfel S0
0=®6; S0
1=®3; S0
2=0; S0
3=®11.
Deoarece d= 5avem t= 2, deci sistemul (3)esteÃ
S0
0S0
1
S0
1S¡20! Ã
a0
A1!

S0
2
S0
3!
sauÃ
®6®3
®30! Ã
A0
A1!

0
®11!
cu solut ¸ia A0=®8; A1=®11. S-a obt ¸inut polinomul ¾AnB(X) =®8+®11X+X2.
Deci,
¾A(X) =¾B(X)¾AnB(X) = (®+X)(®8+®11X+X2) = (®+X)(®3+X)(®5+X).
Rezult˘ a c˘ a erorile sunt localizate pe pozit ¸iile X1=®; X 2=®3; X 3=®5.
Mai departe se lucreaz˘ a pentru determinarea valorilor erorilor, folosind sindro-
murile originale ˆ ın algoritmul Peterson. Trebuie rezolvat sistemul:0
B@1 1 1
® ®3®5
®2®6®101
CA0
B@Y1
Y2
Y31
CA=0
B@®5
0
®31
CA
cu solut ¸ia Y1=®12; Y2=1; Y3=®3.
Deci v(X)se decodific˘ a ˆ ın c(X) =v(X)+e(X) = (®10+®2X2+®6X4+®14X5)+
(®12X+X3+®3X5), adic˘ a c=®10®12®21®610: : :0, sau – ˆ ın ˆA0:
11101 11110 00101 10001 00110 10001 0 : : :0.
13.6 Exercit ¸ii
13.1 Construit ¸i matricea generatoare ¸ si listat ¸i toate cuvintele – cod ale codului RS
din Exemplul 13.2. Scriet ¸i ¸ si forma binar˘ a a acestor cuvinte.
13.2 Fie codul definit de g(X) = (1+ X)(®+X)(®2+X)(®3+X), bazat pe extensia
Galois GF(23)generat˘ a de ®, r˘ ad˘ acin˘ a a polinomului 1 +X+X3.
1.Determinat ¸i n; k; d ¸ si num˘ arul de cuvinte – cod.
2.Construit ¸i o matrice generatoare ¸ si o matrice de control a codului.
3.Codificat ¸i mesajele de informat ¸ie
10®2;111; ®2®4®6.
13.3 Construit ¸i coduri RS cu urm˘ atorii parametri:
(a)m= 2; d= 3; m 0= 2;

156 PRELEGEREA 13. CODURI REED – SOLOMON
(b)m= 3; d= 3; m 0= 2;
(c)m= 3; d= 5; m 0= 0;
(d)m= 4; d= 5; m 0= 0;
(e)m= 5; d= 7; m 0= 0.
13.4 Pentru fiecare cod determinat la exercit ¸iul anterior determinat ¸i n; k¸ si num˘ a-
rul de cuvinte – cod.
13.5 Ar˘ atat ¸i c˘ a un (2m¡1; k)- cod RS are 2mkcuvinte – cod.
13.6 Fie codul RS de polinom generator g(X) = (1 + X)(®+X)(®2+X)(®3+
X)(®4+X)(®5+X)2GF(24)[X]unde ®este r˘ ad˘ acina polinomului 1 +X+X4.
Decodificat ¸i mesajele:
0®3®®5®3®2®6®10®000000
1®4®2®0010 ®®5®3®20®10®
®0®70®12®3®310000000
13.7 Fie codul RS generat de g(X) = ( ®+X)(®2+X)(®3+X)(®4+X)unde
®2GF(24)este r˘ ad˘ acina polinomului 1 +X+X4. Decodificat ¸i mesajele:
001®800®500000000
0®100®6®130®8®11®3®500000
®40100 ®2®5®12al14000000
13.8 Plecˆ and de la codul RS din exercit ¸iul precedent, se formeaz˘ a codul scurt A(4)
de lungime n= 11 (¸ sik= 7). Deecodificat ¸i mesajele:
001®800®50000
0®100®6®130®8®11®3®50
®40100 ®2®5®12®1400
13.9 Ar˘ atat ¸i c˘ a transformata Fourier finit˘ a Aeste inversabil˘ a.
13.10 Fiind dat GF(23)construit cu polinomul 1 +X+X3, g˘ asit ¸i matricea gene-
ratoare pentru un cod DMS de lungime 7pentru spat ¸iul funct ¸iilor definit pe
S=GF(23)n f0g, cu baza:
(a)fX; X2; X3g (b)f1; X; X2; X3; X4g (c)fX; X2; X3g.
Ar˘ atat ¸i c˘ a toate aceste coduri sunt ciclice. Determinat ¸i polinomul generator pen-
tru fiecare cod.
13.11 Fiind dat GF(23)construit cu 1 +X+X3, determinat ¸i pentru fiecare G(X)
reprezentarea vg:
G(X) =X+®X3; G (X) = 1 + X2+X4.
13.12 ˆIn acelea¸ si condit ¸ii din exercit ¸iul precedent, determinat ¸i G(X)¸ stiind valorile
luivg:
vg=®3®®40®6®5®2vg=®4®2®®30®61.
13.13 Folosind codul definit ˆ ın Exemplul 13.13, decodificat ¸i mesajele:
11101 11110 11010 00111 11110 10100 10110 10100 0 : : :0
11000 00000 01010 11111 11011 00000 10001 00101 0 : : :0
00000 10000 10000 10000 00101 10100 11101 0 : : :0.

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[3]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[4]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 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;
157

Prelegerea 14
Alte clase de coduri ciclice
14.1 Coduri Hamming ciclice
S˘ a consider˘ am spat ¸iul nul al matricii
H= (1® ®2: : : ®n¡1)
unde ®2GF(2p) este primitiv, deci n=ord(®) = 2p¡1.
Cum ®poate fi considerat ca un vector coloan˘ a cu pcomponente, Heste o
matrice p£2pˆ ın care toate coloanele sunt distincte. Acesta este dup˘ a cum se ¸ stie
(Prelegerea 4) un cod Hamming (2p¡1;2p¡p¡1) – construit ˆ ıns˘ a ca un cod ciclic.
Exemplul 14.1 Fie®2GF(23); ®r˘ ad˘ acin˘ a a polinomului ireductibil 1 +X+X3.
Se verific˘ a imediat c˘ a ord(®) = 7 , deci ®este primitiv. Construim matricea
H= (1® ®2®3®4®5®6) =0
B@1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 11
CA
Ea este matricea de control pentru un (7;4)- cod Hamming.
Deci codul studiat ˆ ın Exemplul 4:1(Prelegerea 4) poate fi tratat ¸ si ca un cod ciclic
de polinom generator h(X) = 1 + X+X3.
Un cod Hamming ciclic se define¸ ste cerˆ and ca orice polinom – cod ff(X)gs˘ a admit˘ a
ca r˘ ad˘ acin˘ a pe ®2GF(2p) primitiv. Generatorul unui asemenea cod este chiar
polinomul minimal al lui ®:g(X) =m(X).
Deoarece ¸ si ®2este r˘ ad˘ acin˘ a a polinoamelor – cod (Teorema 11 :9), codul Ham-
ming ciclic este un caz particular de cod BCH cu d= 3, capabil s˘ a corecteze o
eroare.
Codificarea se face folosind circuitul liniar cu p=n¡kelemente de ˆ ınmagazinare
(vezi paragraful 9 :4:2, Prelegerea 9), corespunz˘ ator polinomului minimal m(X). Cal-
culul sindromului cuvˆ antului recept ¸ionat fr(X)g- adic˘ a rHT=r(®) se realizeaz˘ a
folosind acela¸ si circuit de ˆ ımp˘ art ¸ire cu m(X). Acest sindrom – ˆ ın cazul ˆ ın care este
nenul, deci a intervenit o eroare simpl˘ a – este una din coloanele matricii H, adic˘ a
una din valorile 1; ®; ®2; : : : ; ®n¡1.
Pentru a afla care component˘ a a fost afectat˘ a de eroare, se poate folosi acela¸ si
circuit ˆ ın felul urm˘ ator: neglij˘ am intrarea ¸ si l˘ as˘ am circuitul s˘ a funct ¸ioneze, avˆ and
init ¸ial ˆ ın elementele de ˆ ınmagazinare sindromul r(®), care este de forma
157

158 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
®j(0< j·2p¡2).
La fiecare tact circuitul ˆ ınmult ¸e¸ ste cont ¸inutul elementelor de ˆ ınmagazinare cu ®;
deci, dup˘ a n¡j= 2p¡1¡jmomente, ˆ ın elementele de ˆ ınmagazinare se obt ¸ine
®2p¡1¡j+j=®2p¡1=®n=®0=1= (1;0; : : : ; 0):
Cum componentele cuvˆ antului recept ¸ionat sunt scrise ˆ ın ordinea descresc˘ atoare a
puterilor (prima component˘ a este coeficientul termenului de rang maxim), ˆ ınseam-
n˘ a c˘ a va trebui s˘ a corect˘ am componenta n¡jdin cuvˆ ant, ˆ ınlocuind 0 cu 1 sau 1 cu
0.
Exemplul 14.2 Fie®2GF(24), r˘ ad˘ acin˘ a a polinomului 1 +X+X4. Codul
Hamming (15;11)obt ¸inut folosind ca r˘ ad˘ acin˘ a pe ®- deci polinom generator
g(X) = 1 + X+X4, are matricea de control
H= (1® : : : ®14) =0
BBB@1 0 0 0 1 0 0 1 1 0 1 0 1 1 1
0 1 0 0 1 1 0 1 0 1 1 1 1 0 0
0 0 1 0 0 1 1 0 1 0 1 1 1 1 0
0 0 0 1 0 0 1 1 0 1 0 1 1 1 11
CCCA
Circuitul care realizeaz˘ a (ˆ ın funct ¸ie de necesit˘ at ¸i) codificarea, calculul sindromului ¸ si
corectarea erorilor simple este:
jj j-6¾ ZZ } ¾
?r
– – – -?
?-©© *-
-6
r+ + + Intrare 2
Intrare 1
Codificarea se obt ¸ine introducˆ and la Intrarea 1mesajul de informat ¸ie de lungime k,
mesaj considerat ca un polinom de gradul n¡1cu primii coeficient ¸i (corespunz˘ atori
termenilor de rang mare) elementele mesajului informat ¸ional ¸ si cu ultimii n¡k
coeficient ¸i nuli.
La momentul init ¸ial ˆ ın elementele de ˆ ınmagazinare se afl˘ a numai 0, circuitul
feedback este ˆ ınchis, iar circuitul spre canal este deschis. De asemenea, Intrarea 2
este ignorat˘ a.
Simultan cu transmiterea pe canal, elementele de informat ¸ie se introduc ¸ si ˆ ın
circuitul liniar. Dup˘ a kmomente, aici se afl˘ a pozit ¸iile de control.
ˆIn acest moment se decupleaz˘ a feedback-ul, se cupleaz˘ a leg˘ atura spre canal ¸ si se
ignor˘ a cele dou˘ a intr˘ ari. Timp de n¡ktact ¸i elementele de control ˆ ınmagazinate
sunt trimise pe canal, imediat dup˘ a mesajul de informat ¸ie.
Pentru calculul sindromului: se neglijeaz˘ a canalul, se ˆ ınchide feedback-ul, iar ˆ ın
elementele de ˆ ınmagazinare se g˘ ase¸ ste init ¸ial (0;0; : : : ; 0). Cuvˆ antul recept ¸ionat este
introdus prin Intrarea 2. Dup˘ a ntact ¸i, aici se va g˘ asi r(®).
Pentru corectarea erorii: se neglijeaz˘ a cele dou˘ a intr˘ ari, se ˆ ınchide feedback-ul ¸ si
se las˘ a s˘ a funct ¸ioneze circuitul pˆ an˘ a cˆ and ˆ ın elementele de ˆ ınmagazinare se obt ¸ine
vectorul (1;0; : : : ; 0). Num˘ arul de tact ¸i scur¸ si d˘ a indicele componentei din mesajul
recept ¸ionat, care trebuie corectat˘ a prin complementare.

14.1. CODURI HAMMING CICLICE 159
S˘ a consider˘ am spat ¸iul nul al matricii
H=Ã
1® ®2: : : ®2p¡2
1 1 1 : : : 1!
unde ®2GF(2p) este primitiv. Harep+ 1 linii ¸ si n= 2p¡1 coloane (pe prima
coloan˘ a, primele ppozit ¸ii formeaz˘ a vectorul 1=®0, iar pe a p+ 1-a pozit ¸ie se afl˘ a
scalarul 1 2Z2). Codul obt ¸inut este codul Hamming extins (Definit ¸ia 3 :1), capabil
s˘ a corecteze o eroare ¸ si s˘ a detecteze dou˘ a erori.
Un asemenea cod se poate defini cerˆ and ca orice cuvˆ ant – cod ff(X)gs˘ a aib˘ a
ca r˘ ad˘ acini ®¸ si1. Generatorul unui astfel de cod ciclic este g(X) = (1 + X)m(X),
unde m(X) este polinomul minimal al lui ®.
Codificarea ˆ ın acest caz se face – ca mai sus – folosind circuitul cu n¡k+ 1 =
p+1 elemente de ˆ ınmagazinare. Pentru calculul sindromului cuvˆ antului recept ¸ionat
fr(X)gse folosesc ˆ ıns˘ a practic dou˘ a circuite: unul de ˆ ımp˘ art ¸ire la m(X) (pentru cal-
culul lui r(®)) ¸ si altul de ˆ ımp˘ art ¸ire la 1+ X(pentru r(1)). Discut ¸ia este urm˘ atoarea:
²Dac˘ a r(®) =r(1) =0, atunci nu a intervenit nici o eroare (sau avem o eroare
nedetectabil˘ a);
²Dac˘ a r(®)6=0; r(1)6=0, avem o eroare simpl˘ a care se corecteaz˘ a cu circuitul
de ˆ ımp˘ art ¸ire cu m(X), dup˘ a procedeul descris ˆ ın Exemplul 14.2;
²Dac˘ a r(®)6=0; r(1) =0, atunci au fost detectate dou˘ a erori.
Exemplul 14.3 S˘ a extindem codul Hamming din Exemplul 14.2. Vom avea poli-
nomul generator
g(X) = (1 + X)(1 + X+X4) = 1 + X2+X4+X5
Circuitul liniar care codific˘ a mesajele de informat ¸ie (de lungime k= 10) este:
±°²¯
±°²¯
±°²¯
+ + +- – – – – -6¾ QQ k¾
?-?r r
?
?-©© *-
-6
r
Sindromul se calculeaz˘ a cu ajutorul circuitului liniar corespunz˘ ator polinomului
m(X) = 1 + X+X4:
j j + +-
6- – – – -6¾
? ?r
iarr(1)se obt ¸ine din circuitul de ˆ ımp˘ art ¸ire la 1 +X:
j– -6¾
?+
Circuitul liniar construit pentru m(X)face ¸ si corectarea erorilor simple.

160 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
14.2 Coduri Hamming ciclice nebinare
Am studiat codurile Hamming atˆ at sub forma liniar˘ a, cˆ at ¸ si ca un caz particular
de coduri Reed – Muller sau coduri ciclice. ˆIn aceast˘ a ultim˘ a situat ¸ie, ele se pot
implementa cu ajutorul circuitelor liniare ¸ si – fapt important – admit o variant˘ a de
generalizare natural˘ a la cazul nebinar.
Definit ¸ia 14.1 Fie®2GF(qp)un element primitiv. Se define¸ ste codul Hamming
ciclic nebinar Aastfel:
ff(X)g 2A() f(X)are r˘ ad˘ acina ¯=®q¡1
sau – echivalent – Aare matricea de control H= (1¯ ¯2: : : ¯n¡1)unde n=ord(¯).
Din
¯n= 1 = ( ®)qp¡1=³
®q¡1´qp¡1
q¡1rezult˘ a n=qp¡1
q¡1.
Se observ˘ a imediat c˘ a Hare un num˘ ar maxim de coloane distincte ¸ si nenule.
Propozit ¸ia 14.1 (n; q¡1) = 1 dac˘ a ¸ si numai dac˘ a (p; q¡1) = 1
Demonstrat ¸ie : Din q¡1jqj¡1 rezult˘ a qj= (q¡1)sj+ 1. Deci
n=qp¡1
q¡1=qp¡1+qp¡2+: : :+q+ 1 = ( q¡1)(sp+sp¡1+: : :+s1) +p
¸ si atunci
(p; q¡1) = 1 () (n; q¡1) = 1 : 2
Teorema 14.1 Spat ¸iul nul al matricii H= (1¯ ¯2: : : ¯n¡1)unde ¯=®q¡1;
n=qp¡1
q¡1¸ si®2GF(qp)primitiv, are distant ¸a minim˘ a d¸3dac˘ a ¸ si numai dac˘ a
(n; q¡1) = 1 .
Demonstrat ¸ie : ”(”: S˘ a presupunem c˘ a exist˘ a dou˘ a coloane liniar dependente ˆ ın
matricea H. Deci ¯i=a¯jcua2Zq, adic˘ a ¯i¡j=a.
Elementele nenule din Zqsunt r˘ ad˘ acinile ecuat ¸iei Xq¡1¡1 = 0 (Teorema 11 :3).
Mai mult, ele sunt chiar primele q¡1 puteri ale lui ®n.ˆIntr-adev˘ ar, pentru orice
s= 0;1; : : : ; q ¡2 avem
(®ns)q¡1=³
®qm¡1´s= 1s= 1.
Deci pentru a2Zqavem a=®ns. Se poate scrie atunci ¯i¡j=®ns, adic˘ a
®(i¡j)(q¡1)=®ns) (i¡j)(q¡1) = ns.
Dars < q ¡1 iar ( n; q¡1) = 1, deci i=j, de unde rezult˘ a a= 1; ¯i=¯j.
Orice dou˘ a coloane din Hsunt liniar independente, adic˘ a (Teorema 2 :4)d¸3.
”)”: Dac˘ a q¡1 ¸ sinnu sunt prime ˆ ıntre ele, atunci ecuat ¸ia anterioar˘ a admite
¸ si solut ¸ia i6=j; deci exist˘ a dou˘ a coloane distincte liniar dependente ¯i¸ si¯jˆ ın
matricea H, ceea ce contrazice faptul c˘ a d¸3. 2
Pentru operat ¸ia de codificare se folose¸ ste circuitul de ˆ ımp˘ art ¸ire cu polimul mini-
malm(X) al lui ¯(care aici este chiar polinomul generator al codului Hamming ciclic
A). Acela¸ si circuit va calcula sindromul r(¯) al polinomului recept ¸ionat fr(X)g.

14.2. CODURI HAMMING CICLICE NEBINARE 161
ˆIn cazul ˆ ın care a intervenit o eroare, r(¯) este de forma b¯j(eroarea ba ap˘ arut
pe pozit ¸ia ¯j). Funct ¸ionarea secvent ¸ial˘ a a circuitului liniar (f˘ ar˘ a intr˘ ari) revine la
ˆ ınmult ¸irea succesiv˘ a cu ¯. Deci, dup˘ a n¡jtact ¸i, ˆ ın elementele de ˆ ınmagazinare se
obt ¸ine vectorul ( b0: : :0). Atunci, din componenta n¡ja cuvˆ antului recept ¸ionat
se va sc˘ adea eroarea b. De observat c˘ a – deoarece coloanele lui Hsunt nenule
¸ si distincte – primul tact ˆ ın care se obt ¸ine un vector cu toate componentele nule
ˆ ınafar˘ a de prima, este n¡j.
Exemplul 14.4 S˘ a consider˘ am p=q= 3 (astfel, (m; q¡1) = 1 ). Folosind
r˘ ad˘ acina ®a polinomului primitiv 1 + 2 X+X3vom genera extensia GF(33). Fie
¯=®q¡1=®2. Deoarece ®33¡1=®26= 1, avem ord(¯) = 13 , deci n= 13. Pentru
a construi polinomul minimal m(X)al lui ¯, s˘ a observ˘ am (Sect ¸iunea 11:3) c˘ a el are
ca r˘ ad˘ acini ®2; ®6¸ si®18(®54=®2). Deci m(X) =a+bX+cX2+X3. Punˆ and
condit ¸ia m(®2) =a+b®2+c®4+®6=0, obt ¸inem ecuat ¸ia matricial˘ a:
a0
B@1
0
01
CA+b0
B@0
0
11
CA+c0
B@0
2
11
CA+0
B@1
1
11
CA=0
B@0
0
01
CA
cu solut ¸ia a= 2; b=c= 1. Deci m(X) = 2 + X+X2+X3.
Codul ciclic de polinom generator g(X) =m(X) = 2+ X+X2+X3are matricea
de control
H= (1®2®4: : : ®24) =0
B@1 0 0 1 2 0 2 0 1 1 1 2 1
0 0 2 1 0 1 0 2 2 2 1 2 1
0 1 1 1 2 1 1 0 0 1 2 0 21
CA
Am definit astfel (13;10)- codul Hamming ternar, evocat ˆ ın Exemplul 4:5relativ
la Problema Pronosportului.
S˘ a consider˘ am mesajul de informat ¸ie 0120120120 . Pentru operat ¸ia de codificare
se va folosi circuitul (pentru detalii, a se revedea sect ¸iunea 9:4:2):
jj
jj
j+ +2 2
+- – – – -6¾
?-?r
??r
?
-6
r0210210210
(s-a t ¸inut cont c˘ a ¡1 = 2 ;¡2 = 1 ).ˆIn primii 10tact ¸i de funct ¸ionare, bit ¸ii de
informat ¸ie sunt trimi¸ si pe canal ¸ si – simultan – intr˘ a ˆ ın circuitul liniar, a c˘ arui
funct ¸ionare este (pe prima coloan˘ a se afl˘ a informat ¸ia, iar pe celelalte trei – cont ¸inutul
elementelor de ˆ ınmagazinare):
00 0 0 22 1 2
11 2 2 02 0 2
21 0 1 10 2 0
01 0 2 22 1 0
10 1 0 00 2 1

162 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
ˆIn elementele de ˆ ınmagazinare au r˘ amas caracterele de control 021. Ele sunt trimise
prin canal la tact ¸ii 11¡13de la dreapta spre stˆ anga, cu semn schimbat: ˆ ın ordine
¡1 = 2 ;¡2 = 1 ;¡0 = 0 . Deci cuvˆ antul – cod transmis a fost a= 0120120120210 .
Se verific˘ a imediat c˘ a aHT=0.
La recept ¸ie, primele 10caractere sunt cele de informat ¸ie. Pentru a verifica dac˘ a
au ap˘ arut sau nu erori, se folose¸ ste acela¸ si circuit, dar cu alt˘ a intrare:
jj
jj
+2 2
+j+- – – -6¾
?r
-?r
??
?-6
-0120210210210
Funct ¸ionarea acestui circuit liniar timp de 13tact ¸i, este dat˘ a de tabelul:
0 0 0 01 2 0
00 0 0 11 1 2
11 0 0 21 2 2
22 1 0 02 2 0
00 2 1 22 2 2
12 2 1 10 0 0
20 1 1 00 0 0
Sindromul a(®2)obt ¸inut este 000, deci nu a ap˘ arut nici o eroare. Dac˘ a s-ar fi
recept ¸ionat ˆ ıns˘ a cuvˆ antul a0= 0120120100210 , dup˘ a funct ¸ionarea circuitului timp
de13tact ¸i s-ar fi ajuns ˆ ın elementele de ˆ ınmagazinare la 220. Cum acesta este
nenul, circuitul se las˘ a s˘ a funct ¸ioneze ˆ ın continuare, f˘ ar˘ a intrare, pˆ an˘ a se ajunge
la un sindrom de forma b00cub6= 0. Mai exact, funct ¸ionarea circuitului va fi (pe
prima coloan˘ a se num˘ ar˘ a tact ¸ii):
02 2 0 51 0 1
10 2 2 61 0 2
22 1 0 72 2 1
30 2 1 81 1 1
41 2 1 91 0 0
Deci, dup˘ a 9tact ¸i s-a ajuns la 100. Corect ¸ia se face astfel: din componenta a 9- a
a cuvˆ antului recept ¸ionat se scade b= 1, obt ¸inˆ andu-se 0¡1 = 2 ( mod 3).
Observat ¸ie : Definit ¸ia codurilor Hamming ciclice nebinare nu este echivalent˘ a cu cea a
codurilor Hamming nebinare dat˘ a ˆ ın Sect ¸iunea 4 :1:1. De exemplu, codul de matrice
de control
H=Ã
1 0 1 2
0 1 2 2!
este un (4 ;2) – cod Hamming ternar. El cont ¸ine 9 cuvinte
(0000 ;1101;2202;0211;1012;2110;0122;1222;2021),
care – evident – nu formeaz˘ a un cod ciclic.
Deci ˆ ıntre cele dou˘ a definit ¸ii ale codurilor Hamming nebinare (liniare ¸ si ciclice)
exist˘ a doar o relat ¸ie de incluziune strict˘ a.

14.3. CODURI GOPPA 163
14.3 Coduri Goppa
Aceast˘ a clas˘ a de coduri a fost introdus˘ a de Goppa ˆ ın 1970. De¸ si coduri neciclice,
ele constituie o generalizare a codurilor BCH ¸ si sunt o punte ˆ ıntre teoria codurilor
¸ si criptografie. Din acest motive, prezentarea lor este necesar˘ a.
Fiequn num˘ ar prim ¸ si g(X)2Zq[X]. Dac˘ a a2Zqeste un element cu proprie-
tatea g(a)6= 0, vom nota
1
X¡a=¡g(X)¡g(a)
X¡ag(a)¡1
Propozit ¸ia 14.2 ˆIn algebra polinoamelor din Zq[X]modulo g(X), polinomul
1
X¡aeste inversul lui X¡a.
Demonstrat ¸ie : Faptul c˘ a1
X¡aeste polinom se verific˘ a imediat. Pe de-alt˘ a parte,
(X¡a)1
X¡a= [g(a)¡g(X)]g(a)¡1= 1¡g(a)¡1g(X)´1 (mod g (X)) 2
Definit ¸ia 14.2 Un cod Goppa de lungime npeste Zqeste determinat prin:
1.Un polinom g(X)peste o extensie Galois Fa lui Zq; grad (g(X))¸2;
2.a1; a2; : : : ; a n2Fcug(ai)6= 0;1·i·n.
Codul cont ¸ine toate cuvintele v=v1v2: : : v n2Zn
qpentru carenX
i=1vi
X¡ai= 0.
Teorema 14.2 Codul Goppa cont ¸ine numai cuvintele v=v1v2: : : v npentru care
nX
i=1vig(ai)¡1as
i= 0; s = 0;1; : : : ; t ¡1
unde t=grad(g(X)).
Demonstrat ¸ie : S˘ a explicit˘ am polinomul1
X¡a. Dac˘ a g(X) =g0+g1X+: : :+
gtXt(gt6= 0), atunci pentru orice a2Zqcug(a)6= 0, are loc descompunerea
g(X)¡g(a)
X¡a=gtXt¡1+ (agt+gt¡1)Xt¡2+ (a2gt+agt¡1+gt¡2)Xt¡3+: : :+
(at¡1gt+at¡2gt¡1+: : :+g1):
Deci coeficientul lui Xk¡1(1·k·t) ˆ ın polinomul1
X¡aeste¡g(a)¡1tX
j=kat¡jgj.
Ecuat ¸ia caracteristic˘ a a codurilor GoppanX
i=1vi
X¡ai= 0 implic˘ a faptul c˘ a tot ¸i
coeficient ¸ii lui Xk¡1; k= 1; : : : ; t sunt nuli. Deci
nX
i=1vig(ai)¡1tX
j=kat¡jgj= 0;1·k·t:

164 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
Cazul k=tconduce la gtnX
i=1vig(ai)¡1= 0 ¸ si – deoarece gt6= 0 – se obt ¸ine
nX
i=1vig(ai)¡1= 0:
Din cazul k=t¡1 se obt ¸ine gtnX
i=1vig(ai)¡1ai+gt¡1nX
i=1vig(ai)¡1= 0. Cum a doua
sum˘ a este zero, iar gt6= 0, va rezultanX
i=1vig(ai)¡1ai= 0, ¸ s.a.m.d.
Am obt ¸inut echivalent ¸a
nX
i=1vi
X¡ai= 0 ()nX
i=1vig(ai)¡1as
i= 0;0·s·t¡1
2
Corolarul 14.1 Codul Goppa determinat de un polinom g(X)de gradul tare ma-
tricea de control
H=0
BBBBBB@1
g(a1)1
g(a2)1
g(a3): : :1
g(an)
a1
g(a1)a2
g(a2)a3
g(a3): : :an
g(an)…
at¡1
g(a1)at¡1
2
g(a2)at¡1
3
g(a3): : :at¡1
n
g(an)1
CCCCCCA:
Demonstrat ¸ie : Este l˘ asat˘ a ca exercit ¸iu.
Exemplul 14.5 Polinomul 1+X+X32Z2[X]este ireductibil. Fie ®o r˘ ad˘ acin˘ a a
sa, cu ajutorul c˘ areia se genereaz˘ a extensia GF(23). Dac˘ a alegem g(X) = 1+ X+X2
¸ si drept elemente aicele8componente ale lui GF(23), vom obt ¸ine un cod Goppa de
lungime 8cu matricea de control
H=0
@1
g(0)1
g(1)1
g(®): : :1
g(®6)
01
g(1)®
g(®): : :®6
g(®6)1
A=Ã
1 1 ®2®4®2® ® ®4
0 1 ®3®6®5®5®6®3!
=
=0
BBBBBBBB@1 1 0 0 0 0 0 0
0 0 0 1 0 1 1 1
0 0 1 1 1 0 0 1
0 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1
0 0 0 1 1 1 1 01
CCCCCCCCA
Acest cod este format din numai patru cuvinte:
00000000 ;00111111 ;11001011 ;11110100 :
El are distant ¸a minim˘ a 5; s-a obt ¸inut deci un (8;2)- cod binar corector de dou˘ a
erori. De remarcat c˘ a acesta nu este un cod ciclic.
Observat ¸ie : S˘ a consider˘ am un cod BCH definit prin r˘ ad˘ acinile
®m0; ®m0+1; : : : ; ®m0+d¡2
unde ®2GF(qm) are ordinul n. Acest cod se poate scrie ca un cod Goppa astfel: Se

14.3. CODURI GOPPA 165
ia polinomul g(X) =Xm0+d¡2¸ si elementele ®0; ®¡1; : : : ; ®¡(n¡1). Vom avea pentru
orice i= 0;1; : : : ; d ¡2 ¸ sik= 0;1; : : : ; n ¡1:
(®¡k)i
(®¡k)m0+d¡2= (®k)m0+d¡2¡i= (®m0+d¡2¡i)k
Pe baza aceasta, codul Goppa rezultat are matricea de control
H=0
BBBB@1®m0+d¡2(®m0+d¡2)2: : :(®m0+d¡2)n¡1
1®m0+d¡3(®m0+d¡3)2: : :(®m0+d¡3)n¡1

1 ®m0 (®m0)2: : : (®m0)n¡11
CCCCA
care coincide cu matricea de control a codului BCH considerat, ˆ ın care s-a efectuat
o inversare a liniilor.
Se poate ar˘ ata (Van Lint) c˘ a singurele coduri Goppa ciclice sunt codurile BCH.
Propozit ¸ia 14.3 Codul Goppa binar de lungime n, determinat de un polinom de
grad tpeste GF(2m)arek¸n¡mtsimboluri de informat ¸ie ¸ si distant ¸a minim˘ a
¸t+ 1.
Demonstrat ¸ie : Matricea de control a codului Goppa are tlinii ˆ ın GF(2m), deci mt
linii scrise ˆ ın binar. Rezult˘ a c˘ a num˘ arul n¡kde simboluri de control este cel mult
mt:n¡k·mt.
Pe de-alt˘ a parte, se arat˘ a u¸ sor c˘ a orice combinat ¸ie liniar˘ a de tcoloane din H
este liniar independent˘ a. 2
Definit ¸ia 14.3 Fieg(X)un polinom ireductibil peste GF(qm). Codul Goppa deter-
minat de g(X)¸ si de toate elementele lui GF(qm)se nume¸ ste ireductibil.
Codul prezentat ˆ ın Exemplul 14.5 este un cod ireductibil. Despre codurile Goppa
ireductibile se poate prezenta urm˘ atorul rezultat:
Teorema 14.3 Un cod Goppa binar ireductibil, determinat de un polinom de gradul
tpoate corecta cel put ¸in terori independente.
Pentru demonstrat ¸ie va trebui s˘ a facem o construct ¸ie suplimentar˘ a.
Definit ¸ia 14.4 Derivata formal˘ a a polinomului a(X) =a0+a1X+: : :+anXneste
definit˘ a prin a0(X) =a1+ 2a2X+ 3a3X2+: : :+nanXn¡1.
Lema 14.1 Pentru derivata formal˘ a sunt adev˘ arate egalit˘ at ¸ile:
1.(a(X) +b(X))0=a0(X) +b0(X);
2.(a(X)b(X))0=a0(X)b(X) +a(X)b0(X)
Demonstrat ¸ie : Exercit ¸iu.
Lema 14.2 ˆIntr-un corp de caracteristic˘ a 2derivata formal˘ a a unui polinom este
un p˘ atrat perfect.

166 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
Demonstrat ¸ie : Deoarece ( Xn)0=nXn¡1= 0 pentru npar, derivata va avea numai
puteri pare. Cum fiecare coeficient se poate scrie ca un p˘ atrat perfect (se lucreaz˘ a
ˆ ıntr-un corp de caracteristic˘ a 2), avem f0(X) =f2
0+f2
2X2+f2
4X4+: : :¸ si, dac˘ a se
iag(X) =f0+f2X+f4X2+: : :, avem f0(X) =g2(X). 2
S˘ a revenim acum la Demonstrat ¸ia Teoremei 14.3 : Fie g(X) un polinom ire-
ductibil de grad tpeste GF(2m) =fa1; a2; : : : ; a ng(n= 2m) ¸ siv=v1v2: : : v n
un cuvˆ ant al codului Goppa, w(v) =s. Not˘ am vi1; vi2; : : : ; v isbit ¸ii egali cu 1 din
v. Deoarece veste cuvˆ ant – cod, avemnX
i=1vi
X¡ai=sX
k=11
X¡aik= 0. Polino-
mulf(X) = ( X¡ai1)(X¡ai2): : :(X¡ais) nu este divizibil cu g(X) (deoarece
g(X) este ireductibil de grad t¸2). Rezult˘ a c˘ a, ˆ ın algebra claselor de resturi
Z2[X]=g(X),f(®)6= 0 deci admite invers. Rezult˘ a c˘ a exist˘ a un polinom r(X) cu
ff(®)gfr(®)g= 1.
S˘ a calcul˘ am derivata formal˘ a f0(X) =sX
k=1f(X)
X¡aik. F˘ acˆ and X=®¸ si ˆ ınmult ¸ind
relat ¸ia cu r(®), obt ¸inem
ff0(®)gfr(®)g=sX
k=1ff(®)gfr(®)g
®¡aik=sX
k=11
®¡aik= 0 ( mod g (X)):
Aceastaˆ ınseamn˘ a c˘ a f0(X)r(X) este divizibil cu g(X). Cum g(X) este ireductibil
¸ si nu divide r(X) (deoarece r(®)6= 0), rezult˘ a g(X)jf0(X).
Deoarece suntem ˆ ıntr-un corp de caracteristic˘ a 2, conform Lemei 14.2 derivata
formal˘ a este un p˘ atrat perfect: f0(X) =b2(X). Din faptul c˘ a g(X) este divizor
ireductibil al lui b2(X) rezult˘ a g(X)jb(X). Deci g2(X)jb2(X) =f0(X).
Se ¸ stie c˘ a grad(f0(X)) =s¡1 ¸ sis¸1; deci grad(f0(X))¸grad(g2(X)), adic˘ a
s¡1¸2t:
Cum ponderea oric˘ arui cuvˆ ant – cod este ¸2t+ 1, rezult˘ a c˘ a distant ¸a minim˘ a a
codului este cel put ¸in 2 t+ 1, deci codul corecteaz˘ a sigur terori independente. 2
Exemplul 14.6 S˘ a consider˘ am GF(23)generat de o r˘ ad˘ acin˘ a a lui g(X) = 1 +
X+X3. Deoarece g(X)are3r˘ ad˘ acini ˆ ın GF(23), el nu va avea nici o r˘ ad˘ acin˘ a
ˆ ın corpul GF(25)(GF(25)nu este o extensie a lui GF(23)), deci aici g(X)este
ireductibil.
Codul Goppa ireductibil corespunz˘ ator are n= 32; k¸32¡5¢3 = 17 ; d¸7;
deci este un (32;17)- cod corector de 3erori.
Decodificarea codurilor Goppa se face ˆ ın manier˘ a similar˘ a decodific˘ arii codurilor
BCH. Astfel, fie Cun cod Goppa definit de g(X)2Zq[X] (grad(g(X)) = t),
¸ sia1; : : : ; a n2GF(qm); consider˘ am v=v0v1: : : v n¡1un cuvˆ ant – cod ¸ si r=
r0r1: : : r n¡1cuvˆ antul recept ¸ionat dup˘ a transmiterea lui v.
Vom nota cu e=r¡v=e0e1: : : e n¡1secvent ¸a – eroare.
Pentru w(e)¸t=2 se poate folosi un algoritm din cei uzuali. ˆIn practic˘ a ˆ ıns˘ a
t=grad(g(X)) este mare ¸ si exist˘ a algoritmi eficient ¸i de decodificare pentru cazul
w(e)< t=2. Un astfel de algoritm vom construi mai jos.
FieM=fijei6= 0g; card (M) =e < t= 2; consider˘ am polinomul sindrom
fs(X)g=n¡1X
i=0ei
X¡ai(mod g (X)):

14.4. EXERCIT ¸II 167
De remarcat c˘ a fs(X)gse poate determina prin calcul la primirea cuvˆ antului r.
Se definesc polinoamele ¾(X) (de localizare a erorii) ¸ si !(X) prin
¾(X) =Y
i2M(X¡ai); ! (X) =X
i2MeiY
j2Mnfig(X¡aj):
Din definit ¸ie rezult˘ a c˘ a ¾(X) ¸ si!(X) sunt prime ˆ ıntre ele. ˆIn plus, grad(¾(X)) =
e; grad (!(X))< e.ˆIntre ele exist˘ a relat ¸ia
fs(X)gf¾(X)g=n¡1X
i=0ei
X¡aiY
i2M(X¡ai)´ f!(X)g(mod g (X)): (1)
¾(X) ¸ si!(X) sunt polinoamele normate de grad minim care verific˘ a relat ¸iile de
sus.ˆIntr-adev˘ ar, s˘ a presupunem c˘ a exist˘ a ¾1(X) un polinom nenul normat de grad
< e¸ si!1(X) polinomul corespunz˘ ator, astfel ca
fs(X)gf¾1(X)g ´ f !1(X)g(mod g (X))
Fied(X) =cmmdc (s(X); g(X)). Din relat ¸iile
s(X)¾(X) =a(X)g(X) +!(X); s(X)¾1(X) =b(X)g(X) +!1(X);
rezult˘ a c˘ a d(X) va divide ¸ si polinoamele !(X); !1(X). Deci,(s(X)
d(X))
f¾(X)g ¡(!(X)
d(X))
´0,
(s(X)
d(X))
f¾1(X)g ¡(!1(X)
d(X))
´0Ã
modg(X)
d(X)!
sau (s(X)
d(X))f!1(X)¾(X)¡!(X)¾1(X)g
fd(X)g´0 (mod g (X)):
Decif!1(X)¾(X)¡!(X)¾1(X)g ´0 (mod g (X)). Deoarece polinomul din mem-
brul stˆ ang are grad mai mic decˆ at t, rezult˘ a c˘ a membrul stˆ ang este 0. Apoi,
cum cmmdc (¾(X); !(X)) = 1, deducem ¾(X)j¾1(X) – ceea ce contrazice faptul
c˘ agrad(¾1(X))< grad (¾(X)) ¸ sif¾1(X)g 6´0.
Rezumˆ and, procedeul de decodificare a mesajelor la codurile Goppa are loc astfel:
1:Din mesajul recept ¸ionat rse calculeaz˘ a sindromul s(X);
2:Se determin˘ a polinomul normat ¾(X) de grad minim < t=2 care verific˘ a
relat ¸ia (1) (un algoritm eficient a fost dat de Berlekamp).
Din rezolvarea ecuat ¸iei ¾(X) = 0 se afl˘ a locat ¸iile erorilor;
3:Se determin˘ a ei(i2M) din relat ¸iile !(ai) =eiY
j2Mnfig(ai¡aj).
Pe baza acestor valori se construie¸ ste secvent ¸a – eroare e;
4:Cuvˆ antul decodificat este v=r¡e.
14.4 Exercit ¸ii
14.1 S˘ a se construiasc˘ a matricea generatoare a (13;10)- codului Hamming ternar
din Exemplul 14.4.

168 PRELEGEREA 14. ALTE CLASE DE CODURI CICLICE
14.2 ˆIn codul din Exemplul 14.4 s˘ a se codifice mesajele de informat ¸ie:
(a) 1122002211 ( b) 0000111122 ( c) 1020012210
(d) 2200211101 ( e) 2222222222 ( f) 0000000000
14.3 S˘ a se construiasc˘ a toate codurile Hamming peste Z3¸ siZ5.
14.4 Demonstrat ¸i Corolarul 14.1
14.5 Demontrat ¸i Lema 14.1
14.6 Pentru g(X) =X2tar˘ atat ¸i c˘ a1
X¡a=2tX
j=1a¡jXj¡1.
14.7 G˘ asit ¸i distant ¸a minim˘ a a codului binar Goppa determinat de g(X) = 1 + X2
¸ si de elementele 0; ®; ®22GF(22).
14.8 G˘ asit ¸i o matrice de control a (16;8)- codului Goppa binar ireductibil dat de
g(X) =®3+X+X2, unde ®2GF(24)este primitiv.
14.9 Polinomul generator este g(X) = 1+ X2iar parametrii sunt cele 15elemente
nenule ale extensiei GF(24)generat˘ a de r˘ ad˘ acina polinomului 1+X+X4. Analizat ¸i
codul Goppa binar astfel construit.
14.10 S˘ a se construiasc˘ a codul Goppa ireductibil peste GF(24), cug(X) = 1+ X+
X3. S˘ a se determine matricea de control ¸ si matricea generatoare.
Care este distant ¸a minim˘ a a codului ?
14.11 Folosind codul construit anterior, s˘ a se decodifice (folosind algoritmi de co-
duri liniare) cuvintele:
0110110010011110 0111011001000000 1011110101100100
1111111111111111 1011011111001011 1010010110000010
14.12 Pentru acela¸ si cod Goppa binar ireductibil, s˘ a se decodifice cuvintele
0101100101111001 1100101100110100 0001100010010110
folosind algoritmul rapid specific.
14.13 Verificat ¸i c˘ a polinomul 1 +X+X2este ireductibil ˆ ın GF(25). Determinat ¸i
parametrii ¸ si matricea de control a codului Goppa ireductibil corespunz˘ ator.

Prelegerea 15
Coduri Preparata
ˆIn 1968 Preparata a introdus o clas˘ a de coduri neliniare corectoare de dou˘ a erori, care
s-au dovedit foarte interesante prin propriet˘ at ¸ile ¸ si prin leg˘ aturile pe care le au cu
diverse alte coduri deja studiate. Ele sunt o combinat ¸ie ˆ ıntre codurile Reed – Muller
¸ si codurile BCH corectoare de dou˘ a erori. Definit ¸ia pe care o vom folosi apart ¸ine lui
Baker ¸ si permite o abordare mai simpl˘ a a algoritmilor de codificare/decodificare.
15.1 Definirea codurilor Preparata extinse
S˘ a revenim la modalitatea de marcare a pozit ¸iilor cuvintelor de lungime 2rfolosind
elementele lui GF(2r), a¸ sa cum s-a definit ˆ ın algoritmul de decodificare Peterson
pentru codurile BCH. Deci:
Fier¸2 un num˘ ar ˆ ıntreg, ®2GF(2r) primitiv, ¸ si UµGF(2r); se noteaz˘ a
Â(U) cuvˆ antul de lungime 2rdefinit prin
1 pe pozit ¸ia idac˘ a ®i2U(0·i·2r¡2),
1 pe pozit ¸ia 2r¡1 dac˘ a 02U,
0 ˆ ın rest.
Exemplul 15.1 Fie®2GF(23)primitiv. Atunci
Â(f0g) = 00000001
Â(f®2; ®5; ®6g) = 00100110
Â(;) = 00000000 :
Se definesc ˆ ın mod natural operat ¸iile:
U+¯=fu+¯ju2Ug; ¯U =f¯uju2Ug;
U∆V=fuju2U[V; u62U\Vg; U; V ½GF(2r); ¯2GF(2r).
Se verific˘ a u¸ sor relat ¸iile
Â(U) +Â(V) =Â(U∆V); w (Â(U)) =card(U): (1)
Exemplul 15.2 FieGF(23)construit folosind r˘ ad˘ acina (primitiv˘ a) ®a polinomu-
lui1 +X+X3, ¸ si mult ¸imile U=f®2; ®5; ®6g; V=f®5;0g. Atunci
U+®2=f®2+®2; ®5+®2; ®6+®2g=f0; ®3; ®0g,
®2U=f®2®2; ®2®5; ®2®6g=f®4; ®0; ®g;
Â(U) +Â(V) = 00100110 + 00000101 = 00100011 = Â(f®2; ®6;0g) =Â(U∆V).
169

170 PRELEGEREA 15. CODURI PREPARATA
Definit ¸ia 15.1 Fier >2un num˘ ar impar. Codul extins Preparata P(r)este mul-
t ¸imea cuvintelor de forma Â(U)Â(V)unde U; VµGF(2r)verific˘ a condit ¸iile
1.card(U); card (V)sunt numere pare;
2.X
u2Uu=X
v2Vv;
3.X
u2Uu3+ÃX
u2Uu!3
=X
v2Vv3.
Pentru u¸ surint ¸˘ a vom nota cuvintele – cod cu [ Â(U); Â(V)] (vezi ¸ si codul Golay).
Exemplul 15.3 ˆIn ipotezele din Exemplul 15.2, s˘ a consider˘ am U=f®; ®2; ®5;0g;
V=f®0; ®; ®2; ®3; ®6;0g. Prima condit ¸ie din definit ¸ie este verificat˘ a. Pentru a
doua condit ¸ie avem:X
u2Uu=®+®2+®5+0= 010 + 001 + 111 + 000 = 100 = ®0;
X
v2Vv=®0+®+®2+®3+®6+0= 100+010+001+110+101+000 = 100 = ®0.
A treia condit ¸ie este ¸ si ea verificat˘ a deoareceX
u2Uu3=®3+®6+®+0= 110 + 101 + 010 + 000 = 001 = ®2,
X
v2Vv3=®0+®3+®6+®2+®4+0= 100+110+101+001+011+000 = 101 = ®6
¸ si®2+ (®0)3=®6.
Deci [Â(U); Â(V)] = 01100101 11110011 este cuvˆ ant – cod ˆ ın P(3).
Observat ¸ii :
²Deoarece card(Â(U)) =card(Â(V)) = 2r; P(r) este un cod de lungime 2r+1.
²Faptul c˘ a 0este sau nu un element al mult ¸imilor UsauVnu afecteaz˘ a cu
nimic condit ¸iile 2 ¸ si 3 din Definit ¸ia 15.1. Acest element se introduce ˆ ın cele
dou˘ a mult ¸imi numai pentru a asigura prima condit ¸ie din definit ¸ie. Rezult˘ a
c˘ a bit ¸ii de pe pozit ¸ia 2r¡1 din Â(U) ¸ siÂ(V) sunt bit ¸i de paritate (ceea ce
justific˘ a termenul de cod Preparata ”extins”).
²Exponentul030din Definit ¸ia 15.1 nu este esent ¸ial. Dac˘ a el se ˆ ınlocuie¸ ste cu
s= 2t+ 1 astfel ca aplicat ¸iile f; g:GF(2r)¡!GF(2r); f(x) =xs; g(x) =
xs¡2s˘ a fie bijective, toate propriet˘ at ¸ile se p˘ astreaz˘ a.
Aceste coduri se numesc Coduri Preparata generalizate .
Lema 15.1 Fie[Â(U); Â(V)];[Â(A); Â(B)]2P(r)¸ si¯=X
u2Uu.
Atunci [Â(U∆A+¯); Â(V∆B)]2P(r).
Demonstrat ¸ie : Vom ar˘ ata c˘ a noul cuvˆ ant construit verific˘ a condit ¸iile din Definit ¸ia
15.1.

15.1. DEFINIREA CODURILOR PREPARATA EXTINSE 171
1.Deoarece card(U); card (V); card (A); card (B) sunt pare, se arat˘ a u¸ sor c˘ a:
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).
2.S˘ a observ˘ amˆ ıntˆ ai c˘ a dac˘ a I; JµGF(2r), avemX
x2I∆Jx=X
x2Ix+X
x2Jxdeoarece
orice element ®i2I\Japare de dou˘ a ori ˆ ın membrul drept ¸ si niciodat˘ a ˆ ın
membrul stˆ ang, iar ®i+®i= 0. Deci:
X
x2U∆A+¯x=X
y2U∆A(y+¯) =X
y2U∆Ay+¯¢card(U∆A) =X
y2Uy+X
y2A+0
(deoarece card(U∆A) este par) =X
y2Vy+X
y2By=X
y2V∆By.
3.X
x2U∆A+¯x3+0
@X
x2U∆A+¯x1
A3
=X
y2U∆A(y+¯)3+0
@X
y2V∆By1
A3
=
=X
y2U(y+¯)3+X
y2A(y+¯)3+0
@X
y2Vy+X
y2By1
A3
=X
y2Uy3+¯X
y2Uy2+¯2X
y2Uy+
¯3card(U) +X
y2Ay3+¯X
y2Ay2+¯2X
y2Ay+¯3card(A) +
0
@X
y2Vy1
A3
+0
@X
y2Vy1
A20
@X
y2By1
A+0
@X
y2Vy1
A0
@X
y2By1
A2
+0
@X
y2By1
A3
:
Dar¯=X
y2Uy=X
y2Vy,0
@X
y2Vy1
A2
=X
y2Vy2, iar card(U); card (V) sunt pare.
Deci expresia de sus se reduce la
X
y2Vy3+X
y2By3=X
y2V∆By3.
Definit ¸ia 15.2 Un cod Ceste invariant la distant ¸˘ a dac˘ a pentru orice c1; c22C,
are loc relat ¸ia
8i0·i·n; card (f®jd(®; c1) =ig) =card(f®jd(®; c2) =ig):
Exemple simple de coduri invariante la distant ¸˘ a sunt codurile liniare.
Ca o consecint ¸˘ a imediat˘ a, pentru un cod invariant la distant ¸˘ a care cont ¸ine
cuvˆ antul nul, distant ¸a minim˘ a este ponderea minim˘ a a unui cuvˆ ant – cod nenul.
Vom ar˘ ata ˆ ın continuare c˘ a un cod Preparata are aceast˘ a proprietate.
Lema 15.2 P(r)este invariant la distant ¸˘ a.
Demonstrat ¸ie : Fie [ Â(U); Â(V)];[Â(A); Â(B)]2P(r) arbitrare aflate la distant ¸a i
unul de altul. Conform Lemei 15.1, [ Â(U∆U+¯); Â(V∆V)];[Â(U∆A+¯); Â(V∆B)]
sunt de asemenea cuvinte – cod ¸ si se verific˘ a u¸ sor c˘ a ele se afl˘ a la distant ¸a i. Deoarece
U∆U=;rezult˘ a [ Â(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)]2P(r). Atunci P(r)mai cont ¸ine urm˘ atoarele cuvinte:
(i):[Â(V); Â(U)];
(ii):[Â(U+¯); Â(V+¯)]pentru orice ¯2GF(2r);
(iii):[Â(¯U); Â(¯V)]pentru orice ¯2GF(2r); ¯6=0.
Demonstrat ¸ie : Se rezolv˘ a similar demonstrat ¸iei de la Lema 15.1. 2
Exemplul 15.4 Conform Exemplului 15.3, [Â(U); Â(V)]2P(3), unde
U=f®; ®2; ®5;0g; V=f®0; ®; ®2; ®3; ®6;0g:
Conform Lemei 15.3 ˆ ın care se ia ¯=®3, vom mai g˘ asi drept cuvinte – cod ¸ si pe
[Â(V); Â(U)] = 11110011 01100101 ,
[Â(U+¯); Â(V+¯)] = [ Â(f®0; ®5; ®2; ®3g); Â(f®; ®0; ®5;0; ®4; ®3g)] =
= 10110100 11011101 ,
[Â(¯U); Â(¯V)] = [ Â(f®4; ®5; ®;0g); Â(f®3; ®4; ®5; ®6; ®2;0g)] =
= 01001101 00111111 .
Putem folosi Lema 15.3 pentru a simplifica problema determin˘ arii distant ¸ei mini-
me a lui P(r). Pentru aceasta ˆ ıns˘ a, este nevoie de un rezultat suplimentar (care
justific˘ a condit ¸ia ca rs˘ a fie impar).
Lema 15.4 Fie®2GF(2r)primitiv. Atunci ®3este primitiv dac˘ a reste impar ¸ si
nu este primitiv dac˘ a reste par.
Demonstrat ¸ie : Se ¸ stie c˘ a ®ieste primitiv dac˘ a ¸ si numai dac˘ a ( i;2r¡1) = 1. Avem
2r¡1 = (3 ¡1)r¡1 =M3+(¡1)r¡1; deci pentru rimpar 2r¡1 =M3¡2 =M3+1,
ceea ce ˆ ınseamn˘ a c˘ a ®3este primitiv. Similar, pentru rpar, 2r¡1 =M3, deci ®3
nu este primitiv. 2
Corolarul 15.1 Dac˘ a r >2este un num˘ ar impar, atunci pentru orice x2GF(2r)n
f0gexist˘ a yunic (numit r˘ ad˘ acina cubic˘ a a lui x) astfel ca y3=x.
Teorema 15.1 P(r)are distant ¸a minim˘ a t= 6.
Demonstrat ¸ie : Deoarece P(r) este invariant la distant ¸˘ a, el va cont ¸ine un cuvˆ ant –
cod [Â(U); Â(V)] de pondere t. Deci
t=w(Â(U)) +w(Â(V)) =card(U) +card(V).
Rezult˘ a c˘ a teste num˘ ar par; mai trebuie verificat c˘ a t6= 2; t6= 4 ¸ si exist˘ a un
cuvˆ ant – cod de pondere 6.
S˘ a presupunem t= 2; atunci card(U) = 2 ; card (V) = 0 (Lema 15.3 asigur˘ a c˘ a
totul se poate reduce la acest caz). Folosind tot Lema 15.3, ( ii), putem presupune c˘ a
U=f0;xgcux6=0. Dar atunciX
u2Uu=0+x=x, ceea ce duce la o contrazicere
a definit ¸iei codurilor Preparata, pentru c˘ a V=;.
S˘ a presupunem t= 4. Cu Lema 15.3, ( i) aceasta ˆ ınseamn˘ a card(U) = 4 ;
card(V) = 0 sau card(U) =card(V) = 2. ˆIn primul caz avem U=f0;x;y;zgcu
x;y;z6=0¸ si distincte. Ultima condit ¸ie a definit ¸iei codurilor Preparata este:
03+x3+y3+z3+ (0+x+y+z)3=0sau (x+y)(x+z)(y+z) =0
ceea ce este imposibil, cele trei numere fiind distincte ¸ si nenule.

15.2. CODIFICAREA CODURILOR PREPARATA EXTINSE 173
ˆIn a doua variant˘ a, se poate considera U=f0;xg; V=fy;zg, toate cele patru
elemente fiind distincte. Din definit ¸ie rezult˘ a
03+x3+ (0+x)3=y3+z3sauy3+z3=0.
Folosind acum Corolarul 15.1, din y3=z3rezult˘ a y=z, contradict ¸ie.
S˘ a construim acum un cuvˆ ant – cod de pondere t= 6. Fie x;y;z2GF(2r)
elemente distincte nenule. Exist˘ a atunci (Corolarul 15.1) un element v2GF(2r)
unic cu v3=x3+y3+z3. Dac˘ a v=x, atunci v3=x3deciy3=z3, ceea ce duce
la contradict ¸ia y=z. Deci veste distinct de x;y;z.
Definim u=v+x+y+z. Se observ˘ a c˘ a u6=0(altfel
v3+ (x+y+z)3= (x+y)(x+z)(y+z)6=0
deci – cu Corolarul 15.1 – v6=x+y+z). Fie acum U=f0;ug; V=fv;x;y;zg.
Din construct ¸ie, cum toate elementele sunt distincte, [ Â(U); Â(V)] este un cuvˆ ant
de pondere 6 ¸ si se verific˘ a u¸ sor c˘ a este cuvˆ ant – cod. 2
Exemplul 15.5 S˘ a consider˘ am 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=f0;ug=f0; ®4g;
V=fv;x;y;zg=f®6; ®; ®3; ®5g¸ si se obt ¸ine [Â(U); Â(V)] = 00001001 01010110
care este un cuvˆ ant cod din P(3)de pondere 6.
Teorema 15.2 Codul Preparata nu este cod liniar.
Demonstrat ¸ie : Dup˘ a cum se ¸ stie, [ Â(U); Â(V)]+[Â(A); Â(B)] = [ Â(U∆A); Â(V∆B)].
Din demonstrat ¸ia Teoremei 15.1 am v˘ azut cum se pot construi cuvintele – cod
[Â(U); Â(V)];[Â(A); Â(B)]2P(r) cuU=f0;u1g; V=fx1;y1;z1;v1g;
A=f0;u2g; B=fx2;y2;z2;v2g. Conform Lemei 15.1,
c= [Â(U∆A+u1); Â(V∆B)]2P(r). Facem urm˘ atoarele observat ¸ii:
card(U∆A+u1)·2;
d(c;[Â(U∆A); Â(V∆B)])·2¢card(U∆A+u1)·4;
P(r) are distant ¸a minim˘ a 6.
Din ele rezult˘ a c˘ a [ Â(U); Â(V)] + [Â(A); Â(B)]62P(r).
Deci P(r) nu este cod liniar. 2
Ca o consecint ¸˘ a a acestei teoreme, nu se poate da nici o dimensiune pentru P(r),
deci se pare c˘ a nu se poate determina num˘ arul de cuvinte – cod. Vom reu¸ si totu¸ si
acest lucru ca o consecint ¸˘ a a schemei de codificare.
15.2 Codificarea codurilor Preparata extinse
Fie®2GF(2r) primitiv ¸ si s˘ a consider˘ am codul BCH de polinom generator g(X) =
m1(X)m3(X) unde mi(X) este polinomul minimal al lui ®i(i= 1;3). Dup˘ a cum se
¸ stie, grad(m1(X)) = grad(m3(X)) = r, deci grad(g(X)) = 2 r. Codul BCH astfel
definit poate corecta maxim 2 erori ¸ si are matricea de control (transpus˘ a):

174 PRELEGEREA 15. CODURI PREPARATA
H=0
BBBBBBB@®0®0
®1®3
®2®6

®2r¡2®3(2r¡2)1
CCCCCCCA
Deoarece g(X) genereaz˘ a un cod ciclic, rezult˘ a c˘ a orice submatrice a lui Hformat˘ a
din 2 rlinii consecutive este nesingular˘ a, deci inversabil˘ a. Se define¸ ste matricea A
ca submatrice a lui Hformat˘ a din ultimele 2 rlinii, ¸ si H0matricea r˘ amas˘ a prin
¸ stergerea lui A.
Exemplul 15.6 ˆIn extensia GF(23)generat˘ a de r˘ ad˘ acina ®a polinomului 1 +X+
X3vom avea
A=0
BBBBBBBB@® ®3
®2®6
®3®2
®4®5
®5®
®6®41
CCCCCCCCA=0
BBBBBBBB@010 110
001 101
110 001
011 111
111 010
101 0111
CCCCCCCCAcu A¡1=0
BBBBBBBB@001 011
111 010
011 101
110 100
101 110
111 0011
CCCCCCCCA.
Pentru GF(25)generat˘ a de r˘ ad˘ acina ®a polinomului 1 +X2+X5avem
A=0
BBBB@®21®63
®22®66
……
®30®901
CCCCA=0
BBBBBBBBBBBBBBBBBB@00011 01000
10101 00001
11110 00101
01111 10001
10011 00111
11101 11011
11010 01100
01101 10101
10010 10011
01001 011011
CCCCCCCCCCCCCCCCCCAcu A¡1=0
BBBBBBBBBBBBBBBBBB@00111 00010
00011 10001
10011 00011
11011 01010
01101 10101
10101 11001
00110 11111
11001 01110
11000 00111
10001 101001
CCCCCCCCCCCCCCCCCCA
Fiea= [aL;aR] un cuvˆ ant binar oarecare de lungime 2r+1¡2r¡2, unde
jaLj= 2r¡1;jaRj= 2r¡2r¡1.ˆIn notat ¸ie polinomial˘ a putem scrie
aLH= [aL(®); aL(®3)];aRH0= [aR(®); aR(®3)].
Se mai define¸ ste
vR= [aL(®) +aR(®); aL(®3) + (aL(®))3+aR(®3)]A¡1: (2)
Teorema 15.3 Fierun num˘ ar impar. Pentru orice cuvˆ ant binar ade lungime
2r+1¡2r¡2, dac˘ a Â(U) = [aL; pL]; Â(V) = [aR;vR; pR]unde pL; pRsunt bit ¸ii de
control pentru aLrespectiv [aR;vR], atunci [Â(U); Â(V)]2P(r).
Demonstrat ¸ie : [aR;vR]H=aRH0+vRA= [aR(®); aR(®3)] + [aL(®) +aR(®);
aL(®3) + (aL(®))3+aR(®3)] = [ aL(®); aL(®3) + (aL(®))3].
Dar [aR;vR] = [X
v2Vv;X
v2Vv3]; aL(®) =X
u2Uu; a L(®3) + (aL(®))3=X
u2Uu3+
ÃX
u2Uu!3
, ceea ce verific˘ a condit ¸iile din Definit ¸ia 15.1.
Deci [ Â(U); Â(V)] este cuvˆ ant – cod ˆ ın P(r). 2

15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 175
Corolarul 15.2 P(r)are22r+1¡2r¡2cuvinte – cod.
Demonstrat ¸ie :ˆIn Teorema 15.3 exist˘ a 22r+1¡2r¡2alegeri posibile pentru a, toate
conducˆ and la cuvinte – cod distincte. 2
Putem da acum un algoritm de codificare a meajelor de informat ¸ie ˆ ın codurile
Preparata.
FieaL;aRcuvinte de lungimi 2r¡1 respectiv 2r¡2r¡1.
FievRdefinit de (2).
Se construiesc pL; pRconform Teoremei 15.3.
Atunci mesajul de informat ¸ie a= [aL;aR] se codific˘ a
ˆ ın [aL;pL;aR;vR;pR]:
Exemplul 15.7 S˘ a consider˘ am r= 3;aL= 0110010 ;aR= 1. Deci
aL(®) =®+®2+®5=®0; a R(®) =®0;
aL(®3) =®3+®6+®15=®2; a R(®3) =®0.
Din(2)avem vR= [®0+®0; ®2+®0+®0]A¡1= [000 001] A¡1= 111001 unde
A¡1este matricea din Exemplul 15.6. Atunci vom codifica a= [0110010 1] ˆ ın
c= [aL; pL;aR;vR; pR] = [01100010 1 1 111001 1] .
Decic= [Â(U); Â(V)]unde Â(U) = 01100101 ; Â(V) = 11110011 , care coincide
cu secvent ¸a – cod construit˘ a ˆ ın Exemplul 15.3.
15.3 Decodificarea codurilor Preparata extinse
Cum P(r) are distant ¸a minim˘ a 6, el poate corecta maxim 2 erori.
Fiebun cuvˆ ant recept ¸ionat; ˆ ıl scriem b= [bL; pL;bR; pR] unde bL;bRsunt
ambele de lungime 2r¡1 iar pL; pRsunt bit ¸i de control a parit˘ at ¸ii. Se calculeaz˘ a
bLH= [bL(®); bL(®3)];bRH= [bR(®); bR(®3)].
Apar mai multe cazuri, ˆ ın funct ¸ie de pozit ¸iile unde apar erori.
1.Dac˘ a erorile apar pe pozit ¸iile de control, atunci
bL(®) =bR(®); b L(®3) + (bL(®))3=bR(®3)
(conform Definit ¸iei 15.1), ceea ce se verific˘ a u¸ sor.
2.Dac˘ a exist˘ a o eroare pe pozit ¸ia iˆ ınbR¸ si cel mult o eroare pe pozit ¸iile de
control atunci
bL(®) =bR(®) +®i; b L(®3) + (bL(®))3=bR(®3) +®3i, deci
(bL(®) +bR(®))3=bL(®3) + (bL(®))3+bR(®3).
Dac˘ a ultima relat ¸ie este verificat˘ a, atunci se scrie ®i=bL(®) +bR(®) ¸ si se
schimb˘ a bitul idinbR(plus cel mult un bit de control).
3.Dac˘ a exist˘ a o eroare pe pozit ¸ia idinbL¸ si cel mult o eroare pe pozit ¸iile de
control, similar cu cazul anterior (lucru posibil pe baza Lemei 15.3) se verific˘ a
relat ¸ia
(bR(®) +bL(®))3=bR(®3) + (bR(®))3+bL(®3);

176 PRELEGEREA 15. CODURI PREPARATA
ˆ ın caz afirmativ, se calculeaz˘ a ®i=bR(®) +bL(®) ¸ si se schimb˘ a bitul idinbL
(plus cel mult un bit de control).
4.Dac˘ a apar dou˘ a erori ˆ ın bRpe pozit ¸iile i¸ sij, atunci:
bL(®) =bR(®) +®i+®j; b L(®3) + (bL(®))3=bR(®3) +®3i+®3j,
deci se determin˘ a ®i+®j¸ si®3i+®3j. Valorile i; jsunt determinate cu un
algoritm similar celui de la codurile BCH.
5.Dac˘ a apar dou˘ a erori ˆ ın bL, invocˆ and din nou Lema 15.3 putem aplica analiza
de la cazul anterior.
6.Dac˘ a apar dou˘ a erori: una pe pozit ¸ia iˆ ınbL¸ si una pe pozit ¸ia jˆ ınbR, atunci
bL(®) +®i=bR(®) +®j; b L(®3) +®3i+ (bL(®) +®i)3=bR(®3) +®3j.
Acest sistem de necunoscute ®i¸ si®jse rezolv˘ a astfel: din prima ecuat ¸ie se
scoate ®j=bL(®) +®i+bR(®) ¸ si se ˆ ınlocuie¸ ste ˆ ın a doua ecuat ¸ie, ceea ce d˘ a
bL(®3) +®3i+ (bL(®) +®i)3=bR(®3) + (bL(®) +®i)3+ (bL(®) +®i)2bR(®) +
(bL(®) +®i)bR(®)2+bR(®)3.
Dup˘ a simplific˘ ari se ajunge la
®3i+®2ibR(®) +®i(bR(®))2+ (bR(®))3=bL(®3) +bR(®3) +bL(®)2bR(®) +
bL(®)bR(®)2, sau
(®i+bR(®))3= (bL(®3) +bR(®3)) + ( bL(®) +bR(®))3+bL(®)3+bR(®)3.
Notˆ and membrul drept al acestei expresii cu ∆, obt ¸inem solut ¸ia
®i=bR(®) + ∆1=3; ®j=bL(®) + ∆1=3:
Deci locat ¸iile erorilor se pot determina ˆ ın toate situat ¸iile posibile. Bit ¸ii de paritate
pentru fiecare jum˘ atate de cuvˆ ant dau posibilitatea de a decide ce caz se aplic˘ a lui
b. Putem da acum algoritmul de decodificare pentru codurile Preparata P(r).

15.3. DECODIFICAREA CODURILOR PREPARATA EXTINSE 177
Fieb= [bL; pL;bR; pR] cuvˆ antul recept ¸ionat.
0:Se calculeaz˘ a L1=bL(®); L3=bL(®3); R1=bR(®); R3=bR(®3);
1:Dac˘ a L1+R1= 0 ¸ si L3+L3
1+R3= 0, atunci singurele erori posibile au
ap˘ arut pe pozit ¸iile de control.
2:Dac˘ a ( L1+R1)3+L3+L3
1+R3= 0, calcul˘ am ®i=L1+R1. Se corecteaz˘ a
pozit ¸ia idinbR¸ si cel mult un bit de control al parit˘ at ¸ii; se cere retransmisia
dac˘ a ambii bit ¸i de paritate trebuie modificat ¸i.
3:Dac˘ a ( L1+R1)3+R3+R3
1+L3= 0, calcul˘ am ®i=L1+R1. Se corecteaz˘ a
pozit ¸ia idinbL¸ si cel mult un bit de control al parit˘ at ¸ii; se cere retransmisia
dac˘ a ambii bit ¸i de paritate trebuie modificat ¸i.
4:Dac˘ a ambele jum˘ at˘ at ¸i ale lui bsunt de pondere par˘ a ¸ si
X2+ (L1+R1)X+L3+L3
1+R3+ (L1+R1)3
L1+R1= (X+®i)(X+®j),
se corecteaz˘ a pozit ¸iile i¸ sijdinbL.
5:Dac˘ a ambele jum˘ at˘ at ¸i ale lui bsunt de pondere par˘ a ¸ si
X2+ (L1+R1)X+R3+R3
1+R3+ (L1+R1)3
L1+R1= (X+®i)(X+®j),
se corecteaz˘ a pozit ¸iile i¸ sijdinbR.
6:Dac˘ a ambele jum˘ at˘ at ¸i ale lui bsunt de pondere impar˘ a, se calculeaz˘ a
®i=R1+ (L3
1+R3
1+ (L1+R1)3+L3+R3)1=3
®j=L1+ (L3
1+R3
1+ (L1+R1)3+L3+R3)1=3
Se corecteaz˘ a pozit ¸ia idinbL¸ si pozit ¸ia jdinbR.
7:Dac˘ a nu a ap˘ arut nici una din situat ¸iile anterioare, se cere retransmisia
cuvˆ antului.
Exemplul 15.8 S˘ a decodific˘ am urm˘ atoarele cuvinte primite, despre care se pre-
supune c˘ a au fost codificate folosind P(3), unde GF(23)s-a generat cu r˘ ad˘ acina ®
a polinomului 1 +X+X3:
I:b= 10010011 11100111
(0) [ L1; L3] =bLH= 111 110 ;[R1; R3] =bRH= 101 110
(1)L1+R1= 111 + 101 = ®6= 0
(2) ( L1+R1)3+L3+L3
1+R3=®3+®3+®15+®3=®06= 0
(3) ( L1+R1)3+R3+R3
1+L1=®3+®3+®18+®3=®66= 0
(4)X2+®X+®3+®15+®3+®3
®=X2+®X+®6= (X+®2)(X+®4)
Decibse decodific˘ a ˆ ın 10010011 11001111 .
II:b= 10100100 10001001
(0) [ L1; L3] =bLH= [010 ;011];[R1; R3] =bRH= [111 ;011]
(1) L1+R1= 010 + 111 = ®66= 0
(2) ( L1+R1)3+L3+L3
1+R3=®18+®4+®3+®4=®66= 0
(3) ( L1+R1)3+R3+R3
1+L3=®18+®4+®15+®4=®26= 0
Ambele jum˘ at˘ at ¸i ale lui bau pondere impar˘ a, deci
(6) ®i=®5+ (®3+®15+®18+®4+®4)1=3=®5+ (®5)1=3=®5+ (®12)1=3=
®5+®4=®0.
S-a obt ¸inut i= 0. Se poate determina apoi imediat
®j=®+®4=®2, deci j= 2.
Cuvˆ antul bse decodific˘ a ˆ ın 00100100 10101001 .

178 PRELEGEREA 15. CODURI PREPARATA
III:b= 10001000 11101001
(0) [ l1; L3] =bLH= [111 ;011];[R1; R3] =bRH= [100 ;000]
(1)L1+R1= 111 + 100 = ®46= 0
(2) ( L1+R1)3+L3+L3
1+R3=®12+®4+®15+0=®36= 0
(3) ( L1+R1)3+R3+R3
1+L3=®12+0+®0+®4=0
Calcul˘ am ®i=L1+R1=®4, deci i= 4. Dar modificarea bitului 4ˆ ınbLcere ca
ambii bit ¸i de control s˘ a fie modificat ¸i; deci se cere retransmisia cuvˆ antului.
Pentru codul Preparata obt ¸inut prin relaxarea lui P(r), se poate aplica aceea¸ si
strategie de decodificare folosit˘ a 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˝ ordstrom – Robinson
S˘ a plec˘ am de la codul Golay binar extins C24ale c˘ arui cuvinte le scriem sub forma
a= [a1;a2] unde ja1j= 8;ja2j= 16. Consider˘ am submult ¸imea GNR ½C24ale
c˘ arei elemente verific˘ a condit ¸iile:
1.Dac˘ a a2GNR atunci w(a1)2 f0;2g.
2.Dac˘ a a;b2GNR atunci d(a1;b1)·2.
Evident, GNR va avea 256 cuvinte. Pe baza lui se construie¸ ste codul
NR=fa2ja= [a1;a2]2GNRg.
Acesta este un cod neliniar de lungime n= 16 ¸ si distant ¸˘ a minim˘ a d= 6. Numit
codul N˝ ostrom – Robinson , el coincide cu codul Preparata P(3).
Un alt cod derivat din acesta este codul Nadler , construit astfel: se p˘ astreaz˘ a din
NRdoar cuvintele – cod care coincid pe ultimele dou˘ a pozit ¸ii. Apoi la toate aceste
cuvinte se ¸ sterg ultimele trei caractere (o dubl˘ a scurtare urmat˘ a de o relaxare).
Codul astfel obt ¸inut este unic, are n= 13; d= 5 ¸ si 64 cuvinte – cod.
15.4.2 Codurile Kerdock
Definit ¸ia 15.3 Fier¸3; rimpar ¸ si 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˘ a
condit ¸iile:
1.8s(1·s·2r¡2) (1·w2(s)< r¡2))X
u2Uus=X
v2Vvs=0;
2.8s(·s·2r¡2) (w2(s) =r¡2))X
u2Uus=X
v2Vvs=ÃX
u2Uu¡1+X
v2Vv¡1!¡s
unde w2(s)reprezint˘ a ponderea reprezent˘ arii ˆ ın binar a lui s.
Se consider˘ a prin convent ¸ie 8s;0¡s=0:

15.5. EXERCIT ¸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˘ ari de cuvinte din
RM(1; r) selectate ˆ ın a¸ sa fel ca s˘ a maximizeze distant ¸a minim˘ a dintre dou˘ a trans-
lat˘ ari.
Este interesant c˘ a dintre toate codurile cu aceea¸ si distant ¸˘ a minim˘ a, codul Kerdok
are num˘ arul maxim de cuvinte – cod.
Nu vom detalia demonstrat ¸ii referitoare la propriet˘ at ¸ile acestor coduri. Pentru
informat ¸ii suplimentare se pot folosi [6] ¸ si [2], cu ment ¸iunea c˘ a justific˘ arile pleac˘ a de
la o modalitate diferit˘ a de definire a codurilor K(r) ¸ siP(r). Rezultatele sunt ˆ ıns˘ a
deosebit de interesante. Astfel:
Teorema 15.4 K(r)este invariant la distant ¸˘ a.
Lema 15.5 K(3) = P(3).
Teorema 15.5 Codurile P(r)¸ siK(r)sunt duale.
Ca o consecint ¸˘ a imediat˘ a, P(3) este un cod auto-dual.
15.5 Exercit ¸ii
15.1 Demonstrat ¸i relat ¸iile (1).
15.2 Demonstrat ¸i Lema 15.3.
15.3 Demonstrat ¸i Corolarul 15.1.
15.4 Aplicat ¸i Lema 15.3 cuvˆ antului – cod definit ˆ ın Exemplul 15.4, folosind
¯=®0; ¯ =®; ¯ =®6
15.5 De ce [Â(¯U); Â(¯V)]nu este cuvˆ ant – cod pentru ¯=0?
15.6 Ar˘ atat ¸i c˘ a cele trei cuvinte obt ¸inute ˆ ın Exemplul 15.4 satisfac condit ¸iile defini-
t ¸iei codurilor Preparata.
15.7 FieGF(23)generat de r˘ ad˘ acina ®a polinomului 1 +X+X3= 0. Folosind
urm˘ atoarele cuvinte x;y;z2GF(23)construit ¸i cuvinte – cod de pondere 6dinP(3):
x=®y=®2;z=®3,
x=®y=®4;z=®6,
x=®0y=®3;z=®6,
15.8 FieGF(23)construit cu 1 +X+X3, iar A¡1din Exemplul 15.6. Codificat ¸i
urm˘ atoarele 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 FieGF(25)construit cu 1 +X2+X5, iar A¡1din Exemplul 15.6. Codificat ¸i
urm˘ atoarele 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 ˆIn acelea¸ si condit ¸ii din Exemplul 15.8, s˘ a 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 Decodificat ¸i cuvintele primite, care au fost codificate cu P(5), unde GF(25)
a fost construit folosind polinomul 1 +X2+X5.
11000110001000000000000001000010 00011110000000000000000110010000
10100000001000000000000000000000 00000100010000000100010101011100
15.12 Fiebun cuvˆ ant recept ¸ionat ˆ ın care w(bL)este impar iar w(bR)este par.
Poate fi decodificat bla pasul 2al algoritmului ˆ ıntr-un cuvˆ ant – cod situat la distant ¸˘ a
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˘ a de
doctorat), PARIS VI, 1990;
[3]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[4]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 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

Prelegerea 16
Coduri convolut ¸ionale
ˆIn cazul codurilor prezentate pˆ an˘ a acum, la codificarea unui mesaj de informat ¸ie se
obt ¸ine un cuvˆ ant – cod de lungime n, ale c˘ arui caractere nu depind decˆ at de cele
kelemente de informat ¸ie curente. Avem de-a face cu un proces de codificare f˘ ar˘ a
memorie, iar aceste coduri sunt numite ¸ si coduri – bloc .
P. Elias a introdusˆ ın 1965 o clas˘ a de coduri, remarcabile prin sigurant ¸a sporit˘ a pe
care o asigur˘ a ˆ ın transmiterea informat ¸iei: codurile convolut ¸ionale .ˆIn cazul lor,
codificarea unui mesaj de lungime kse face t ¸inˆ and cont ¸ si de codific˘ arile mesajelor
de informat ¸ie anterioare.
De remarcat c˘ a NASA ¸ si Agent ¸ia Spat ¸ial˘ a European˘ a folosesc o combinat ¸ie ˆ ıntre
aceste coduri ¸ si codurile Reed – Solomon. Fiecare mesaj de informat ¸ie este codificat
init ¸ial cu un cod RS, apoi cu un cod convolut ¸ional.
16.1 Coduri liniare ¸ si coduri convolut ¸ionale
Dup˘ a cum am v˘ azut, un ( n; k) – cod liniar codific˘ a un mesaj de informat ¸ie u2Zk
q
ˆ ıntr-un cuvˆ ant – cod v=uGde lungime n(v2Zn
q). Un cod liniar poate fi privit
ˆ ıns˘ a ¸ si ca o aplicat ¸ie care transform˘ a mesaje surs˘ a (de orice lungime i¢k; i= 1;2; : : 🙂
ˆ ın mesaje – cod de lungime i¢n.
Exemplul 16.1 Codul generat de matricea
G=0
B@1 0 0 1
0 1 0 1
0 0 1 11
CA
define¸ ste o funct ¸ie astfel:
a0a1a2a3a4a5: : :7¡! a0a1a2x0a3a4a5x1: : :
unde
x0=a0+a1+a2; x 1=a3+a4+a5; : : :
O astfel de funct ¸ie poate fi exprimat˘ a foarte simplu prin polinoame. Astfel, fie
a(X) =a0+a1X+a2X2+: : :polinomul reprezentˆ and mesajul surs˘ a, ¸ si u(X) =
u0+u1X+u2X2+: : :mesajul codificat. Atunci un cod liniar este o aplicat ¸ie C
definit˘ a C(a(X)) =u(X). O astfel de aplicat ¸ie are urm˘ atoarele propriet˘ at ¸i:
181

182 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
²Ceste liniar˘ a:
C(a(X) +a0(X)) =C(a(X)) +C(a0(X));
C(ta(X)) =tC(a(X)).
²Ceste invariant˘ a ˆ ın timp: ˆ ıntˆ arzierea mesajului surs˘ a cu ktact ¸i are ca efect
decalarea r˘ aspunsului cu ntact ¸i:
C(Xka(X)) =XnC(a(X)).
²Cnu are memorie: codificarea unui mesaj surs˘ a de lungime knu depinde de
mesajele surs˘ a precedente.
Aceste trei propriet˘ at ¸i caracterizeaz˘ a complet codurile liniare. Dac˘ a se renunt ¸˘ a la
ultima proprietate, se obt ¸ine o nou˘ a clas˘ a de coduri, numite coduri convolut ¸ionale .
Definit ¸ia 16.1 Fiequn num˘ ar prim. Prin (n; k)- cod convolut ¸ional se ˆ ınt ¸elege o
aplicat ¸ie liniar˘ a C:Zq[X]¡!Zq[X]cu proprietatea (de invariant ¸˘ a de timp)
C(Xka(X)) =XnC(a(X)).
Exemplul 16.2 S˘ a consider˘ am circuitul liniar:
¹¸ș·
¹¸ș·
¹¸ș·t-6-
?-6
?-
?

?-
-6-6+
+ +
El reprezint˘ a un (2;1)- cod convolut ¸ional binar. Este liniar (datorit˘ a circuitului),
invariant ˆ ın timp (o ˆ ıntˆ arziere de 1tact la intrare provoac˘ a o ˆ ıntˆ arziere de 2tact ¸i
la ie¸ sire).
De exemplu, pentru intrarea 1se obt ¸ine 11la primul tact, 11la al doilea tact ¸ si
01la al treilea (dup˘ a care urmeaz˘ a 0000: : :). Deci
C(1) = 111101 = 1 + X+X2+X3+X5.
Datorit˘ a invariant ¸ei ˆ ın timp, avem
C(X) =C(01) = 00111101 ; C (X2) =C(001) = 0000111101 ; : : :
(s-a t ¸inut cont de dualitatea de notare polinom – cuvˆ ant).
Datorit˘ a liniarit˘ at ¸ii, r˘ aspunsul C(1)caracterizeaz˘ a complet codul. De exemplu,
mesajul de intrare 101se codific˘ a prin
C(101) = C(1 + X2) = C(1) + C(X2) = C(1) + C(001) = 11110100 : : :+
0000111101 : : := 1111101101 = 1 + X+X2+X3+X4+X6+X7+X9.
16.2 Coduri (n;1)- convolut ¸ionale
ˆIn cazul particular k= 1, codul este complet determinat de ie¸ sirea pentru mesajul
de intrare 1. Not˘ am
C(1) = g0(X)
polinomul generator al acestei subclase de coduri. Din invariant ¸a ˆ ın timp rezult˘ a

16.2. CODURI (N;1)- CONVOLUT ¸IONALE 183
C(Xi) =Xnig0(X);8i¸1:
Deci, pentru orice polinom a(X) =a0+a1X+: : :+apXpavem
C(a(X)) =a0C(1)+a1C(X)+a2C(X2)+: : :+apC(Xp) =a0g0(X)+a1Xng0(X)+
a2X2ng0(X) +: : :+apXnpg0(X) =a(Xn)g0(X).
Aceasta conduce la ideea c˘ a un ( n;1) – cod convolut ¸ional este generat de polino-
mulg0(X) conform regulii
a(X)7!a(Xn)g0(X):
Invers, orice polinom g0(X)2Zq[X] define¸ ste un ( n;1) – cod convolut ¸ional.
Observat ¸ie : Ideea de polinom generator este similar˘ a celei de la codurile ciclice,
unde codificarea mesajului de informat ¸ie a(X) revenea la ˆ ınmult ¸irea cu polinomul
generator. La codurile convolut ¸ionale nu exist˘ a ˆ ıns˘ a restrict ¸ie referitor la gradul lui
a(X) ¸ si – ˆ ın plus – la ˆ ınmult ¸ire se folose¸ ste a(Xn).
Exist˘ a o modalitate simpl˘ a de construct ¸ie a unui circuit liniar, generator al unui
astfel de cod. Vom descrie aceasta pentru cazul binar.
Polinomul g0(X) se descompune ˆ ın sume de ntermeni consecutivi, fiecare sum˘ a
descriind modul de conectare al elementelor de ˆ ınmagazinare. Astfel, fie
g0(X) = (b0+b1X+: : :+bn¡1Xn¡1) + (bnXn+bn+1Xn+1+: : :+b2n¡1X2n¡1) +
: : :+ (bmnXmn+bmn+1Xmn+1+: : :+bmn+n¡1Xmn+n¡1)
Num˘ arul de m+ 1 paranteze indic˘ a faptul c˘ a sunt necesare melemente de
ˆ ınmagazinare (prima parantez˘ a se refer˘ a la intrare). A i- a secvent ¸˘ a de termeni
descrie ie¸ sirea celui de-al i- lea element de ˆ ınmagazinare ( bp= 1 semnific˘ a o leg˘ atur˘ a
direct˘ a cu al p- lea element al ie¸ sirii).
ˆIn plus, elementele de ˆ ınmagazinare sunt legate ˆ ıntre ele secvent ¸ial.
Exemplul 16.3 S˘ a consider˘ am (2;1)- codul convolut ¸ional de polinom generator
g0(X) = 1+ X+X2+X5= (1+ X)+(X2+0)+(0+ X5). Prima parantez˘ a, 1+X,
arat˘ a c˘ a ambii bit ¸i de ie¸ sire sunt legat ¸i de intrare, X2+ 0indic˘ a faptul c˘ a primul
element de ˆ ınmagazinare este legat direct doar de primul bit de ie¸ sire, 0 +X5arat˘ a
c˘ a al doilea element de ˆ ınmagazinare este legat numai de al doilea bit de ie¸ sire. ˆIn
acest fel se obt ¸ine codificatorul descris de circuitul liniar:
¹¸ș·
¹¸ș·+
+s-6-
? –
?-
-6-6
?6
Exemplul 16.4 Fie(3;1)- codul convolut ¸ional (deci cu 3bit ¸i de ie¸ sire) generat de
polinomul g0(X) = 1 + X2+X3+X5+X6+X7+X12+X13+X14. Pentru a
construi circuitul liniar, rescriem acest polinom astfel: g0(X) = (1+0+ X2)+(X3+
0 +X5) + (X6+X7+ 0) + ( X12+X13+X14). Se obt ¸ine

184 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
µ´¶³¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·+ + +
+
+ +- – – – – -6- – – –
?-6
?- – -6-6
?6
? -66
?s s
Similar codurilor ciclice, plecˆ and de la polinomul generator, se poate construi ma-
tricea generatoare a codurilor ( n;1) – convolut ¸ionale. Aceasta este
G=0
BBBB@g0(X)
Xng0(X)
X2ng0(X)
…1
CCCCA
Num˘ arul liniilor (¸ si deci ¸ si al coloanelor) lui Gnu este fixat, el depinzˆ and de lungimea
mesajului surs˘ a. Astfel, pentru un mesaj de lungime i, matricea Gareilinii ¸ si
1 +grad(g0(X)) + ( i¡1)¢ncoloane.
Exemplul 16.5 Fie(3;1)- codul convolut ¸ional binar de polinom generator g0(X) =
1 +X+X3+X4+X5+X8. Pentru un mesaj surs˘ a de lungime 3, matricea Gva
avea dimensiunea 3£15:
G=0
B@1 1 0 1 1 1 0 0 1
1 1 0 1 1 1 0 0 1
1 1 0 1 1 1 0 0 11
CA
(spat ¸iile libere sunt completate cu 0). Astfel, codificarea mesajului 101este
101¢G= 110001000110001 .
16.3 Coduri (n; k)- convolut ¸ionale
S˘ a dezvolt˘ am o descriere a codurilor ( n; k) – convolut ¸ionale, similar˘ a celei date an-
terior pentru cazul k= 1. Vom ˆ ıncepe cu un exemplu:
Exemplul 16.6 Fie circuitele liniare a dou˘ a (2;1)- coduri convolut ¸ionale, care au
ie¸ sirea comun˘ a:
±°²¯
±°²¯
±°²¯
±°²¯
±°²¯+ +
+
+ +6-6-6-
?
±°²¯
+-s
?- -? ?
? – -6-

?- – -6
?-s
– -6
? ?

16.3. CODURI (N; K )- CONVOLUT ¸IONALE 185
La fiecare tact intrarea este format˘ a din doi bit ¸i care formeaz˘ a intr˘ arile ˆ ın cele dou˘ a
circuite liniare. O ˆ ıntˆ arziere cu doi tact ¸i la intrare genereaz˘ a o ˆ ıntˆ arziere de doi
tact ¸i la ie¸ sire; deci, acesta este un (2;2)- cod convolut ¸ional.
Pentru intrarea 10ie¸ sirea este 110101 (funct ¸ioneaz˘ a doar circuitul superior), iar
pentru 01ie¸ sirea este 010111 (numai pe baza circuitului inferior). Formal,
C(1) = 1+ X+X3+X5=g0(X); C (X) =X+X3+X4+X5=g1(X).
Folosind invariant ¸a ˆ ın timp se pot determina ¸ si alte ie¸ siri:
C(X2i) =X2ig0(X); C (X2i+1) =X2ig1(X)8i¸1:
Definit ¸ia 16.2 Pentru un (n; k)- cod convolut ¸ional, polinoamele
gi(X) =C(Xi);0·i·k¡1
se numesc ”polinoame generatoare”.
Teorema 16.1 Un(n; k)- cod convolut ¸ional de polinoame generatoare gi(X);(0·
i·k¡1)este determinat de funct ¸ia de codificare
a(X)7!k¡1X
i=0a(i)(Xn)gi(X) (1)
unde pentru secvent ¸a a=a0a1a2: : :s-a notat a(i)=aiai+kai+2k: : :(0·i·k¡1).
Reciproc, fiind date polinoamele gi(X)i= 0;1; : : : ; k ¡1¸ si un num˘ ar n, formula
(1)determin˘ a un (n; k)- cod convolut ¸ional.
Demonstrat ¸ie : Vom ˆ ıncepe prin a ar˘ ata ultima afirmat ¸ie. Aplicat ¸ia
a(X)7!a(i)(Xn)gi(X)
este liniar˘ a (ca o compunere de transform˘ ari liniare) ¸ si invariant˘ a ˆ ın timp (deci
define¸ ste un ( n; k) – cod convolut ¸ional). Ultima asert ¸iune rezult˘ a din observat ¸ia c˘ a
pentru orice secvent ¸˘ a a,
³
Xka(X)´(i)7!Xna(i)(X):
Deci ie¸ sirea la Xka(X) prin aceast˘ a aplicat ¸ie este Xnk¡1X
i=0a(i)(Xn)gi(X).
S˘ a ar˘ at˘ am acum c˘ a un ( n; k) – cod convolut ¸ional definit de aplicat ¸ia Ceste identic
cu cel dat de C0(a(X)) =k¡1X
i=0a(i)(Xn)gi(X) unde gi(X) =C(Xi) sunt polinoamele
generatoare. Deoarece C¸ siC0sunt ambele liniare, este suficient s˘ a ar˘ at˘ am c˘ a
C(Xr) =C0(Xr) pentru orice r¸0; atunci vom avea
C(a0+a1X+a2X2+: : 🙂 =X
r¸0arC(Xr) =X
r¸0arC0(Xr) =C0(a0+a1X+: : :).
Deoarece ambele aplicat ¸ii sunt ( n; k) invariante ˆ ın timp, ne putem restrˆ ange la
0·r·k¡1. Pentru a= 00 : : :0100: : :(cu 1 pe pozit ¸ia r), este evident c˘ a
a(r)= 100 : : :¸ sia(i)= 000 : : :pentru i6=r. Deci C0(Xr) =gr(X) =C(Xr). 2
Analog codurilor ( n;1) – convolut ¸ionale, ¸ si ˆ ın acest caz se poate defini ma-
tricea generatoare, care este o reprezentare matricial˘ a a relat ¸iei (1). Liniile ma-
tricii sunt g0(X); g1(X); : : : ; g k¡1(X); Xng0(X); Xng1(X); : : :, considerate ca poli-
noame de grad infinit. Pentru mesajul a=a0a1: : : a rcodificarea este aG=

186 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
a0g0(X) +: : :+ak¡1gk¡1(X) +Xn[akg0(X) +: : :+a2k¡1gk¡1(X)] +X2n[a2kg0(X) +
: : :+a3k¡1gk¡1(X)]+: : := (a0+akXn+a2kX2n+: : :)g0(X)+: : :+(ak¡1+a2k¡1Xn+
: : :)gk¡1(X) =k¡1X
i=0a(i)(Xn)gi(X).
Exemplul 16.7 Matricea generatoare a (2;2)- codului convolut ¸ional descris ˆ ın Ex-
emplul 16.6 este
G=0
BBBBBBBBBBB@1 1 0 1 0 1
0 1 0 1 1 1
1 1 0 1 0 1
0 1 0 1 1 1
1 1 0 1 0 1 : : :
0 1 0 1 1 1 : : :
…1
CCCCCCCCCCCA
(locurile goale sunt completate cu 0).
Pentru intrarea 101ie¸ sirea este
(1 0 1)0
B@1 1 0 1 0 1 0 0
0 1 0 1 1 1 0 0
0 0 1 1 0 1 0 11
CA= (1 1 1 0 0 0 0 1) , deci
C(1 +X3) = 1 + X+X3+X8.
S-a prezentat anterior modul de construct ¸ie al unui circuit liniar pentru ( n;1) –
coduri convolut ¸ionale, plecˆ and de la polinomul generator g(X).ˆIn mod similar se
determin˘ a circuitul liniar de codificare pentru un ( n; k) – cod convolut ¸ional:
1.Pentru i= 0;1; : : : ; k ¡1 se construie¸ ste circuitul liniar al ( n;1) – codului dat
dea(X)7!a(Xn)gi(X);
2.Se folose¸ ste un buffer comun de ie¸ sire (de nsimboluri), ˆ ın care ajung rezultatele
ˆ ınsumate ale celor kcircuite;
3.Secvent ¸a de intrare este segmentat˘ a ˆ ın grupe de cˆ ate ksimboluri, fiecare din
ele constituind intrarea ˆ ın cˆ ate un circuit liniar.
Exemplul 16.8 S˘ a construim circuitul liniar pentru (2;2)- codul definit de poli-
noamele generatoare
g0(X) =X+X3+X4+X5; g 1(X) = 1 + X+X2+X4+X5+X6+X7.
Scriem g0(X) = (0 + X) + (0 + X3) + (X4+X5)deci circuitul s˘ au liniar are 2
elemente de ˆ ınmagazinare. Pentru g1(X) = (1+ X)+(X2+0)+( X4+X5)+(X6+X7)
sunt necesare trei elemente de ˆ ınmagazinare.
Reprezentarea sa grafic˘ a este:

16.4. CODURI CONVOLUT ¸IONALE SISTEMATICE 187
±°²¯
±°²¯±°²¯
±°²¯±°²¯
±°²¯
+ +
+ ++
+?
-6- – –
?s6- – –
?6 6

?- – – -6
±°²¯
±°²¯
+ +s6- – -6-
6 6
? – – -6
? ?-
-6
Definit ¸ia 16.3 Un(n; k)- cod convolut ¸ional are ”memorie” Ndac˘ a
8i(0·i·k¡1); grad (gi(X))·Nn;
iarNeste minim cu aceast˘ a proprietate. Num˘ arul Nnse nume¸ ste ”lungimea
restrˆ ans˘ a” a codului.
Dup˘ a cum s-a v˘ azut, un cod convolut ¸ional de memorie Npoate fi implementat cu
o combinat ¸ie de N¡1 elemente de ˆ ınmagazinare. Neste num˘ arul de simboluri de
ie¸ sire care pot fi modificate la schimbarea unui singur caracter de intrare.
16.4 Coduri convolut ¸ionale sistematice
Un (n; k) – cod convolut ¸ional sistematic are proprietatea c˘ a la fiecare ie¸ sire de ncar-
actere, pe primele kpozit ¸ii se g˘ asesc simbolurile de informat ¸ie. Vom da o construct ¸ie
direct˘ a a acestor coduri, plecˆ and tot de la similitudinea cu codurile – bloc.
Fien; k; N (k < n ) numere naturale nenule. Consider˘ am sistemul de k(n¡k)
secvent ¸e cu Ncomponente peste Zq:
g(i; j) =g0(i; j)g1(i; j): : : g N¡1(i; j);1·i·k;1·j·n¡k:
Aceste secvent ¸e se numesc subgeneratori .
Consider˘ am matricea
Q0=0
BBBB@g1(1)
g1(2)

g1(k)1
CCCCA= (IkP0OkP1OkP2Ok: : : P N¡2OkPN¡1OkOk: : 🙂
unde Ikeste matricea unitate, Okeste matricea nul˘ a (ambele de ordin k),
Pt=0
BBBB@gt(1;1)gt(1;2): : : g t(1; n¡k)
gt(2;1)gt(2;2): : : g t(2; n¡k)

gt(k;1)gt(k;2): : : g t(k; n¡k)1
CCCCA; 0·t·N¡1
iar
g1(i) = 0 : : :010: : : g 0(i;1): : : g 0(i; n¡k)0: : :0g1(i;1): : : g 1(i; n¡k)0: : :0
0: : :0gN¡1(i;1): : : g N¡1(i; n¡k)0: : : (1·i·k).
Cuvintele obt ¸inute din primele Nncomponente ale lui g1(i) (1·i·k):
g(i) = 0 : : :010: : :0g0(i;1): : : g 0(i; n¡k)0: : :0gN¡1(i;1): : : g N¡1(i; n¡k)

188 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
se numesc generatori .
Fie¸un num˘ ar natural. Se define¸ ste operatorul
D¸g1(i) = 0 : : :0|{z}
¸ng1(i)
care translateaz˘ a g1(i) cu¸npozit ¸ii spre dreapta.
ˆIn sfˆ ar¸ sit, fie
G1=0
BBBB@Q0
DQ 0
D2Q0
…1
CCCCA=0
BBBBBBBBBBBBBBBB@g1(1)

g1(k)
Dg1(1)

Dg1(k)
D2g1(1)
…1
CCCCCCCCCCCCCCCCA=
=0
BBBB@IkP0OkP1OkP2: : : O kPN¡1 : : :
IkP0OkP1: : : O kPN¡2OkPN¡1 : : :
IkP0: : : O kPN¡3OkPN¡2OkPN¡1
…1
CCCCA
matricea generatoare a unui ( n; k) – cod convolut ¸ional sistematic.
Observat ¸ie : Evident, un ( n; k) – cod convolut ¸ional sistematic este un ( n; k) – cod
convolut ¸ional. Invers, fiind dat un ( n; k) – cod convolut ¸ional, el se poate transforma
ˆ ın unul sistematic prin adunarea la fiecare polinom generator gi(X) =mn+n¡1X
p=0bi;pXi
a polinomului g0
i(X) =mX
p=0k¡1X
j=0(k¡bi;np+j)Xnp+j+biXi(0·i·k¡1).
De¸ si are – teoretic – un num˘ ar infinit de linii ¸ si coloane, fiind ˆ ın form˘ a canonic˘ a,
pentru aceast˘ a reprezentare se poate construi imediat matricea de control:
H1=0
BBBBBBBBBBBBBBB@¡PT
0In¡k : : :
¡PT
1On¡k¡PT
0In¡k : : :
¡PT
2On¡k¡PT
1On¡k¡PT
0In¡k: : :

¡PT
N¡1On¡k¡PT
N¡2On¡k¡PT
N¡3On¡k: : :
¡PT
N¡1On¡k¡PT
N¡2On¡k: : :
¡PT
N¡1On¡k: : :
…1
CCCCCCCCCCCCCCCA
a c˘ arei transpus˘ a este
HT
1=0
BBBBBBB@¡P0¡P1¡P2: : :¡PN¡1 : : :
In¡kOn¡kOn¡k: : : O n¡k : : :
¡P0¡P1: : :¡PN¡2¡PN¡1: : :
In¡kOn¡k: : : O n¡kOn¡k: : :
…1
CCCCCCCA

16.4. CODURI CONVOLUT ¸IONALE SISTEMATICE 189
Se verific˘ a imediat egalitatea G1HT
1=O1.
S˘ a consider˘ am un mesaj de informat ¸ie a, sub forma unei succesiuni (teoretic)
infinite. El va fi ”descompus” init ¸ial ˆ ın blocuri de lungime k:
a=a0(1): : : a 0(k)| {z }
a0a1(1): : : a 1(k)| {z }
a1: : : a p(1): : : a p(k)| {z }
ap: : :
Mesajul codificat se obt ¸ine similar codurilor liniare, prinˆ ınmult ¸irea lui acu matricea
generatoare: c=aG1; textul rezultat va fi descompus ˆ ın blocuri de lungime n:
c=aG1=c0(1): : : c 0(n)| {z }
c0c1(1): : : c 1(n)| {z }
c1: : : c p(1): : : c p(n)| {z }
cp: : :
T ¸inˆ and cont de forma canonic˘ a a matricii G1, rezult˘ a urm˘ atoarele relat ¸ii:
cp(i) =ap(i);(1·i·k)
cp(k+j) =kX
i=1N¡1X
t=0ap¡t(i)gt(i; j);(1·j·n¡k): (2)
Aceea¸ si formul˘ a de codificare se poate scrie ¸ si ˆ ın alt mod:
c=aG1=kX
i=1a0(i)g1(i) +kX
i=1a1(i)Dg1(i) +kX
i=1a2(i)D2g1(i) +: : :, deci
c=kX
i=11X
t=0at(i)Dtg1(i) (3)
Exemplul 16.9 S˘ a consider˘ am un (2;1)- cod convolut ¸ional binar cu N= 4 ¸ si
subgenerator g(1;1) = 1101 . Generatorul va fi atunci g(1) = 110100001 iar matricea
G1=0
BBBB@11 01 00 01 : : :
11 01 00 01 : : :
11 01 00 01 : : :
…1
CCCCA
Dac˘ a dorim s˘ a se transmit˘ a secvent ¸a de informat ¸ie a= 10011 : : :, ea va fi codificat˘ a
ˆ ınc=aG1= 1101001010 : : :
Exemplul 16.10 Fie(3;2)- codul convolut ¸ional binar cu N= 3¸ si subgeneratori
g(1;1) = 101 ; g(2;1) = 110 . Calculˆ and generatorii, se obt ¸ine
g(1) = 101000001 ; g(2) = 011001000 ¸ si deci
G1=0
BBBBBBBBBBB@101 000 001 : : :
011 001 000 : : :
101 000 001 : : :
011 001 000 : : :
101 000 001 : : :
011 001 000 : : :
…1
CCCCCCCCCCCA
Fiea= 110010 : : 😮 secvent ¸˘ a de informat ¸ie. Rezultatul codific˘ arii ei este c=aG1
= 110001100 : : :

190 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
16.5 Arborescent ¸a codurilor convolut ¸ionale
Cuvintele – cod dintr-un cod convolut ¸ional sistematic se pot reprezenta folosind
un graf arborescent infinit, cu noduri situate la o distant ¸˘ a de npozit ¸ii ¸ si cu qk
descendent ¸i din fiecare nod. Codificarea unui mesaj revine la parcurgerea unui
drum ˆ ın acest arbore.
Pentru simplificare, s˘ a consider˘ am un ( n;1) – cod convolut ¸ional sistematic binar
(generalizarea este imediat˘ a) de lungime restrˆ ans˘ a N. El este complet caracterizat
prinn¡1 subgeneratori
g(1; j) =g0(1; j)g1(1; j): : : g N¡1(1; j); (1·j·n¡1):
Codul are un singur generator, anume
g(1) = 1 g0(1;1)g0(1;2): : : g 0(1; n¡1)0g1(1;1)g1(1;2): : : g 1(1; n¡1)0: : :
: : :0gN¡1(1;1): : : g N¡1(1; n¡1)
Vom folosi notat ¸iile
g0= 1g0(1;1): : : g 0(1; n¡1);
gp= 0gp(1;1): : : g p(1; n¡1); (1·p·N¡1):
Atunci g(1) = g0g1: : :gN¡1, iargpeste a p- a ramificat ¸ie a lui g(1). Matricea
generatoare a codului va fi – cu aceste notat ¸ii:
G1=0
BBBB@g1(1)
Dg1(1)
D2g1(1)
…1
CCCCA=0
BBBB@g0g1g2: : :gN¡10 0 : : :
0 g 0g1: : :gN¡2gN¡10 : : :
0 0 g 0: : :gN¡3gN¡2gN¡1: : :
…1
CCCCA
unde0este un bloc de nzerouri.
Fiea=a0a1a2: : :secvent ¸a de informat ¸ie ¸ si c=c0c1c2: : :cuvˆ antul – cod cores-
punz˘ ator, unde cp=cp(1)cp(2): : : c p(n). Are loc egalitatea
c=c0c1c2: : :=aG1=a0g1(1) + a1Dg1(1) + a2D2g1(1) + : : : (4)
De aici rezult˘ a c˘ a c0=0dac˘ a a0= 0 ¸ si c0=g0dac˘ a a0= 1. Cu alte cu-
vinte, codul poate fi partit ¸ionat ˆ ın dou˘ a submult ¸imi de m˘ arime egal˘ a: o submult ¸ime
S0cont ¸ine toate secvent ¸ele care corespund lui a0= 0 (deci toate cuvintele – cod
dinS0au acela¸ si prefix 0); cealalt˘ a submult ¸ime S1cont ¸ine toate cuvintele – cod
corespunz˘ atoare lui a0= 1 (deci toate cuvintele – cod din S1au prefixul g0).
La rˆ andul lui, S0se ˆ ımparte ˆ ın dou˘ a submult ¸imi egale S00¸ siS01.S00corespunde
secvent ¸elor – cod pentru care a0=a1= 0 (deci toate cuvintele – cod din S00ˆ ıncep
cu00).S01cont ¸ine secvent ¸ele cu a0= 0; a1= 1, deci cu prefixul 0g0. Similar, S1
se partit ¸ioneaz˘ a ˆ ın S10¸ siS11,S10fiind pentru a0= 1; a1= 0 (deci cuvintele – cod
dinS10au prefixul g0g1); secvent ¸ele din S11ˆ ıncep cu prefixul g0(g0+g1).
Acest procedeu continu˘ a indefinit.
Deci cuvintele – cod pot fi aranjate ˆ ıntr-un arbore cu noduri de ncaractere ¸ si
cˆ ate dou˘ a ramificat ¸ii din fiecare nod. O ramificat ¸ie este marcat˘ a de un cod bloc
dencaractere, corespunz˘ atoare unui caracter de informat ¸ie particular, iar ˆ ıntreaga
secvent ¸˘ a corespunde unui drum prin arbore.

16.5. ARBORESCENT ¸A CODURILOR CONVOLUT ¸IONALE 191
0
g0
g1
g0+g1
g2
g0+g2
g1+g2
g0+g1+g20
g0
g1
g0+g10
g06-
? –6-
?-
-6-
?–6-
?-
-6-
?-
-6-
?-

6
?-000
1
10
1
10
10
1
0
1
Operat ¸ia de codificare poate fi privit˘ a atunci ca un proces ˆ ın care este trasat un
drum particular ˆ ın arbore, conform instruct ¸iunilor date de mesajul de informat ¸ie.
Exemplul 16.11 S˘ a consider˘ am (3;1)- codul convolut ¸ional binar cu N= 4, gene-
rat de g(1;1) = 1011 ; g(1;2) = 1101 . Generatorul codului este
g(1) = 111 001 010 011 , iar arborele de codificare
000
111
001
110
010
101
011
100
011
100
010
101
001
110
000
111000
111
001
110
010
101
011
100000
111
001
110000
111-6-
?–6-
?-
-6-
?–6-
?-
-6-
?-
-6-
?-
-6-
?–6-
?-
-6-
?-
-6-
?-
-6-
?-
-6-
?-
-6-
?-
-6-
?–6-
?-
Dac˘ a vom considera de exemplu mesajul de informat ¸ie a= 1001 : : :, secvent ¸a –
cod generat˘ a va fi c= 111 001 010 100 : : :.
Aceast˘ a construct ¸ie se poate extinde la un ( n; k) – cod convolut ¸ional sistematic binar.
Deoarece la momentul 0 exist˘ a 2ksecvent ¸e posibile de lungime k, toate cuvintele
– cod se pot partit ¸iona ˆ ın 2ksubmult ¸imi S0; S1; : : : ; S 2k¡1. Toate secvent ¸ele din Si
ˆ ıncep cu acela¸ si bloc, corespunz˘ ator aceluia¸ si mesaj de informat ¸ie. Fiecare Sise
ˆ ımparte la rˆ andul lui ˆ ın 2ksubmult ¸imi, dup˘ a tipul celui de-al doilea bloc de la tactul
1. Procesul continu˘ a ˆ ın mod similar pˆ an˘ a la epuizarea mesajului de informat ¸ie.

192 PRELEGEREA 16. CODURI CONVOLUT ¸IONALE
16.6 Exercit ¸ii
16.1 Construit ¸i un codificator pentru (2;1)- codul convolut ¸ional binar de polinom
generator g0(X) = 1 + X+X3+X4+X6+X7+X9. Cˆ at este N? Codificat ¸i
mesajele 110;0110;1010.
16.2 Construit ¸i o matrice generatoare pentru codul definit anterior.
16.3 Construit ¸i un codificator pentru (2;1)- codul convolut ¸ional ternar de polinom
generator g0(X) = 1 + 2 X+ 2X3.
S˘ a se determine o matrice generatoare.
S˘ a se codifice mesajele 102;200;0120.
16.4 Construit ¸i un codificator pentru un (3;2)- cod convolut ¸ional binar cu N= 2.
16.5 Codificatorul din Exemplul 16.8 are 5elemente de ˆ ınmagazinare. Construit ¸i
un codificator pentru acela¸ si cod, care utilizeaz˘ a doar 4elemente de ˆ ınmagazinare.
16.6 Construit ¸i polinoamele generatoare ale codului convolut ¸ional dat mai jos:
±°²¯
±°²¯
±°²¯
±°²¯±°²¯
±°²¯±°²¯
±°²¯
±°²¯
±°²¯
±°²¯6-6-


?-6- – –
?- -6 6-
?s
?-?s – – – –
?-
– – –
6-
s-6
66
– – -66
?- – – -6-
? ? ?+ +
+ +
+ + +
+
+ + +
16.7 Construit ¸i o matrice generatoare pentru codul din exercit ¸iul anterior.
Codificat ¸i mesajul 11001 .
16.8 Construit ¸i un codificator pentru (4;3)- codul binar, de polinoame generatoare
g0(X) = 1 + X+X3+X5+X6; g 1(X) =X+X2+X3+X4; g 2(X) = 1 + X2+
X3+X5+X6.
16.9 S˘ a se construiasc˘ a matricea generatoare ¸ si de control pentru (3;2)- codul
convolut ¸ional sistematic ternar de subgeneratori g(1;1) = 1200 ; g(2;1) = 2011 .
S˘ a se codifice mesajele 11220 ;1012;2222.
16.10 Aceea¸ si problem˘ a pentru (4;2)- codul binar cu
g(1;1) = 001 ; g(1;2) = 110 ; g(2;1) = 101 ; g(2;2) = 111 .
S˘ a se codifice mesajele 1100;011;001100 .
S˘ a se construiasc˘ a reprezentarea arborescent˘ a.
16.11 S˘ a se demonstreze formulele (2).

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[3]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[4]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[5]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[6]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;
[7]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Parctical Ap-
proach , Kluwer Academic Publ., 1997;
[8]A. M. Kerdok – A class of low-rate non linear codes , Information and control,
20 (1972), 182-187;
[9]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[10]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
[11]W. E. Ryan – A Turbo Code Tutorial , IEEE Trans. Comm., pp. 1261- 1271,
Oct. 1996.
193

Prelegerea 17
Decodificarea codurilor
convolut ¸ionale
17.1 Capacitatea de corectare a erorilor
Algoritmii de decodificare pentru codurile convolut ¸ionale folosesc aceea¸ si idee de la
codurile liniare: cuvˆ antul primit este decodificat ˆ ın cel mai apropiat cuvˆ ant – cod,
ˆ ın sensul distant ¸ei Hamming.
Ideea este de a nu decodifica deodat˘ a tot cuvˆ antul primit, ci pas cu pas, la fiecare
tact fiind decodificate ncaractere (cont ¸inutul unui buffer de ie¸ sire) ˆ ın ksimboluri
(m˘ arimea bufferului de intrare). Distant ¸a Hamming (notat˘ a cu dH) pentru un ( n; k)
– cod convolut ¸ional se define¸ ste
dH(a(X); b(X)) =d(a0a1: : : a n¡1; b0b1: : : b n¡1):
Observat ¸ie :ˆIn cele ce urmeaz˘ a vom continua s˘ a identific˘ am secvent ¸ele de p+ 1
caractere a=a0a1: : : a pcu polinoamele de gradul p a(X) =a0+a1X+: : :+apXp.
Se va folosi adesea chiar notat ¸ia (neambigu˘ a) a(X) =a.
Fie deci a(X) mesajul de informat ¸ie; el se codific˘ a ˆ ın v(X) =C(a(X)). S˘ a
presupunem c˘ a se recept ¸ioneaz˘ a u(X). La primul tact se determin˘ a cuvˆ antul – cod
w(X) cudH(u(X); w(X)) minim (cel mai apropiat cuvˆ ant – cod), iar u0u1: : : u n¡1se
transform˘ aˆ ın w0w1: : : w n¡1. Dac˘ a decodificarea este corect˘ a, atunci s-au determinat
primele ncaractere ¸ si se pot g˘ asi imediat ca-racterele de informat ¸ie a0a1: : : a k¡1
(cont ¸inutul primei intr˘ ari). Se define¸ ste apoi
u(X) :=u(X)¡C(a0+a1X+: : :+ak¡1Xk¡1)
(care aduce 0 pe primele ncaractere ale cuvˆ antului recept ¸ionat), se ignor˘ a primele
ncaractere ¸ si procedeul continu˘ a inductiv.
Motivat ¸ia const˘ a ˆ ın faptul c˘ a acum nu se lucreaz˘ a cu v(X) =C(a(X)) ci cu
v(X)¡C(a0+a1X+: : : a k¡1Xk¡1) =C(a(X)¡a0¡a1X¡: : :¡ak¡1Xk¡1) =
C(akXk+ak+1Xk+1+: : 🙂 =C(Xk(ak+ak+1X+ak+2X2+: : :)) =XnC(ak+ak+1X+
ak+2X2+: : :):
Exemplul 17.1 S˘ a consider˘ am (2;1)- codul convolut ¸ional binar de polinom gene-
rator g0(X) = 1 + X+X3. Cuvintele lui cod sunt
193

194PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE0 00000000 : : :
g0(X) 11010000 : : :
X2g0(X) 00110100 : : :
(1 +X2)g0(X) 11100100 : : :
: : : : : :
Dac˘ a se prime¸ ste – de exemplu – u= 11110001 , vom determina cel mai apropiat
cuvˆ ant – cod, care este (1 +X2+X4)g0(X), adic˘ a 11101001 . Primul grup de n= 2
bit ¸i este 11, deci primul bit de informat ¸ie (k= 1) este 1. Fie acum
u:=u¡C(1) = 11110001 ¡11010000 = 00100001 .
Se ignor˘ a primele dou˘ a simboluri din noul u¸ si se determin˘ a cel mai apropiat
cuvˆ ant – cod de 100001 ; acesta este 000: : :0; deci al doilea grup cadru este 00- adic˘ a
al doilea simbol de informat ¸ie este 0.
Refacem u:=u¡X2C(0) = 00100001 . Se ¸ sterg primele patru simboluri din u
¸ si se caut˘ a cel mai apropiat cuvˆ ant – cod de 0001. Acesta este din nou 00: : :. Deci
use corecteaz˘ a ˆ ın
C(1 + 0 X+ 0X2) = 11000000 .
Definit ¸ia 17.1 Pentru un (n; k)- cod convolut ¸ional se define¸ ste distant ¸a liber˘ a prin
dlib=minfdH(C(a(X)); C(a0(X)))ja0a1: : : a k¡16=a0
0a0
1: : : a0
k¡1g:
Similar observat ¸iei de la codurile liniare, dlibeste cea mai mic˘ a pondere a unui cuvˆ ant
– cod C(a00(X)) cu proprietatea a00
0a00
1: : : a00
k¡16=0. (s-a notat a00(X) =a(X)¡a0(X)
unde a(X); a0(X) sunt dou˘ a mesaje de informat ¸ie arbitrare distincte).
Exemplul 17.2 Reluˆ and codul construit ˆ ın Exemplul 17.1, acesta are dlib= 3,
deoarece g0(X)are ponderea 3¸ si orice cuvˆ ant C(a0+a1X+: : :)cua06= 0 are
ponderea minim 3.
Propozit ¸ia 17.1 Un cod convolut ¸ional corecteaz˘ a terori dac˘ a ¸ si numai dac˘ a dlib>
2t.
Demonstrat ¸ie : S˘ a presupunem dlib>2t. La recept ¸ia unui cuvˆ ant v(X) cu cel mult t
erori, exist˘ a un cuvˆ ant – cod u(X) =C(a(X)) aflat la o distant ¸˘ a Hamming minim˘ a
de acesta: dH(u(X); v(X)) =s. Dac˘ a u0(X) =C(a0(X)) este cuvˆ antul – cod trimis
prin canal (recept ¸ionat drept v(X)), din ipotez˘ a dH(v(X); u0(X))·t. Deci, cu
inegalitatea triunghiului, d(u(X); u0(X))·s+t. Cum seste cea mai mic˘ a distant ¸˘ a
Hamming, avem s·t, deci d(C(a(X)); C(a0(X)))·s+t·2t < d lib. Din definit ¸ia
distant ¸ei libere rezult˘ a c˘ a primele ksimboluri din a(X) au drept cel mai apropiat
grup de ksimboluri generat de cod grupul primelor ksimboluri din a0(X), ceea ce
permite decodificarea ¸ si corectarea erorilor.
Pentru urm˘ atoarele grupuri, procedeul decurge analog.
Invers, s˘ a presupunem dlib·2t¸ si fie u(X) =C(a(X)); u0(X) =C(a0(X)) cu
dH(u(X); u0(X)) = dlib¸ siu0: : : u k¡16=u0
0: : : u0
k¡1. Fie i1; i2; : : : i dlibtot ¸i indicii i
pentru care ui6=u0
i. Construim urm˘ atorul cuvˆ ant v(X):
vi=(
ui dac˘ a ui=u0
isaui=i2s+1
u0
i dac˘ a i=i2s
Avem dH(u(X); v(X))·dH(u0(X); v(X))·t. Presupunem c˘ a a fost trimis
u0(X) ¸ si recept ¸ionat v(X). Atunci eroarea, care a modificat cel mult tsimboluri –

17.2. DECODIFOCAREA CODURILOR SISTEMATICE 195
poate conduce la o decodificare incorect˘ a, deoarece u(X) este cuvˆ antul cod cel mai
apropiat.
Deci, ˆ ın aceast˘ a ipotez˘ a, codul nu va corecta terori. 2
Din analiza de sus rezult˘ a c˘ a un parametru important pentru un cod convolu-
t ¸ional este distant ¸a liber˘ a, care specific˘ a num˘ arul maxim de erori care pot fi corec-
tate. Din nefericire ([1]), nu se cunoa¸ ste nici o metod˘ a analitic˘ a de construct ¸ie de
coduri convolut ¸ionale ”bune”, ˆ ın sensul unei maximiz˘ ari a dlibpentru n¸ sikdate.
Folosind calculatorul, au fost g˘ asite ˆ ıns˘ a o serie de astfel de coduri bune. List˘ am
cˆ ateva din ele pentru cazul binar ¸ si k= 1:
n d lib g0(X)
2 5 110111 = 1 + X+X3+X4+X5
2 6 11110111
2 7 1101011011
2 8 110111011011
2 10 11011111001011
2 10 111011110111
3 8 111011111
3 10 111011101111
3 12 111011101011111
4 10 111101111111
4 13 1111011110011111
17.2 Decodifocarea codurilor sistematice
P˘ astrˆ and similitudinea cu codurile liniare, s˘ a folosim la codurile sistematice ideea
de decodificare bazat˘ a pe calculul sindromului.
Fie un ( n; k) – cod convolut ¸ional sistematic definit prin matricea generatoare G1
¸ si cea de control H1, construite pe baza subgeneratorilor de lungime N g(i; j);1·
i·k;1·j·n¡k(a se vedea prelegerea anterioar˘ a). Din relat ¸iile G1HT
1=0¸ si
c=aG1se obt ¸ine cHT
1=0.
S˘ a presupunem c˘ a s-a recept ¸ionat secvent ¸a (infinit˘ a) r=c+eunde eeste o
secvent ¸˘ a eroare. Ca ¸ si la codurile liniare, sindromul va fi
s=rHT
1=cHT
1+eHT
1=eHT
1.
Secvent ¸a recept ¸ionat˘ a se poate structura ˆ ın blocuri de ncaractere:
r=r0(1): : : r 0(n)| {z }
r0r1(1): : : r 1(n)| {z }
r1: : : r p(1): : : r p(n)| {z }
rp: : :
Similar se segmenteaz˘ a sindromul ˆ ın blocuri de lungime n¡k:
s=s0(1): : : s 0(n¡k)| {z }
s0s1(1): : : s 1(n¡k)| {z }
s1: : : s p(1): : : s p(n¡k)| {z }
sp: : :
Vom avea
sp(j) =rp(k+j)¡kX
i=1rp(i)g0(i; j)¡kX
i=1rp¡1(i)g1(i; j)¡: : :¡kX
i=1rp¡N+1(i)gN¡1(i; j);
1·j·n¡k:

196PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE
Aceast˘ a relat ¸ie se poate scrie ¸ si sp(j) =rp(k+j)¡Ap(j), unde
Ap(j) =N¡1X
t=0kX
i=1rp¡t(i)gt(i; j) este rezultatul codific˘ arii secvent ¸ei rp(1): : : r p(k) folo-
sind matricea G1, ˆ ın funct ¸ie de rp¡1(1); : : : ; r p¡1(k); : : : ; r p¡N+1(1): : : ; r p¡N+1(k).
Din aceste relat ¸ii, se poate deduce o formul˘ a pentru calculul elementelor sindro-
mului, ˆ ın funct ¸ie de caracterele secvent ¸ei – eroare:
sp(j) =ep(k+j)¡kX
i=1ep(i)g0(i; j)¡kX
i=1ep¡1(i)g1(i; j)¡: : :¡kX
i=1ep¡N+1(i)gN¡1(i; j),
1·j·n¡k,
undee=e0(1): : : e 0(n)| {z }
e0e1(1): : : e 1(n)| {z }
e1: : : e p(1): : : e p(n)| {z }
ep: : :
este secvent ¸a de eroare – tip, segmentat˘ a ˆ ın blocuri de lungime n. Deci, pentru orice
j= 1;2; : : : ; n ¡k, putem scrie:
s0(j) =e0(k+j)¡kX
i=1e0(i)g0(i; j);
s1(j) =e1(k+j)¡kX
i=1e1(i)g0(i; j)¡kX
i=1e0(i)g1(i; j);

sN¡1(j) =eN¡1(k+j)¡N¡1X
p=0kX
i=1ep(i)gN¡p¡1(i; j);
sN(j) =eN(j)¡N¡1X
p=0kX
i=1ep+1(i)gN¡p¡1(i; j);

sN+m(j) =eN+m(k+j)¡N¡1X
p=1kX
i=1ep+m¡1(i)gN¡p¡1(i; j)

De remarcat c˘ a secvent ¸a e0afecteaz˘ a numai primele Ncomponente ale sin-
dromului: s0;s1; : : : ;sN¡1, deoarece apare numai ˆ ın primele N(n¡k) ecuat ¸ii din
sistemul de sus.
Pentru corectarea erorilor, se determin˘ a init ¸ial secvent ¸a e0; dup˘ a aceasta, sindro-
mul se recalculeaz˘ a sc˘ azˆ and din el componentele lui e0. Aceast˘ a operat ¸ie se nume¸ ste
rearanjarea sindromului .ˆIn paralel, e0se folose¸ ste la corectarea primelor ncaractere
recept ¸ionate; operat ¸ia se realizeaz˘ a identic cu cea de la codurile liniare.
ˆIn continuare, se va folosi un nou sindrom, anume:
s0
0(j) = 0
s0
m(j) =em(k+j)¡m¡1X
p=0kX
i=1em¡p(i)gp(i; j); 1·m·N¡1; 1·j·n¡k
s0
N+m(j) =sN+m(j);8m¸0.
De remarcat c˘ a secvent ¸a e1figureaz˘ a numai ˆ ın expresiile lui s0
1;s0
2; : : : ;s0
Nunde
s0
i=s0
i(1): : : s0
i(n¡k);1·i·N. Deci aceste componente apar ˆ ın N(n¡k) ecuat ¸ii.

17.3. ALGORITMUL VITERBI 197
Dup˘ a determinarea lui e1se corecteaz˘ a blocul r1din secvent ¸a recept ¸ionat˘ a, apoi se
recalculeaz˘ a sindromul, ¸ s.a.m.d.
17.3 Algoritmul Viterbi
Cel mai cunoscut algoritm de decodificare pentru codurile convolut ¸ionale apart ¸ine
lui Viterbi ¸ si a fost folosit pe scar˘ a larg˘ a ˆ ın comunicat ¸iile spat ¸iale. Astfel – ca s˘ a
d˘ am numai un exemplu, stat ¸ia Voyager ˆ ın misiunea sa din 1974 spre Marte, Saturn
¸ si Jupiter, a folosit pentru transmisii un (2 ;1) – cod convolut ¸ional binar de polinom
generator g0(X) = 1 + X+X2+X5+X6+X7+X8+X10+X11+X12.
ˆIn descrierea algoritmului Viterbi vom folosi o reprezentare ˆ ın ret ¸ea a codurilor
convolut ¸ionale, care reia sub o form˘ a finit˘ a reprezentarea arborescent˘ a. Din nou, ne
vom m˘ argini la construct ¸ii pentru ( n;1) – coduri convolut ¸ionale binare, extensia la
cazul general fiind imediat˘ a.
Odiagram˘ a ret ¸ea este un graf orientat infinit, care are ca noduri st˘ arile unui
circuit liniar la fiecare moment (tact). Un nod marcat care corespunde unei st˘ ari
Sla momentul i, este legat direct cu alte dou˘ a noduri, corespunz˘ atoare st˘ arilor
circuitului la momentul i+ 1: S0(pentru intrarea 0) respectiv starea S1(pentru
intrarea 1). Grafic, arcul S¡!S0va fi totdeauna trasat sub arcul S¡!S1. Fiecare
arc este marcat cu secvent ¸a de ie¸ sire a circuitului pentru intrarea corespunz˘ atoare.
Exemplul 17.3 (2;1)- codul convolut ¸ional definit de circuitul liniar
±°²¯
+- – -66
s6-
? -6
are dou˘ a st˘ ari posibile (dup˘ a cont ¸inutul elementului de ˆ ınmagazinare): 0¸ si1.
Pentru intrarea i(i= 0;1)ie¸ sirea este secvent ¸a
ii dac˘ a starea este 0,
i(1¡i) dac˘ a starea este 1.
Diagrama ret ¸ea a codului este:
ss s s s s
s s s s
-6
01
0 1 2 3 4 : : :¡¡¡¡¡¡ µ- –
– – – – ¡¡¡¡¡¡ µ
¡¡¡¡¡¡ µ
¡¡¡¡¡¡ µ-
@
@
@
@
@@ R@
@
@
@
@@ R@
@
@
@
@@ R
00 00 00 0010 10 10
11 11 11 1101 01 01
Exemplul 17.4 (2;1)- codul convolut ¸ional (de memorie N= 2) reprezentat prin
circuitul liniar

198PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE
±°²¯
±°²¯
±°²¯- – s6- – –
?-6 6
?
? – -6-6+ +
+
are patru st˘ ari: 00;01;10¸ si11(dup˘ a cont ¸inuturile elementelor de ˆ ınmagazinare).
Din starea S= 00 se ajunge la S0= 00 dac˘ a intrarea este 0, sau ˆ ın S1= 10
dac˘ a intrarea este 1. Ie¸ sirile corespunz˘ atoare sunt 00respectiv 11.
Analog, dac˘ a S= 10, atunci S0= 01 (intrare 0ie¸ sire 10) ¸ siS1= 11 (intrare 1
ie¸ sire 01), etc. Se ajunge la diagrama ret ¸ea urm˘ atoare:
s s s s ss s s ss s s s
s s s s s s
-6
¡¡¡¡¡¡¡¡ µ¡¡¡¡¡¡¡¡ µ
¡¡¡¡¡¡¡¡ µ¡¡¡¡¡¡¡¡ µ
¡¡¡¡¡¡¡¡ µ¡¡¡¡¡¡¡¡ µ
¡¡¡¡¡¡¡¡ µ¡¡¡¡¡¡¡¡ µ
¡¡¡¡¡¡¡¡ µ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
– – – – – – –
A
A
A
A
A
A
A
A
A
A
A
A
A
AA UA
A
A
A
A
A
A
A
A
A
A
A
A
AA UA
A
A
A
A
A
A
A
A
A
A
A
A
AA U@
@
@
@
@
@
@@ R@
@
@
@
@
@
@@ R
@
@
@
@
@
@
@@ R@
@
@
@
@
@
@@ R
@
@
@
@
@
@
@@ R@
@
@
@
@
@
@@ R
00100111
0 1 2 3 4 5 : : :00 00 00 00 0011 11 11 11 1101 01 01 0110 10 10
01 01 01
10 10 10 10
00 00 00
11 11 11
Orice drum prin ret ¸ea, care pleac˘ a din momentul 0conduce – prin citirea marcajelor
arcelor – la un cuvˆ ant – cod. De exemplu, pentru intrarea 100110 , codul generat este
C(100110) = 111000011001 (reamintim, spre dreapta pleac˘ a totdeauna dou˘ a arce,
iar arcul pentru intrarea 0este situat sub arcul pentru intrarea 1).
Invers, orice cuvˆ ant – cod reprezint˘ a marcajul unui drum ˆ ın ret ¸ea.

17.3. ALGORITMUL VITERBI 199
S˘ a construim acum algoritmul de decodificare Viterbi.
La recept ¸ia unui cuvˆ ant v=v0v1v2: : : vom c˘ auta construct ¸ia unui drum ˆ ın
ret ¸ea, cˆ at mai apropiat de v.
Pentru fiecare moment i¸ si stare Svom lista drumurile active prin ret ¸ea pˆ an˘ a la
starea Sla momentul i. Un drum este activ dac˘ a discrepant ¸a sa este minim˘ a (prin
discrepant ¸˘ a se ˆ ınt ¸elege distant ¸a Hamming dintre cuvˆ antul generat de drumul prin
arbore ¸ si cuvˆ antul de aceea¸ si lungime primit la intrare). Vom adnota fiecare stare
la momentul icu discrepant ¸a drumului s˘ au activ. Pentru calculul ei se poate folosi
o formul˘ a recursiv˘ a definit˘ a astfel:
Fied(S!S0) distant ¸a Hamming dintre marcajul arcului S!S0¸ si secvent ¸a de
ncaractere primit˘ a, iar di(S) discrepant ¸a st˘ arii S. Atunci
di(S0) = min
S!S0fdi(S) +d(S!S0)g (1)
Algoritmul va avea o durat˘ a de funct ¸ionare finit˘ a numit˘ a fereastr˘ a de decodificare ,
pe care o not˘ am cu b(deci va funct ¸iona btact ¸i).
Algoritmul Viterbi :
Intrare : Secvent ¸a v0v1: : : ; vp=vp;0vp;1: : : v p;n¡1;
Algoritm :
1. Fie p:= 0 ¸ si S0starea init ¸ial˘ a a ret ¸elei (starea cu toate elementele de
ˆ ınmagazinare 0);
2. Se marcheaz˘ a di(S0) = 0;
3.fori:= 1tobdo
Pentru toate st˘ arile Saccesibile la momentul p+ise determin˘ a
di(S) folosind formula (1), ¸ si se listeaz˘ a toate drumurile active care
duc la S.
4. Dac˘ a toate drumurile active la momentul p+bˆ ıncep cu acela¸ si arc
S0!S1, secvent ¸a de intrare vpse corecteaz˘ aˆ ın marcajul upal acestui
prim arc (¸ si se decodific˘ a ˆ ın primul caracter al lui S1). Altfel, eroarea
nu este corectabil˘ a, STOP.
5.p:=p+ 1; S 0:=S1, salt la pasul 3.
Exemplul 17.5 S˘ a relu˘ am codul descris ˆ ın Exemplul 17.4, ˆ ımpreun˘ a cu diagrama
sa de ret ¸ea. Presupunem c˘ a s-a primit secvent ¸a v= 10010100101100000 : : :Deci
v0= 10;v1= 01;v2= 01;v3= 00;v4= 10;v5= 11;v6= 00 : : :.
Vom lucra cu o fereastr˘ a de decodificare b= 7. Detaliem grafic numai procedura
de decodificare a primului bloc (cazul p= 0).

200PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE
s0 i= 0 :
s ss
– ©©© *
11
i= 1 :
s ss
– ©©© *
ssss
– ©©© *©©© *
¡¡¡ µ
2231
i= 2 :
s ss
– ©©© *
ss
-¡¡¡ µ
s
©©© *¡¡¡ µ
i= 3 :ssss
– ©©© *HHH j
3312
s ss
– ©©© *
ss
-¡¡¡ µ
s
©©© *¡¡¡ µ
i= 4 :sss
-HHH j
ssss
-@
@
@ RHHH j-HHH j
3133
s ss
– ©©© *
ss
-¡¡¡ µ
s
©©© *¡¡¡ µ
i= 5 :sss
-HHH j
ssss
-HHH j-HHH j
ssss
– ©©© *©©© *
¡¡¡ µ
HHH j-
4413
ss
©©© *s
¡¡¡ µ
i= 6 :sHHH j
sHHH jss
©©© *
¡¡¡ µ
sss
@
@
@ RHHH j-HHH j
3344
s
ss
©©© *s
¡¡¡ µ
i= 7 :sHHH j
sHHH jss
©©© *
¡¡¡ µ
ss
@
@
@ RHHH jHHH j
s ssss
©©© *©©© *
¡¡¡ µ
@
@
@ R4344
Se ajunge la concluzia c˘ a toate arcele active au acela¸ si ˆ ınceput: arcul marcat cu
11. Deci primul bloc v0= 10 se decodific˘ a ˆ ın 11, dup˘ a care se ia ca nod init ¸ial
S0= 10 ¸ si procesul se repet˘ a.
De remarcat c˘ a pentru o fereastr˘ a de decodificare b= 5, eroarea nu s-ar fi putut
corecta (primul arc nu este unic).
ˆIn aceast˘ a prezentare a algoritmului Viterbi, apare o problem˘ a: cˆ at de mare este
fereastra b? Cˆ at de departe mergem prin diagrama ret ¸ea pˆ an˘ a s˘ a fim siguri c˘ a totu¸ si
este posibil˘ a decodificarea ¸ si corectarea erorilor ?
Pentru aceasta s˘ a refacem sub o form˘ a finit˘ a reprezentarea diagramelor – ret ¸ea.
Din definit ¸ia dat˘ a ˆ ın Prelegerea 16 se observ˘ a c˘ a dac˘ a g0(X); g1(X); : : : ;
gn¡1(X) sunt polinoamele generatoare ¸ si a(X) un mesaj de informat ¸ie, codificarea
poate fi scris˘ a ca o secvent ¸˘ a de ncomponente (infinite)
c(X) = (a(X)g0(X); a(X)g1(X); : : : ; a (X)gn¡1(X))
ale c˘ aror caractere se transmit ˆ ın paralel, ˆ ın ordinea cresc˘ atoare a puterilor lui
X.

17.3. ALGORITMUL VITERBI 201
Exemplul 17.6 Fie(2;1)- codul generat de g0(X) = 1+ X+X3¸ sig1(X) = 1+ X.
Mesajul a(X) = 1 + X2este codificat ˆ ın
c(X) = ((1 + X2)(1 + X+X3);(1 +X2)(1 + X)) = (1 + X+X2+X5;1 +X+
X2+X3).
Deci cuvˆ antul cod este c= 11 11 11 01 00 10 00 : : :.
Vom construi un translator ( diagram˘ a de translatare ) asociat unui ( n;1) – cod
convolut ¸ional astfel:
St˘ arile translatorului sunt N- tupluri binare, fiecare stare reprezentˆ and o situat ¸ie
posibil˘ a a celor Nelemente de ˆ ınmagazinare. O stare s1: : : s N¡1sNeste legat˘ a direct
prin arcul marcat x1: : : x nde starea is1: : : s N¡1;(i= 0;1) dac˘ a ˆ ın circuitul liniar
corespunz˘ ator codului, intrarea iconduce la modificarea cont ¸inuturilor elementelor
de ˆ ınmagazinare, din ( s1; : : : ; s N) ˆ ın ( i; s1; : : : ; s N¡1) ¸ si are ca efect ie¸ sirea x1: : : x n.
Exemplul 17.7 Ret ¸eaua codului definit ˆ ın Exemplul 17.3 poate fi reprezentat˘ a sub
form˘ a de diagram˘ a de translatare astfel:
±°²¯
±°²¯-
¾¾
?–
?¾ 0 1 00 1011
01
Pentru codul din Exemplul 17.4, reprezentarea finit˘ a este:
±°²¯
±°²¯
±°²¯
±°²¯-
?
¾6
¾
?–
?¾QQQQQQQQ sQQQQQQQQ k10 11
01 000110
11 00 10 01
1100
De remarcat c˘ a pe fiecare arc este suficient s˘ a marc˘ am doar secvent ¸a de ie¸ sire;
caracterul de intrare este reprezentat de primul caracter al st˘ arii ˆ ın care intr˘ a arcul
respectiv.
Definit ¸ia 17.2 Se define¸ ste lungimea unui drum ca fiind num˘ arul de arce care
formeaz˘ a acel drum.
Ponderea unui drum este suma ponderilor arcelor care formeaz˘ a drumul.
Reamintim, ponderea unui cuvˆ ant este num˘ arul de caractere nenule din cuvˆ antul
respectiv.
Conform Definit ¸iei 17.1, distant ¸a liber˘ a a unui cod este ponderea nenul˘ a minim˘ a
a unui cuvˆ ant cod – deci a unei secvent ¸e care marcheaz˘ a un drum prin diagrama de
translatare.
Propozit ¸ia 17.2 Distant ¸a liber˘ a a unui (n;1)- cod convolut ¸ional este egal˘ a cu pon-
derea nenul˘ a minim˘ a a unui ciclu care trece prin starea init ¸ial˘ a 00: : :0a diagramei
de translatare a codului.
Demonstrat ¸ie : Este imediat˘ a.
FieS0= 00 : : :0 starea init ¸ial˘ a. Pentru orice t;1·t·"dlib¡1
2#
, se de-
fine¸ ste d(t) ca fiind cel mai mic num˘ ar ˆ ıntreg pozitiv pcu proprietatea c˘ a orice

202PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE
drum S0!S1!: : : S p¡1;(S06´S1) are ponderea mai mare de 2 t. Pentru de-
terminarea algoritmic˘ a a lui d(t) se poate adapta imediat un algoritm similar din
teoria grafurilor.
Deoarece codul este liniar, valoarea lui d(t) se p˘ astreaz˘ a pentru orice stare a
diagramei de translatare.
Acum, ˆ ın condit ¸iile c˘ a pot apare maxim terori, algoritmul Viterbi va funct ¸iona
corect pentru o fereastr˘ a b=d(t) (datorit˘ a Propozit ¸iei 17.1).
Reluarea algoritmului Viterbi la fiecare pas cu fereastra maxim˘ a d(t) este ˆ ıns˘ a
destul de costisitoare ca timp; de aceea, practic, se folose¸ ste o fereastr˘ a mobil˘ a
b·d(t) ¸ si algoritmul trece la faza de decodificare atunci cˆ and toate drumurile
active selectate au acela¸ si prim arc. Dac˘ a s-a ajuns la b=t(b) ¸ si nu s-a selectat un
prim arc comun, algoritmul e¸ sueaz˘ a.
17.4 Coduri convolut ¸ionale catastrofice
Dac˘ a este definit neglijent, un cod convolut ¸ional poate conduce la urm˘ atoarea situa-
t ¸ie, complet nefericit˘ a: un mesaj ˆ ın care a fost perturbat un num˘ ar mic de caractere
genereaz˘ a prin decodificare o infinitate de erori.
Pentru a studia acest caz, consider˘ am din nou numai codurile ( n;1) – convolut ¸io-
nale binare. Pentru a vedea ˆ ın ce const˘ a problema, s˘ a lu˘ am urm˘ atorul exemplu:
Exemplul 17.8 Fie(2;1)- codul convolut ¸ional binar, cu polinoamele generatoare
g0(X) = 1 + X3; g1(X) = 1 + X+X2. Diagrama sa de translatare este
¹¸ș·¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·B
B
B
B
BB N
£
£
£
£
££ °BBBBBB M££££££ ±
¾
?-6-

¾
¾££££££ ±
£
£
£
£
££ °BBBBBB M
?B
B
B
B
BB N-
?¾ 000 010 101 111100 110
001 01100 01 00 0110
11 01 00 11
10
11
10 01 00 10
11
S˘ a presupunem c˘ a s-a transmis mesajul de informat ¸ie a= 00 : : :, c˘ aruia ˆ ıi
corespunde cuvˆ antul – cod nul c= 0000 : : :. La recept ¸ie s-a primit un cuvˆ ant cu
primele trei simboluri gre¸ site: v= 111000 : : :. Decodificarea sa nu ridic˘ a nici o
problem˘ a, acesta fiind de asemenea cuvˆ ant – cod, care marcheaz˘ a drumul prin st˘ arile
000¡100¡110¡011¡101¡110¡: : :.
Deci, ˆ ın ipoteza general˘ a din Teoria Codurilor (cea a decodific˘ arii cele mai proba-
bile), nu au ap˘ arut erori, ¸ si mesajul decodificat este a0= 110110110 : : :, care difer˘ a
deaˆ ıntr-o infinitate de pozit ¸ii.
ˆIn acest mod, modificarea doar a primelor trei caractere a dus la situat ¸ia ˆ ın care
aceste erori se propag˘ a ˆ ıntr-o secvent ¸˘ a infinit˘ a.

17.5. EXERCIT ¸II 203
Se observ˘ a din acest exemplu c˘ a tot necazul provine din faptul c˘ a diagrama cont ¸ine
dou˘ a cicluri distincte cu ie¸ sirea 0: 000 ¡000 ¸ si 110 ¡011¡101¡110.
Definit ¸ia 17.3 Un cod convolut ¸ional se nume¸ ste catastrofic dac˘ a diagrama sa de
translatare cont ¸ine dou˘ a cicluri distincte de pondere zero.
Observat ¸ie : Orice cod convolut ¸ional cont ¸ine un ciclu de pondere zero, anume bucla
care pleac˘ a ¸ si intr˘ a ˆ ın starea init ¸ial˘ a. Reamintim, ponderea unui drum este suma
ponderilor arcelor sale.
Teorema 17.1 Un(n;1)- cod convolut ¸ional este catastrofic dac˘ a ¸ si numai dac˘ a
cmmdc (g0(X); : : : ; g n¡1(X))6= 1.
Demonstrat ¸ie : Teorema r˘ amˆ ane valabil˘ a dac˘ a o demonstr˘ am pentru cazul n= 2. Fie
deci un (2 ;1) – cod convolut ¸ional, de polinoame generatoare g0(X); g1(X). Pentru
a marca un ciclu, un cuvˆ ant de intrare trebuie s˘ a fie de forma b(X) +Xra(X)¢(1 +
Xp+X2p+: : :), cu grad(a(X))< p. Pentru a elimina din discut ¸ie bucla din starea
S0, vom considera a(X)6´0. S˘ a presupunem c˘ aˆ ın diagrama de translatare a codului
exist˘ a un ciclu de lungime p¸ si pondere 0. Atunci a(X)¢g0(X) ¸ sia(X)¢g1(X) trebuie
s˘ a se divid˘ a cu 1 + Xp, deci a(X)¢g0(X) (unde g0(X) =cmmdc (g0(X); g1(X))), se
divide cu 1 + Xp.
Dac˘ a g0(X)) = 1, se ajunge la o contradict ¸ie (deoarece a(X) are grad mai mic
decˆ at p¸ si nu este polinomul identic nul). Deci grad(g0(X))¸1.ˆIn acest caz, toate
mesajele de informat ¸ie b(X) +a(X) [g0(X)]t(1 +Xp+X2p+: : :);(t¸0) se codific˘ a
identic, ceea ce va conduce la imposibilitatea decodific˘ arii.
Reciproca se demonstreaz˘ a similar. 2
17.5 Exercit ¸ii
17.1 Determinat ¸i dlibpentru fiecare din codurile urm˘ atoare:
(a) g0(X) = 1 + X2; g 1(X) = 1 + X+X2;
(b) g0(X) = 1 + X+X2+X3; g 1(X) = 1 + X2+X3;
(c) g0(X) = 1 + X3+X4; g 1(X) = 1 + X+X2+X4.
17.2 Folosind (2;2)- codul convolut ¸ional definit ˆ ın Exemplul 17.4, ¸ si fereastra de
decodificare b= 7, decodificat ¸i (cˆ at este posibil) secvent ¸ele
v= 01000001000 : : :
v= 11000110010010001110010 : : :
17.3 Trasat ¸i diagrama ret ¸ea a (2;1)- codului convolut ¸ional generat de g0(X) =
1 =X2+X3+X4. Folosit ¸i algoritmul Viterbi pentru decodificarea secvent ¸ei v=
1000001000001000 : : :
17.4 Fie(2;1)- codul generat de g0(X) = 1 + X+X2+X3; g 1(X) = 1 +
X2+X3. Decodificat ¸i primele 4caractere de informat ¸ie ale cuvˆ antului recept ¸ionat
c= 11000000 : : :pentru

204PRELEGEREA 17. DECODIFICAREA CODURILOR CONVOLUT ¸IONALE
b= 2; b = 3; b = 4.
17.5 Generalizat ¸i conceptul de diagram˘ a ret ¸ea la (n; k)- coduri.
Trasat ¸i ret ¸eaua (2;2)- codului definit de circuitul liniar:
±°²¯±°²¯
±°²¯
±°²¯
±°²¯
6-
-6-s6- –
6
-6-
??-?
– –

– -6
s
? -66
?+ +
+ +
+
17.6 Generalizat ¸i not ¸iunea de diagram˘ a de translatare pentru (n; k)coduri binare.
Construit ¸i diagrama de translatare a codului definit ˆ ın exercit ¸iul anterior.
17.7 Demonstrat ¸i Propozit ¸ia 17.2,
17.8 Pentru codurile definite ˆ ın Exercit ¸iul 17.1, determinat ¸i diagramele de trans-
latare ¸ si d(t)pentru 1·t·"dlib¡1
2#
.
17.9 Ce se ˆ ıntˆ ampl˘ a dac˘ a se ˆ ıncearc˘ a s˘ a se determine d(t)pentru t >"dlib¡1
2#
?
17.10 Construit ¸i un algoritm pentru determinarea lui d(t)ˆ ın cazul unui (n;1)-
cod convolut ¸ional ( 1·t·"dlib¡1
2#
dat).
17.11 Pentru fiecare din codurile urm˘ atoare, decidet ¸i dac˘ a sunt catastrofice sau nu.
ˆIn caz afirmativ, determinat ¸i ciclurile de pondere 0.
(a) g0(X) = 1 + X; g 1(X) = 1 + X+X2+X3;
(b) g0(X) = 1 + X+X4; g 1(X) = 1 + X2+X4;
(c) g0(X) = 1 + X+X2; g 1(X) = 1 + X+X3+X4.

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]L. Bahl, J. Cocke, F. Jelinek, J. Raviv – Optimal decoding of linear codes for
minimizing symbol error rate , IEEE Inf. Theory, pp. 284-287, Martie 1974;
[3]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[4]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[5]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[6]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[7]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;
[8]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Practical Ap-
proach , Kluwer Academic Publ., 1997;
[9]A. M. Kerdok – A class of low-rate non linear codes , Information and control,
20 (1972), 182-187;
[10]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[11]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
[12]W.E.Ryan – A Turbo Code Tutorial , IEEE Trans. comm. pp. 1261-1271, Oct.
1996;
205

Prelegerea 18
Coduri – tablou
18.1 Definirea codurilor tablou
ˆIn Prelegerea 3 au fost definite codurile – produs. De¸ si construct ¸ia prezentat˘ a era
cunoscut˘ a din anii060, dezvoltarea acestei clase de coduri a fost exploziv˘ a abia dup˘ a
trei decenii, odat˘ a cu introducerea pe piat ¸˘ a a telefoniei mobile. Acum s-a ar˘ atat c˘ a
orice cod – bloc poate fi generat finit recursiv, folosind o variant˘ a de coduri produs.
S˘ a consider˘ am o clas˘ a particular˘ a de coduri – produs binare, ˆ ın care n1=k1+
1; n2=k2+ 1 (deci singurul simbol de control este bitul de control al parit˘ at ¸ii).
Acest cod este generat de produsul Kronecker a dou˘ a matrici de forma
Gp;p+1=0
BBBB@1 0 0 : : :0 1
0 1 0 : : :0 1

0 0 0 : : :1 11
CCCCA(1)
unde p=k1; k2.
Un astfel de ( n1¢n2; k1¢k2) – cod are distant ¸a d=d1¢d2= 2¢2 = 4, deci corecteaz˘ a
o eroare ¸ si detecteaz˘ a dou˘ a erori. Chiar dac˘ a ˆ ın scrierea liniar˘ a a cuvintelor – cod
ultimul simbol de control se poate elimina (el este de fapt suma modulo 2 a bit ¸ilor
de control de pe ultima linie ¸ si coloan˘ a) distant ¸a se reduce la 3, deci capacitatea de
corectare a unei erori r˘ amˆ ane.
Exemplul 18.1 Fie un (3;2)- cod binar sistematic, generat de matricea G=Ã
1 0 1
0 1 1!
. Codul produs (3;2)(3;2) = (9 ;4)va avea ca matrice generatoare
G0=G£G=0
BBB@1 0 1 0 0 0 1 0 1
0 1 1 0 0 0 0 1 1
0 0 0 1 0 1 1 0 1
0 0 0 0 1 1 0 1 11
CCCA
Dac˘ a a= 1001 este un mesaj de informat ¸ie, el se codific˘ a ˆ ın
x=aG0= 101011110 , sau – folosind forma matricial˘ a:
x=1 0 1
0 1 1
110= 101 011110
caracterele de control fiind subliniate, iar cuvˆ antul – cod este transmis linie cu linie.
193

194 PRELEGEREA 18. CODURI – TABLOU
18.2 Structura de ret ¸ea a codurilor tablou
ˆIn cadrul codurilor convolut ¸ionale s-a definit o structur˘ a de ret ¸ea pentru facilitarea
codific˘ arii, decodific˘ arii, detect˘ arii ¸ si corect˘ arii de erori (Prelegerea 17). Aceast˘ a
structur˘ a se poate extinde cu mici modific˘ ari ¸ si la codurile liniare.
FieCun (n; k) – cod liniar care se poate reprezenta printr-un cod – tablou. Lui
i se asociaz˘ a un graf orientat cu arce marcate. Vˆ arfurile grafului sunt partit ¸ionate
ˆ ın coloane V0; V1; : : : ; V Nc¡1(Nc·n+ 1). O coloan˘ a Vicont ¸ine mult ¸imea st˘ arilor
la care se poate ajunge la momentul i. Fiecare arc Upleac˘ a dintr-o stare qj2Vi¸ si
ajunge la o stare qm2Vi+1(i¸0); ˆ ın acest caz, qmestesuccesorul luiqj, iarqjeste
predecesorul luiqm. Arcul este marcat cu o pereche ±(U)=¸(U), unde ±(U)2Z¤
qeste
un mesaj de informat ¸ie, iar ¸(U)2Z¤
qeste mesajul – cod corespunz˘ ator (de obicei
ele se reduc la cˆ ate un singur caracter).
Propriet˘ at ¸i :
(a)V0=fq0g; VNc¡1=fqNc¡1g; deci, orice ret ¸ea pleac˘ a dintr-o stare unic˘ a q0
(r˘ ad˘ acina ) ¸ si ajunge de asemenea ˆ ıntr-o stare unic˘ a qNc¡1(t ¸inta);
(b) Orice stare este accesibil˘ a din r˘ ad˘ acin˘ a prin cel put ¸in un drum;
(c) Din orice stare se poate ajunge la t ¸int˘ a prin cel put ¸in un drum.
Numim drum prin ret ¸ea un drum de la r˘ ad˘ acin˘ a la t ¸int˘ a. Printr-o ret ¸ea se pot
cataloga toate cuvintele unui cod liniar reprezentabil sub form˘ a de cod – tablou.
Orice cuvˆ ant – cod corespunde unui drum unic prin ret ¸ea. Deci o astfel de ret ¸ea va
cont ¸ine qkdrumuri distincte. Fiecare astfel de drum are dou˘ a marcaje:
(i) concatenarea marcajelor de informat ¸ie ±(U) ale fiec˘ arui arc Ual drumului;
aceast˘ a secvent ¸˘ a formeaz˘ a mesajul de informat ¸ie care se codific˘ a.
(ii) concatenarea marcajelor ¸(U) ale fiec˘ arui arc Ual drumului; ele formeaz˘ a
cuvˆ antul care codific˘ a secvent ¸a de informat ¸ie.
ˆIn acest fel, operat ¸ia de codificare sau decodificare (f˘ ar˘ a corectare de erori) se
reduce pentru fiecare mesaj de informat ¸ie (cod) la determinarea acelui drum prin
ret ¸ea, marcat de mesajul respectiv.
S˘ a consider˘ am numai ( n1¢n2; k1¢k2) – coduri – tablou binare (generalizarea la
cazul nebinar se face f˘ ar˘ a probleme deosebite). Pentru aceste coduri se pot construi
evident mai multe structuri de ret ¸ea; vom considera aici numai ret ¸ele cu un num˘ ar
minim de st˘ ari pe fiecare coloan˘ a. Construct ¸ia unei astfel de ret ¸ele va necesita
Ns= 2minfk1;k2g
st˘ ari (reamintim, aici ki=ni¡1; i= 1;2). Procedura de generare ([8]) a ret ¸elei
este:

18.2. STRUCTURA DE RET ¸EA A CODURILOR TABLOU 195
1. Fie n1=minfn1; n2g(pentru cazul invers se procedeaz˘ a similar);
2. Se determin˘ a num˘ arul Nsde st˘ ari ¸ si num˘ arul Ncde coloane prin relat ¸iile
Ns= 2n1¡1; N c=n2+ 1;
3. Pentru fiecare coloan˘ a Vp(0·p·Nc¡1) se noteaz˘ a elementele (st˘ arile)
sale prin ( A)p= (a1a2: : : a k1)p, unde ai2Z2;
4. R˘ ad˘ acina ret ¸elei este (00 : : :0)0, iar scopul este (00 : : :0)Nc¡1;
5. Pentru orice pereche de st˘ ari ( A; B)2Vp£Vp+1(0·p < N c¡2), se
marcheaz˘ a arcul corespunz˘ ator cu ±p(A; B)=¸p(A; B) definite ±p(A; B) =
(A)p+ (B)p+1; ¸p(A; B) =±p(A; B)c1, unde c1este bitul de paritate al
secvent ¸ei ±p(A; B) iar suma se realizeaz˘ a ˆ ın Z2.
6. Arcele care leag˘ a st˘ arile A2VNc¡2de t ¸int˘ a au ±Nc¡2(A; B) =
²; ¸Nc¡2(A; B) = ( A)Nc¡2c1unde c1este bitul de paritate al secvent ¸ei
(A)Nc¡2care define¸ ste starea A.
Exist˘ a 2k1¢k2drumuri distincte prin ret ¸ea, fiecare corespunzˆ and unui cuvˆ ant – cod
unic. Procedura poate fi extins˘ a u¸ sor la codurile produs cu mai multe simboluri de
control.
Exemplul 18.2 S˘ a construim ret ¸eaua asociat˘ a codului tablou (3;2)(3;2)(deci n1=
n2= 3; k1=k2= 2; d= 4). Ea va avea Ns= 2n1¡1= 23¡1= 4st˘ ari distincte ¸ si
Nc=n2+ 1 = 3 + 1 = 4 coloane.
Fiecare stare va fi de forma (a1a2)pcup= 0;1;2;3; a1; a22 f0;1g.
(00) 0¸ si(00) 3vor fi r˘ ad˘ acina respectiv t ¸inta ret ¸elei.
Marcajele arcelor sunt de forma ±p(A; B)=¸p(A; B), obt ¸inute prin toate combina-
t ¸iile posibile ale lui (a1a2)p¸ si(a1a2)p+1.
Astfel, pentru p= 0avem:
±0(00;00) = (00) 0+ (00) 1= 00 ±0(00;01) = (00) 0+ (01) 1= 01
±0(00;01) = (00) 0+ (10) 1= 10 ±0(00;11) = (00) 0+ (11) 1= 11.
iar fiecare arc va fi marcat cu o pereche de forma
±0=¸0=a1a2=a1a2c1
unde c1=a1+a2.
Pe nivelul p= 1, arcele sunt marcate prin perechi din tabelul urm˘ ator:
±1(A; B) 00 01 10 11
00 00=000 01 =011 10 =101 11 =110
01 01=011 00 =000 11 =110 10 =101
10 10=101 11 =110 00 =000 01 =011
11 11=110 10 =101 01 =011 00 =000
La ultimul nivel, pentru p=Nc¡2 = 2 vom avea ±2(A;00) = ²¸ si
¸2(00;00) = 000 ; ¸2(01;00) = 011 ; ¸2(10;00) = 101 ; ¸2(11;00) = 110 (pe ultimul
arc sunt numai simboluri de control).

196 PRELEGEREA 18. CODURI – TABLOU
Ret ¸eaua se poate reprezenta grafic astfel:
¹¸ș·
¹¸ș·¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·¹¸ș·¹¸ș·
0000 00
01 01
10 10
11 11006-

? –
?-
-6
-00=000
01=011
10=101
11=110²=000
²=011
²=101
²=110-HHHHHHHHHHHHHHHHH j@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@@ RJ
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
JJ ^©©©©©©©©©©©©©©©©© *
-HHHHHHHHHHHHHHHHH j@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@@ R¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ µ
©©©©©©©©©©©©©©©©© *
-HHHHHHHHHHHHHHHHH j­­­­­­­­­­­­­­­­­­­­­­­­­ Á
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ µ
©©©©©©©©©©©©©©©© *

Exemplul 18.3 ˆIn mod similar se construiesc codurile tablou obt ¸inute prin produsul
a dou˘ a (3;2)(n2; k2)- coduri bloc. Toate au acela¸ si num˘ ar de st˘ ari Ns= 22=
4, doar adˆ ancimea (num˘ arul de coloane) variind ˆ ın funct ¸ie de n2(Nc=n2+ 1).
Reprezentarea grafic˘ a a ret ¸elei este
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¶¶¶¶¶¶¶¶¶ 7
©©©©©© *
HHHHHH jJ
J
J
J
J
J
J
JJ ^-ZZZZZZZ ~J
J
J
J
J
J
J
J
J
JJ ^A
A
A
A
A
A
A
A
A
A
A
A
A
AA U´´´´´´´ 3

ZZZZZZZ ~S
S
S
S
S
S
S
S
SS w­­­­­­­­­­ Á
½½½½½½½ >

ZZZZZZZ ~¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¶¶¶¶¶¶¶¶¶¶ 7
½½½½½½½ >
–QQ sS
SS wA
A
AA U
½½ >-ZZ ~J
JJ ^
¡¡ µ³³ 1-HH j
– ©© *¡¡ µ­­­ Á-
»»»» :
©©©© *
´´´´ 3
XXXX z-
»»» :
©©©© *

»»»» :XXXX zHHH j
QQQQ sPPPP qXXX z-@
@
@
@
@
@
@ RXXXXXXX z
³³³³³³³ 1
¡¡¡¡¡¡¡ µ0000 00 00
0001 01 01
10 10 10
11 11 11: : :
marcajul nodurilor fiind realizat similar cu cel din Exemplul 18.2.
18.3 Decodificarea codurilor tablou
Operat ¸ia de codificare se realizeaz˘ a foarte simplu: fiecare mesaj de informat ¸ie de
k1¢k2caractere, se scrie ca o secvent ¸˘ a de k2+ 1 grupuri, primele k2grupuri avˆ and
cˆ atek1simboluri, iar ultimul ². Aceast˘ a secvent ¸˘ a traseaz˘ a prin ret ¸ea un drum unic

18.3. DECODIFICAREA CODURILOR TABLOU 197
(00: : :0)¡A1¡: : :¡ANc¡2¡(00: : :0)
de la r˘ ad˘ acin˘ a la t ¸int˘ a. Ceea ce se obt ¸ine prin concatenarea ie¸ sirilor
¸0(00: : :0; A1)¸1(A1; A2): : : ¸ Nc¡2(ANc¡2;00: : :0)
va fi un cuvˆ ant – cod al ( n1¢n2; k1¢k2) – codului – tablou reprezentat de ret ¸ea.
Pentru decodificare se poate folosi o variant˘ a a algoritmului Viterbi, cu mici
modific˘ ari, necesare trecerii de la codurile convolut ¸ionale la coduri bloc.
1. Cuvˆ antul recept ¸ionat este ˆ ımp˘ art ¸it ˆ ın n2subcuvinte, fiecare avˆ and n1
valori digitizate (vezi Exemplul 18.4) ale alfabetului – cod.
2. La fiecare nivel p, pentru fiecare arc ( Ap; Bp+1) se calculeaz˘ a metrica
arcului , care este distant ¸a euclidian˘ a dintre al p+ 1-lea subcuvˆ ant
recept ¸ionat ¸ si ¸p(Ap; Bp+1). Distant ¸a euclidian˘ a dintre x=x1x2: : : x n¸ si
y=y1y2: : : y neste
dE(x;y) = (x1¡y1)2+ (x2¡y2)2+: : :+ (xn¡yn)2.
3. Pentru fiecare nod Bal ret ¸elei se determin˘ a metrica nodului B, astfel:
(a) Metrica nodului r˘ ad˘ acin˘ a este 0;
(b) Pentru un nod Bp+12Vp+1(p¸0), metrica lui Beste cea mai mic˘ a
valoare a sumei dintre metrica unui nod Ap2Vp¸ sidE((A)p;(B)p+1),
minimul fiind luat dup˘ a toate nodurile din Vp.
4. Arcul selectat ˆ ın calculul metricii nodului se introduce ˆ ıntr-un drum posi-
bil, iar toate celelalte arce de pe nivelul respectiv sunt eliminate.
5. Dup˘ a ce s-a calculat metrica nodului t ¸int˘ a, se consider˘ a drumul posibil
corespunz˘ ator ¸ si decodificarea se face prin concatenarea sub-mesajelor
de informat ¸ie care marcheaz˘ a arcele acestui drum.
Exemplul 18.4 S˘ a relu˘ am codul – tablou definit ˆ ın Exemplul 18.2. Presupunem c˘ a
s-a transmis cuvˆ antul cod a= 011101110 ¸ si s-a recept ¸ionat mesajul digitizat
b0= 0:2 0:4 0:4 0:3 0:1 0:9 1:0 0:9 0:6.
Presupunˆ and c˘ a orice simbol digitizat din intervalul [0:0;0:5)reprezint˘ a carac-
terul binar 0, iar [0:5;1:0]reprezint˘ a 1, putem considera c˘ a s-a primit secvent ¸a
b= 000001111 deci au ap˘ arut 4erori. ˆIntr-o decodificare obi¸ snuit˘ a a codurilor
liniare, deoarece d= 4, erorile nu pot fi corectate. Folosind structura de ret ¸ea ˆ ıns˘ a,
acest lucru este realizabil. S˘ a detaliem pa¸ sii decodific˘ arii cuvˆ antului b0.
– Metrica nodului r˘ ad˘ acin˘ a (00) 0este0.
– Prima subsecvent ¸˘ a de n1= 3caractere primite este 0:2 0:4 0:4.
– Se calculeaz˘ a metricile celor patru arce care pleac˘ a din r˘ ad˘ acin˘ a:
dE((00) 0;(00) 1) = (0 :2¡0:0)2+ (0:4¡0:0)2+ (0:4¡0:0)2= 0:36;
dE((00) 0;(01) 1) = (0 :2¡0:0)2+ (0:4¡1:0)2+ (0:4¡1:0)2= 0:76;
dE((00) 0;(10) 1) = (0 :2¡1:0)2+ (0:4¡0:0)2+ (0:4¡1:0)2= 1:16;
dE((00) 0;(11) 1) = (0 :2¡1:0)2+ (0:4¡1:0)2+ (0:4¡0:0)2= 1:16.
– Metricile celor patru noduri de pe nivelul 1sunt chiar aceste valori.

198 PRELEGEREA 18. CODURI – TABLOU
– Urm˘ atorul submesaj primit este 0:3 0:1 0:9. Pentru nodurile de pe nivelul
2, valorile calculate ale metricilor (metrica nodului predecesor plus metrica arcului)
sunt:
(00) 2(01) 2(10) 2(11) 2
(00) 11:27 1 :27 0 :87 2:42
(01) 11:67 1 :67 2 :871:37
(10) 11:67 3 :27 2 :07 2 :07
(11) 13:27 1 :67 2 :07 2 :07
– Minimul pe fiecare coloan˘ a ale acestor valori (scris ˆ ıngro¸ sat) reprezint˘ a metrica
nodului respectiv. Deci nodurile (00) 2¸ si(01) 2au metrica 1:27,(10) 2are metrica
0:87, iar (11) 2are metrica 1:37.
– Ultima subsecvent ¸˘ a de trei caractere digitizate este 1:0 0:9 0:6. Valorile calcu-
late ale metricilor (metrica nodului predecesor plus metrica arcului) drumurilor care
ajung ˆ ın nodul t ¸int˘ a sunt:
(00) 3
(00) 23:44
(01) 22:44
(10) 21:84
(11) 21:74
Deci metrica nodului t ¸int˘ a este 1:74. Ref˘ acˆ and acum traiectoria ˆ ın sens invers,
se obt ¸ine drumul posibil (00) 0¡(01) 1¡(11) 2¡(00) 3, reprezentat ˆ ın figura
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
»»»»»» :ZZZZZZZ ~´´´´´´ 30000
01
10
1100
01
10
110001=011
10=101
²=110
Prin concatenarea marcajelor arcelor de pe acest drum, rezult˘ a cuvˆ antul – cod
011101110 (care coincide cu mesajul transmis a) ¸ si decodificarea lui – mesajul de
informat ¸ie 0110.
18.4 Coduri tablou generalizate ( GAC)
Definit ¸ia codurilor – tablou se poate extinde pentru a cuprinde ¸ si alte clase de coduri
liniare (Hamming, Reed – Muller) sau ciclice ( BCH , Reed – Solomon); ceea ce se
obt ¸ine este un cod – tablou generalizat (GAC – Generalized Array Codes).
UnGAC este o sum˘ a binar˘ a de dou˘ a sau trei coduri – tablou, completate eventual
cu linii nule. Procedura de construct ¸ie a unui astfel de ( n; k) – cod Ceste:
A.FieC1un cod – produs prin ˆ ınmult ¸irea Kronecker GA1£GA2, unde:
(i)GA1este o matrice k1£(k1+ 1) de tipul (1);

18.4. CODURI TABLOU GENERALIZATE ( GAC ) 199
(ii)GA2= (Ik2jJk2;n2¡k2) unde Ik2este matricea unitate iar Jeste o matrice cu
toate elementele 1;
(iii)n= (k1+ 1)¢n2; kA=k1¢k2.
B.FieC2un cod – produs prin ˆ ınmult ¸irea Kronecker GB1£GB2, unde:
(i)GB1este o matrice 1 £nB1cu toate elementele 1;
(ii)GB2= (G3jG4) este o matrice kB£nB2unde G3este o matrice cu coloane 0
sau 1, iar G4este o matrice de tipul (1) cu kBlinii. Coloanele lui GB2pot fi eventual
permutate.
(iii)n=nB1¢nB2.
C.FieC3un cod – produs prin ˆ ınmult ¸irea Kronecker GC1£GC2, unde:
(i)GC1= (00 : : :01) are dimensiunea 1 £nC1;
(ii)GC2= (11 : : :1) are dimensiunea 1 £nC2;
(iii)n=nC1¢nC2.
D.Codul CesteC1+C2sauC1+C2+C3unde suma se efectueaz˘ a ˆ ın Z2; el
are lungimea n,k=kA+kBrespectiv k=kA+kB+ 1 simboluri de informat ¸ie ¸ si
este generat de matricea
Ã
GA1£GA2
GB1£GB2!
sau0
B@GA1£GA2
GB1£GB2
GC1£GC21
CA
ˆIn exemplele urm˘ atoare vom prezenta sub form˘ a de coduri GAC unele din cele
mai cunoscute coduri – bloc (liniare sau ciclice).
Exemplul 18.5 S˘ a consider˘ am
GA1=0
B@1 0 0 1
0 1 0 1
0 0 1 11
CA; G A2= (1 1)
GB1= (1 1 1 1) ; G B2= (0 1) :
Dimensiunile codului sunt n= 4¢2 = 8 ; k= 3 + 1 = 4 . Matricea generatoare va fi
G=0
BBB@1 1 0 0 0 0 1 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
0 1 0 1 0 1 0 11
CCCA.
Aceasta corespunde unui cod Reed – Muller RM(1;3). Dac˘ a se ignor˘ a ultima
coloan˘ a (de control), se obt ¸ine un (7;4)- cod Hamming binar.
Aranjarea sub form˘ a de tablou a cuvintelor – cod din cele dou˘ a coduri – produs
componente este urm˘ atoarea:
Fiea=a1a2a3a4un mesaj de informat ¸ie. Atunci cuvˆ antul – cod xeste dat prin:
x1=a1p1
a2p2
a3p3
p4p5x2=0a4
0a4
0a4
0a4;
x=x1+x2=a1p1+a4
a2p2+a4
a3p3+a4
p4p4+a4= (a1; a4+p1; a2; p2+a4; a3; p3+a4; p4; p4+a4),
unde pi=ai(1·i·3)¸ sip4=a1+a2+a3sunt simboluri de control.

200 PRELEGEREA 18. CODURI – TABLOU
Exemplul 18.6 Codul RM(1;4)poate fi generat cu un cod GAC astfel:
GA1=0
B@1 0 0 1
0 1 0 1
0 0 1 11
CA GA2= (1 1 1 1)
GB1= (1 1 1 1) GB2=Ã
0 1 0 1
0 0 1 1!
.
Deci n= 4¢4; k= 3 + 2 = 5 ¸ si
G=0
BBBBBB@1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11
CCCCCCA.
Eliminˆ and ultimul simbol de control (ultima coloan˘ a din matricea G) se ajunge
la un (15;5)- cod binar cu d= 7, care este un cod BCH .
Fiea=a1a2a3a4a5un mesaj de informat ¸ie. Reprezentarea tabelar˘ a a cuvintelor
– cod este:
x1=a1p1p1p1
a2p2p2p2
a3p3p3p3
p4p4p4p4x2=0a4a5a4+a5
0a4a5a4+a5
0a4a5a4+a5
0a4a5a4+a5,
x=x1+x2=a1p1+a4p1+a5p1+a4+a5
a2p2+a4p2+a5p2+a4+a5
a3p3+a4p3+a5p3+a4+a5
p4p4+a4p4+a5p4+a4+a5,
unde pi=ai(1·i·3); p4=a1+a2+a3sunt simboluri de control.
Exemplul 18.7 S˘ a plec˘ am de la urm˘ atoarele matrici de baz˘ a:
GA1=GA2=0
B@1 0 0 1
0 1 0 1
0 0 1 11
CA
GB1=GC2= (1 1 1 1) ; G B2=GC1= (0 0 0 1) .
Se obt ¸ine un cod C=C1+C2+C3cun= 4¢4 = 16 ; k= 3¢3 + 1 + 1 = 11 ¸ si
matrice generatoare
G=0
BBBBBBBBBBBBBBBBBBBB@1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1
0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1
0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1
0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11
CCCCCCCCCCCCCCCCCCCCA
El are d= 4¸ si este echivalent cu un cod RM(2;4). Dac˘ a se elimin˘ a ultimul
simbol de control, se obt ¸ine un (15;11)- cod Hamming binar.

18.5. DECODIFICAREA CODURILOR GAC 201
Fiea=a1a2: : : a 11un mesaj de informat ¸ie. Cuvˆ antul – cod xeste format din:
x1=a1a2a3p1
a4a5a6p2
a7a8a9p3
p4p5p6p7;x2=0 0 0 a10
0 0 0 a10
0 0 0 a10
0 0 0 a10;x3=0 0 0 0
0 0 0 0
0 0 0 0
a11a11a11a11
x=x1+x2+x3=a1 a2 a3 p1+a10
a4 a5 a6 p2+a10
a7 a8 a9 p3+a10
p4+a11p5+a11p6+a11p7+a10+a11
Exemplul 18.8 Pentru (24;12)- codul Golay binar extins se poate da urm˘ atoarea
reprezentare GAC :
GA1=Ã
1 0 1
0 1 1!
GA2=0
BBB@1 0 0 0 1 1 1 1
0 1 0 0 1 1 1 1
0 0 1 0 1 1 1 1
0 0 0 1 1 1 1 11
CCCA
GB1= (1 1 1) GB2=0
B@1 1 1 0 1 1 0 1
1 0 1 1 1 1 0 1
1 0 1 0 1 1 1 11
CA
GC1= (0 0 1) GC2= (1 1 1 1 1 1 1 1) .
Fiea=a1a2: : : a 12un mesaj de informat ¸ie.
Pentru obt ¸inerea cuvˆ antului – cod, avem:
x1=a1a2a3a4p1p2p3p4
a5a6a7a8p5p6p7p8
p9p10p11p12p13p14p15p16
x2=c1a9c2a10c3c4a11c5
c1a9c2a10c3c4a11c5
c1a9c2a10c3c4a11c5
x3=0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
a12a12a12a12a12a12a12a12
deci
x=x1+x2+x3=
a1+c1 a2+a9 : : : a 11+p3 c5+p4
a5+c1 a6+a9 : : : a 11+p7 c5+p8
a12+p9+c1a12+p10+a9: : : a 12+a11+p15a12+p16+c5
De remarcat maniera mult mai simpl˘ a de codificare, ea reducˆ andu-se la adun˘ ari
de valori binare (pentru simbolurile de control) ¸ si adun˘ ari de matrici binare.
18.5 Decodificarea codurilor GAC
Pentru decodificare se poate folosi tot algoritmul lui Viterbi aplicat unei structuri
de ret ¸ea sub care se pot reprezenta aceste coduri. Structura de ret ¸ea se construie¸ ste
similar cu cea a codurilor – tablou, cu unele mici modific˘ ari datorate definit ¸iei cu-
vintelor – cod, ca sume de dou˘ a sau trei alte secvent ¸e.

202 PRELEGEREA 18. CODURI – TABLOU
Vom considera reprezentarea cuvintelor unui cod GAC sub form˘ a de tablou cu
n1linii ¸ si n2coloane. Fie kinum˘ arul de simboluri noi de informat ¸ie care pot apare
pe linia ia cuvintelor – cod ¸ si t= max
1·i·n1fkig.
1. Num˘ arul de coloane (adˆ ancimea ret ¸elei) este Nc=n1+ 1, iar num˘ arul
de st˘ ari distincte este Ns= 2t.
2. Fiecare stare de pe coloana pse noteaz˘ a ( a1a2: : : a t)punde ai2Z2(1·
i·t).
3. R˘ ad˘ acina ret ¸elei este (00 : : :0)0iar t ¸inta (00 : : :0)n1.
4. Fiecare arc ( Ap; Bp+1) de pe nivelul peste marcat cu o pereche
±p(A; B)=¸p(A; B) unde ±p(A; B) este secvent ¸a de simboluri noi de
informat ¸ie de pe linia p(eventual ²), iar ¸p(A; B) este linia pa cuvˆ antului
– cod.
5. Dac˘ a Ap¸ siBp+1sunt legate printr-un arc ¸ si j±p(A; B)j=s, atunci Bp+1=
Ap+±p(A; B)0t¡s.
6. Dac˘ a construct ¸ia codului GAC a folosit ¸ si codul C3, atunci fiecare nod
de pe coloana n2este legat de t ¸int˘ a prin dou˘ a arce, marcajul celui de-al
doilea arc fiind complementara marcajului primului arc (pe acest nivel
±n2(A;00: : :0) = ²).
ˆIn aceast˘ a construct ¸ie de ret ¸ea suntn1Y
p=12kidrumuri distincte, fiecare din ele
corespunzˆ and unui cuvˆ ant – cod.
Operat ¸iile de codificare/decodificare (inclusiv aplicarea algoritmului Viterbi a-
daptat) sunt identice cu cele definite la codurile – tablou.
Exemplul 18.9 Relu˘ am codul definit ˆ ın Exemplul 18.5. Pentru el se poate construi
o ret ¸ea ˆ ın felul urm˘ ator:
Sunt necesare Nc=n1+ 1 = 4 + 1 = 5 coloane. Pentru num˘ arul de st˘ ari, s˘ a
studiem forma de tablou a cuvintelor cod:
x=a1p1+a4
a2p2+a4
a3p3+a4
p4p4+a4
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·©©©©©©© *
»»»»»» :
XXXXXXX zHHHHHHH j-PPPPPPP q-»»»»»»» :

-XXXXXXX z »»»»»»» :-


-XXXXXXX z »»»»»»» :
XXXXXXX z »»»»»»» :HHHHHHH j XXXXXX z
»»»»»»» :
©©©©©©© *0000 00 00
0010 10 10
01 01 01
11 11 11

18.5. DECODIFICAREA CODURILOR GAC 203
ˆIn aceast˘ a reprezentare, pe prima linie sunt dou˘ a simboluri de informat ¸ie ( a1¸ sia4),
pe a doua ¸ si a treia cˆ ate unul ( a2respectiv a3,a4nefiind simbol nou), iar pe a patra
linie, nici unul. Deci num˘ arul de st˘ ari al ret ¸elei este Ns= 22= 4, fiecare stare fiind
reprezentat˘ a printr-o secvent ¸˘ a de t= 2caractere binare ( 00;01;10;11).
Funct ¸ia ±este definit˘ a prin
±0(00; B) =a1a4; ± 1(A; B) =a2; ± 2(A; B) =a3; ± 3(A;00) = ².
Nodurile ¸ si arcele sunt marcate cu valorile date de tabelele urm˘ atoare:
±0(A; B)=¸0(A; B)00 10 01 11
00 00=00 10 =11 01 =01 11 =10
±1(A; B)=¸1(A; B)00 10 01 11
00 0=00 1 =11¡ ¡
10 1=11 0 =00¡ ¡
01 ¡ ¡ 0=01 1 =10
11 ¡ ¡ 1=10 0 =01
±2(A; B)=¸2(A; B)00 10 01 11
00 0=00 1 =11¡ ¡
10 1=11 0 =00¡ ¡
01 ¡ ¡ 0=01 1 =10
11 ¡ ¡ 1=10 0 =01
±3(A; B)=¸3(A; B)00
00 ²=00
10 ²=11
01 ²=01
11 ²=10pentru codul RM(1;3),
±3(A; B)=¸3(A; B)00
00 ²=0
10 ²=1
01 ²=0
11 ²=1pentru (7;4)- codul Hamming
Exemplul 18.10 Reprezentarea prin ret ¸ea a codurilor RM(1;4)¸ si(15;5)¡BCH
construite sub form˘ a de GAC ˆ ın Exemplul 18.6 se realizeaz˘ a astfel:
Adˆ ancimea ret ¸elei (num˘ arul de coloane) este Nc= 4 + 1 = 5 . Num˘ arul maxim
de simboluri de informat ¸ie noi se afl˘ a pe prima linie a cuvintelor – cod ( a1; a4; a5);
deci ret ¸eaua are Ns= 23= 8st˘ ari distincte.
Funct ¸ia ±este definit˘ a
±0(000; B) =a1a4a5; ±1(A; B) =a2; ±2(A; B) =a3; ±3(A;000) = ².
iar funct ¸ia ¸:
¸0(000; B) =a1(a1+a4)(a1+a5)(a1+a4+a5)
¸1(A; B) =a2(a2+a4)(a2+a5)(a2+a4+a5)
¸2(A; B) =a3(a3+a4)(a3+a5)(a3+a4+a5)
¸3(A;000) = ( a1+a2+a3)(a1+a2+a3+a4)(a1+a2+a3+a5)(a1+a2+a3+a4+a5)
pentru codul RM(1;4). Pentru (15;5)- codul BCH se elimin˘ a ultimul bit de control.
Nodurile ¸ si arcele sunt etichetate conform tabelelor:
±0=¸0 000 100 001 101 010 110 011 111
000 000=0000 100 =1111 001 =0011 101 =1100 010 =0101 110 =1010 011 =0110 111 =1001

204 PRELEGEREA 18. CODURI – TABLOU
¹¸ș·¹¸ș·¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·¶¶¶¶¶¶¶¶¶ 7
¡¡¡¡¡¡¡ µ
´´´´´´´ 3
»»»»»»» :
XXXXXX zHHHHHHH j@
@
@
@
@
@@ RS
S
S
S
S
S
S
SS w- –
– –
– –
– –
– –
– –
– –
– -PPPPP q ³³³³³ 1 PPPPP q ³³³³³ 1
PPPPP q ³³³³³ 1 PPPPP q ³³³³³³ 1
PPPPP q ³³³³³³ 1 PPPPPP q ³³³³³ 1
PPPPPP q ³³³³³ 1 PPPPPP q ³³³³³ 1S
S
S
S
S
S
S
S
S w@
@
@
@
@
@@ RQQQQQQ sXXXXXX z
»»»»»»» :
©©©©©©© *
½½½½½½½ >
¡¡¡¡¡¡¡¡ µ000000 000 000
000100 100 100
001 001 001
101 101 101
010 010 010
110 110 110
011 011 011
111 111 111
±i=¸i 000 100 001 101 010 110 011 111
000 0=0000 1 =1111 ¡ ¡ ¡ ¡ ¡ ¡
100 1=1111 0 =0000 ¡ ¡ ¡ ¡ ¡ ¡
001 ¡ ¡ 0=0011 1 =1100 ¡ ¡ ¡ ¡
101 ¡ ¡ 1=1100 0 =0011 ¡ ¡ ¡ ¡
010 ¡ ¡ ¡ ¡ 0=0101 1 =1010 ¡ ¡
110 ¡ ¡ ¡ ¡ 1=1010 0 =0101 ¡ ¡
011 ¡ ¡ ¡ ¡ ¡ ¡ 0=0110 1 =1001
111 ¡ ¡ ¡ ¡ ¡ ¡ 1=1001 0 =0110(i=1;2)
±3=¸3 0000
000 ²=0000
100 ²=1111
001 ²=0011
101 ²=1100
010 ²=0101
110 ²=1010
011 ²=0110
111 ²=1001respectiv±3=¸30000
000 ²=000
100 ²=111
001 ²=001
101 ²=110
010 ²=010
110 ²=101
011 ²=011
111 ²=100:
De remarcat c˘ a aceast˘ a ret ¸ea se poate reprezenta folosind numai 4st˘ ari ˆ ın loc de 8:
{
y
{{ {
{
y
{{
{
y
{{ {- – –
– – –
– – –
– – -6-
6–
?-
?
? -? – -6
-6-6-
-6-

? – –
? –
?–
?-
-6-
-6-
Cele dou˘ a arce care leag˘ a dou˘ a noduri sunt marcate cu etichete complementare.
Except ¸ie fac arcele de pe primul nivel unde ˆ ın definit ¸ia funct ¸iei ±0este complemen-
tat numai primul bit ( a1); ceilalt ¸i doi bit ¸i de informat ¸ie a4a5sunt identici pentru
fiecare pereche de arce ¸ si formeaz˘ a marcajele nodurilor succesor de pe nivelul 1:
00;01;10;11.

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]L. Bahl, J. Cocke, F. Jelinek, J. Raviv – Optimal decoding of linear codes for
minimizing symbol error rate , IEEE Inf. Theory, pp. 284-287, Martie 1974;
[3]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[4]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[5]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[6]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[7]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;
[8]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Practical Ap-
proach , Kluwer Academic Publ., 1997;
[9]A. M. Kerdok – A class of low-rate non linear codes , Information and control,
20 (1972), 182-187;
[10]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[11]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
[12]W.E.Ryan – A Turbo Code Tutorial , IEEE Trans. comm. pp. 1261-1271, Oct.
1996;
205

Prelegerea 19
Alte reprezent˘ ari de coduri – bloc
19.1 RLL – coduri
Sistemele de comunicare actuale (telefonice, de ˆ ınregistrare etc), datorit˘ a vitezei
mari de lucru, difer˘ a substant ¸ial de canalele clasice (binar simetrice). Pentru ele
se folosesc filtre de band˘ a capabile s˘ a elimine fenomenul de interferent ¸˘ a care apare.
Numite canale cu r˘ aspuns part ¸ial , ele corecteaz˘ a aceste interferent ¸e folosind algoritmi
de tip Viterbi, incorporat ¸i prin construct ¸ie. Reu¸ sita decodific˘ arii corecte a cuvintelor
recept ¸ionate este asigurat˘ a de supra-codific˘ ari ale mesajului surs˘ a. ˆIn prezent sunt
folosite trei supra-coduri care asigur˘ a transmiterea f˘ ar˘ a interferent ¸e (ˆ ın anumite
limite) a mesajului: acestea sunt codurile cu lungime limitat˘ a ¸ si codurile balansate
pentru codurile-bloc, turbo-codurile pentru ocdurile convolut ¸ionale.
Definit ¸ia 19.1 Un cod cu lungime limitat˘ a ( RLL – Run Length Limited Codes), sau
(d0; k0)- cod, este un cod – bloc cu proprietatea c˘ a orice dou˘ a simboluri 1consecutive
sunt separate prin pzerouri, unde d0·p·k0.
Parametrul d0este folosit pentru controlul interferent ¸ei dintre simboluri (feno-
men care apare la viteze de transmisie mari, apropiate de capacitatea de saturat ¸ie a
canalului); k0impune num˘ arul maxim de zerouri care pot apare, pentru p˘ astrarea
unei rate de informat ¸ie cˆ at mai convenabile.
FieCun (n; k) – cod bloc care poate fi reprezentat sub form˘ a de cod tablou
(n1¢n2; k1¢k2), ¸ sic1;nun cuvˆ ant binar de comutat ¸ie . Codul C+c=fa+cja2Ag
va fi tot un ( n; k) – cod, cu restrict ¸ii RLL.
Dificultatea acestei construct ¸ii rezid˘ a ˆ ın modul de alegere a vectorului c. De
aceea, vom detalia procedura de codificare pentru obt ¸inerea de coduri RLL cud0=
0:
1:Se define¸ ste codul – tablou ( n1¢n2; k1¢k2) care trebuie transformat.
2:Se define¸ ste cuvˆ antul de comutat ¸ie c=c1c2: : :cn2, unde ci=
ci1ci2: : : c in1(1·i·n2) este secvent ¸a binar˘ a de comutat ¸ie pentru linia i.
3:Pentru linia i(care este un cuvˆ ant – cod cu un singur simbol de control),
cuvˆ antul de comutat ¸ie verific˘ a urm˘ atoarea condit ¸ie:
Dac˘ a n1este par, ciare un num˘ ar impar de 1,
altfel, ciare un num˘ ar par de 1.
217

218 PRELEGEREA 19. ALTE REPREZENT ˘ARI DE CODURI – BLOC
Exemplul 19.1 Fie(16;9)- codul tablou, avˆ and cuvintele – cod de forma
a=a1a2a3p1
a4a5a6p2
a7a8a9p3
p4p5p6p7
(este codul C1construit ˆ ın Exemplul 18:7). Deoarece n1= 4, cuvˆ antul de comutat ¸ie
al fiec˘ arei linii cont ¸ine un num˘ ar impar de 1. Vor exista opt variante posibile pentru
ci:
0001 0010 0100 1000 1110 1101 1011 0111 ;
deci se pot defini N0= 84cuvinte de comutat ¸ie distincte c.
Dac˘ a se ia de exemplu c= 0100110110001110 , codul RLL definit pe baza lui va
avea cuvintele – cod
a=a1a2a3p1
a4a5a6p2
a7a8a9p3
p4p5p6p7
unde s-a notat x= 1¡x.
Tehnica descris˘ a mai sus se poate extinde la coduri GAC , conducˆ and la coduri cu
propriet˘ at ¸i RLL optime ([7]). Generalizarea este urm˘ atoarea:
1:Dac˘ a n1este par, ci(1·i·n2) cont ¸ine zero sau un num˘ ar impar de 1;
2:Dac˘ a n2este impar, ci(1·i·n2) cont ¸ine un num˘ ar par de 1;
3:Dac˘ a n=n1¢n2este par, cuvˆ antul de comutat ¸ie cva cont ¸ine un num˘ ar
par de 1;
4:cinu este cuvˆ ant – cod al codului care formeaz˘ a liniile; dac˘ a aceasta nu se
poate evita, atunci ci+1se alege de asemenea dintre cuvintele aceluia¸ si cod.
Exemplul 19.2 Fie un (8;4)- cod binar care codific˘ a fiecare mesaj de informat ¸ie
(a1; a2; a3; a4)ˆ ın
a=a1a1+a4
a2a2+a4
a3a3+a4
p1p1+a4
Deoarece n¸ sin1sunt pare, alegem ci(1·i·4)cu num˘ ar impar de 1, astfle
ˆ ıncˆ at num˘ arul total de 1dincs˘ a fie par. Putem lua de exemplu
c1= 10;c2= 00;c3= 01;c4= 00
Deci secvent ¸a general˘ a de comutat ¸ie este c= 10000100 ¸ si cuvintele – cod cu
restrict ¸ia RLL sunt
a=a1a1+a4
a2a2+a4
a3a3+a4
p1p1+a4

19.1. RLL – CODURI 219
Studiind toate cele 16cuvinte – cod, se g˘ asesc trei cuvinte cod care ˆ ıncep cu trei
caractere 1¸ si trei cuvinte – cod care se termin˘ a cu trei caractere 1. Deci k0= 6¸ si
se poate demonstra c˘ a aceasta este valoarea minim˘ a care se poate obt ¸ine pentru k0
ˆ ın cazul (8;4)- codurilor.
Dac˘ a se relaxeaz˘ a codul prin eliminarea ultimului simbol de control, se ajunge la
un(7;4)- cod Hamming binar, cu k0= 7.
Pentru decodificarea codurilor RLL se poate folosi structura de ret ¸ea definit˘ a ˆ ın
cazul codurilor GAC , cu o singur˘ a modificare: la marcajul arcelor, se ˆ ınlocuie¸ ste
¸p(A; B) :=¸(A; B) +cp.
Exemplul 19.3 S˘ a relu˘ am (8;4)- codul GAC de mai sus, a c˘ arui ret ¸ea este de-
scris˘ a ˆ ın Exemplul 18:5. Folosind secvent ¸a de comutat ¸ie c= 00010001 , se obt ¸ine un
codRLL cu aceea¸ si structur˘ a de ret ¸ea:
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·
¹¸ș·
¹¸ș·
¹¸ș·¹¸ș·©©©©©©© *
»»»»»» :
XXXXXXX zHHHHHHH j-PPPPPPP q-»»»»»»» :

-XXXXXXX z »»»»»»» :-


-XXXXXXX z »»»»»»» :
XXXXXXX z »»»»»»» :HHHHHHH j XXXXXX z
»»»»»»» :
©©©©©©© *0000 00 00
0010 10 10
01 01 01
11 11 11
iar marcajele arcelor:
±0=¸000 10 01 11
00 00=00 10 =11 01 =01 11 =10
±1=¸100 10 01 11
00 0=01 1 =10¡ ¡
10 1=10 0 =01¡ ¡
01 ¡ ¡ 0=01 1 =11
11 ¡ ¡ 1=11 0 =00
±2=¸200 10 01 11
00 0=00 1 =11¡ ¡
10 1=11 0 =00¡ ¡
01 ¡ ¡ 0=01 1 =10
11 ¡ ¡ 1=10 0 =01
±3=¸300
00 ²=01
10 ²=10
01 ²=00
11 ²=11
(pentru (7;4)- codul Hamming binar se ignor˘ a ultimul bit din ¸3).
De remarcat c˘ a fat ¸˘ a de Exemplul 18:5s-a modificat numai marcajul nodurilor de
pe nivelele 1¸ si3).

220 PRELEGEREA 19. ALTE REPREZENT ˘ARI DE CODURI – BLOC
19.2 Coduri balansate
Codurile balansate reprezint˘ a o clas˘ a special˘ a de coduri RLL ˆ ın care fiecare cuvˆ ant
– cod are un num˘ ar egal de 0 ¸ si 1. Avantajele pe care le ofer˘ a aceast˘ a condit ¸ie
(sigurant ¸a la transmiterea de date la viteze mari, capacitatea de auto-control al
tact ¸ilor, posibilit˘ at ¸i de detectare ¸ si corectare a erorilor comparabile cu codurile –
bloc) o recomand˘ a ca o m˘ asur˘ a eficient˘ a de codificare suplimentar˘ a.
Algoritm B:
Fiea=a1a2: : : a kun mesaj de informat ¸ie. Definim urm˘ atorul cuvˆ ant – cod
tablou balansat asociat lui a:
1:Se alege n1astfel ca 2 n1¡2·k¸ si se noteaz˘ a n= 4¢n1.
2:Se construie¸ ste un cuvˆ ant – cod tablou cu primele 2 n1¡2 caractere de
informat ¸ie:
c=a1a3a5: : : a 2n1¡3p1
a1a3a5: : :a2n1¡3p1
a2a4a6: : : a 2n1¡2p2
a2a4a6: : :a2n1¡2p2
Cuvintele de aceast˘ a form˘ a, citite pe coloan˘ a, formeaz˘ a un ( n;2n1¡2) – cod
tablou balansat C, avˆ and d= 4. Ceste folosit pentru definirea caracterelor
de control p1¸ sip2.
3:Se definesc funct ¸iile f1; f2:Z2!Z4
2prin
f1(x; y) = (x;x; y;y)
f2(x; y) = (x^y; x^y;x^y;x^y)
unde^este operatorul boolean obi¸ snuit. Evident, coloanele codului Csunt
codificate folosind f1.
4:Se construie¸ ste cuvˆ antul – cod ufolosind ultimele k¡2n1+ 2 caractere de
informat ¸ie x=a2n1¡1a2n1: : : a kastfel:
1. Dac˘ a x= 0: : :00, atunci u=f1(a1; a2)f1(a3; a4): : : f(p1; p2);
2. Dac˘ a x= 0: : :01, atunci u=f1(a1; a2)f1(a3; a4): : :f1(p1; p2);
3.ˆIn rest, u=g(a1; a2)g(a3; a4): : : g(p1; p2), unde
(i)gestef2sauf2; fiecare din ele apare de un num˘ ar egal de ori (cˆ ate
n1=2 aparit ¸ii);
(ii) Dac˘ a se noteaz˘ a f2cu 0 ¸ si f2cu 1, lui ui se asociaz˘ a o secvent ¸˘ a ®de
n1caractere binare, cu proprietatea c˘ a pentru primele 2 n1¡2 caractere
de informat ¸ie fixate, aplicat ¸ia x7!®este izoton˘ a fat ¸˘ a de relat ¸ia de ordine
lexicografic˘ a.
5:Cuvˆ antul – cod final se obt ¸ine prin scrierea pe fiecare linie a unei valori
fi(x; y) dinu. El apart ¸ine astfel unui cod GAC A de dimensiuni n1£4.
Sunt multe modalit˘ at ¸i de transformare a unui cod – bloc binar ˆ ıntr-un cod bal-
ansat; de exemplu dublarea fiec˘ arui cuvˆ ant – cod acu o secvent ¸˘ a identic˘ a ( aa) sau

19.2. CODURI BALANSATE 221
cu caractere complementate ( aa) conduc la coduri balansate. Construct ¸ia unui cod
balansat realizat˘ a prin Algoritmul Basigur˘ a posibilitatea construct ¸iei unei ret ¸ele de
decodificare ˆ ın maniera celei din Prelegerea 18.
ˆIn construct ¸ia dat˘ a de Algoritmul Bmai trebuie rezolvat˘ a problema alegerii lui
n1. Aceasta se realizeaz˘ a folosind urm˘ atoarea teorem˘ a:
Teorema 19.1 Fiind dat k,n1este de forma n1= 2sunde seste cel mai mic
num˘ ar pozitiv care verific˘ a inegalitatea
2k+2¡4s·2 +Cs
2s: (1)
Demonstrat ¸ie : Condit ¸ia ca n1s˘ a fie par rezult˘ a din cerint ¸a ca ˆ ın ujum˘ atate din cele
n1funct ¸ii gs˘ a fie f2¸ si jum˘ atate s˘ a fie f2. Fie deci n1= 2s.
Din condit ¸ia 2 n1¡2·krezult˘ a k+ 2¡4p·0.
Deoarece xeste format din k+ 2¡4scaractere binare, sunt 2k+2¡4ssecvent ¸e
xposibile. Din acestea, 2k+2¡4s¡2 sunt construite folosind numai funct ¸ia f2, deci
trebuie s˘ a existe pentru ele cel put ¸in tot atˆ atea secvent ¸e ®. Deoarece num˘ arul
secvent ¸elor binare ®esteCs
2s, rezult˘ a inegalitatea din enunt ¸.
Condit ¸ia de minim asigur˘ a unicitatea codific˘ arii. 2
De remarcat c˘ a prin aceast˘ a metod˘ a, operat ¸ia de balansare nu p˘ astreaz˘ a propri-
etatea de cod liniar sau ciclic.
Exemplul 19.4 S˘ a construim un cod GAC balansat care s˘ a codifice k= 3simboluri
de informat ¸ie. Folosind inegalitatea (1), se obt ¸ine s= 1, deci n1= 2; n= 8.
Codul cadru, care define¸ ste simbolurile de control, este un (8;2)cod bloc avˆ and
cuvintele – cod de forma (reamintim, reprezentarea desf˘ a¸ surat˘ a se face pe coloane):
c=a1p1
a1p1
a2p2
a2p2=a1a1a2a2p1p1p2p2
unde p1=a1; p2=a2. Operat ¸ia de codificare este reprezentat˘ a de tabloul:
000!01010101 001 !01011010
010!01100110 011 !01101001
100!10011001 101 !10010110
110!10101010 111 !10100101
Exemplul 19.5 Pentru k= 4simboluri de informat ¸ie se obt ¸ine de asemenea s= 1
¸ si acela¸ si (8;2)- cod cadru, cu dou˘ a simboluri de control. Cele dou˘ a caractere de
informat ¸ie r˘ amase, a3a4asigur˘ a codificarea ˆ ın felul urm˘ ator:
®= 00 = )u=f(a1; a2)f(p1; p2)
®= 10 = )u=f(a1; a2)f(p1; p2)
®= 01 = )u=f2(a1; a2)f2(p1; p2)
®= 11 = )u=f2(a1; a2)f2(p1; p2)
Se obt ¸ine ˆ ın acest fel un (8;4)- cod balansat. Din studiul celor 16cuvinte – cod
rezult˘ a c˘ a el are d= 2.

222 PRELEGEREA 19. ALTE REPREZENT ˘ARI DE CODURI – BLOC
Exemplul 19.6 Urm˘ atorul cod balansat a fost studiat de Blaum ([2]), odat˘ a cu
introducerea metodei de balansare prezentat˘ a mai sus. Din k= 9, singura valoare
posibil˘ a este s= 2, deci n1= 4; n= 16. Cuvintele – cod cadru au forma
c=a1a3a5p1
a1a3a5p1
a2a4a6p2
a2a4a6p2
unde p1=a1+a3+a5; p2=a2+a4+a6.
Procedura de codificare este dat˘ a de tabelul urm˘ ator:
a7a8a9u1u2u3u4u5u6u7u8u9u10u11u12u13u14u15u16
000 f1(a1; a2)f1(a3; a4)f1(a5; a6) f1(p1; p2)
001 f1(a1; a2)f1(a3; a4)f1(a5; a6) f1(p1; p2)
010 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
011 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
100 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
101 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
110 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
111 f2(a1; a2)f2(a3; a4)f2(a5; a6) f2(p1; p2)
S-a obt ¸inut astfel un (16;9)- cod balansat cu d= 4.
S˘ a codific˘ am mesajul de informat ¸ie a= 001101010 . Pentru determinarea bit ¸ilor
de control se construie¸ ste cuvˆ antul
c=0 1 0 1
1 0 1 0
0 1 1 0
1 0 0 1
Deoarece a7= 0; a8= 1; a9= 0, codul va fi generat folosind a treia linie din
tabelul de sus:
u=0 1 1 1
0 0 1 0
0 0 0 1
1 0 1 1= 0001 1000 1101 1011 .
Alte exemple de mesaje de informat ¸ie ¸ si codific˘ arile lor:
000000000 0101010101010101
111111001 1010101010100101
000000101 1110000100011110
111111011 1000011110000111
Pentru realizarea unei structuri de ret ¸ea a codurilor balansate, dificultatea const˘ a
ˆ ın faptul c˘ a aceste coduri nu sunt liniare, deci algoritmii utilizat ¸i pˆ an˘ a acum nu
funct ¸ioneaz˘ a. Se va utiliza urm˘ atorul algoritm, specific codurilor balansate definite
ˆ ın aceast˘ a sect ¸iune:

19.2. CODURI BALANSATE 223
1. Pe baza algoritmilor cunoscut ¸i se construie¸ ste structura de ret ¸ea Rba
codului – bloc cadru Cb; fiek0num˘ arul ei de coloane (egal cu num˘ arul
de coloane din reprezentarea ˆ ın tablou a cuvintelor – codului Cb).
2. Se copiaz˘ a ret ¸eaua Rbde 2p¡1 ori, unde p=k¡2n1+ 2 este dat de
pasul 3 al algoritmului B; fiecare copie corespunde unei gener˘ ari posibile
a unui cuvˆ ant – cod balansat.
Toate subret ¸elele au o singur˘ a r˘ ad˘ acin˘ a ¸ si o singur˘ a t ¸int˘ a.
3.ˆIn fiecare din cele 2psubret ¸ele:
(a) Arcul ((00 : : :0)0; B1) de pe nivelul 0 se marcheaz˘ a cu ±0=¸0unde
±0(00: : :0; B) =a2n1¡1: : : a k, iar
¸0(00: : :0; B) =g1(a1; a2).
(b) Arcul spre t ¸int˘ a are ±k0(A;00: : :0) = ²¸ si
¸k0(A;00: : :0) = g(p1; p2). (notat ¸iile sunt cele din algoritmul B).
4.ˆIn fiecare subret ¸ea se define¸ ste valoarea ±j=¸j(1·j < k 0) a arcu-
lui (Aj; Bj+1) astfel: ±j(A; B) este valoarea nemodificat˘ a din Rb, iar
¸j(A; B) =g(a2j+1; a2j+2).
Exemplul 19.7 S˘ a relu˘ am (8;3)- codul balansat din Exemplul 19.4. Dup˘ a ce se
construie¸ ste ret ¸eaua (8;2)- codului cadru, deoarece exist˘ a doar un bit de informat ¸ie
suplimentar avem p= 1deci ret ¸eaua se mai copiaz˘ a de 2p¡1 = 1 ori.
Sunt dou˘ a maniere de abordare:
A:Dac˘ a transmiterea se face pe linii, apare o construct ¸ie conform˘ a cu cea a
ret ¸elelor definite pentru codurile GAC . Ret ¸eaua corespunz˘ atoare codului cadru este
prezentat˘ a ˆ ın (a), iar cea pentru codul balansat, ˆ ın (b):
tt t t
t
t t t6- – – –
?
? – – – -6S
S
S
S
SS w ¶¶¶¶¶¶ 70=00 ²=11 0 =00 ²=11
1=11 ²=00 1 =11 ²=001=11 0 =00ttt
t
tt
t
t
tt
t
t
tt6- – – –
?- – – –
?- – – -6 – – – -QQQQQ s ´´´´ 3
QQQQQ s ´´´´´ 300=00 ²=11 0 =00 ²=11
10=11 ²=00 1 =11 ²=00
01=01 ²=10 0 =01 ²=10
11=10 ²=01 1 =10 ²=011=11 0 =00
1=10 0 =01
(a) (b)
B:Dac˘ a transmiterea datelor se face pe coloane (specific codurilor balansate),
ret ¸eaua codului cadru este cea prezentat˘ a ˆ ın Figura 19.1, pozit ¸ia (a); din ea se obt ¸ine
ret ¸eaua (b)a codului balansat.
Exemplul 19.8 S˘ a construim ret ¸eaua de (de)codificare pentru (16;9)- codul bal-
ansat definit ˆ ın Exemplul 19.6. Conform procedurii, sunt necesare 8subret ¸ele, cˆ ate

224 PRELEGEREA 19. ALTE REPREZENT ˘ARI DE CODURI – BLOC
Figura 19.1:
ttt
t
tt t6-

? –
?-
-6
-600=0101 ²=0101
01=0110 ²=0110
10=1001 ²=1010
11=1010 ²=1010
(a)ttttt
t
t
t
tt6- –
?- –
– –
– –
? – -6
– –
– –
– -000=0101 ²=0101
010=0110 ²=0110
100=1001 ²=1001
110=1010 ²=1010
001=0101 ²=1010
011=0110 ²=1001
101=1001 ²=0110
111=1010 ²=0101
(b)
una pentru fiecare linie din tabelul de codificare. Deoarece cuvintele – cod sunt citite
pe coloane, fiecare subret ¸ea are cˆ ate 5coloane ¸ si 4st˘ ari.
Pentru a7=a8=a9= 0(prima linie din tabel) subret ¸eaua construit˘ a plecˆ ınd de
la(16;6)- codul cadru din Exemplul 19.6 are structura:
±°²¯±°²¯±°²¯
±°²¯
±°²¯±°²¯
±°²¯
±°²¯
±°²¯±°²¯
±°²¯
±°²¯
±°²¯±°²¯
0000 00 00
0001 01 01
10 10 10
11 11 11¡¡¡¡¡¡¡¡ µ
³³³³³³³³ 1
PPPPPPP q@
@
@
@
@
@
@@ R-ZZZZZZZ ~J
J
J
J
J
J
J
J
J
JJ ^A
A
A
A
A
A
A
A
A
A
A
A
A
A
AA U½½½½½½½ >

ZZZZZZZ ~S
S
S
S
S
S
S
S
S
S w¶¶¶¶¶¶¶¶¶¶¶ 7
½½½½½½½ >

ZZZZZZZ ~¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¶¶¶¶¶¶¶¶¶¶¶ 7
½½½½½½½½ >



-ZZZZZZZ ~S
S
S
S
S
S
S
S
S
S wA
A
A
A
A
A
A
A
A
A
A
A
A
A
AA U´´´´´´´´ 3
QQQQQQQ sS
S
S
S
S
S
S
S
S
S w¶¶¶¶¶¶¶¶¶¶ 7
½½½½½½½ >
ZZZZZZZ ~¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ ¸
¶¶¶¶¶¶¶¶¶¶¶ 7
´´´´´´´´ 3@
@
@
@
@
@
@@ RPPPPPPP q
³³³³³³³ 1
¡¡¡¡¡¡¡¡ µ

19.2. CODURI BALANSATE 225
unde marcajul arcelor este dat de tabela:
p±p=¸p 00 01 10 11
000 00=0101 01 =0110 10 =1001 11 =1010
100 00=0101 01 =0110 10 =1001 11 =1010
01 01=0110 00 =0101 11 =1010 10 =1001
10 10=1001 11 =1010 00 =0101 01 =0110
11 11=1010 10 =1001 00 =0101 00 =0101
200 00=0101 01 =0110 10 =1001 11 =1010
01 01=0110 00 =0101 11 =1010 10 =1001
10 10=1001 11 =1010 00 =0101 01 =0110
11 11=1010 10 =1001 01 =0110 00 =0101
300 ²=0101 ¡ ¡ ¡
01 ²=0110 ¡ ¡ ¡
10 ²=1001 ¡ ¡ ¡
11 ²=1010 ¡ ¡ ¡
Pentru a7=a8= 0; a9= 1(a doua linie din tabel) se construie¸ ste aceea¸ si subret ¸ea,
ˆ ın care valorile funct ¸iei ¸3din marcajul arcelor ultimului nivel se complementeaz˘ a.
Prin compunerea acestor dou˘ a subret ¸ele se obt ¸ine (16;7)- codul balansat cu d= 4.
Celelalte 6subret ¸ele se definesc similar. Ret ¸eaua final˘ a a (16;9)- codului balansat
cud= 4obt ¸inut˘ a din compunerea lor va avea 32st˘ ari ¸ si 5nivele.

226 PRELEGEREA 19. ALTE REPREZENT ˘ARI DE CODURI – BLOC
19.3 Exercit ¸ii
19.1 Construit ¸i un (3;2)(3;2)–RLL cod tablou ¸ si calculat ¸i parametrii s˘ ai (d0; k0).
19.2 Construit ¸i un (12;8)- cod GAC cu restrict ¸ii RLL ¸ si calculat ¸i pentru el
(d0; k0).
19.3 Construit ¸i un GAC cod balansat pentru k= 10.
19.4 Aceea¸ si problem˘ a pentru k= 13.
19.5 Definit ¸i un vector de modificare care transform˘ a codul tablou (3;2)(3;2)ˆ ıntr-
un cod RLL. Construit ¸i ret ¸eaua acesui cod.
19.6 Aceea¸ si problem˘ a pentru (12;8)- codul GAC cud= 3.
19.7 Construit ¸i un (12;5)cod balansat cu d= 4. Trasat ¸i ret ¸eaua acestui cod.

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[3]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[4]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[5]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[6]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;
[7]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Parctical Ap-
proach , Kluwer Academic Publ., 1997;
[8]A. M. Kerdok – A class of low-rate non linear codes , Information and control,
20 (1972), 182-187;
[9]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[10]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
227

Prelegerea 20
Alte rezultate din teoria codurilor
20.1 Coduri aritmetice
Construct ¸iile oferite de teoria codurilor pot fi utilizate ¸ si ˆ ın alte domenii decˆ at ˆ ın
cele clasice, de transmitere ¸ si recept ¸ie corect˘ a a mesajelor. O aplicat ¸ie legat˘ a de
operat ¸iile aritmetice pe calculator este prezentat˘ a de van Lindt ˆ ın [11].
Definit ¸ia 20.1 Fier¸2un num˘ ar ˆ ıntreg fixat. r- ponderea aritmetic˘ aunui num˘ ar
ˆ ıntreg xeste definit˘ a prin
w(r)(x) =(
0dac˘ a x= 0
taltfel
unde t=min(
p¯¯¯¯¯pX
i=1ai¢rn(i)=x;jaij< r; n (i)¸0)
.
ˆIn practic˘ a se folosesc des cazurile r= 2;8;10;16.
Exemplul 20.1
w(10)(5) = 1 ;
w(10)(199) = 2 (deoarece 199 = 200 ¡1 = 2¢102¡1¢100);
w(2)(¡9) = 2 ;
w(2)(246) = 3 (deoarece 246 = 256 ¡8¡2 = 28¡23¡21).
Propozit ¸ia 20.1
1: w(r)(¡x) =w(r)(x);
2: w(r)(x+y)·w(r)(x) +w(r)(y):
Demonstrat ¸ie : Este l˘ asat˘ a ca exercit ¸iu. 2
ˆIn cele ce urmeaz˘ a vom considera rca o valoare fixat˘ a. Se nume¸ ste distant ¸˘ a
aritmetic˘ a valoarea
d(x; y) =w(r)(x¡y):
Propozit ¸ia 20.2
1: deste o distant ¸˘ a;
2: deste invariant˘ a la translatare.
3: d(x; y)·dH(x; y)unde dHeste distant ¸a Hamming a dou˘ a secvent ¸e numerice
reprezentate ˆ ın baza r.
227

228 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Demonstrat ¸ie : (1) Faptul c˘ a deste o distant ¸˘ a se verific˘ a imediat din Definit ¸ia 20.1
¸ si Propozit ¸ia 20.1.
(2) Deoarece d(x+z; y+z) =w(r)(x+z¡y¡z) =w(r)(x¡y) =d(x; y) rezult˘ a
c˘ a distant ¸a aritmetic˘ a este invariant˘ a la translatare (proprietate pe care distant ¸a
Hamming nu o are).
(3) Este l˘ asat ca exercit ¸iu. Preciz˘ am c˘ a cele dou˘ a numere reprezentate ˆ ın baza
rpot fi aduse la un num˘ ar egal de cifre completˆ and eventual num˘ arul mai scurt cu
0-uri (nesemnificative) ˆ ın fat ¸˘ a. 2
Definit ¸ia 20.2 Fiea; bnumere ˆ ıntregi pozitive. Se nume¸ ste AN- cod mult ¸imea
finit˘ a Ca;b=fa¢nj0·n < bg.
Ideea folosirii AN- codurilor ˆ ın aritmetica calculatorului este urm˘ atoa-rea: s˘ a pre-
supunem c˘ a trebuie calculat˘ a suma n1+n2(n1; n2pozitive ¸ si mici comparativ cu
b); fie Ssuma lor. Cele dou˘ a numere se codific˘ a ˆ ın a¢n1; a¢n22Ca;b. Dac˘ a
S´0 (mod a ) atunci suma a fost efectuat˘ a corect ¸ si ea este S div a . Dac˘ a
nu, ˆ ınseamn˘ a c˘ a au ap˘ arut erori de calcul ¸ si se ia ca rezultat acel num˘ ar n3cu
proprietatea c˘ a d(S; an 3) este minim˘ a.
Pentru a corecta orice combinat ¸ie de maxim terori este necesar ca Cs˘ a aib˘ a
distant ¸a minim˘ a ¸2t+ 1, deci orice num˘ ar din Care ponderea minim 2 t+ 1.
Teorema 20.1 Fieaun num˘ ar ˆ ıntreg fixat ¸ si s=minfw(r)(a¢n)jn6= 0g. Atunci
s·2.
Demonstrat ¸ie : Cazurile a= 0 ¸ si a= 1 sunt banale. Pentru a <0 se va lucra cu ¡a.
Deci r˘ amˆ ane de studiat numai cazul a >1. Vom folosi Teorema lui Fermat:
Dac˘ a ( a; r) = 1 atunci rÁ(a)´1 (mod a ).
(reamintim, Á(a) este simbolul Euler).
Deci ajrÁ(a)¡1. Cum w(r)(rÁ(a)¡1) = 2, afirmat ¸ia este demonstrat˘ a pentru
cazul cˆ and a¸ sirsunt prime ˆ ıntre ele.
S˘ a presupunem acum c˘ a ( a; r) =d >1. Vom avea a=a1d; r=r1dcu (a1; r1) =
1. Atunci (notˆ and n=Á(a1)), putem scrie rn¡1 =dnrn
1¡1 =dn(rn
1¡1)+( dn¡1).
Se ¸ stie c˘ a a1jrn
1¡1. Dac˘ a ( a1; d) = 1 atunci a1jdn¡1, deci a1jrn¡1, sau
ajd¢rn¡d¸ si cum d < r , teorema este demonstrat˘ a.
Dac˘ a ( a1; d)>1, rat ¸ionamentul se reia ¸ si el se va termina dup˘ a un num˘ ar finit
de pa¸ si (deoarece a1< a; d < r ). 2
20.1.1 AN- coduri ciclice
Rezultatul ment ¸ionat ˆ ın Teorema 20.1 conduce la o dificultate de alegere. O ar-
itmetic˘ a a calculatorului eficient˘ a recomand˘ a alegerea unei valori mari pentru b.
Pe de-alt˘ a parte Teorema 20.1 arat˘ a c˘ a ˆ ın acest caz riscul de a avea r- ponderea
aritmetic˘ a minim˘ a cel mult 2 (deci de a nu putea corecta nici o eroare) este mare.
Problema se elimin˘ a dac˘ a vom considera codurile ANmodulare . Fie a; bnumere
prime ¸ si m=a¢b. Definim Ca;bca subgrup al lui Zm. Aceasta conduce la o
alt˘ a definit ¸ie pentru distant ¸a dintre dou˘ a numere. Pentru determinarea ei, s˘ a lu˘ am

20.1. CODURI ARITMETICE 229
elementele lui Zmca vˆ arfuri ˆ ıntr-un graf Γ m;a; b2Zmsunt legate printr-un arc
dac˘ a ¸ si numai dac˘ a
9c; j(0< c < r; j ¸0)a¡b´ §c¢rj(mod m ).
Definit ¸ia 20.3 Distant ¸a modular˘ a dm(x; y)dintre dou˘ a numere a; b2Zmeste
lungimea drumului minim dintre a¸ sibˆ ın graful Γm.
Ponderea modular˘ a a lui a2Zmestewm(a) =dm(a;0).
Propozit ¸ia 20.3 Pentru a2Zm
wm(a) =minfw(r)(x)jx2 Z; y´x(mod m )g.
Demonstrat ¸ie : Rezult˘ a imediat din Definit ¸ia 20.3. 2
Exemplul 20.2 S˘ a consider˘ am r= 2; a= 2; b= 3decim= 6. Graful Γ6va fi
j
j j j j
j»»»»»»»»l
llPPPPPPPP
XXXXXXXXQQQ»»»»»»»»0
1 3 2 4
5
deci tabelul distant ¸elor ˆ ıntre elementele lui Z6este:
d0 1 2 3 4 5
00 1 1 2 1 2
11 0 2 1 2 1
21 2 0 1 2 2
32 1 1 0 2 1
41 2 2 2 0 1
52 1 2 1 1 0
De remarcat c˘ a alegerea lui mtrebuie f˘ acut˘ a cu grij˘ a. De exemplu, dac˘ a se ia
r= 3; m= 35 vom avea d35(0;12) = 1 deoarece 12 = 311(mod 35). Practic ˆ ıns˘ a,
lucrˆ and cu numere din Z35, nu vom putea corecta erori pe pozit ¸ia corespunz˘ atoare
lui 311.
De aceea, aritmetica pe calculator consider˘ a doar situat ¸ia m=rn¡1 (n¸2)
care elimin˘ a astfel de situat ¸ii. Orice num˘ ar ˆ ıntreg nenul xadmite o reprezentare
unic˘ a
x´n¡1X
i=0ci¢rimod (rn¡1);
cu 0·ci< rnu tot ¸i nuli.
Deci Zrn¡1poate fi interpretat ca fiind mult ¸imea GF(rn)nf0gcuvintelor nenule
de lungime npeste alfabetul f0;1; : : : ; r ¡1g.
Pentru a¢b=m=rn¡1 distant ¸a modular˘ a devine distant ¸a obi¸ snuit˘ a ˆ ın Zm¸ si
Ca;bare un comportament similar unui cod liniar.
Definit ¸ia 20.4 UnAN- cod ciclic de lungime n¸ si baz˘ a reste un subgrup multi-
plicativ CµZrn¡1.

230 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Evident, un astfel de subgrup este ideal principal ˆ ın inelul Zrn¡1, deci exist˘ a a; b2 Z
astfel ˆ ıncˆ at a¢b=rn¡1 ¸ siC=Ca;b, adic˘ a:
C=fa¢kjk2 Z;0·k < bg.
Dac˘ a x2Ca;b, atunci r¢x(mod rn¡1) este tot ˆ ın Ca;bdeoarece acesta este grup
multiplicativ; pe de-alt˘ a parte noul num˘ ar este o permutare ciclic˘ a a lui x(ambele
fiind scrise ˆ ın baza r). Num˘ arul bpoate fi asimilat polinomului de control al unui
cod ciclic.
Exemplul 20.3 Fier= 2; n= 11. Atunci m= 211¡1 = 2047 . S˘ a consider˘ am
a= 23; b= 89. Se obt ¸ine AN- codul ciclic format din 89multipli ai lui 23(pˆ an˘ a la
2047). Exist˘ a 22modalit˘ at ¸i de a semnala o eroare, fiecare din ele corespunzˆ and unui
num˘ ar de forma §2j(0·j·11). Acestea sunt exact toate numerele din Z23nf0g.
Deci orice num˘ ar ˆ ıntreg din intervalul [0;2047] are distant ¸a modular˘ a 0sau1de
exact un cuvˆ ant – cod. Acest AN- cod ciclic este perfect ¸ si poate fi considerat o
generalizare a codurilor Hamming.
ˆIn [11] se face afirmat ¸ia c˘ a nu exist˘ a AN- coduri perfecte corectoare de o eroare
pentru r= 10 saur= 2k;(k >1).
20.1.2 AN- coduri corectoare de mai multe erori
Pentru a construi AN- coduri capabile s˘ a corecteze erori multiple, va trebui definit˘ a
o modalitate mai simpl˘ a de determinare a ponderii aritmetice sau modulare a nu-
merelor ˆ ıntregi.
Conform Definit ¸iei 20.1, orice num˘ ar ˆ ıntreg xse poate scrie sub forma
x=w(r)X
i=1ai¢rn(i)
cuai; n(i) numere ˆ ıntregi, jaij< r; n (i)¸0 (0·i·w(r)). Aceast˘ a reprezentare
are defectul c˘ a nu este unic˘ a. De exemplu, pentru r= 10, num˘ arul 99 se poate
reprezenta ˆ ın dou˘ a moduri diferite:
99 = 9 ¢10 + 9 ¢100; 99 = 1 ¢102¡1¢100.
Se poate obt ¸ine – prin impunerea de restrict ¸ii asupra coeficient ¸ilor – o reprezenta-
re unic˘ a a numerelor ˆ ıntregi.
Definit ¸ia 20.5 Fieb; c2 Z;jbj< r;jcj< r. Perechea (b; c)se nume¸ ste admisibil˘ a
dac˘ a este adev˘ arat˘ a una din relat ¸iile:
(1)b¢c= 0;
(2)b¢c >0¸ sijb+cj< r;
(3)b¢c <0¸ sijbj>jcj.
De remarcat c˘ a ambele perechi ( b; c);(c; b) sunt admisibile numai ˆ ın cazurile (1) sau
(2). Cazul (3) nu permite comutativitatea relat ¸iei de admisibilitate.
Exemplul 20.4 Pentru r= 2 este posibil numai cazul (1). Deci o reprezentare
x=1X
i=0ci¢2iˆ ın care toate perechile (ci+1; ci)sunt admisibile, nu are doi coeficient ¸i
consecutivi nenuli.

20.1. CODURI ARITMETICE 231
Definit ¸ia 20.6 O reprezentare x=1X
i=0ciricuci2 Z,jcij< r¸ si9nxcuci= 08i >
nxse nume¸ ste NAF (non-adiacent form) dac˘ a pentru orice i¸0, perechea (ci+1; ci)
este admisibil˘ a.
Exemplul 20.5 Pentru r= 10 putem scrie:
96 =¡4¢100+ 0¢101+ 1¢102(cazul (1)),
11 = 1 ¢100+ 1¢101(cazul (2)),
38 =¡2¢100+ 4¢101(cazul (3)).
De remarcat c˘ a reprezentarea lui 96 = 6 ¢100+ 9¢101nu este ˆ ın forma NAF
deoarece perechea (9;6)nu este admisibil˘ a. La fel pentru reprezent˘ arile celorlaltor
numere.
Teorema 20.2 Orice num˘ ar ˆ ıntreg xare o reprezentare NAF unic˘ a ˆ ın baza r.
Dac˘ a aceasta este
x=1X
i=0ci¢ri;
atunci w(r)(x) =card(fiji¸0; ci6= 0g).
Demonstrat ¸ie : Fie1X
i=0bi¢ri;(jbij< r) o reprezentare a lui xˆ ın baza r, ¸ siicel
mai mic num˘ ar cu proprietatea c˘ a perechea ( bi+1; bi) nu este admisibil˘ a. Putem
presupune c˘ a bi>0 (altfel se va lucra cu ¡x). Vom ˆ ınlocui bicub0
i=bi¡r¸ sibi+1
cub0
i+1=bi+1+ 1 (dac˘ a bi+1+ 1 = r, atunci b0
i+1= 0 ¸ si facem deplasarea obi¸ snuit˘ a
de la adunare).
Dac˘ a bi+1>0, atunci avem sau b0
i+1= 0, sau b0
i¢b0
i+1<0 ¸ sib0
i+1=bi+1+ 1>
r¡bi=jb0
ij(deoarece perechea ( bi+1; bi) nu era admisibil˘ a).
Dac˘ a bi+1<0, atunci sau b0
i+1= 0, sau b0
i¢b0
i+1>0 ¸ sijb0
i+b0
i+j=r¡bi¡bi+1< r
deoarece ¡bi+1·bi(perechea ( bi+1; bi) nu era admisibil˘ a).
Deci, ( b0
i+1; b0
i) este admisibil˘ a, ¸ si se verific˘ a similar dac˘ a ( b0
i; bi¡1) este admisibil˘ a.
Procedeul continu˘ a pˆ an˘ a se ajunge la i= 0.
S˘ a ar˘ at˘ am acum c˘ a reprezentarea NAF este unic˘ a. Presupunem c˘ a exist˘ a x2 Z
cu dou˘ a astfel de reprezent˘ ari:
x=1X
i=0ci¢ri=1X
i=0c0
i¢ri.
Consider˘ am – f˘ ar˘ a a mic¸ sora generalitatea – c˘ a c06=c0
0¸ sic0>0; deci c0
0=c0¡r.
Atunci pentru c0
1sunt posibile trei valori: c1+ 1; c1+ 1§r. Dac˘ a c0
1=c1+ 1¡r,
atunci c1¸0, deci c0+c1·r¡1. Deoarece c0
0¢c0
1>0, avem ¡c0
0¡c0
1< r, de unde
r¡c0+r¡c1¡1< r, deci c0+c1> r¡1, contradict ¸ie. Celelalte dou˘ a cazuri se
trateaz˘ a similar. 2
Reprezentarea NAF a unui num˘ ar xse poate afla direct ¸ si pe baza teoremei:
Teorema 20.3 Fiex2 Z; x¸0. Consider˘ am reprezent˘ arile ˆ ın baza ra numerelor
(r+ 1)¢x=1X
i=0ai¢ri; x =1X
i=0bi¢ri;
unde ai; bi2 f0;1; : : : ; r ¡1g. Atunci reprezentarea NAF pentru xeste
x=1X
i=0(ai+1¡bi+1)¢ri.

232 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Demonstrat ¸ie : S ¸tim c˘ a pentru dou˘ a numere naturale nenule a; r, [a=r] reprezint˘ a
cˆ atul ˆ ımp˘ art ¸irii celor dou˘ a numere, iar a¡[a=r]¢r- restul.
Din reprezentarea din enunt ¸, rezult˘ a c˘ a fiecare coeficient aise determin˘ a prin
adunarea coeficient ¸ilor corespunz˘ atori ai numerelor x¸ sir¢x, scrise ˆ ın baza r. S˘ a
definim secvent ¸a numeric˘ a ®i; i¸0 astfel:
®0= 0; ® i="®i¡1+bi¡1+bi
r#
.
Atunci, conform observat ¸iei de la ˆ ınceputul demonstrat ¸iei, ai=®i¡1+bi¡1+bi¡
®i¢r. Dac˘ a not˘ am ci:=ai¡bi, avem ci=®i¡1+bi¡1¡®i¢r.
Mai r˘ amˆ ane de verificat faptul c˘ a ( ci+1; ci) este o pereche admisibil˘ a. Relat ¸ia
jci+1+cij< rrezult˘ a imediat din definit ¸ia lui ®i. S˘ a presupunem ci>0; ci+1<0;
atunci ®i= 0. Vom avea ci=®i¡1+bi¡1; ci+1=bi¡r¸ si condit ¸ia jci+1j>jcijeste
echivalent˘ a cu ®i¡1+bi¡1+bi< r, adic˘ a ®i= 0. Cel˘ alalt caz se arat˘ a analog. 2
Exemplul 20.6 Pentru a g˘ asi reprezentarea NAF a num˘ arului 98ˆ ın baza r= 10,
avem
98 = 8 ¢100+ 9¢101+ 0¢102+ 0¢103+: : :
980 + 98 = 1078 = 8 ¢100+ 7¢101+ 0¢102+ 1¢103
Deci, 98 = (7 ¡9)¢100+ (0¡0)¢101+ (1¡0)¢102=¡2 + 1¢102.
Similar situat ¸iei din paragraful anterior, s˘ a consider˘ am acum cazul reprezent˘ arii
modulare. Vom lua deci m=rn¡1;(n¸2).
Definit ¸ia 20.7 O reprezentare
x´n¡1X
i=0ci¢ri(mod m )
cuci2 Z;jcij< rse nume¸ ste CNAF (cyclic NAF ) pentru xdac˘ a8i(0·i·
n¡1);(ci+1; ci)este admisibil˘ a (se consider˘ a cn=c0).
Din Teoremele 20.2 ¸ si 20.3 rezult˘ a un rezultat similar pentru reprezent˘ a- rile CNAF :
Teorema 20.4 Orice num˘ ar ˆ ıntreg xadmite o reprezentare CNAF modulo m.
Aceast˘ a reprezentare este unic˘ a, exceptˆ and cazul
(r+ 1)¢x´06´x(mod m );
cˆ and sunt posibile dou˘ a reprezent˘ ari.
Dac˘ a x´n¡1X
i=0ci¢ri(mod m ), atunci
wm(x) =card(fij0·i < n; c i6= 0g).
Demonstrat ¸ie : Construct ¸ia este identic˘ a cu cea din demonstrat ¸ia Teoremei 20.3.
Unicitatea se arat˘ a similar cu cea din demonstrat ¸ia Teoremei 20.2. Singura except ¸ie
este cazul bi+1´bi(mod m ).ˆIn acest caz sunt posibile dou˘ a reprezent˘ ari:
x´b0+b1¢r+: : : b n¡1¢rn¡1¸ six´ ¡b1¡b2¢r¡: : :¡b0¢rn¡1;
ambele modulo m. 2

20.2. TURBO – CODURI 233
20.1.3 Coduri Mandelbaum – Barrows
O clas˘ a de ANcoduri a fost definit˘ a de Mandelbaum ¸ si Barrows, generalizat˘ a ulterior
de van Lindt ([11]).
Init ¸ial este necesar un rezultat referitor la ponderea modular˘ a ˆ ın ANcoduri
ciclice, a c˘ arui demonstrare se afl˘ a ˆ ın [11], pag. 127 ¡128:
Teorema 20.5 FieC½ Z=(rn¡1)unANcod ciclic cu generator a¸ sib= (rn¡
1)=a=card(C), cu proprietatea c˘ a 8x2Care o reprezentare CNAF unic˘ a. Atunci
X
x2Cwm(x) =nÃ"r¢b
r+ 1#
¡"b
r+ 1#!
.
Teorema 20.6 Fiebun num˘ ar prim care nu divide r, cu proprietatea c˘ a grupul
multiplicativ Zbeste generat de r¸ si¡1. Fie nun num˘ ar ˆ ıntreg pozitiv astfel ca
rn´1 (mod b )¸ sia= (rn¡1)=b. Atunci codul C½ Z=(rn¡1)generat de aeste
un cod echidistant cu distant ¸a
n
b¡1Ã"r¢b
r+ 1#
¡"b
r+ 1#!
.
Demonstrat ¸ie : Fie x2Cnf0g. Atunci x=a¢n(mod rn¡1) cu n6= 0 ( mod b ). Din
ipotez˘ a rezult˘ a c˘ a exist˘ a jˆ ıntreg cu n§rj(mod b ). Deci wm(x) =wm(§rj¢a) =
wm(a). Aceasta arat˘ a c˘ a Ceste echidistant. Valoarea distant ¸ei rezult˘ a din Teorema
20.5. 2
20.2 Turbo – coduri
ˆIn ultimii ani, viteza tot mai mare de transmisie a datelor – aproape de capacitatea
maxim˘ a a canalelor de comunicat ¸ie – a condus la modalit˘ ati noi de codificare. Turbo
codurile sunt prezentate prima dat˘ a ˆ ın 1993 de Berrou, Glavier ¸ si Thitimajshima
¸ si combin˘ a sub form˘ a de ret ¸ea (minim) dou˘ a coduri convolut ¸ionale. Modalitatea
de decodificare este total deosebit˘ a de algoritmii cunoscut ¸i pˆ an˘ a acum (se folosesc
capacit˘ at ¸ile statistice de performant ¸˘ a ale canalelor de transmisie). Ele asigur˘ a o
rat˘ a de corectare a erorilor mult mai ridicat˘ a decˆ at la codurile clasice; de aceea
turbo – codurile asigur˘ a transmisiile de pe stat ¸iile lansate dup˘ a anul 1993, precum
¸ si canalele de satelit.
20.2.1 Structura unui turbo – cod
Un turbo – cod standard este reprezentat de Figura 20.1:
El folose¸ ste dou˘ a (2 ;2) – coduri convolut ¸ionale (care – f˘ ar˘ a a mic¸ sora generali-
tatea – au fost considerate identice), separate printr-un bloc PNde permutare de N
caractere ( Nfiind o constant˘ a fixat˘ a, dependent˘ a de structura canalului de trans-
misie). Mesajul de informat ¸ie este spart ˆ ın blocuri u2Zqde lungime N; dac˘ a
se ignor˘ a mecanismul de relaxare R, rata codificatorului este 1 =3 (Nsimboluri de
informat ¸ie se transform˘ a ˆ ın cuvinte – cod de lungime 3 N). Cele 3 ie¸ siri ( xs;x1p;x2p)
sunt apoi transmise pe coloan˘ a, ca un cod GAC .

234 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Tabelul 20.1: Turbo – codificator standard
PNg1(X)
g0(X)
g1(X)
g0(X)R- s
?-s –
?- –u=xs
u0x1p
x2px1p;x2p
Codificatorul
Pentru codul convolut ¸ional, matricea generatoare poate fi considerat˘ a (ˆ ıntr-o vari-
ant˘ a simplificat˘ a, bazat˘ a pe structura de ret ¸ea a mesajelor) G= (g0(X)g1(X)).
Codificatorul unui turbo – cod va folosi ca matrice generatoare o form˘ a echivalent˘ a
recursiv˘ a:
GT
R=Ã
1g1(X)
g0(X)!
:
Din acest motiv, un codificator convolut ¸ional pentru turbo – coduri este numit Cod-
ificator Sistematic Recursiv (RSE).
Un mesaj de informat ¸ie u(X), este codificat de codul convolut ¸ional ˆ ın u(X)G=
(u(X)g0(X)u(X)g1((X)).RSE va realiza aceea¸ si ie¸ sire pentru mesajul u0(X) =
u(X)g0(X) (se verific˘ a imediat relat ¸ia u(X)g0(X)GR=u(X)G). Vom numi totu¸ si
”cuvˆ ant – cod” perechea de polinoame u(X)G(de¸ si se mai efectueaz˘ a o operat ¸ie de
ˆ ınmult ¸ire pentru obt ¸inerea mesajului u0(X)).
Se observ˘ a c˘ a pentru un RSE , cuvˆ antul cod are pondere finit˘ a dac˘ a ¸ si numai
dac˘ a mesajul de intrare se divide cu g0(X).
Corolarul 20.1 Un mesaj surs˘ a u0cuw(u0) = 1 se codific˘ a ˆ ıntr-un cuvˆ ant – cod
de pondere infinit˘ a.
Demonstrat ¸ie : Evident, deoarece u0(X) =Xpnu se divide cu g0(X). 2
Corolarul 20.2 Pentru orice polinom netrivial g0(X)2Zq[X]exist˘ a o infinitate
de mesaje surs˘ a de pondere 2care se codific˘ a ˆ ın cuvinte – cod de pondere finit˘ a.
Demonstrat ¸ie : Pentru g0(X)2Zq[X]; g0(X)6=Xp, exist˘ a un nminim cu propri-
etatea g0(X)jXn¡1 (neste lungimea secvent ¸ei pseudo-aleatoare generat˘ a de g0(X)
– a se vedea Relat ¸ii de recurent ¸˘ a liniar˘ a, Prelegerea 8).
Orice secvent ¸˘ a u0de forma u0(X) =aXi(Xn¡1); a2Zqn f0gare pondere 2
¸ si este divizibil˘ a cu g0(X), deci codificarea prin RSE va genera un polinom cu un
num˘ ar finit de termeni. 2
Exemplul 20.7 Fieg0(X) = 1 + X+X4; g1(X) = 1 + X2+X3+X4polinoame
dinZ2[X].ˆIn mod uzual se folose¸ ste notat ¸ia ˆ ın octal; deci, cum g0= 11001 2=
318; g1= 10111 2= 27 8, vom avea (g0g1) = (31 ;27).

20.2. TURBO – CODURI 235
Matricea generatoare este
GR=Ã
11 +X2+X3+X4
1 +X+X4!
;
iar un circuit liniar care realizeaz˘ a acest RSE are forma:
j
j- – – – – 6¾?-6¾
?6-
? – ? ¾??©©©©©© ¼
? -s s s s s s+
+ukuk
pk
(s-a notat cu uksimbolul de informat ¸ie curent, iar cu pksimbolul de control core-
spunz˘ ator).
Cum g0(X)este primitiv, lungimea secvent ¸elor este 24¡1 = 15 . De exemplu,
mesajul surs˘ a u(X) = 1 + X15se codific˘ a ˆ ın (1 +X15;1 +X+X2+X3+X5+X7+
X8+X11) = (1000000000000001 ;1111010110010000) :
u(X) =X7(1 +X15)va genera acela¸ si cuvˆ ant – cod, cu o ˆ ıntˆ arziere de ¸ sapte tact ¸i.
Permutatorul
PNeste un bloc de permutare. Cele Ncaractere care constituie intrarea ˆ ın primul
codificator RSE sunt rearanjate ˆ ınainte de a intra ˆ ın al doilea codificator. Din
considerente practice este preferabil ca permutarea folosit˘ a s˘ a nu p˘ astreze nici o
ordine anterioar˘ a a simbolurilor (de¸ si acest lucru este uneori dificil, mai ales pentru
cuvinte de pondere mic˘ a). De asemenea, Ntrebuie s˘ a fie suficient de mare (ˆ ın
practic˘ a se folose¸ ste N¸1000). Aceste dou˘ a cerint ¸e – uzuale ˆ ın criptografie – sunt
necesare ˆ ın obt ¸inerea de performant ¸e ridicate la decodificare.
Mecanismul de relaxare
Dac˘ a pentru transmiterea de imagini din spat ¸iu sunt folosite coduri cu rate mici
de informat ¸ie (fiec˘ arui bit ˆ ıi corespund cel put ¸in 3 caractere cod), ˆ ın alte situat ¸ii
(comunic˘ ari prin satelit de exemplu) sunt preferabile rate mari (cel put ¸in 1 =2).
Rolul mecanismului de relaxare (vezi Capitolul 2) este de a reduce periodic anumite
caractere pentru a scurta lungimea cuvintelor – cod. De obicei se elimin˘ a bit ¸i de
control; astfel, pentru a obt ¸ine o rat˘ a de informat ¸ie 1 =2 se pot elimina tot ¸i bit ¸ii de
control pari de la ˆ ınceputul codului ¸ si tot ¸i bit ¸ii de control impari de la sfˆ ar¸ sit.
20.2.2 Decodificarea turbo – codurilor
Din construct ¸ie rezult˘ a c˘ a un turbo codificator este liniar, deoarece toate compo-
nentele sale sunt liniare. Codific˘ arile RSE sunt implementate prin circuite liniare,
permutatorul este liniar deoarece poate fi modelat printr-o matrice de permutare.
La fel, mecanismul de relaxare nu afecteaz˘ a liniaritatea, deoarece din toate cuvintele
– cod se ¸ sterg simbolurile de pe acelea¸ si pozit ¸ii. Important ¸a liniarit˘ at ¸ii const˘ a ˆ ın fap-
tul c˘ a se poate lua ca referint ¸˘ a cuvˆ antul – cod nul. De asemenea, toate construct ¸iile

236 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
le facem pentru cazul binar, cu simbolurile §1. Decodificatorul va lucra dup˘ a prin-
cipiul obi¸ snuit al decodific˘ arii cele mai probabile.
Din p˘ acate, utilizarea algoritmului Viterbi nu este posibil˘ a din cauza operat ¸iei
de permutare folosit˘ a ˆ ın decodificare. Totu¸ si, pentru subsecven-t ¸e stricte, un astfel
de algoritm poate da rezultate.
Primul algoritm de decodificare pentru turbo – coduri a fost propus de Berrou
ˆ ın 1993 ([12]), bazat pe ideile din [2]. Numit BCJR , el folose¸ ste o decodificare
caracter-cu-caracter (spre deosebire de Viterbi care decodifica pe secvent ¸e bloc de
cˆ atencaractere).
Vom folosi urm˘ atoarele notat ¸ii:
²Ei- notarea codificatorului RSE i (1·i·2);
²Di- notarea decodificatorului i(1·i·2);
²m- capacitatea de memorie (buffer) a codificatorului;
²S- mult ¸imea celor 2mst˘ ari ale codificatorului;
²xs=xs
1xs
2: : : xs
N=u1u2: : : u Nsecvent ¸a de informat ¸ie care se codific˘ a;
²xp=xp
1xp
2: : : xp
Ncuvˆ antul de control generat de codificator;
²yk=ys
kyp
ko recept ¸ie (posibil perturbat˘ a) a lui xs
kxp
k;
²yb
a=yaya+1: : : y b;
²yN
1=y1y2: : : y Ncuvˆ antul recept ¸ionat.
Algoritmul BCJR (init ¸ial ¸ si modificat)
O prim˘ a versiune a algoritmului se bazeaz˘ a pe decodificarea cea mai probabil˘ a apos-
teriori (MAP – maximul aposteriori). Se realizeaz˘ a decodificarea
uk=(
+1 dac˘ a P(uk= +1jy)> P(uk=¡1jy)
¡1 altfel.
Formal, ˆ uk=sign[L(uk)], unde L(uk) este logaritmul raportului probabilit˘ at ¸ilor
de potrivire aposteriori, definit prin relat ¸ia
L(uk) =logÃP(uk= +1jy)
P(uk=¡1jy)!
:
Dac˘ a se t ¸ine cont de faptul c˘ a se codific˘ a ˆ ın ret ¸ea, aceasta se scrie:
L(uk) =log0
BB@X
S+p(sk¡1=s0; sk=s;y)=p(y)
X
S¡p(sk¡1=s0; sk=s;y)=p(y)1
CCA (1)
unde
sk2Seste starea codificatorului la momentul k,
S+este mult ¸imea perechilor (ordonate) ( s0; s) corespunz˘ atoare tuturor st˘ arilor
de tranzit ¸ie ( sk¡1=s0)!(sk=s) generate de uk= +1,

20.2. TURBO – CODURI 237
S¡este definit˘ a similar pentru uk=¡1.
Este posibil s˘ a simplific˘ am cu p(y) ˆ ın (1); deci este necesar˘ a doar o formul˘ a
pentru calculul lui p(s0; s;y).ˆIn [2], este construit˘ a o variant˘ a sub forma
p(s0; s;y) =®k¡1(s0)¢°k(s0; s)¢¯k(s) (2)
unde:
²°k(s0; s) =p(sk=s; ykjsk¡1=s0);
²®k(s) =p(sk=s; yk
1) este calculat recursiv cu formula
®k(s) =X
s02S®k¡1(s0)¢°k(s0; s)
cu condit ¸iile init ¸iale ®0(0) = 1 ; ®0(s6= 0) = 0
(codificatorul pleac˘ a din starea 0).
²¯k(s) =p(yN
k+1jsk=s) are formula recursiv˘ a de calcul
¯k¡1(s0) =X
s2S¯k(s)¢°k(s0; s)
¸ si condit ¸iile ¯N(0) = 1 ; ¯N(s6= 0) = 0
(dup˘ a Nbit ¸i de intrare codificatorul trebuie s˘ a ajung˘ a la starea 0; restrict ¸ia
se realizeaz˘ a alegˆ and corespunz˘ ator ultimii mbit ¸i, numit ¸i bit ¸i de ˆ ıncheiere ).
Aplicarea acestei variante de decodificare la turbo – coduri (reamintim, algoritmul
BCJR init ¸ial a fost definit ˆ ın 1974) are un neajuns: simplificarea cu p(y) conduce la
algoritmi numerici instabili. De aceea, Berrou ([12]) face o modificare a algoritmului,
ˆ ın felul urm˘ ator:
Se definesc probabilit˘ at ¸ile (modificate)
˜®k(s) =®k(s)=p(yk
1);˜¯k(s) =¯k(s)=p(yN
k+1jyN
1).
Prin ˆ ımp˘ art ¸irea relat ¸iei (2) cu p(y)=p(yk) =p(yk¡1
1)¢p(yN
k+1jyk
1) se ajunge la
p(s0; sjy)¢p(yk) = ˜®k¡1(s0)¢°k(s0; s)¢˜¯k(s).
Pentru c˘ a p(yk
1) =X
s2S®k(s), valorile ˜ ®k(s) se pot determina din ®k(s) pe baza
formulei
˜®k(s) =®k(s)X
s2S®k(s);
sau – folosind definit ¸ia recursiv˘ a a lui ®k(s):
˜®k(s) =X
s02S®k¡1(s0)¢°k(s0; s)
X
s2SX
s02S®k¡1(s0)¢°k(s0; s)=X
s02S˜®k¡1(s0)¢°k(s0; s)
X
s2SX
s02S˜®k¡1(s0)¢°k(s0; s)
ultimul rezultat fiind obt ¸inut prin ˆ ımp˘ art ¸irea num˘ ar˘ atorului ¸ si numitorului cu
p(yk¡1
1).
Definirea recursiv˘ a a lui ˜¯k(s) se obt ¸ine plecˆ and de la
p(yN
kjyk¡1
1) =p(yk
1)¢p(yN
k+1jyk
1)
p(yk¡1
1=X
s2SX
s02S®k¡1(s0)¢°k(s0; s)¢p(yN
k+1jyk
1)
p(yk¡1
1)=X
s2SX
s02S˜®k¡1(s0)¢
°k(s0; s)¢p(yN
k+1jyk
1)
¸ si folosind definit ¸ia recursiv˘ a a lui ¯k¡1(s), se ajunge la relat ¸ia

238 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
˜¯k¡1(s0) =X
s2S˜¯k(s)¢°k(s0; s)
X
s2SX
s02S˜®k¡1(s0)¢°k(s0; s).
ˆIn final, algoritmul BCJR modificat va folosi valoarea L(uk) dat˘ a de relat ¸ia
L(uk) =log0
BB@X
S+˜®k¡1(s0)¢°k(s0; s)¢˜¯k(s)
X
S¡˜®k¡1(s0)¢°k(s0; s)¢˜¯k(s)1
CCA: (3)
Condit ¸iile la limit˘ a pentru ˜ ®k(s) ¸ si˜¯k(s) sunt cele de la ®k(s) respectiv ¯k(s).
O alt˘ a versiune a algoritmului folose¸ ste informat ¸ia apriori . Pentru acesta avem
L(uk) =logÃP(yjuk= +1)
P(yjuk=¡1)!
+logÃP(uk= +1)
P(uk=¡1)!
:
Deoarece ˆ ın mod normal P(uk= +1) = P(uk=¡1), al doilea termen al sumei
este zero ˆ ın decodificatoarele uzuale. Pentru un turbo – decodor care lucreaz˘ a re-
cursiv, D1prime¸ ste informat ¸ie suplimentar˘ a de la D2, care serve¸ ste ca informat ¸ie
apriori. Similar, D2prime¸ ste de la D1informat ¸ie suplimentar˘ a, ¸ s.a.m.d. Ideea
const˘ a ˆ ın faptul c˘ a D2poate da lui D1informat ¸ii despre ukla care acesta nu are
acces (de exemplu caracterele de control generate de E2); acela¸ si lucru ˆ ıl realizeaz˘ a
D1pentru D2.
Un circuit de decodificare bazat pe algoritmul BCJR este:
D1 P¡1
NP¡1
N
P¡1
ND2– – -6¾ ¾
?
? -s
-6-
-6y1p
ys
y2pLe
12Le
21
S-a notat cu P¡1
Ninversa matricii de permutare PNdin circuitul de codificare. Le
12
este informat ¸ia suplimentar˘ a transmis˘ a de la D1laD2, iarLe
21este cea transmis˘ a de
laD2laD1. Deciziile finale de decodificare pot veni atˆ at de la D1cˆ at ¸ si de la D2.
Mai r˘ amˆ ane de v˘ azut cum se poate obt ¸ine aceast˘ a informat ¸ie suplimentar˘ a care
circul˘ a ˆ ıntre cei doi decodificatori recursivi.
Definit ¸ia lui °k(s0; s) se poate rescrie
°k(s0; s) =P(sjs0)p(ykjs0; s) =P(uk)¢p(ykjuk)
unde evenimentul ukcorespunde tranzit ¸iei s0!s. Dac˘ a se noteaz˘ a:
Le(uk) =logÃP(uk= +1)
P(uk=¡1)!
;
P+=P(uk= +1) ; P ¡=P(uk=¡1), avem0
@q
P¡=P+
1 +P¡=P+1
A¢q
P+=P¡=P+dac˘ a uk= +1,
0
@q
P¡=P+
1 +P¡=P+1
A¢q
P¡=P+=P¡dac˘ a uk=¡1.
ˆIn aceast˘ a situat ¸ie se obt ¸ine
P(uk) =Ãexp[¡Le(uk)=2]
1 +exp[¡Le(uk)]!
¢exp[uk¢Le(uk)=2] =Ak¢exp[uk¢Le(uk)=2], ¸ si (ream-

20.2. TURBO – CODURI 239
intim, yk=ys
kyp
k; xk=xs
kxp
k=ukxp
k)
p(ykjuk)/exp"
¡(ys
k¡uk)2
2¾2¡(yp
k¡xp
k)2
2¾2#
=
=exp"
¡(ys
k)2+u2
k+ (yp
k)2+ (xp
k)2
2¾2#
¢exp"uk¢ys
k+xp
k¢yp
k
¾2#
=
=Bk¢exp"ys
k¢uk+yp
k¢xp
k
¾2#
deci
°k(s0; s)/Ak¢Bk¢exp[uk¢Le(uk)=2]¢exp"uk¢ys
k+xp
k¢yp
k
¾2#
(4)
Deoarece °k(s0; s) apare ˆ ın (3) la num˘ ar˘ ator (unde uk= +1) ¸ si numitor (unde
uk=¡1), factorul Ak¢Bkse va reduce fiind independent de uk. De asemenea,
particularit˘ at ¸ile de canal la transmisia lui §1 dau relat ¸ia ¾2=N0=(2Ec) unde Ec
este energia de canal per bit. Din (4) se obt ¸ine
°k(s0; s)»exp[uk¢(Le(uk) +Lc¢ys
k)=2 +Lc¢yp
k¢xp
k=2] =
=exp[uk¢(Le(uk) +Lc¢ys
k)=2]¢°e
k(s0; s),
unde Lc=4Ec
N0¸ si°e
k(s0; s) =exp[Lc¢yp
k¢xp
k=2].
Combinˆ and aceast˘ a relat ¸ie cu (3) se ajunge la
L(uk) =log0
BB@X
S+˜®k¡1(s0)¢°e
k(s0; s)¢˜¯k(s)¢Ck
X
S¡˜®k¡1(s0)¢°e
k(s0; s)¢˜¯k(s)¢Ck1
CCA=
=Lcys
k+Le(uk) +log0
BB@X
S+˜®k¡1(s0)¢°e
k(s0; s)¢˜¯k(s)
X
S¡˜®k¡1(s0)¢°e
k(s0; s)¢˜¯k(s)1
CCA (5)
unde s-a notat Ck=exp[uk¢(Le(uk) +Lc¢ys
k)=2].
A doua egalitate rezult˘ a deoarece Ck(uk= +1) ¸ si Ck(uk=¡1) pot fi scoase ca
factor. Primul termen al sumei (5) este numit valoare de canal , al doilea reprezint˘ a
informat ¸ia apriori despre uk(furnizat˘ a de un decodificator anterior), iar al treilea
termen cont ¸ine informat ¸ia suplimentar˘ a care se trimite la decodificatorul urm˘ ator.
Deci – de exemplu – la orice iterat ¸ie, D1calculeaz˘ a
L1(uk) =Lc¢ys
k+Le
21(uk) +Le
12(uk)
unde Le
21(uk) este informat ¸ia suplimentar˘ a venit˘ a de la D2¸ siLe
12(uk) este al treilea
termen din (5), folosit ca o informat ¸ie suplimentar˘ a trecut˘ a de la D1spreD2.
Algoritmul BCJR se poate formaliza, ˆ ın unele ipoteze implicite. Astfel:
– se presupune c˘ a cei doi codificatori lucreaz˘ a corect, adic˘ a ultimii mbit ¸i din
mesajul de informat ¸ie de lungime Nse codific˘ a astfel ca la sfˆ ar¸ sit E1s˘ a ajung˘ a la
starea zero.
– decodificatorii det ¸in toat˘ a informat ¸ia referitoare la ret ¸eaua de codificare; ast-
fel, ei au tabele complete cu simbolurile de informat ¸ie ¸ si de control pentru toate
tranzit ¸iile de st˘ ari s0!s, matricile de permutare ¸ si inversele lor.

240 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR
Algoritmul BCJR :
1:(Init ¸ializare):
D1: ˜®(1)
0(s) :=(
1 pentru s= 0
0 pentru s6= 0˜¯(1)
N(s) :=(
1 pentru s= 0
0 pentru s6= 0
Le
21(uk) := 0 ; k= 1;2; : : : ; N
D2: ˜®(2)
0(s) :=(
1 pentru s= 0
0 pentru s6= 0;˜¯(2)
N(s) := ˜®(2)
N(s);8s.
Le
12(uk) se determin˘ a din D1dup˘ a prima trecere, deci nu se init ¸ializeaz˘ a.
2:(An-a iterat ¸ie):
D1: pentru k= 1;2; : : : ; N
– Se determin˘ a yk:=ys
ky1p
kunde y1p
ksunt bit ¸ii de control recept ¸ionat ¸i pentru
E1(posibil perturbat ¸i de canal);
– Se determin˘ a °k(s0; s) pentru toate tranzit ¸iile posibile s0!s;
– Se determin˘ a ˜ ®(1)
k(s);8s.
pentru k=N; N¡1; : : : ; 2 se determin˘ a ˜¯(1)
k¡1(s);8s;
pentru k= 1;2; : : : ; N se determin˘ a Le
12(uk) cu valorile de probabilit˘ at ¸i
asociate lui D1.
D2: pentru k= 1;2; : : : ; N
– Se determin˘ a yk:=ys
PN[k]y2p
k;
– Se determin˘ a °k(s0; s) pentru toate tranzit ¸iile posibile s0!s;
– Se determin˘ a ˜ ®(2)
k(s);8s;
pentru k=N; N¡1; : : : ; 2 se determin˘ a ˜¯(2)
k¡1(s);8s;
pentru k= 1;2; : : : N se determin˘ a Le
21(uk) cu valorile de probabilit˘ ati
asociate lui D2;
3:(Dup˘ a ultima iterat ¸ie):
Pentru k= 1;2; : : : ; N
– Se determin˘ a L1(uk) :=Lc¢ys
k+Le
21(uP¡1
N[k]) +Le
12(uk);
– Dac˘ a L1(uk)>0 atunci uk:= +1 altfel uk:=¡1;
4:Stop.
20.3 Exercit ¸ii
20.1 Demonstrat ¸i Propozit ¸ia 20.1.
20.2 Demonstrat ¸i Propozit ¸ia 20.2, (3).
20.3 Calculat ¸i w(2); w(10)¸ siw(16)pentru numerele 100;32412 ;999;1024.
20.4 Fiex2 Z. Un cod Booth este o reprezentare x=1X
i=0ci3iunde ci2 f¡ 1;0;1g.
1:S˘ a se reprezinte ˆ ın codul Booth numerele 23;455;81;¡6493;
2:S˘ a se arate c˘ a pentru orice num˘ ar ˆ ıntreg, codul Booth este unic.
20.5 Determinat ¸i AN- codurile ciclice din Z23¡1¸ siZ33¡1.
Stabilit ¸i valorile a¸ sibpentru fiecare din ele.

20.3. EXERCIT ¸II 241
20.6 Generalizat ¸i Exemplul 20.3. G˘ asit ¸i un AN- cod ciclic perfect corector de o
eroare pentru r= 3.
20.7 Scriet ¸i ˆ ın forma NAF pentru r= 2; r= 10 ¸ sir= 7numerele
¡15;32075 ;5665;¡992.
20.8 Completat ¸i demonstrat ¸ia Teoremei 20.2, verificˆ and unicitatea re-prezent˘ arii
NAF ˆ ın cazurile c0
1=c1+ 1¸ sic0
1=c1+ 1 + r.
20.9 ˆIn definit ¸ia reprezent˘ arii NAF a num˘ arului ˆ ıntreg x(cu completarea n0=
¡1), s˘ a se arate c˘ a
nx·k() j xj<rk+2
r+ 1.
20.10 Consider˘ am reprezentarea ternar˘ a modulo 36¡1. S˘ a se determine forma
CNAF pentru num˘ arul 455.
20.11 Determinat ¸i cuvintele – cod din codul Mandelbaum – Barrows cu b= 11; r=
3; n= 5.
20.12 Fieg0(X) = 1 + X+X3; g1(X) = 1 + X2+X4+X5dinZ2[X]. Construit ¸i
circuitul liniar pentru codificatorul RSE .
Codificat ¸i mesajele de informat ¸ie 1 +X2+X3;1 +X7; X +X4+X5:
20.13 Aceea¸ si problem˘ a pentru polinoamele g0(X) = 1 + X3+X4; g1(X) =X+
X3+X6.
20.14 S˘ a se construiasc˘ a un turbo-codificator folosind codificatoarele RSE din Ex-
emplul 20.7, N= 3, matricea de comutat ¸ie P3=0
B@1 0 0
0 0 1
0 1 01
CA¸ si f˘ ar˘ a mecanism de
relaxare.
S˘ a se codifice mesajul de informat ¸ie 100 011 101 .

242 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Bibliografie
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]L. Bahl, J. Cocker, F. Jelinek, J. Raviv – Optimal decoding of linear codes for
minimizing symbol error rate , IEEE Trans. Inf. Theory, pp. 284-287, Martie
1974;
[3]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transac-
tions on Information Theory, vol. 34, 1988, pp. 38-141;
[4]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de
doctorat), PARIS VI, 1990;
[5]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[6]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[7]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;
[8]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Parctical Ap-
proach , Kluwer Academic Publ., 1997;
[9]A. M. Kerdok – A class of low-rate non linear codes , Information and control,
20 (1972), 182-187;
[10]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[11]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
[12]W.E.Ryan – A Turbo Code Tutorial , IEEE Trans. Comm. pp. 1261-1271, Oct.
1996;
243

Bibliography
[1]J. Adamek – Foundations of Coding , Wiley – Interscience, 1991;
[2]A. Atanasiu – Teoria codurilor corectoare de erori , Editura Universit˘ at ¸ii Bucure¸ sti,
2001;
[3]L. Bahl, J. Cocke, F. Jelinek, J. Raviv – Optimal decoding of linear codes for mini-
mizing symbol error rate , IEEE Inf. Theory, pp. 284-287, Martie 1974;
[4]M. Blaum – A(16;9;6;5;4)error correcting dc-free block code , IEEE Transactions on
Information Theory, vol. 34, 1988, pp. 38-141;
[5]C. Carlet – Codes de Reed – Muller; Codes de Kerdok et de Preparata (tez˘ a de doc-
torat), PARIS VI, 1990;
[6]G. Cullmann – Coduri detectoare ¸ si corectoare de erori , Editura Tehnic˘ a, 1972;
[7]S. Guia¸ su – Teoria Codurilor , Tipografia Universit˘ at ¸ii Bucure¸ sti, 1976;
[8]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;
[9]B. Honary, G. Markarian – Trellis Decoding of Block Codes, A Practical Approach ,
Kluwer Academic Publ., 1997;
[10]A. M. Kerdok – A class of low-rate non linear codes , Information and control, 20
(1972), 182-187;
[11]J.H. van Lindt – Coding Theory , Springer Verlag, 1971;
[12]J.H. van Lindt – Introduction to Coding Theory , Springer Verlag, 1982;
[13]W.E.Ryan – A Turbo Code Tutorial , IEEE Trans. comm. pp. 1261-1271, Oct. 1996;
1

Similar Posts