Documente Academic
Documente Profesional
Documente Cultură
Coduri - tablou
193
194 PRELEGEREA 18. CODURI - TABLOU
4. Rădăcina reţelei este (00 . . . 0)0 , iar scopul este (00 . . . 0)Nc −1 ;
Există 2k1 ·k2 drumuri distincte prin reţea, fiecare corespunzând unui cuvânt - cod
unic. Procedura poate fi extinsă uşor la codurile produs cu mai multe simboluri de
control.
Exemplul 18.2 Să construim reţeaua asociată codului tablou (3, 2)(3, 2) (deci n1 =
n2 = 3, k1 = k2 = 2, d = 4). Ea va avea Ns = 2n1 −1 = 23−1 = 4 stări distincte şi
Nc = n2 + 1 = 3 + 1 = 4 coloane.
Fiecare stare va fi de forma (a1 a2 )p cu p = 0, 1, 2, 3, a1 , a2 ∈ {0, 1}.
(00)0 şi (00)3 vor fi rădăcina respectiv ţinta reţelei.
Marcajele arcelor sunt de forma δp (A, B)/λp (A, B), obţinute prin toate combina-
ţiile posibile ale lui (a1 a2 )p şi (a1 a2 )p+1 .
Astfel, pentru p = 0 avem:
δ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 = a1 a2 /a1 a2 c1
unde c1 = a1 + a2 .
Pe nivelul p = 1, arcele sunt marcate prin perechi din tabelul următor:
δ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) = ² şi
λ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
4. Arcul selectat ı̂n calculul metricii nodului se introduce ı̂ntr-un drum posi-
bil, iar toate celelalte arce de pe nivelul respectiv sunt eliminate.
Exemplul 18.4 Să reluăm codul - tablou definit ı̂n Exemplul 18.2. Presupunem că
s-a transmis cuvântul cod a = 011101110 şi s-a recepţionat mesajul digitizat
b0 = 0.2 0.4 0.4 0.3 0.1 0.9 1.0 0.9 0.6.
Presupunând că orice simbol digitizat din intervalul [0.0, 0.5) reprezintă carac-
terul binar 0, iar [0.5, 1.0] reprezintă 1, putem considera că s-a primit secvenţa
b = 000001111 deci au apărut 4 erori. Într-o decodificare obişnuită a codurilor
liniare, deoarece d = 4, erorile nu pot fi corectate. Folosind structura de reţea ı̂nsă,
acest lucru este realizabil. Să detaliem paşii decodificării cuvântului b0 .
– Metrica nodului rădăcină (00)0 este 0.
– Prima subsecvenţă de n1 = 3 caractere primite este 0.2 0.4 0.4.
– Se calculează metricile celor patru arce care pleacă din rădăcină:
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 1 sunt chiar aceste valori.
198 PRELEGEREA 18. CODURI - TABLOU
– Următorul 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)1 1.27 1.27 0.87 2.42
(01)1 1.67 1.67 2.87 1.37
(10)1 1.67 3.27 2.07 2.07
(11)1 3.27 1.67 2.07 2.07
– Minimul pe fiecare coloană ale acestor valori (scris ı̂ngroşat) reprezintă metrica
nodului respectiv. Deci nodurile (00)2 şi (01)2 au metrica 1.27, (10)2 are metrica
0.87, iar (11)2 are metrica 1.37.
– Ultima subsecvenţă 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 ţintă sunt:
(00)3
(00)2 3.44
(01)2 2.44
(10)2 1.84
(11)2 1.74
Deci metrica nodului ţintă este 1.74. Refăcând acum traiectoria ı̂n sens invers,
se obţine drumul posibil (00)0 − (01)1 − (11)2 − (00)3 , reprezentat ı̂n figura
º· º·
00 00
¹¸
º· ¹¸
º·
º· 01/011 »»:
» 01 Z 01 º·
»» ¹¸ ¹¸
00 » º· Z 10/101
Z
º· 00
3́ ¹¸
¹¸ Z ´
10 Z ¹¸ ´
10 ²/110
¹¸
º· ZZº· ´
~ ´
11 11 ´
¹¸ ¹¸
Prin concatenarea marcajelor arcelor de pe acest drum, rezultă cuvântul - cod
011101110 (care coincide cu mesajul transmis a) şi decodificarea lui - mesajul de
informaţie 0110.
(ii) GA2 = (Ik2 |Jk2 ,n2 −k2 ) unde Ik2 este matricea unitate iar J este o matrice cu
toate elementele 1;
(iii) n = (k1 + 1) · n2 , kA = k1 · k2 .
B. Fie C2 un cod - produs prin ı̂nmulţirea Kronecker GB1 × GB2 , unde:
(i) GB1 este o matrice 1 × nB1 cu toate elementele 1;
(ii) GB2 = (G3 |G4 ) este o matrice kB × nB2 unde G3 este o matrice cu coloane 0
sau 1, iar G4 este o matrice de tipul (1) cu kB linii. Coloanele lui GB2 pot fi eventual
permutate.
(iii) n = nB1 · nB2 .
C. Fie C3 un cod - produs prin ı̂nmulţ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 C este C1 + C2 sau C1 + C2 + C3 unde suma se efectuează ı̂n Z2 ; el
are lungimea n, k = kA + kB respectiv k = kA + kB + 1 simboluri de informaţie şi
este generat de matricea
à ! GA1 × GA2
GA1 × GA2
sau GB1 × GB2
GB1 × GB2
GC1 × GC2
În exemplele următoare vom prezenta sub formă de coduri GAC unele din cele
mai cunoscute coduri - bloc (liniare sau ciclice).
Vom considera reprezentarea cuvintelor unui cod GAC sub formă de tablou cu
n1 linii şi n2 coloane. Fie ki numărul de simboluri noi de informaţie care pot apare
pe linia i a cuvintelor - cod şi t = max {ki }.
1≤i≤n1
5. Dacă Ap şi Bp+1 sunt legate printr-un arc şi |δp (A, B)| = s, atunci Bp+1 =
Ap + δp (A, B)0t−s .
6. Dacă construcţia codului GAC a folosit şi codul C3 , atunci fiecare nod
de pe coloana n2 este legat de ţintă prin două arce, marcajul celui de-al
doilea arc fiind complementara marcajului primului arc (pe acest nivel
δn2 (A, 00 . . . 0) = ²).
n1
Y
În această construcţie de reţea sunt 2ki drumuri distincte, fiecare din ele
p=1
corespunzând unui cuvânt - cod.
Operaţiile de codificare/decodificare (inclusiv aplicarea algoritmului Viterbi a-
daptat) sunt identice cu cele definite la codurile - tablou.
Exemplul 18.9 Reluăm codul definit ı̂n Exemplul 18.5. Pentru el se poate construi
o reţea ı̂n felul următor:
Sunt necesare Nc = n1 + 1 = 4 + 1 = 5 coloane. Pentru numărul de stări, să
studiem forma de tablou a cuvintelor cod:
a1 p1 + a4
a p + a4
x= 2 2
a3 p3 + a4
p4 p4 + a4
º· º· º·
00 PP - 00 X - 00 H
©
*
©© ¹¸
º· P
» »
P »»:¹¸
»
º·
XX»
» X »»»:¹¸
º·
HH
© » » PPq
P » » X X
X
z HH
© »»»: - - 10 X Hjº·
º· © » 10 10 X XXX H
»»
© ¹¸ ¹¸ ¹¸ X
z 00
00 XX º· º· º·
¹¸HH XXXX » »»»
:
z 01 X
X - 01 X - 01 »» » ©*¹¸
©
H ¹¸ X X » :¹¸
»
» X X » »:¹¸ ©©
»
HH º·»X »X º· »X
»» X
z
X »»» XX zº·
X ©
H
j
H
11 - -
11 ©© 11
¹¸ ¹¸ ¹¸
18.5. DECODIFICAREA CODURILOR GAC 203
În această reprezentare, pe prima linie sunt două simboluri de informaţie (a1 şi a4 ),
pe a doua şi a treia câte unul (a2 respectiv a3 , a4 nefiind simbol nou), iar pe a patra
linie, nici unul. Deci numărul de stări al reţelei este Ns = 22 = 4, fiecare stare fiind
reprezentată printr-o secvenţă de t = 2 caractere binare (00, 01, 10, 11).
Funcţia δ este definită prin
δ0 (00, B) = a1 a4 , δ1 (A, B) = a2 , δ2 (A, B) = a3 , δ3 (A, 00) = ².
Nodurile şi arcele sunt marcate cu valorile date de tabelele următoare:
δ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 pentru codul RM(1, 3),
01 ²/01
11 ²/10
δ3 (A, B)/λ3 (A, B) 00
00 ²/0
10 ²/1 pentru (7, 4) - codul Hamming
01 ²/0
11 ²/1
Exemplul 18.10 Reprezentarea prin reţea a codurilor RM(1, 4) şi (15, 5) − BCH
construite sub formă de GAC ı̂n Exemplul 18.6 se realizează astfel:
Adâncimea reţelei (numărul de coloane) este Nc = 4 + 1 = 5. Numărul maxim
de simboluri de informaţie noi se află pe prima linie a cuvintelor - cod (a1 , a4 , a5 );
deci reţeaua are Ns = 23 = 8 stări distincte.
Funcţia δ este definită
δ0 (000, B) = a1 a4 a5 , δ1 (A, B) = a2 , δ2 (A, B) = a3 , δ3 (A, 000) = ².
iar funcţ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ă ultimul bit de control.
Nodurile şi 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
000 P ³
1
000 P ³
1
000
¶
7¹¸ P³
P³ ¹¸ P³P³ ¹¸ S
¶ º· ³³ PP qº· ³³ PP qº· S
¶ 100 - 100 - 100 S
¶ ¡µ¹¸
¡ º· ¹¸
º· ¹¸
º· @ S
¶ ¡ @ S
- 001 - 001
¶¡ ´ 3́ 001 P PP ³³ 1¹¸ @S
³ Q @
¶ ¡ ´ ¹¸ º· PP
³ ³³
1¹¸
º· ³P º· Q S
¶¡´´ ³³ PP q
- ³³ PP q
-
Q @S
: 101
» 101 101 XX Q
º· ¶¡´»»»» Q@ wº·
RS
´
» » ¹¸ ¹¸ ¹¸XXX s
Q
z
X
@
000 XX º· º· º·
»»»
: 000
»
¹¸ HHXXX - 010 - 010 »»» © *¹¸
©
@ X
z 010
S H PP ³³ ³
1 PP ³³ 1 ©©½½ >¡µ
S@ HH ¹¸ º· ³ PP ¹¸
³
P
qº· ³ PP ¹¸
³ º· © © ½ ¡
@ H
j
H ³ ³ PP
q
S
110 - 110 - 110© ½ ¡
S@ ¹¸ ¹¸ ¹¸
½ ¡
S @ º· º· º· ½ ¡
@ ½
S @ R 011 - 011 - 011 ¡
S ¹¸ PP ³³ 1¹¸ PP ³³ 1¹¸ ¡
S º· P
³ º· P³ º·
w
S ³³ PP P
q
- ³³ PP q
P
- 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 − − − − (i=1,2)
010 − − − − 0/0101 1/1010 − −
110 − − − − 1/1010 0/0101 − −
011 − − − − − − 0/0110 1/1001
111 − − − − − − 1/1001 0/0110
δ3 /λ3 0000 δ3 /λ3 0000
000 ²/0000 000 ²/000
100 ²/1111 100 ²/111
001 ²/0011 001 ²/001
101 ²/1100 respectiv 101 ²/110 .
010 ²/0101 010 ²/010
110 ²/1010 110 ²/101
011 ²/0110 011 ²/011
111 ²/1001 111 ²/100
De remarcat că această reţea se poate reprezenta folosind numai 4 stări ı̂n loc de 8:
-
- { - {
- -
- { --
66
-
- { -
- { -
- { --
-66 ? - ??
{ -- ? - - {
- ? - y - y - y -6 -
? - - - -6 66
? - { - { - { -
? - - - -
Cele două arce care leagă două noduri sunt marcate cu etichete complementare.
Excepţie fac arcele de pe primul nivel unde ı̂n definiţia funcţiei δ0 este complemen-
tat numai primul bit (a1 ); ceilalţi doi biţi de informaţie a4 a5 sunt identici pentru
fiecare pereche de arce şi formează marcajele nodurilor succesor de pe nivelul 1:
00, 01, 10, 11.
Bibliografie
[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;
[5] G. Cullmann - Coduri detectoare şi corectoare de erori, Editura Tehnică, 1972;
[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;
[9] A. M. Kerdok - A class of low-rate non linear codes, Information and control,
20 (1972), 182-187;
[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