Sunt codurile bloc in care cele n simboluri din cuvant sunt considerate ca [608234]
64
Coduri ciclice
Sunt codurile bloc in care cele n simboluri din cuvant sunt considerate ca
fiind coeficientii unui polinom de grad n –1, cuvantul fiind de forma:
v(x) = a0 + a1x +a2x2 +… +an-1xn-1 cu ai∈{0, 1} sau
v = [a0 a1… an-1 ]
In cele ce urmeaza consideram ca multimea tuturor cuvintelor este generata1
de un polinom p(x) de grad n, ales de forma :
p(x) = xn +1
iar multimea cuvintelor cu sens este generata de un polinom g(x), numit si
polinomul generator al codului, de grad m de forma:
g(x) = g0 +g1x +… +gm-1xm-1 +xm
Se poate arata ca intre cele doua polinoame generatoare exista relatia:
p(x) = g(x) h(x) unde h(x) este de forma:
h(x) = h0 + h1x +…+hkxk
Proprietate: La codul ciclic, daca v este un cuvant cu sens atunci si orice
permutare ciclica a simbolurilor sale este un cuvant cu sens:
[ai ai+1…an-1 a0 a1…ai-1]
Obs.: Multimea cuvintelor generate de p(x) are 2n elemente din care alegem
2k carora le atribuim sens (acestea formeaza multimea cuvintelor cu sens
generate de polinomul g(x) de grad m).
40. Codarea cuvintelor de cod ca elemente in multimea cuvintelor
cu sens generata de g(x)
In acest caz v(x) trebuie sa fie un multiplu al lui g(x):
v(x) = i(x) g(x) unde i(x) este polinomul simbolurilor de informatie:
i(x) = am +am-1x + … +am+k-1xk-1
Pentru a obtine un cod sistematic se determina simbolurile de control,
folosind polinomul generator g(x), astfel:
1) se observa ca v(x) se poate scrie sub forma:
v(x) = c(x) + xm i(x) unde c(x) este polinomul simbolurilor de control:
c(x) = a0 + a1x +… +am-1xm-1
2) se imparte in ambele parti cu g(x):
)x(g)x(ix
)x(g)x(c
)x(g)x(vm
+= iar ultimul termen se rescrie:
1 vezi anexa A1- 1)
65
)x(g)x(r)x(q)x(g)x(ixm
+= unde r(x) este restul impartirii, polinom de grad
mai mic decat m. Ultima relatie se poate scrie si :
)x(q)x(g)x(ix
)x(g)x(rm
= + sau )x(g)x(q)x(ix)x(rm=+ de unde:
)x(g)x(ixrest)x(r)x(cm
==
Alta metoda pentru determinarea simbolurilor de control se bazeaza pe
introducerea matricii generatoare G. Se observa ca:
v(x) = q(x) g(x) sau
v(x) =q0g(x) + q1g(x)+… +qk-1xk-1g(x) deci v(x) se gaseste in liniile matricei
generatoare G, avand k linii si n coloane:
G
=
mmm
g…gg……………….. g…g… g…gg
10010
0 000 000
unde coeficientii puterilor lui x absente au fost inlocuiti cu zero; cu matricea
generatoare G se poate face codarea cu relatia:
v = i G
cu care se obtin simbolurile de control rezultate cu metoda anterioara, cand
s-a plecat de la relatia: v(x) = q(x) g(x) daca q(x) = i(x).
41. Codarea cuvintelor de cod cu ajutorul polinomului de control
h(x)
v(x) = q(x) g(x) sau, multiplicand cu h(x):
v(x)h(x) = q(x) g(x)h(x) = q(x) p(x)
Deoarece p(X) = g(X) h(X) = 0 rezulta:
h(X)v(X)= 0 ;
se poate2 arata ca relatia scalara de mai sus poate fi scrisa sub forma:
HvT = 0, relatie cu care se poate face codarea.
unde:
2 Vezi anexa A1- 3)
66
H =
000000 000 0
00
…h…h…………..h…h…h…h …
ko kk
v = [a0 a1 …an-1]
De asemenea se poate arata ca:
GHT = HGT
Exemplu: Se transmite un numar de 16 mesaje pe un canal cu perturbatii,
utilzand un cod ciclic corector de o eroare.
Relatia 2k ≥16 este satisfacuta de k = 4; relatia 2m ≥ m + k +1 de m =3, n = 7.
Gradul polinomului g(x) va fi deci m = 3: g(x) = x3 + x2 + 1 iar gradul lui
p(x) va fi n = 7: p(x) = x7 +1.
111 1 234
327
+++=+++=+== xxxxxx
)x(gx
)x(g)x(p)x(hn
deci matricile G ( k×n) si H ( m×n) vor fi:
=
1101000011010000110100001101
G
=
001011101011101011100
H
a) codarea cu H se face astfel:
v = [c0 c1 c2 i3 i4 i5 i6]
HvT = 0
va da simbolurile de control functie de cele de informatie:
c2 +i3+i4 +i6 = 0 c2 = i3+i4+i6
c1+c2 +i3+i5 = 0 c1 = i4+i5+i6
c0 +c1+c2+i4 = 0 c0 = i3+i4+i5
Cele 16 mesaje emise de sursa sunt:
67
mesaj i3 i4 i5 i6 c0 c1 c2 i3 i4 i5 i6
0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 0 0 1 0
3 0 0 1 1 1 0 1 0 0 1 1
… .. .. .. .. .. .. .. .. .. .. ..
15 1 1 1 1 1 1 1 1 1 1 1
b) codarea cu G se face astfel:
v = iG = [i3 i4 i5 i6]
1101000011010000110100001101
=
= [i3 i4 i3+i5 i3+i4+i6 i4+i5 i5+i6 i6]
Cele 16 mesaje emise de sursa vor fi:
mesaj i3 i4 i5 i6 i3 i4 i3+i5 i3+i4+i6 i4+i5 i5+i6 i6
0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1 0 1 1
2 0 0 1 0 0 0 1 0 1 1 0
3 0 0 1 1 0 0 1 1 1 0 1
… .. .. .. .. .. .. … … … … ..
13 1 1 0 1 1 1 1 1 1 1 1
14 1 1 1 0 1 1 0 1 0 1 0
15 1 1 1 1 1 1 0 1 0 0 1
Obs.: spatiul cuvintelor cu sens este acelasi indiferent de modul de
codare: cu H sau cu G, insa difera corespondenta intre secventa
informationala de 4 bit (i3 i4 i5 i6) si cuvintele cu sens de 7 bit. De ex.
cuvantul [1 1 1 1 1 1 1 ] corespunde in primul caz secventei informationale
(1 1 1 1) si in al doilea caz secventei (1 1 0 1), corespondente marcate in
tabele cu linie ondulata.
68
42. Decodarea codurilor ciclice
1. se calculeaza pentru un cuvant receptionat:
)x(g)x('vrest)x(zi=
Obs.: in acest caz s-a notat cu i faptul ca la transmisie a intervenit tipul de
eroare (inca necunoscuta) εi.
2. se cauta intr-un tabel, construit in prealabil, corespondenta dintre
corectorul calculat la pct. 1 zi (x) si cuvantul eroare respectiv εi(x);
3. se calculeaza:
v(x) = v’(x) + εi(x)
Obs.: o metoda de stabilire a tabelului este sa se calculeze zi, pe baza relatiei
)x(g)x(restzi
iε=
pentru diversi εi. Se observa acum din nou ca exista un singur tip de corector
zi pentru toate cuvintele eronate cu εi. Tabelul poate fi stocat intr-o memorie
ROM pentru calcul automat la receptie.
69
Circuite de codare si decodare a codurilor ciclice
43. Circuite de divizare prin polinomul g(x), pentru codarea si
decodarea codurilor ciclice.
Circuit de divizare a polinoamelor: in figura de mai jos se da schema
circuitului de divizare a polinomului u(x) prin g(x), unde coeficientii restului
r(x) sunt stocati in celule iar catul este y(x):
u(x) = anxn +…+a0
g(x) = gmxm+…+g0
Se introduce operatorul de intarziere D care reprezinta intarzierea cu un tact
introdusa de o celula binara; cu aceasta polinomul u(x) se scrie ca secventa
de date:
U = anD0 +…+a0Dn,
ceea ce inseamna ca coeficientii aj se aplica la intrare in ordine
descrescatoare; D0 = 1 reprezinta operatorul de intarziere nula si arata ca
initial an se gaseste la intrarea celulei C0 iar termenul a0Dn arata ca dupa n
tacte a0 ajunge la intrarea celulei C0
Functia de transfer a circuitului este :
UYT=;
Pentru determinarea lui T, se ia un caz particular, presupunand ca la intrare
se aplica chiar g(x); dupa primul tact, pornind din starea initiala nula,
circuitul se afla in urmatoarea situatie:
iar, dupa m tacte, circuitul va fi in urmatoarea situatie:
C0 C1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 i. U
ii. Y
C0 C
1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 v. G
vi. Y gm=1 gm-1 0 g2 g1 0 gm-2 0 0
iv. 0 gm=1 0 0
C0 C1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 iii. G
70
C0 C1 C2
g0=1 g2=1 g3=1 u(x) y(x) primul simbol aplicat la intrare gm=1, ajungand la iesire deci in acest
moment Y = gmDm si la intrarea tuturor celulelor va fi simbolul 0; la tactul
m+1 iesirile tuturor celulelor devin 0 deci Y = gmDm ≠0 numai la tactul m,
avand un singur termen. Deci in acest caz avem:
m
mm
m mm
m
g…gg…ggg
UYT−
− ++=++ +==D D D DD
0 01
101
daca D-1→ x, se poate afirma ca circuitul face o divizare cu g(x).
In cazul general, cand polinomul de intrare este de grad n, catul divizarii se
obtine la iesire dupa n tacte iar restul va apare stocat in registru la tactul n.
Exemplul 1: pentru n = 7, m = 3
g(x) = x3 +x2 +1
a) Pentru: Reguli de calcul pentru succesiunea starilor:
u(x) = x7 +x6 +x5+x2 st C0 = U + st C2’; st C1 = st C0’;
y(x) = x4 +x2 st C2 = st C1’ + st C2’; Y = st C2’.
r(x) = 0 (st Cj’ este starea precedenta a celulei Cj)
succesiunea starilor este data in tabelul urmator:
tact IN (U) C0 C1 C2 OUT (Y)
0 0 0 0 0
1 a7= 1 1 0 0 0
2 a6= 1 1 1 0 0
3 a5= 1 1 1 1 0
4 a4= 0 1 1 0 1 (← x4)
5 a3= 0 0 1 1 0 (← x3)
6 a2 = 1 0 0 0 1 (← x2)
7 a1 = 0 0 0 0 0 (← x1)
8 a0 = 0 0 (←x0) 0 (←x1) 0 (←x2) 0 (← x0)
b) Pentru
u(x) = x7 +x6 +x5+x+ 1
y(x) = x4 +x2
r(x) = x2 + x +1
succesiunea starilor este data in tabelul urmator:
71
tact IN (U) C0 C1 C2 OUT (Y)
0 0 0 0 0
1 a7= 1 1 0 0 0
2 a6= 1 1 1 0 0
3 a5= 1 1 1 1 0
4 a4 = 0 1 1 0 1 (← x4)
5 a3 = 0 0 1 1 0 (← x3)
6 a2 = 0 1 0 0 1 (← x2)
7 a1 = 1 1 1 0 0 (← x1)
8 a0 = 1 1 (←x0) 1 (←x1) 1 (←x2) 0 (← x0)
• Codor cu circuite de divizare
Relatia de codare pentru coduri ciclice este:
)x(ix)x(g)x(ixrest)x(vmm
+ =
Se observa ca, daca u(x) = i(x) se introduce ca in schema de divizare care
urmeaza, aceasta divizeaza polinomul xmi(x) prin g(x):
Circuitul de codare a codului ciclic este urmatorul:
Poarta P1 este deschisa pe durata primelor k tacte, permitand pe de o parte
transmisia spre iesire prin P3 a celor k simboluri de informatie, pe de alta
parte introducerea acestora in circuitul de divizare pentru calculul restului;
restul, care constituie simbolurile de control, apare in registru la tactul k+1,
cand P2 este deschisa si P1 este inchisa; P2 ramane deschisa timp de m tacte
pentru a permite evacuarea simbolurilor de control, care sunt plasate cu
ajutorul lui P3 in continuarea simbolurilor de informatie pentru completarea C0 C1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 vii.
viii. Y U
I C0 C1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 ix.
x. Y P1 P2 P3 xi. V
1: k tacte
0: m tacte
72
cuvantului de cod. Dupa evacuarea simbolurilor de control registrul revine
in stare initiala nula, pregatit pentru codarea cuvantului urmator.
• Decodor cu circuite de divizare
Decodarea presupune calculul corectorului z(x) = rest(v’(x)/g(x)) cu ajutorul
urmatorului circuit:
Pentru detectia erorilor trebuie verificat daca z(x) este sau nu nul: daca la
iesirea portii SAU apare “1” atunci z(x) ≠ 0, detectandu-se erori.
Exemplul 2: circuit codor pentru g(x) = x3 + x2 + 1
Regulile de
functionare:
C2 = I + C1’
+C2’;
C1 = C0’;
C0 = I +C2
V = I pt.
Tact 1..4
V = C2’ pt.
Tact 5..7
Succesiunea starilor este data in urmatorul tabel:
5 0 0 1 0 0 = C2
6 0 0 0 1 0 = C1
7 0 0 0 0 1 = C0
Tact IN(I) C0 C1 C2 OUT(V)
0 0 0 0 0
1 1 1 0 1 1 = i6
2 0 1 1 1 0 = i5
3 1 0 1 1 1 = i4
4 0 1 0 0 0 = i3 C0 C1 Cm-2 Cm-1
g0 =1 g1 g2 gm-2 gm-1 gm =1 xii. V
'
xiii. Y xiv. Z
P1 P2 P3 xv. V
“1”: 4 tacte
“0”: 3 tacte C0 C1 C2
g0=1 g1=0 g2=1 g3=1
xvi. I
73
Exemplul 3: Circuit decodor pentru g(x) = x3 + x2 + 1
Regulile de
functionare:
C2 = C1’ + C2’
C1 = C0’
C0 = I + C2’
Succesiunea starilor este data in tabelele urmatoare, pentru doua cazuri:
a) se receptioneaza un cuvant de cod: v’(x) = x6 + x4 + 1;
z(x) = r(x) = 0 (vezi starea la tactul 7)
b) se receptioneaza un cuvant eronat: v’(x) = x6 +1 ;
z(x) = r(x) = x2 + x + 1 (vezi starea la tactul 7)
44. Registre de deplasare cu reactie pe baza polinomului g(x),
pentru codarea si decodarea codurilor ciclice
• Registre de deplasare, cu circuit de reactie lineara.
Fie un asemenea circuit de polinom caracteristic:
g(x) = g0 +g1x +… +gm-1xm-1 +xm Tact I C0 C1 C2
0 0 0 0
1 1 1 0 1
2 0 1 1 1
3 1 0 1 1
4 0 1 0 0
5 0 0 1 0
6 0 0 0 1
7 1 0 0 0
Tact I C0 C1 C2
0 0 0 0
1 1 1 0 0
2 0 0 1 0
3 0 0 0 1
4 0 1 0 1
5 0 1 1 1
6 0 1 1 0
7 1 1 1 1 V’
C0 C1 C2
g0 =1 g1 = 0 g2 =1 g3 =1 xvii. Z
74
Starea registrului la momentul i este notata cu vectorul S(i):
=
−)(…)()(
)(S
isisis
i
m110
unde sj (i) = starea celulei Cj la momentul i este variabila de stare a
circuitului.
Pentru regimul liber (intrare nula):
)(TS)(S i i=+1
unde T este matricea de tranzitie a circuitului (matricea caracteristica):
=
−1 2101 0000 1000 010
mgggg ………………………
T
Se vede ca daca S(0) = 0, S(1) = S(2) =…= 0. Daca S(0) ≠ 0, dupa un numar
finit de tranzitii (impulsuri de tact) circuitul revine in starea initiala, fiind un
sistem determinist.
Conditia necesara si suficienta ca registrul cu reactie lineara conform g(x) sa
parcurga in regim liber toate starile nenule distincte este ca g(x) sa fie
primitiv (cel mai mic intreg pozitiv n pentru care g(x) divide pe xn + 1 este n
= 2m –1).
Pentru regimul fortat ( la momentele t = 1, 2, …, n se aplica la intrare
corespunzator simbolurile succesive an-1,…,a0. Cu notatia:
[]1000… U=T
vom avea succesiv, corespunzator tactului: Cm-1 Cm-2 C1 C2
gm= 1 gm-1 g1 g0
IN OUT
75
()()
()() ()
()() () UTUT…UT0STU1nTSnS……..UUT0STU1TS2SU0S1S
0
01
11n n
01 2
aa a aa aa
nn nn
+++ +=+−=++=+=+=
−
−−−
−−
12 21
Daca se noteaza cuvantul v cu:
[ ]1 10 − =naaa… v
si matricea H cu:
[ ]UT…UTUTUTH2 1 0 1−=n
atunci se obtine:
()()T nn HvSTS +=0
daca S(0) = 0, atunci starea la momentul n este:
()TnHvS=
ceea ce reprezinta expresia corectorului: un asemenea circuit poate servi la
codare sau la detectia/corectia erorilor.
• Codor cu registru de deplasare cu reactie
Cu registrul de mai sus se poate face un codor ciclic ca in figura de mai jos:
In primele k tacte, comutatorul K este pe pozitia 1 si se introduc succesiv
cele k simboluri de informatie, an-1, an-2, …,an-k, acestea fiind transmise si la
iesire. Se trece K pe pozitia 2 si circuitul genereaza in urmatoarele m tacte
simbolurile de control, rezultand cuvintele de cod ciclic:
daca S(0) = 0, pe pozitia 1, in primele k tacte avem succesiv starile :
()()
()() ()
()() () UT…UT STU TSS……..UUTSTU TSSU TSS
2
0 1
121
21
0 10 1201
knk
nk
knn nn
a a akka aa
−−
− −−−
−−
++ +=+−=++=+=+=
Cm-1 Cm-2 C1 C0
gm= 1 gm-1 g1 g0
IN
1
K
2 OUT Σ1
76
Daca se trece acum K pe pozitia 2, la urmatorul impuls de tact, ambele
intrari ale sumatorului Σ1 primesc acelasi simbol deci in celula Cm-1 se
introduce un 0 si starea ei la momentul k+1 va fi 0 deci S(k+1) = S(k+2) = …
= S(n) = 0 deci (vezi mai sus): HvT = 0, adica simbolurile generate
constituie un cuvant de cod v. Deoarece S(n) = 0, codorul este pregatit pentru
generarea unui nou cuvant de cod, aceasta devenind starea initiala.
Exemplul 1: Pentru n = 7, k = 4, m = 3 si g(x) = 1 + x +x3, schema codorului,
cu sumatoare modulo 2 externe, se da mai jos:
In conformitate cu cazul general descris anterior codarea decurge astfel:
1. K pe pozitia 1: Prin IN, se introduce in registru, si simultan in canal
(OUT), secventa informationala (i3 i2 i1 i0);
2. K pe pozitia 2: Primul simbol de control c2 se formeaza in punctul P, fiind
produs la iesirea sumatorului Σ2, si este livrat la iesire spre canal; in
acelasi timp el se aduna cu el insusi in Σ1, celula C2 incarcandu-se cu 0;
3. Se repeta pasul anterior, obtinindu-se simbolurile de control c1 si c0; cele
trei simboluri de control se alatura celor 4 simboluri din secventa
informationala, pe canal transmitandu-se cuvantul de cod complet;
registrul se reinitializeaza si este pregatit pentru un nou mesaj.
Daca i = (1001):
()
()()
()
()
[]01110011
632233
=+++=+= =+=
v;;;
xxxxxvxxxgxixrestxcxxi
In tabelul urmator se prezinta evolutia starilor registrului de deplasare cu
reactie din exemplul 1:
(simboluri de control) g3= 1 g1 = 1 g0 =1 IN
1
K
2 OUT Σ1 C2 C1 C0
Σ2
(cuvant de cod v) (simb. de informatie)
P
77
K tact IN C2 C1 C0 OUT
0 0 0
1 1 i3= 1 1 0 0 i3 = a6 = 1
1 2 i2= 0 0 1 0 i2 = a5 = 0
1 3 i1= 0 1 0 1 i1 = a4 = 0
1 4 i0= 1 0 1 0 i0 = a3 = 1
2 5 * 0 0 1 c2 = a2 = 1(1+0)
2 6 * 0 0 0 c1 = a1 = 1(0+1)
2 7 * 0 0 0 c0 = a0 = 0(0+0)
v = [a0 a1 …a6] = [c0 c1 c2 i0 i1 i2 i3] = [011 1001 ]
Obs.: dupa introducerea secventei informationale (dupa tactul 4) continutul
celulelor (0 1 0) nu formeaza simbolurile de control, reprezentand o forma
modificata a restului; este necesara prelucrarea in continuare in Σ1.
• Decodor cu registru de deplasare cu reactie
Sistemul de decodare contine un registru de deplasare principal RP si doua
decodoare DC1 si DC2. In RP este inmagazinat cuvantul receptionat de
lungime n. Celulele registrelor din decodoare sunt cuplate la detectoarele de
erori D. Aceste detectoare emit un simbol”1” cand simbolul eronat este in
M0, permitand corectia erorii. Acelasi “1” se aplica pentru a reseta registrul.
Simbolurile cuvantului receptionat sunt introduse simultan in RP pentru
memorare si in DC1 (K pe pozitia 1) pentru calculul corectorului, in acest
timp D ramane deconectat (P este blocata). Cand ultimul simbol al V’ a intrat
in RP, poarta P se deschide pentru efectuarea corectiei; comutatorul K trece
in pozitia 2 si cuvantul urmator se introduce in DC2 si in RP, DC1 si DC2
lucrand in contratimp, adica in timp ce unul determina corectorul, celalalt
prelucreaza corectorul pentru realizarea corectiei.
≠ rest
78
Starea registrului DC1 in acest moment corespunde chiar corectorului z.
Calculul corectorului z se face cu relatia:
z = a’0 U +a’1 TU +… +a’n-2 Tn-2 U +a’n-1 Tn-1 U = Hv’T unde
H = [ U TU T2U … Tn-1 U]
Daca apare o singura eroare in pozitia n-r, cuvantul eroare ε este de forma:
ε = […,αn-r,…]
iar corectorul va fi dat de relatia:
z = HεT = Tn-r U = T –rU (deoarece Tn = I).
Din acest moment DC1 evolueaza liber, succesiunea de stari fiind:
z, Tz, T2z, ….., Tr-1z,
prin celula M0 a RP succedandu-se simbolurile:
a’n-1, a’n-2,…., a’n-r.
Dupa r-1 perioade de tact, simbolul eronat a’n-r ajunge in M0, in timp ce
starea DC1 devine:
Sr-1 = Tr-1z = Tr-1 T –rU = T-1 U = [1 0 ……0]T Cm-1 Cm-2 C1 C0
gm= 1 gm-1 g1 g0
D P
Cm-1 Cm-2 C1 C0
gm= 1 gm-1 g1 g0
D P Mn-1 Mn-2 M2 M1 M0 V’
xviii. V DC1
DC2
K RP
1
2
79
Detectorul D recunoaste aceasta stare fixa a DC1, care apare la un moment
ce depinde de pozitia eronata si furnizeaza un impuls de complementare a
starii celulei M0, asa ca la iesirea RP apare cuvantul corectat, v. Impulsul de
corectie este folosit si la resetarea DC1, pregatit astfel pentru un nou cuvant
de cod. Ciclul de functionare pentru DC1 este de 2n perioade de tact.
Un exemplu de circuit care detecteaza starea T-1 U se da mai jos: acesta
furnizeaza un semnal “1” numai cand starea registrului de decalaj este (0, 0,
…, 0, 1); acest “1” complementeaza continutul celulei M0, corectand eroarea.
Poarta P este inchisa cat timp se calculeaza corectorul, altfel la trecerea
regisrului prin starea (0 0 … 1) se da o comanda falsa de corectie.
Imediat dupa corectie, la tactul r, starea registrului va fi:
T Sr-1 + U = TT-1 U + U = U + U = 0
si, incepand din acest moment, starea nu se va mai modfica pana la sosirea
primului simbol al cuvantului urmator care trebuie corectat.
Exemplu: Fie un cod ciclic cu: n = 7, k = 4, m = 3, cuvintele de cod fiind de
forma:
v(x) = a0 + a1 x +… + a6 x6 unde a0, a1, a2 sunt simboluri de control iar a3,
a4, a5, a6 sunt simboluri de informatie. Polinomul generator p(x) este: p(x) =
x7 + 1 iar polinomul generator g(x) este g(x) = x3 + x + 1
a) Codarea
Pentru determinarea simbolurilor de control se foloseste relatia: K C2 C1 C0
xx. V 2 a0, a1, a2
1 a3, a4, a5, a6
xxi. I Q Q Cm-1 Cm-2 C0 M0
xix. P 0 0 1
validare Q Q Q
P
80
2
654 543 6533362
5433
1
xaaaxaaaaaaxxxaxaxaax
xgxixrestxcm
) () () () (
)()()(
++++++++==
+++++= =
Daca se egaleaza coeficientii cu cei ai expresiei:
2
210 xaxaaxc ++=)(
rezulta:
=2a 654aaa++
=1a 543aaa++
=0a 653aaa++
b) Decodarea
Se face cu circuitul din figura de mai jos (particularizat din circuitul general
pentru n = 7, k = 4, m = 3):
Cm-1 Cm-2 C1 C0
gm= 1 gm-1 g1 g0
“SI”
(poa
rta “ P
Cm-1 Cm-2 C1 C0
gm= 1 gm-1 g1 g0
“SI” P M6 M5 M2 M1 M0 V’
xxii. V DC1
DC2
K RP
1
2
C2
C2
0 0 1
0 0 1
0 0 1
81
Daca a4’ = a4 + 1 este simbolul eronat, n – r = 4, si corectorul,
corespunzator starii registrului de deplasare dupa introducerea tuturor
simbolurilor cuvantului receptionat, va fi:
z = T4 U = T-3 U,
cand simbolul a4’ ajunge in celula M0, dupa doua tacte suplimentare, starea
registrului de deplasare cu reactie este:
T2 T-3 U = T-1 U
adica (0 0 1); in acest moment in celula M0 se aplica un simbol “1” dat de
decodor astfel incat vom avea:
a4’ + 1 = a4
realizandu-se corectia; la tactul urmator, registrul de deplasare cu reactie este
adus in starea 0.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sunt codurile bloc in care cele n simboluri din cuvant sunt considerate ca [608234] (ID: 608234)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
