Documente Academic
Documente Profesional
Documente Cultură
Coduri ciclice
6.1
Breviar teoretic
58
De retinut este ca polinoamele primitive sunt listate (cunoscute), iar de importanta practic
a
este faptul c
a coecientii de grad maxim (gm ) si minim (g0 ) sunt nenuli: gm = 1, g0 = 1.
Echivalent matricei de control de la coduri grup, n cazul codurilor ciclice,se deneste un
polinom de control, h(x). Acesta are gradul k 1 si se aa n relatia urm
atoare cu polinomul
generator:
g(x)h(x) = xn + 1
Adic
a:
(gm xm + + g1 x + g0 ) hk xk + + h1 x + h0 = xn + 1
Matricea G echivalent
a polinomului generator are k linii si
0
0
g0 g1 . . . gm1 gm
0
...
gm1 gm 0
g0 g1
. . . . . . . . .
...
...
... ...
0
0 ...
0
...
g0 g1
Matricea H echivalent
a
0
0
. . .
hk
... 0
... 0
. . . . . .
. . . gm
0
...
hk hk1 . . . h2 h1 h0
...
hk hk1 . . .
h2 h1 h0 0
Codarea
1. Codarea v(x) = i(x)g(x). Aceasta variant
a corespunde cod
arii v = iG de la coduri grup.
Practic se realizeaza nmultirea polinoamelor iar formulele ec
arui simbol ale cuv
antului
de cod se obtin prin identicare de coecinti. Codul rezultat nu este sistematic.
m
i(x)
. Aceasta variant
a corespunde cazului Hv T = 0 de
2. Codarea v(x) = xm i(x)+ rest x g(x)
la coduri grup. Pe primele k pozitii ale cuv
antului de cod se vor plasa simbolurile de
informatie, iar pe ultimele n k = m simbolurile de control. Polinomul corector asociat
simbolurilor de control c(x) este restul mp
artirii lui xm i(x) la g(x). Codul rezultat este
sistematic.
Circuite de codare Exist
a dou
a circuite de codare uzuale. Ambele corespund variantei de
cod sistematic. Acestea sunt:
1. Circuit de codare prin divizare.
2. Circuit de codare cu registru de deplasare si reactie negativ
a.
6.2
59
Probleme rezolvate
1. [1]Un cod Hamming ciclic este generat cu ajutorul polinomului primitiv g(x) = x3 + x + 1:
(a) S
a se determine num
arul de simboluri de informatie si num
arul de simboluri de
control. S
a se determine propriet
atile de corectie / detectie ale acestui cod.
(b) S
a se calculeze polinomul corector.
(c) S
a se calculeze matricea generatoare si matricea de control a codului.
(d) S
a se genereze toate cuvintele de cod folosind at
at codarea cu polinomul generator c
at
si cu cel corector.
(e) S
a determine schema codorului cu divizor si s
a se analizeze functionarea lui.
(f) S
a determine schema codorului cu registru de deplasare si reactie si s
a se analizeze
functionarea lui.
(g) S
a se analizeze tranzitiile st
arilor codorului cu reactie.
Rezolvare:
(a) Parametri codului : se stie ca polinomul generator este de grad m (numarul de simboluri de control). Codurile ciclice sunt coduri perfecte. Atunci marginea Hamming
(pentru o eroare) functioneaza cu egalitate:
lungimea cuv
antului de cod esten = 2m 1 = 7
simbolurile de informatie sunt k = n m = 4
(b) Polinomul de control se obtine ca ind c
atul mp
artirii (modulo 2)
h(x) =
xn +1
g(x) :
x7 + 1
= x4 + x2 + x + 1
x3 + x + 1
Ar de observat faptul c
a gradul lui h(x) (indiferent de problem
a) este
grad(h) = grad(xn + 1) grad(g) = n m = k
In plus este obligatoriu ca g(x) sa aib
a coecientii corespunzatori lui xm si x0 nenuli
a altfel g(x) ar admite ca divizor pe x si nu ar
(coecientul lui x0 este nenul pentru c
mai ireductibil). Aceste fapte oblig
a si pe h(x) la acelasi comportament: coecentii
lui xk si x0 sunt nenuli.
(c) Matricea generatoare, de
g0 g1
0 g
0
G=
0 0
0 0
Matricea de control,
H =0
h4
g1 g2 g3 0 0 0 1
=
g0 g1 g2 g3 0 0 0
0 g0 g1 g2 g3
0 0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
H, av
and m linii si n coloane este:
0 0 1 0 1 1 1
0 h4 h3 h2 h1 h0
h4 h3 h2 h1 h0 0 = 0 1 0 1 1 1 0
h3 h2 h1 h0 0 0
1 0 1 1 1 0 0
60
i(x) = i3 x3 + i2 x2 + i1 x + i0
Simbolurile cuv
antului de cod se obtin efectuand nmultirea polinoamelor g(x) si i(x)
identic
and coecientii dup
a gradul monomului:
v(x) =g(x)i(x) = (x3 + x + 1)(i3 x3 + i2 x2 + i1 x + i0 ) =
=i3 x6 + i2 x5 + (i1 + i3 )x4 + (i0 + i2 + i3 )x3 + (i1 + i2 )x2 + (i0 + i1 )x + i0
= v6 = i3 v5 = i2 v4 = i1 + i3 v3 = i0 + i2 + i3 v2 = i1 + i2 v1 = i0 + i1 v0 = i0
Daca se realizeaza nmultirea v = iG rezultatele
v0
v1
1 1 0
v2
0 1 1
v=
v3 = iG = i0 i1 i2 i3
0 0 1
v
4
0 0 0
v5
v6
1
0
1
1
0
1
0
1
0
0
1
0
i0
i0 + i1
0
i1 + i2
0
= i0 + i2 + i3
i1 + i3
1
i2
i3
xm i(x)
g(x)
i0 + i2 + i3
i0 + i1 + i2
i1 + i2 + i3
v =
i0
i1
2
i3
c(x) =rest
61
c2 + i1 + i2 + i3
c
0 0 1 0 1 1 1
2
Hv T = 0 0 1 0 1 1 1 0
i0 c1 + i0 + i1 + i2 = 03
1 0 1 1 1 0 0
i1 c2 + c0 + i0 + i1
i2
i3
c2 = i1 + i2 + i3
c1 = i0 + i1 + i2
c0 = c2 + i0 + i1 = i0 + i2 + i3
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
i1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
i2
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
i3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
v = iG
00000
00110
01101
01011
11010
11100
10111
10001
10100
10010
11001
11111
01110
01000
00011
00101
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
Hv T = 0
00000
01000
11001
10001
11010
10010
00011
01011
10100
11100
01101
00101
01110
00110
10111
11111
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
62
Figura 6.1: Codorul unui cod ciclic realizat cu registru cu deplasare. In primele k = 4 cicluri
de ceas comutatoarele K sunt n pozitia 1; n urm
atoarele n k = m = 3 cicli de ceas este n
pozitia 2.
(e) Schema codorului cu divizare este prezentata n gura 6.1.
In constructia circuitului, leg
aturile verticale din partea inferioar
a exista n functie de
valorile coecientilor polinomului g(x). Astfel legaturile asociate lui g0 si g1 exista,
n timp ce cea corespunz
atoare lui g2 = 0 nu.
Functionarea circuitului este coordonat
a de un semnal periodic (denumit uneori semnal de ceas). O operatie se desfasoara pe parcursul unui ciclu (perioad
a) a semnalului.
Sumatoarele sunt instantanee. Registrele C0 , C1 , C2 sunt registre de deplsare, adica
valoare primit
a la intrare la momentul n este trimisa la esire la momentul n + 1.
Functionarea circuitului este urm
atoarea:
La pornirea circuitului registrele de deplasare au valoarea 0 (faza de initializare).
Pe primele k = 4 perioade ale semnalului de ceas comutatorul K este n pozitia 1.
In acest timp la intrare se prezint
a simbolurile de informatie. La iesire se transmit
nealterate simbolurile de informatie (partea corespunz
atoare lui xm i(x). Relatiile
n interioriul circuitului sunt:
Out(n) = In(n);
P (n) = In(n) + C2 (n 1);
C0 (n) = P (n);
C1 (n) = C0 (n 1) + P (n)
C2 (n) = C1 (n 1)
La sf
arsitul acestor cicli, n registrele de deplasare se va stoca restul mp
artirii
m
lui x i(x) la g(x).
Pe ultimele n k = m perioade ale semnalului de ceas comutatoarele K trec n
pozitia 2. Intrarea va 0 iar la iesire vor simbolurile de control (coecientii
restului). Relatiile n circuit sunt:
In(n) = 0;
Out(n) = C2 (n 1);
P (n) = 0;
63
C0 (n) = P (n);
C1 (n) = C0 (n 1) + 0
C2 (n) = C1 (n 1)
La sf
arsitul acestor cicli, n registrele de deplasare se va nc
arca valoarea 0 (exact
cum am cerut la nceputul function
arii).
Evolutia circuitului poate urmait
a n tabelul de mai jos:
ciclu
In
Out
C0
C1
C2
0
1
2
3
4
5
6
7
1
1
1
1
1
2
2
2
NA
i3
i2
i1
i0
0
0
0
NA
i3
i2
i1
i0
i1 + i2 + i3
i0 + i1 + i2
i0 + i2 + i3
NA
i3
i2
i1 + i3
i0 + i2 + i3
0
0
0
0
i3
i2
i1 + i3
i0 + i2 + i3
0
0
0
0
i3
i2 + i3
i1 + i2 + i3
i0 + i1 + i2
i0 + i2 + i3
0
0
0
0
i3
i2 + i3
i1 + i2 + i3
i0 + i1 + i2
i0 + i2 + i3
0
(f) Schema codorului cu registrii de deplasare si reactie este prezentata n gura 6.2.
Figura 6.2: Codorul unui cod ciclic realizat cu registru cu deplasare. In primele k = 4 cicluri de
ceas comutatorul este pe pozitia 1; n urm
atoarele n k = m = 3 cicli de ceas este n pozitia 2.
Registrele D2 , D1 , D0 sunt registre de deplsare. In primele k = 4 cicluri de ceas
comutatorul este pe pozitia 1; n aceasta perioad
a se ncarc
a simbolurile de informatie.
Relatiile n interiorul circuitului sunt:
Out(n) = In(n);
B(n) = In(n);
D2 (n) = B(n) + A(n);
64
Out(n) = B(n);
B(n) = A(n);
D2 (n) = B(n) + A(n) = 0;
D1 (n) = D2 (n 1)
D0 (n) = D1 (n 1)
A(n) = D1 (n 1) + D0 (n 1);
comutator
D2
D1
D0
0
1
2
3
4
5
6
7
1
1
1
1
2
2
2
1
0
i3
i2
i2 + i3
i0 + i2 + i3
0
0
0
0
0
i3
i2
i2 + i3
i0 + i2 + i3
0
0
0
0
0
i3
i2
i2 + i3
i0 + i2 + i3
0
0
0
i3
i2 + i3
i1 + i2 + i3
i0 + i1 + i2
i0 + i2 + i3
0
i3
i2
i1
i0
i1 + i2 + i3
i0 + i1 + i2
i0 + i2 + i3
i3
(g) Analiza st
arilor de functionare se face cand circuitul de codare lucreaza autonom
(adic
a comutatorul este n pozitia 2 - nu exista intrare). Codorul contine trei registri
de deplasare. Consider
am vectorul care caracte rizeaza starea codorului la momentul
n, a vectorul:
D0 (n)
S(n) = D1 (n)
D2 (n)
Convenim s
a not
am starea initial
a:
0
S(0) = U = 0
1
D1 = D0 ,
D2 = g2 D2 + g1 D1 + g0 D0
65
0
1
0
...
0
0
0
1
0
0
1
.
.
.
0
T = . . . . . . . . . . . . . . . = 0 0 1
0
1 1 0
0
0
...
0
g0 g1 . . . gm1
Dezvoltand relatia de tranzitie a starilor se obtine:
0 1 0 D0 (n)
D0 (n + 1)
D2 (n + 1) = D1 (n) + D0 (n)
D1 (n + 1) = D2 (n)
D0 (n + 1) = D0 (n)
adic
a exact ce doream.
Starea la momentul n se poate scrie ca S(n) = T n U .
St
arile ind n num
ar nit, se va ajunge din nou dup
a un timp la starea initial
a.
Numarul de cicli dupa care se ajunge din nou n starea initiala este de 2m 1 = 7,
dac
a circuitul este generat cu ajutorul unui polinom g(x) primitiv. Mai exact:
0 1 0 0
0
S1 = T U = 0 0 1 0 = 1
1 1 0 1
0
0 1 0 0
1
S2 = T S1 = 0 0 1 1 = 0
1 1 0 0
1
0 1 0 1
0
S3 = T S2 = 0 0 1 0 = 1
1 1 0 1
1
0 1 0 0
1
S4 = T S3 = 0 0 1 1 = 1
1 1 0 1
1
0 1 0 1
1
S5 = T S4 = 0 0 1 1 = 1
1 1 0 1
0
0 1 0 1
1
S6 = T S5 = 0 0 1 1 = 0
1 1 0 0
0
66
0 1 0 1
0
S7 = T S6 = 0 0 1 0 = 0
1 1 0 0
1
Ceea ce verica ca g(x) = x3 + x + 1 este primitiv.
Aceasta ciclitate a starilor d
a si ciclitatea cuvintelor de cod.
Daca se analizeaza multimea cuvintelor de cod, exist
a doi cicli de perioad
a 7 si doi
de perioad
a 1.
In cazul n care exista intrare (codorul nu mai functioneaz
a autonom) starea la momentul n este data de relatia:
S(n) = T S(n 1) + U
unde este simbolul aat la intrare la momentul n. Aceasta relatie este usor de
vericat pe circuit.
6.3
Probleme propuse
Bibliografie
[1] Mihai Ciuc. Note de seminar.
[2] A. T. Murgan, I. Sp
anu, I. Gav
at, I. Sztojanov, V. E. Neagoe, si A. Vlad. Teoria Transmisiunii Informatei - probleme. Editura Didactic
a si Pedagogica, Bucuresti, Rom
ania, 1983.
[3] Alexandru Sp
ataru. Teoria Transmisiunii Informattiei. Editura Didactic
a si Pedagogic
a,
Bucuresti, Rom
ania, 1983.
[4] Alexandru Sp
ataru. Fondements de la theorie de la transmisssion de lnformation. Presses
polytechniques romandes, Lausanne, Elvetia, 1987.
[5] Rodica Stoian. Note de seminar.
[6] Dan Alexandru Stoichescu. Note de seminar.
[7] Eugen Vasile. Note de seminar.
[8] Constantin Vertan. Note de seminar.
67