Documente Academic
Documente Profesional
Documente Cultură
Curs Tti Prof Gavat
Curs Tti Prof Gavat
Curs Tti Prof Gavat
vara)
Prof. Dr. ing. Inge Gavat
II
1. Definitii si terminologie
2. Tipuri de surse discrete
Sursa discreta cu memorie
Sursa Markov
Sursa stationara
Sursa ergodica
Capacitatea canalului
4. Parmetrii canalului discret
5. Modele de canale discrete
Canal binar simetric
Canal binar cu anulari
Canal binar cu erori si anulari
Canal uniform
Canal dublu uniform:
Canal simetric:
6. Capacitatea canalelor discrete
Canal discret general, fara memorie
Canal binar general (n = m = 2)
o Canal binar simetric
7. Exemple de canale discrete
8. Canale discrete cu constrangeri
Caracterizarea canalelor cu constrangeri
Capacitatea codului
Eficienta codului
Redundanta codului
6. Coduri absolut optimale si optimale
Coduri absolut optimale
Coduri optimale
Teorema I-a a lui Shannon
Procedee de codare optimala
Principii generale:
o Codare simbol cu simbol (n = 1)
Procedeul Shannon Fano:
Procedeul de codare Huffman
Corectori
Conditia de corectia a erorilor
Mecanismul de detectie sau corectia erorilor
Matricea de corectia a erorilor
Codarea codurilor grup cu ajutorul matricei de control H
Coduri sistematice
Relatii intre coloanele matricei H in cazul corectiei erorilor
o Relatii intre coloanele matricei H in cazul detectiei erorilor
Codarea codurilor grup cu ajutorul matricei generatoare G
IX Coduri ciclice
1. Codarea cuvintelor de cod ca elemente in multimea cuvintelor cu sens generata
de g(x)
2. Codarea cuvintelor de cod cu ajutorul polinomului de control h(x)
3. Decodarea codurilor ciclice
XI Coduri convolutionale
1. Codarea
Reprezentarea grafica a codurilor convolutionale
o Diagrama de stari
o Diagrama trellis (reprezentarea evolutiei starilor in timp)
2. Decodarea
o algoritmul Viterbi
Anexa A2: Unele aplicatii ale teoriei codurilor
1. Formularea problemei
xi = E
i =1
xi x j =
i j
p (x i ) = 1
n
i =1
U (xi ) = F [ p(xi )]
i (xi ) = informatia proprie, rezultata prin realizarea si observarea xi
i (xi ) = U (xi ) = F [ p(xi )]
Criterii de alegere a F:
i (x i ) 0
i (xi ) incertitudinea
i (xi ) sa aiba proprietatea de aditivitate:
x i = [xi1 , xi 2 ] independente
p (xi 1 ) p (xi 2 )
F ( p ) = log B p
bit, pentru B = 2
[X] = [x1 , x2 ]
Px = [ p(x1 ), p (x2 )] = [1 / 2, 1 / 2]
dit, pentru B = 10
ditul este cantitatea de informatie ce se obtine prin realizarea
unuia din 10 evenimente echiprobabile.
Informatia mutuala
n
xi x j = i j
xi = E
i =1
i =1
yj = E
j =1
y j y k = , j k
unde p (y j ) = 1
m
j =1
(x
/ y j ),
log
p (xi / y j )
p ( xi )
daca xi = yj :
= log
p(xi , y j )
p (x i ) p ( y j )
i (x i , y j ) = i (x i , x i ) = log p (x i ) + log p (x i / x i ) = i (x i )
3. Entropia informationala
H ( X ) = p(xi )(
i xi ) = p(xi )log p(xi )
n
i =1
i =1
H max ( p ) = H (1 / 2 ) = 1
H(p)
1
0,5
0,1
0,5
0,9
II
1. Definitii si terminologie
x3
x4
x1 x2
x1 x2
S1
x3 x4
S2
T=
p11
p21
pr 1
p12
p22
pr 2
p1r
p2 r
prr
Pn =
p(s1n )
p(s rn )
Pn-1 =
p(s1n 1 )
p(s rn 1 )
i =1
( )
T
lim T
1 / 2 0 1 / 2
rezulta graful de mai jos:
1/3
1/2
1/2
s1
s1
s3
2/3
1
s2
ni
lim = p (xi ).
n n
Multimea sirurilor tipice are o probabilitate care tinde spre
1 pe masura ce n creste.
o Sirul netipic: sirul care are o alta compozitie. Multimea
sirurilor netipice are o probabilitate care tinde spre 0 pe
masura ce n creste.
Sursa ergodica are proprietatea ca probabilitatile evaluate
statistic ( pentru n surse identice se numara, la un moment dat,
sursele care dau simbolul xi ; frecventa ni/n tinde spre pi cand
n ) coincid cu probabilitatile evaluate prin mediere
temporala, de-a lungul unui sir furnizat de o singura sursa. Prin
urmare, sursa ergodica va furniza, dupa un timp t cu
probabilitate 1, un sir tipic. Satisfacerea ipotezei ergodice
conduce la importante simplificari in evaluarea experimentelor.
X1
x1 x2 ..............xD
pt(xi) = n(xi)/ n
X2
.
.
Xn
ps(xi) = n(xi)/ n
i =1
I ( X N ) = log p( X N ) = N pi log pi
D
i =1
H ( X ) = pi log pi
D
i =1
H (X ) =
D
1 D
(
)
N i i xi = pi log pi
i =1
N i =1
H ( X ) = p1 log p1 p2 log p2
H (X m ) = mH ( X )
Markov
- Sursa Markov ergodica are proprietatea ca secventa
distributiilor de probabilitate Pn , pe toata multimea de
stari, tinde catre o distributie de probabilitate limita w
(distributia de echilibru), independenta de distributia
initiala sau lim Pn = w .
n
1
H ( X 1 ,..., X n )
n n
lim
k =1
H ( X ) = H (S ) = lim H (S n / S0 , , S n 1 ) = lim H (S n / S n 1 )=
r
) (
n
r
( )
= lim p S n 1 = s j H S n / S n 1 = s j = w j H S j =
n j =1
r q
j =1
= w j p jk log p jk
j =1k =1
H ( X ) = pk p jk log p jk
D D
j =1k =1
Debitul de informatie
Daca durata medie a unui simbol este = i p(xi ),
D
i 1
()
simbolurilor este H t = H
si se exprima in bit/s.
Debitul sursei extinse de ordinul m este :
H tm = H m ( m ) = mH (m ) = H ( )
1
H (X )
H max ( X )
Eficienta sursei
s =
H (X )
= 1 s
H max ( X )
i =1
- H 2 (X )
1
H 0 (X )
2
[Y]
Canal
Campul de intrare:
Campul de iesire:
[ X] = [ x1 , x2 ,..., xn ]
[Px ] = [ p( x1 ), p( x2 ),... p( xn )]
[Y] = [ y1 , y2 ,..., ym ]
[Py ] = [ p( y1 ), p( y2 ),..., p( ym )]
Canal discret este acel canal pentru care n si m sunt finite.
Canal continuu este acel canal pentru care n si m sunt infinite.
Canal discret/continuu: acel canal pentru care n este finit si m este
infinit.
Canal continuu/discret: acel canal pentru care n este infinit si m este
finit.
Canal discret in timp: la care timpul este discret t = kTes.
Canal continuu in timp: la care timpul este continuu.
Canal cu memorie: in care transformarea xi y j depinde de
transformarile anterioare.
Canal fara memorie: in care transformarea xi y j nu depinde de
transformarile anterioare.
(distributia de
Canal stationar: in care p ( xi1t1 ) = p ( xi1t 2 ) i = 1, n
probabilitati nu depinde de origina timpului)
1. Entropia la intrarea si iesirea din canal; Entropia ansamblului
intrare iesire
[ X] = [ x1 , x2 ,..., xn ]
[Px ] = [ p( x1 ), p( x2 ),... p( xn )]
p ( xi ) = 1
i =1
[Y ] = [ y1 , y2 ,..., ym ]
p ( y j ) = 1
[Py ] = [ p( y1 ), p( y2 ),..., p( ym )] j =1
Entropia campului de la intrarea canalului:
n
H ( X ) = p ( xi ) log p ( xi ) (bit/simbol)
i =1
H (Y ) = p( y j ) log p ( y j ) (bit/simbol)
j =1
[X Y] =
x2 y1
x2 y 2
...
x2 y m
...
...
...
...
xn y1
xn y 2
...
xn y m
[P( X , Y ] =
...
...
...
...
...
p(x n , y m )
p(x n , y1 ) p(x n , y 2 )
din aceasta matrice pot fi deduse probabilitatile:
p(xi ) = P{xi y1 xi y2 xi ym } de unde
p(xi ) = p (xi y j )
m
j =1
i = 1, n
sau:
p (y j ) = P{x1 y j x2 y j xn y j }
p (y j ) = p (xi y j )
n
i =1
de unde
j = 1, m
p (xi , y j ) = 1
n
i =1 j =1
i =1 j =1
2. Entropii conditionate
xi
y1
yj
U ( xi / x j ) = log p(xi / y j )
Incertitudinea
medie asupra lui X cand s-a realizat yj(entropia
asociata cu receptionarea simbolului yj) este:
n
j = 1, m
H (X / y j ) = p (xi / y j )log p (xi / y j )
i =1
m n
j =1
m n
j =1i =1
p (x1 / y1 ) ...
P[X/Y ] =
...
...
p(x1 / ym ) ...
p(xn / y1 )
...
p(xn / ym )
p (xi / y j ) = 1 pentruj = 1, m
n
i =1
x1
xi
y1
y
p(yj/xi) j
U (y j / xi ) = log p (y j / xi )
H (Y / xi ) = p (y j / xi )log p (y j / xi )
m
j =1
n m
i =1
i =1 j =1
i =1 j =1
p( y1 / xn ) ...
p( ym / x1 )
...
p( ym / xn )
j =1
H (X , Y ) = H (X ) + H (Y / X ) = H (Y ) + H (X / Y )
Ultima relatie rezulta astfel:
deoarece
p (xi , y j ) = p (y j / xi ) p(xi ) = p (xi / y j ) p (y j )
i =1 j =1
i =1 j =1
i =1
p(xi ) p (y j / xi ) log p (y j / xi ) = H (X ) + H (Y / X )
n
i =1
j =1
Deasemenea:
H (X , Y ) = H (Y ) + H (X / Y )
pentru canal fara perturbatii echivocatia si eroarea medie sunt nule:
H (X , Y ) = H (X ) = H (Y )
pentru canal foarte perturbat:
H (X , Y ) = H (X ) + H (Y )
CFP
CNP
H(X/Y)
H(X)
H(Y/X
I(X,Y)
H(Y)
H(X)=
H(Y)=
H(X,Y)=
I(X,Y)
H(X)=H(X/Y) I(X,Y)=0
H(Y)=H(Y/X)
n m
n m
i =1 j =1
i =1 j =1
i =1 j =1
= H ( X , Y ) + H ( X ) + H (Y ) = H ( X ) H ( X / Y ) = H (Y ) H (Y / X )
I ( X ,Y ) 0
5
Capacitatea canalului
Capacitatea canalului este prin definitie valoarea maxima a
transinformatiei:
def
I(X,Y)
C
codare sursa
p(xi)
Canal
p(xoi)
o = optim
(bit/simbol)
o Redundanta absoluta: Rc = C I ( X , Y )
R
I ( X ,Y )
(%)
o Redundanta relativa: c = c = 1
C
C
o Eficienta canalului:c =
I ( X ,Y )
C
(%)
Cand I ( X , Y ) C c 0 , c 100%
Caz optim: c = 0, c = 100%
p
1
n 1
p
P(Y / X ) = n 1 1 p
...
...
p
p
n 1 n 1
p
n 1
p
...
n 1 unde 0 p 1
... ...
... 1 p
...
H (Y / X ) = p ( xk ) p ( y j / xk ) log p( y j / xk ) =
k =1 j = 1
n
p
p
log
] p ( xk ) =
n 1
n 1 k =1
= (1 p ) log(1 p ) p log p + p log(n 1) = const.
= [(1 p) log(1 p ) + (n 1)
p ( y1 / x2 )
p ( y2 / x1 )
p ( y2 / x2 )
x1
p
x1
x
1 p
P[Y / X ] =
y1
y2
1- p
1
0
1 p
y 1
0
nivel mediu
t
x1 1 / 2 y1
1/2
1/2
x1
1
x2 1
x 2 1 / 2 y 2
x2
y 2
CFP
CNP
y 2
CNP
H(p)
y1
C(p)
p
0
0,5
y1
1-p-q
x1 q
p
p
q
y3
p
q
1 p q
P(Y / X ) =
p
1 p q q
(anulare) Y
x2
y2
Capacitatea canalului:
C = 1 q + p log p (1 q ) log(1 q) + (1 p q) log(1 p q)
pentru p ( x1 ) = p( x2 ) = 1 ;
2
daca se mareste rata de anulare, p/q0, probabilitatea deciziei
incorecte se reduce mult si canalul devine canal binar cu anulari.
o Canal binar cu anulari
Daca q este probabilitatea de anulare a fiecarui simbol de
intrare,
Matricea de tranzitie si graful:
1-p-q
0
q
1 q
P(Y / X ) =
0 1 q q
1-q
x1
X
x2
q
q
1-q
y1
y3
(anulare) Y
y2
P( X )
P( X )
unde:
n
p ( xi ) 1 = 0 ,
p ( xi ) 0, i
i =1
= I ( X , Y ) [ p ( xi ) 1]
i =1
=0
p( xi )
n
p ( xi ) = 1
i =1
[C + ln p0 ( y j )] p ( y j / xi ) = H (Y / xi )
j =1
p0 ( y j ) = p0 ( xi ) p ( y j xi )
i =1
i = 1, n
j = 1, m
p( y j ) = 1
j =1
(
/
)
...
(
/
)
p
y
x
p
y
x
1
n1 ... pnn
n
n
n
[P(Y / X )]1 = Q =
q11
q1n
q ji =
Pij
P (Y / X )
Rezulta:
... qn1
ale carei elemente sunt date de:
... qnn
C = log 2
q ji H (Y / x i )
i =1
j =1
p 0 ( y j ) = 2 C 2
q ji H (Y / x i )
i =1
p0 ( xi ) = 2 C qij 2
q jk H (Y / x k )
k =1
j =1
H (Y / xi ) = p( y j / xi ) log p ( y j / xi )
j =1
p21 p22
x1 p11
p12
x2
p22
y1
p21
y2
q11 =
p21
p
p22
p
; q12 =
; q21 = 12 ; q22 = 11 ;
Graful este:
1- p
x
p
1- p
Matricea de zgomot :
p12 1 p
p
p
=
[ P(Y / X )] = 11
p
;
p
p
p
21
22
q
[Q ] = 11
q21
unde
1 p
q12 1 2 p
=
q22 p
1 2 p
p
1 2 p
1 p
1 2 p
se vede ca :
q11 = q22
q12 = q21 ;
H (Y / x1 ) = H (Y / x2 ) = p log p (1 p ) log(1 p );
Capacitate a
canalului
C = log( 2 Q1 + 2 Q 2 ) = log[ 2 2 H (Y / x1 ) ] = 1 H (Y / x1 ) =
= 1 + p log p + (1 p ) log(1 p ) = 1 H ( p )
deoarece:
Q1 = q11 H (Y / x1 ) q12 H (Y / x 2 ) =
= H (Y / x1 )[q11 + q12 ] = H (Y / x1 )
Q2 = q 21 H (Y / x1 ) q 22 H (Y / x 2 ) =
= H (Y / x 2 )[q 21 + q 22 ] = H (Y / x 2 )
7. Exemple de canale discrete
ANALOGIC
DIGITAL
SC
Abonat
telefonic
A/D
CCD
T
A/D
CCD
CCD
A/D
0
S1
S2
1
0
1
S0
S3
1
11 S3
B=
b20 b21 b22 b23 0 1 0 0
b
1
b11 b12 b13 x 1 0
x
0
10
=
B( x ) =
b20
b21 b22 b23 0 x 1 0
0
b31 b32 b33 x 1 0
0
0
b30
0
0
1
Ecuatia caracteristica este: 4 2 2 1 = 0 si cea mai mare
solutie este max = 1,6 ; capacitatea este:
C = log max = 0,66 (bit/simbol)
Canal
x(t )
x( pT )
n(t)
P
y (t )
y ( pT )
y j = jy
j = 1, m
Transinformatia va fi:
n/2
I ( X ,Y ) =
pij
m/2
pij log
i= n / 2 j = m / 2
pi q j
unde :
pij = P{ X = xi Y = y j }
pentru x, y 0
p ( x)dx = P[ x < X < x + dx]
p ( y )dy = P[ y < Y < y + dy ]
x < X < x + dx
p ( x, y )dxdy = P
<
<
+
y
Y
y
dy
I ( X , Y ) = p( x, y ) log
+ +
p ( x, y )
dxdy = p ( x, y ) log p ( x, y )dxdy
p( x) p ( y )
+ +
+ +
2
+
log p ( x) dx p ( x, y ) dy = p ( x) log p( x) dx = H ( X )
log p ( y )dy p( x, y )dx = p ( y ) log p( y )dy = H (Y )
transinformatia devine:
I ( X , Y ) = H ( X , Y ) + H ( X ) + H (Y ) =
= H ( X / Y ) + H ( X ) = H (Y / X ) + H (Y )
unde s-au definit in mod analog:
+ +
H ( X / Y ) = p( x, y ) log p( x / y )dxdy
+ +
H (Y / X ) = p( x, y ) log p( y / x)dxdy
fmax
Px
log e
f max
N0
Obs.: cresterea largimii de banda peste o anumita valoare nu este
rationala deoarece nu conduce practic la o crestere semnificativa a
capacitatii.
Exemple:
o Pentru audio (Hi Fi):
C = 20 103 log(103 ) 200 103 (bit / s )
o Pentru video (alb/negru):
C = 6 10 6 log(103 ) 60 106 (bit / s )
C = lim C =
p ( x )dX = q (u )dU
dU
U
= q(u ) J unde J este jacobianul transformarii
p ( x ) = q (u )
dX
X
U
H ( X ) = X p ( x ) log p ( x )dX = X p ( x ) log q (u ) J dX =
X
U
U
= X p ( x ) log q (u )dX X p ( x ) log J dX = H (U ) X p ( x ) log J
X
X
dX
U
ortogonala J = 1 si numai in acest caz H U = H X ; aceasta
X
proprietate a transformarilor ortogonale isi gaseste aplicatii in
prelucrarea semnalelor, de exemplu la compresia de date.
[Y]
[X]
Canal
[Y1]
^
[X]
[Y]
p (x1 / y1 ) ...
S=
...
...
p(x1 / ym ) ...
p(x n / y1 )
...
p (xn / ym )
p ( y1 / x1 ) ...
T = ...
...
p ( y1 / xn ) ...
p( ym / x1 )
...
p( ym / xn )
p (x1 / x1 ) ...
Te = T S = ...
...
p (x1 / xn ) ...
p (x n / x1 )
...
p (x n / xn )
k =1
Canal echivalent
p(x1 / x1 )
x1
x1
x2
x 2
xn
x n
p (xn / xn )
R(S , xi ) = cij p (x j / xi ) i = 1, n
n
j =1
y1
y2
x0
x1
yj
x0
Y1
x1
ym1
ym
[X]
[T]
[Y]
^
[X]
[S]
1 1
x
R = p(xi )p j cij =
i =0 j =0
xi
x
x
= p(x0 ) p 0 c00 + p 1 c01 +
x0
x0
x
x
+ p(x1 ) p 0 c10 + p 1 c11 =
x1
x1
x
= p(x1 ) p 0 (c00 c01 ) + p (x0 ) c01 +
x0
x
+ p(x1 ) p 0 (c10 c11 ) + p (x1 ) c11
x1
y
y
R = const + [ p(x1 )cm p k p(x0 )c f p k ]
x1
x0
yk Y0
pentru ca riscul sa fie minim trebuie ca suma sa fie minima; aceasta se
intampla daca in Y0 sunt grupate yk pentru care:
y
y
c f p (x0 ) p k cm p (x1 ) p k iar inY1 sunt grupate yk pentru care:
x
0
x1
y
y
c f p(x0 ) p k cm p(x1 ) p k ; condensat, cele doua relatii devin:
x0
x1
H1
unde H1 este ipoteza ca yk se atribuie
p( yk / x1 ) > p(x0 ) c f
( yk ) =
= K lui Y1 iar H0 este ipoteza ca yk se
p( yk / x0 ) < p (x1 ) cm
atribuie lui Y0 ;
H0
( y k ), K sunt: raportul
K
yk
(yk)
yk x0 de plauzibilitate respectiv
pragul testului, la testarea
comparator
Procesor
yk x1 ipotezelor H , H .
0
1
( yk )
> p(x0 )
< p(x1 )
H0
( yk ) =
=
p( yk / x1 ) p(x1 , yk ) / p(x1 ) p ( x1 / yk ) p ( yk ) / p ( x1 )
=
=
=
p( yk / x0 ) p(x0 , yk ) / p(x0 ) p ( x0 , yk ) p ( yk ) / p( x0 )
p ( x1 / yk ) p ( x0 )
p ( x0 / yk ) p ( x1 )
,
H1
p ( x1 / yk ) >
1
p ( x0 / y k ) <
H0
>
( yk ) 1
<
H0
p( xi , y j ) p ( xk ) >
log
0
p ( xk , y j ) p ( xi ) <
sau :
H0
H1
p ( y j / xi ) >
1
p ( y j / xk ) <
H0
4. Criteriul minimax
= R( p ( x1 ) ) = Pf + ( Pm Pf ), cu notatiile :
Pm = p ( yk / x1 ),
Y0
Pf = p ( yk / x0 ) = 1 p ( yk / x0 )
Y1
Y0
R[p(x1)]
B
Ec. minimax
RM
Rm[p(x1)]
C
p(x1)
0 0,3
(Pf = 0)
p(x1)C
1
(Pm = 0)
p1
Y0
Strategii aleatoare:
o criteriul minimax (in alta interpretare): alegerea de catre receptor a
celei mai defavorizante partitii ( sau a simbolului) care maximizeaza
riscul conditionat R(S, xi) si adoptarea unei strategii S care
minimizeaza acest maximum:
xi = xi , S = S
R( S , xi ) = min[ max R( S , xi )]
S
xi
R ( S , x2 )
bisect. 1
Si
R(S*, x2)
S*
Sj
R( S , x1 )
R(S*, x1)
0
1
S i = 0
0
0
1
0
1;
1
1
0
0
S j = 1
1
1
1
1
0
0
0
0,3
*
S = 0,7
0,7
0,7
1
0,7
0,3
0,3
0,3
alfabetul
sursei
primare
Sp
[X]
Canal
Ss
alfabetul
sursei secundare =
alfabetul codului
Ss
[S ] = [s1 ,... s N ]
si simbol al alfabetului sursei
[P] = [ p( s1 ),..., p( sn )]
[X ] = [x1 ,... xD ]
este alfabetul ( finit ) al codului
[C ] = [c1 ,..., cN ]
este codul, alcatuit din cuvinte de cod:
ci = [xi1 xi 2 ... xik ] xik X ik
Codarea este stabilirea corespondentei:
sk S
ck C
Cod A
00
01
10
Cod B
0
10
110
Cod C
0
01
011
Cod D
0
10
110
11
1110
0111
111
c1
c1
c2 c3
c2
c4
c3
c4
1
c1
c1
c2
c2
1
c3
c3
1
C
c4
1
c4
4. Eficienta codarii:
Pentru eficienta codarii se optimizeaza canalul in functie
de un indicator de cost: durata medie de transmisie a
cuvantului de cod (cost mediu):
N
C = ti p (ci ) = ti p( si ) unde
i =1
C = li p( si ) = l
i =1
PS = [ p ( s1 ),..., p( s N )]
C = [c1 ,..., c N ]
p (ci ) = p ( si )
X = [x1 ,..., xD ]
PX = [ p ( x1 ),..., p(xD )]
Informatia medie pe simbol = informatia medie pe
cuvant de cod, este entropia sursei:
H ( S ) = H (C ) = [log p ( si )]p(si ) iar
N
i =1
i =1
H (S )
= lmin
log D
sau
H (S )
log D
l
[S ] = [s1 , s2 , s3 , s4 ]
[C ] = [c1 , c2 , c3 , c4 ]
[Ps ] = 1 , 1 , 1 , 1 = [Pc ]
2 4 8 8
[X ] = [1,0]
D=2
4
7
H (S ) 7
H ( S ) = p ( si ) log p ( si ) = ; lmin =
=
4
log D 4
i =1
codul A:
l = li p ( si ) = 2
l
7
= min = = 0,88
l
8
codul B:
l = li p ( s i ) =
lmin
=1
l
7
4
i =1
i =1
H ( S ) = p ( si ) log p ( si ) rezulta : li =
i =1
p ( si ) = p (ci ) = D li
log p ( si )
log D
si
si deoarece p ( si ) = 1 se obtine :
i =1
l
D =1
i
i =1
Coduri optimale
Daca
p ( si ) D
li
D li 1 rezultand inegalitatea
i =1
H (S n )
H (S n )
ln <
+ 1 sau
log D
log D
H (S )
H (S )
ln / n <
+ 1 / n sau pentru n
log D
log D
H (S )
ln
=
=l
lim
n log D min
n
Teorema I-a a lui Shannon poate fi formulata astfel:
o Oricand se poate gasi un procedeu de codare absolut
optimala a unei surse S astfel incat lungimea medie a
cuvintelor de cod sa tinda catre lmin si eficienta
codului catre 1;
o Oricand se poate gasi un procedeu de codare a unei
surse care sa apropie oricat de mult informatia medie
pe simbol H ( S ) / l de capacitatea codului log D
(codare absolut optimala).
In practica nu se poate ca n (numarul simbolurilor din
grup) ; deaceea ne multumim cu un procedeu de codare
care sa duca la o eficienta maxima, iar daca aceasta este
subunitara, mai mica decat cea care se obtine pentru n am
obtinut totusi o codare optimala. Adesea insa se se prefera din
motive de simplitate cazul n = 1
Procedee de codare optimala (compacta)
o Principii generale:
- Simbolurilor celor mai probabile ale sursei li se
aloca cuvintele de cod cele mai scurte;
- Lungimile li trebuie sa fie numere intregi;
- Lungimile cuvintelor de cod sa satisfaca
inegalitatea Mc Millan cat mai aproape de 1.
l = 2,75 = lmin = H ( S ); = 1; = 0
0 c1
1/2
1/8
Graful este:
0 1
c2 0
1,0
c3
1 1/8c
4
1
0
1
0
1/8 1
1/8
0
1
1/16
c5
c6
1/16
c7
c8
1/16
p(si)
0,45
0,30
0,15
0,10
partitii
0
1
0
1
0
1
ci
0
10
110
111
li
1
2
3
3
Se calculeaza:
H ( S ) = lmin = 1,782; l = 1,80; = 0,99
0,30
s2
0,25
s3
0,20
s4
0,10
s5
0,10
1 0,55
0
1
1
1 0,15
0,25
R2
R3
1,00
0,45
s6
0,05 0
R0
R1
R4
Cuvintele de cod:
c1 = 11; c2 = 10; c3 = 01; c4 = 001; c5 = 0001; c6 = 0000
Parametrii codarii:
H ( S ) = 2,3; l = 2,4; lmin = 2,3; = 0,96
Codare
canal
Codare
sursa
Canal
l
Decodare
canal
C
Introduce
redundanta
Decodare
sursa
Reduce
redundanta
0
1
0
0
1
1
1
0
si
multiplicare:
0
1
0
0
0
1
0
1
a2
a1
(1)
a3
a1
a2
(2)
(3)
v1
v'1
w'1
v '2
w'2
1
2
...
v1 1
v1 2
...
v 2 1
v2 2
...
... v s 1 1
... v s 1 2
...
...
Daca avem doua cuvinte vi si vj, prin definitie functia distanta este:
n
D( v i , v j ) = ( aik a jk )
k =1
p( v j / v i ' ) p i j
daca D( v i ' , v i ) < D( v i ' , v j ) j i atunci se poate decide pe
baza relatiei: p( v i / v i ' ) > p( v j / v i ' ) j i ca s-a transmis
vi daca s-a receptionat vi (decizie pe baza distantei minime sau
pe baza probabilitatii conditionate maxime)
D ( v ', v )
Regiuni de decizie
Se poate face o partitie a multimii W in submultimi disjuncteWi
in jurul punctelor vi Wi cu proprietatea ca toate punctele
vi ' Wi sunt mai aproape de punctul vi decat de oricare punct vj
pentru j i. Daca pentru un punct vi are loc relatia:
D( v i ' , v i ) < D( v i ' , v j ) j i ,
atunci
v i ' Wi
ec
1
vj
vj
vi
6. Cuvantul eroare
1
vi vj
ec
vj
Receptor
vi
vi
Erori
o Erori individuale: ele apar ca rezultat al unor perturbatii
accidentale mai scurte decat durata simbolului si
afecteaza in mod individual (izolat) fiecare simbol;
Probabilitatea de aparitie a unor r simboluri eronate intr-un
cuvant de n simboluri este data de o lege de distributie
binomiala de forma:
p (r ) = Cnr p r (1 p ) nr iar probabilitatea de aparitie a e r
erori este data de functia de repartitie corespunzatoare:
e
r =0
r =0
p(r)
2 4 6 8 10 12
VIII
...
...
...
...
H=
...
...
...
...
... ... ... . = .
...
...
... .... ... . .
qm1 qm 2 ... qmk am+ k am
de unde:
k
a j = q ji am+1
i =1
j = 1, m
] [
H T 0 rezulta
[h
1d
[h
i1
+... + h id
]
]
...
i1
... 0 sau:
id
...
h i
h i
h i1 = 1 , h i 2 = 2 , ... sau:
1
1
h1 h 2 ... h n
H =
care daca se introduce in prima relatie se obtine
1 1 ... 1
(tinand cont ca suma modulo 2 a unui numar par de simboluri 1 este nula) :
h i1 + ... + h i 2 p h i 2 p+1
relatie satisfacuta pentru orice valori ale
+ 1 0
0
h1 h 2 ... h n
0 h1 h 2 ... h n
sau
=
H =
H
1 1 1 ... 1
1 1 ... 1
Corectorul este:
z1
z=H v T=
z 2
Sau:
a 0
0 h1 h 2 ... h n a 1 0 + a 1 h1 + ... + a n h n z1
1 1 1 ... 1 ... = a + a + ... + a = z = z
1
n
0
2
a
n
Se considera ca matricile coloana hk din H indeplinesc conditiile
necesare pentru corectia unei erori; atunci decidem urmatoarele:
- z1= 0 si z2 = 0 unde z1 are m elemente: nu avem erori;
- z1 0 si z2 = 1: exista o eroare corectabila;
- z1= 0 si z2 = 1: a0 este eronat;
- z1 0 si z2 = 0: exista doua erori necorectabile.
Hv T = 0
H(iG )T = HG T i T = 0 i
HG T = 0 care este legatura intre cele doua matrici
Daca H = [ImQ] si G = [QTIk], relatia de legatura este satisfacuta:
Q
HGT = [ImQ] = [Q + Q] = 0
I k
Daca se noteaza P = QT, G = [PIk] avem:
v = iG = [PIk] = [iP i] = [ci] deci
c = iP sau
p11 p12 ... p1m
p
p22 ... p2 m
21
= [c1 ....cm ]
c = [im+1im+k]
.
.
.
.
c j = im +1 pij
i =1
i
iP
. . . . . .
H = [h1 h 2 ...h n ] =
0
0
0
.
.
.
0 1 1 . 1 .
1 0 1 . 0 1
unde se remarca: hi +hj 0 pentru orice i j.
Cuvantul eroare, cu o singura eroare, este:
= [i ];
Cuvantul receptionat este:
vj = vj + ;
Corectorul corespunzator este:
z = HvjT = HT sau:
.
.
z = [h1 h2 hi hm] i = h i adica corectorul este reprezentarea binara a
.
.
numarului i care indica pozitia in care exista o eroare. In acest caz decodarea
se reduce la o conversie de la binar la zecimal.
Codul Hamming care poate corecta toate erorile simple dar nu poate
corecta nici o eroare dubla, se numeste un cod perfect.
o Codarea codului Hamming
Pentru simplificare, cele m pozitii ale simbolurilor de control se aleg sa
corespunda coloanelor lui H cu o singura componenta diferita de zero:
pozitiile 20, 21, 22,,2m-1 restul pozitiilor se repartizeaza simbolurilor de
informatie (codul nu este sistematic). Daca se noteaza simbolurile de
control cu ci si cele de informatie cu ij, cuvantul de cod se scrie:
v = [c1 c2 i3 c4 i5 in] iar ci sunt date de relatia: HvT = 0 sau de :
c1
c
2
[h1 h2 hn] i3 = 0
.
.
in
sau:
0
0
0
1
.
.
.
.
c1 + c2 + i3 + ... + in = 0 relatie echivalenta cu m
.
1
1
.
1
0
1
1
ecuatii cu m necunoscute cu care se determina ci functie de ij:
c1 = i3 + i5 + ... + in
c2 = i3 + i6 + ... + in
c4 = i5 + i6 + ... + in
.
. . . . . .
H=
0 1 1 0 0 1 1 0 0
1 0 1 0 1 0 1 0 1
- Cuvantul de cod este:
v = [c1 c2 i3 c4 i5 i6 i7 c8 i9]
- Simbolurile de corectie sunt (din ecuatiile HvT = 0):
c8 = i9
c4 = i5 + i6 + i7
c2 = i3 + i6 + i7
c1 = i3 + i5 + i7 + i9
- Daca cuvantul eroare este:
= [0 1 0 0 0 0 0 0 0 ]
cuvantul receptionat este:
v = [c1 (c2 +1) i3 c4 i5 i6 i7 c8 i9]
corectorul este:
0
z4 = c1 + i3 + i5 + i7 + i9 = 0
0
z3 = (c2 + 1) + i3 + i6 + i7 = 1
z = h2 =
z2 = c4 + i5 + i6 + i7 = 0
1
z1 = c8 + i9 = 0
0
prin urmare trebuie sa se corecteaza pozitia 2.
m
1 0 1 0 1 0 1
v = [c1 c2 i3 c4 i5 i6 i7]
c1 = i3 + i5 + i7
c2 = i3 + i6 + i7
c4 = i5 + i6 + i7
z1 = c4 + i5 + i6 + i7
z2 = c2 + i3 + i6 + i7
z3 = c1 + i3 + i5 + i7
In schema alaturata se
da un codor pentru un
v
c2
c1
exemplul 2: RD este
c4
registrul de deplasare in
RD
care se inscriu ij si ci
i7
i6
i5
i3
calculate pe baza ij,
dupa care inscrierile se blocheaza si la iesire se emite v ca o succesiune i7, i6,
i5, c4, in ritmul de tact.
z1
z2
z3
v
v
c1
c2
i3
c4
i5
i6
i7
In schema de mai sus avem decodorul unde D este un convertor binarzecimal care corecteaza automat eroarea la pozitia decodificata din (z1,z2,z3 ).
IX 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
Proprietate2: 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+1an-1 a0 a1ai-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).
1. 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):
v( x ) c( x ) x mi( x )
iar ultimul termen se rescrie:
=
+
g ( x ) g( x ) g ( x )
x mi( x )
r( x )
unde r(x) este restul impartirii, polinom de grad
= q( x ) +
g( x )
g( x )
mai mic decat m. Ultima relatie se poate scrie si :
1
2
2
m
r( x ) x i( x )
+
= q( x ) sau r( x ) + x mi( x ) = q( x )g ( x ) de unde:
g( x ) g( x )
x mi( x )
c( x ) = r( x ) = rest
g( x )
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 0 g1 ... g m 0 ... 0
0 g ... g
0 ... 0
0
m
G = .
.
.
.
. .
.
.
.
.
.
.
.
.
0 ... 0 g 0 g1 ... g m
Unde coeficientii puterilor lui x absente au fost inlocuiti cu zero; cu
matricea generatoare G se poate face codarea cu relatia:
v=iG
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).
2. 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 poate3 arata ca relatia scalara de mai sus poate fi scrisa sub forma:
HvT = 0, relatie cu care se poate face codarea.
unde:
0 hk ...
h0
0 ...
0 ... 0 h
... ho 0
k
H = . . . .
. . . 0
0
.
.
.
.
.
.
.
hk ...
h0 0 ... 0 0
v = [a0 a1 an-1]
De asemenea se poate arata ca:
GHT = HGT
3
1 + x7
p( x ) 1 + x n
h( x ) =
=
=
= x 4 + x3 + x 2 + 1
2
3
g( x ) g( x ) 1 + x + x
deci matricile G ( kn) si H ( mn) vor fi:
1 0 1 1 0 0 0
0 1 0 1 1 0 0
G=
0 0 1 0 1 1 0
0 0 0 1 0 1 1
0 0 1 1 1 0 1
H = 0 1 1 1 0 1 0
1 1 1 0 1 0 0
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:
mesaj
0
1
2
3
15
i3
0
0
0
0
..
1
i4
0
0
0
0
..
1
i5
0
0
1
1
..
1
i6
0
1
0
1
..
1
c0
0
0
1
1
..
1
c1
0
1
1
0
..
1
c2
0
1
0
1
..
1
i3
0
0
0
0
..
1
i4
0
0
0
0
..
1
i5
0
0
1
1
..
1
i6
0
0
0
1
..
1
0 0 0
1 0 0 0
1 1 0 0
=
0 1 1 0
1 0 1 1
13
14
15
i3
0
0
0
0
..
1
1
1
i4
0
0
0
0
..
1
1
1
i5
0
0
1
1
..
0
1
1
i6
0
1
0
1
..
1
0
1
i3
0
0
0
0
..
1
1
1
i4
0
0
0
0
..
1
1
1
i3+i5
0
0
1
1
1
0
0
i3+i4+i6
0
1
0
1
1
1
1
i4+i5
0
0
1
1
1
0
0
i5+i6
0
1
1
0
1
1
0
i6
0
1
0
1
..
1
0
1
pentru codarea si
C0
g0 =1
Cm-2
C1
g1
g2
Cm-1
gm-2
gm =1
gm-1
gm=1
C0
g0 =1
Cm-2
C1
g1
g2
gm-2
Cm-1
gm-1
gm =1
0
2
g1
G
C0
g0 =1
g2
gm-2
Cm-2
C
g1
gm-1
g2
gm-2
gm=1
Cm-1
gm-1
gm =1
Y
u(x)
C0
g0=1
C2
C1
g2=1
g3=1
a) Pentru:
Reguli de calcul pentru succesiunea starilor:
7
6
5
2
u(x) = x +x +x +x
st C0 = U + st C2; st C1 = st C0;
4
2
y(x) = x +x
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:
tact IN (U)
C0
C1
C2
OUT (Y)
0
0
0
0
0
1
1
0
0
0
a7= 1
2
1
1
0
0
a6= 1
3
1
1
1
0
a5= 1
4
1
0
a4 = 0 1
1 ( x4)
5
1
1
a3 = 0 0
0 ( x3)
6
0
0
a2 = 0 1
1 ( x2)
7
1
0
a1 = 1 1
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 mi( x ) m
v( x ) = rest
+ x i( x )
g( x )
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):
U
C0
Cm-2
C1
g0 =1
g1
g2
Cm-1
gm-2
gm =1
gm-1
Cm-2
C1
g1
g2
Cm-1
gm-2
P2
P3
gm =1
gm-1
P1
1: k tacte
0: m tacte
C0
Cm-2
C1
g0 =1
g1
g2
Cm-1
gm-2
gm =1
gm-1
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:
V
C0
g0=1
C1
g1=0
C2
g2=1
P2
g3=1
P1
I
1: 4 tacte
0: 3 tacte
P3
C2 = I + C1
+C2;
C1 = C0;
C0 = I +C2
V = I pt.
Tact 1..4
V = C2 pt.
Tact 5..7
V
C0
g0 =1
C2
C1
g1 = 0
g2 =1
g3 =1
0
1
0
0 = C2
0 = C1
1 = C0
Regulile de
functionare:
C2 = C1 + C2
C1 = C0
C0 = I + C2
C0
0
1
0
0
1
1
1
1
C1
0
0
1
0
0
1
1
1
C2
0
0
0
1
1
1
0
1
Cm-1
gm= 1
gm-1
Cm-2
C2
C1
g1
g0
IN
S(i ) = 1
...
sm 1 (i )
unde sj (i) = starea celulei Cj la momentul i este variabila de stare a
circuitului.
Pentru regimul liber (intrare nula):
S(i +1) = TS(i )
unde T este matricea de tranzitie a circuitului (matricea caracteristica):
0
0 1 0 ...
0 0 1 ...
0
...
0
0
0
1
g 0 g1 g 2 ... g m 1
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:
U = [0 0 ...0 1]
vom avea succesiv, corespunzator tactului:
S(1) = S(0 ) + an 1U
T
gm= 1
Cm-2
gm-1
C0
C1
g1
g0
OUT
S(1) = TS(0) + an 1U
C2
1
(simboluri de control)
OUT
C1
C0
g1 = 1
g0 =1
(cuvant de cod v)
i(x ) = 1 + x ;
3
x 3i(x )
= x + x2;
c(x ) = rest
g (x )
v(x ) = x + x 2 + x 3 + x 6 ;
v = [0111001]
In tabelul urmator se prezinta evolutia starilor registrului de deplasare
cu reactie din exemplul 1:
K
tact
IN
C2
C1
C0
OUT
0
0
0
1 1
0
0
i3= 1 1
i3 = a 6 = 1
1 2
1
0
i2= 0 0
i2 = a 5 = 0
1 3
0
1
i1= 0 1
i1 = a 4 = 0
1 4
1
0
i0= 1 0
i0 = a 3 = 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]
rest
10
RP
Mn-1
Mn-2
M2
M0
M1
V
DC1
Cm-1
gm= 1
Cm-2
C0
C1
gm-1
g1
DC2
g0
Cm-1
K
Cm-2
C0
C1
gm= 1
gm-1
g1
g0
11
0
Q
Cm-1
1
Q
Cm-2
C0
Q
M0
P
validare
C1
C0
a0, a1, a2
I
K
1
12
x i( x ) x ( a3 + a4 x + a5 x + a x )
=
=
g ( x)
x3 + x + 1
3
c( x ) = rest
6 3
= ( a3 + a5 + a6 ) + ( a3 + a4 + a5 ) x + ( a4 + a5 + a6 ) x 2
Daca se egaleaza coeficientii cu cei ai expresiei:
c( x ) = a0 + a1 x + a2 x 2
rezulta:
a2 = a4 + a5 + a6
a1 = a3 + a4 + a5
a0 = a3 + a5 + a6
b) Decodarea
Se face cu circuitul din figura de mai jos (particularizat din circuitul
general pentru n = 7, k = 4, m = 3):
RP
M6
M5
M0
M1
M2
V
DC1
Cm-1
gm= 1
Cm-2
SI
(poa
0
rta
C2
C0
C1
gm-1
g1
g0 1
0
0
DC2
SI
Cm-1
K
Cm-2
C2
C0
C1
gm= 1
gm-1
g1
g0
13
XI.
Coduri convolutionale
Sunt caracterizate prin faptul ca, spre deosebire de codurile bloc, simbolurile
de informatie generate de sursa sunt prelucrate continuu; aici blocurile de
informatie sau control nu au semnificatia de cuvinte de cod: simbolurile de
control dintr-un bloc controleaza simbolurile de informatie si din alte
blocuri.
Constrangere (ordinul de memorie): se defineste prin numarul
blocurilor precedente in care se gasesc simbolurile de informatie
verificate prin simbolurile de control ale blocului considerat (si se
noteaza cu M);
Lungime de constrangere: se defineste prin numarul total de simboluri
informationale i care concura la calculul unui simbol de control (sau
unui simbol din cuvantul de cod) si se noteaza cu nC =k (M + 1);
numarul simbolurilor i memorate este kM;
Rata de codare (raportul dintre numarul de simboluri informationale si
lungimea unui bloc codat): R = k L / n(L+ M) , unde L este numarul de
blocuri considerate, din secventa de lungime finita codata.
Distanta de cod de ordinul N (minimul distantei Hamming, calculata
insa pe N blocuri): DN = min DH (viN, vjN)
Obs.:
a) Daca L >> M, R = k / n ca la codurile bloc;
b) Daca nu se lucreaza cu L mari, R < k / n si rata va fi mai mica
decat la codurile bloc, reflectand o redundanta relativ ridicata,
necesara insa in aplicatiile cu transmiterea datelor prin canale
perturbate (canal radio);
Coduri convolutionale* sistematice: Se considera, in succesiunea
continua de simboluri, un bloc de lungime n, constituit din k simboluri
de informatie si m simboluri de control;
Coduri convolutionale nesistematice: Se considera, in succesiunea
continua de simboluri, un bloc de lungime n, in care simbolurile de
informatie si cele de control nu sunt distincte, ambele se noteaza cu ui
si sunt simboluri ale cuvantului de cod; aici:
Constrangere (M): numarul blocurilor de n simboluri, care sunt legate
intre ele prin faptul ca un simbol de informatie oarecare, aparut la
Denumirea provine de la faptul ca simbolurile de control se obtin prin convolutia
numerica dintre secventa informationala i(x) si polinoamele generatoare gj(x)
*
intrare, este luat in consideratie la calculul a cel putin unul din cele n
simboluri ui ale fiecaruia din cele M blocuri.
1. Codarea
Exemplu: pentru un codor cu parametrii M = 2, k = 1, n = 2 rezulta M k
= 2, nC = 3, R = 1 / 2.
In schemele de mai jos se reprezinta codorul sistematic (a) si cel
nesistematic (b), corespunzatoare exemplului de mai sus:
I
1
C1
C2
C1
2
a)
V
Comuta
la T/2
C2
2
b)
Comuta
la T/2
sau C = (0111001)
Secventa codata este:
V = (| i0c0 | i1c1| ) = (00 11 11 01 10 00 01)
Simbolurile de control se determina cu relatia (termenul de ordinul 1 al
convolutiei, avand un singur sumator):
3
m
c p = i p i g i = i p g 0 + i p 1 g1 + ... + i p m g m
i =0
unde i p i = 0
p < i
c0 = i0 g 0 = 0
c1 = i1 g 0 + i0 g1 = 1
c2 = i2 g 0 + i1 g1 + i0 g 2 = 1
c3 = i3 g 0 + i2 g1 + i1 g 2 = 1
c4 = i4 g 0 + i3 g1 + i2 g 2 = 0
c5 = i5 g 0 + i4 g1 + i3 g 2 = 0
c6 = i6 g 0 + i5 g1 + i4 g 2 = 1
iar evolutia starilor se da in tabelul de mai jos:
tn
T
tn+1
i
C1
C2
tn
V
1 (i)
2 (c)
1
0
0
0
0
0
2
1
1
0
1
1
3
1
1
1
1
1
4
0
0
1
0
1
5
1
1
0
1
0
6
0
0
1
0
0
7
0
0
0
0
1
Obs.: la codurile sistematice cele k simboluri informationale se regasesc
nemodificate in cele n simboluri ale cuvantului de cod: prin comutatorul de
iesire se transmit direct la iesire aceste simboluri (vezi poz. 1 la schema din
exemplu)
b) la nesistematice (intalnite in majoritatea aplicatiile recente datorita
faptului ca la aceeasi rata de codare se pot corecta mai multe erori),
avem n m = 2 polinoame generatoare, dintre care cel putin unul de grad 2:
g(1) (x) = 1 +x2 si g(2)(x) = 1 + x + x2 sau 1+x
daca se aleg in mod corespunzator** g( j )(x), pentru nesistematic codarea este:
u (1) ( x) = i ( x) g (1) ( x) = ( x + x 2 + x 4 )(1 + x 2 ) = x + x 2 + x 3 + x 6
u ( 2) ( x) = i ( x) g ( 2) ( x) = ( x + x 2 + x 4 )(1 + x + x 2 ) = x + x 5 + x 6
se alege combinatia de g(1) (x) si g(2) (x) asa incat sa nu aiba factor comun modulo 2, in
caz contrar obtinandu-se erori catastrofice (un numar finit de erori la transmisie produc
un numar infinit de erori la decodare )
**
I (k bit)
1 2
2
k
1 2
M+1
k
1 2
n
2
1
V (n bit)
Comuta la T/n
1/11
1/11
10
0/00
1/10
00
0/00
1/01
00
11
1/10
0/00
1/10
10
1/00
0/01
11
a)
0/01
b)
0/11
0/01
01
01
0/10
t1
t2
00 00 00
11
11
10
00
01
11
11
t0
t1
t4
t5
00 00
11
11
01 01
00
00
10 10
11 01 11 01 11 01
10 10 10
t2
00 00 00
11
11
10
01
01
10
11
t3
00
11
01
00
10
t3
00
11
11
t4
00
11
11
01
Traseele
marcate
cu sageti
corespund
secventei i
= (01101)
t5
00
11
11
01
01
01
00 00 00
10 10 10 10 10 10
01
a)
01
b)
ci1ci2
00
11
01
11
10
11
00
M
(-1)(-1) + (-1)(- 1) = 2
( +1)(+1) + (+1)(+1) = 2
(- 1)(- 1) + (+1)(+1) = 2
(- 1 )(+1) +(-1)(+1) = - 2
(- 1 )(+1) +(+1)(-1) = - 2
(+1 )(+1) +(-1)(+1) = 0
(- 1 )(-1) +(+1)(-1) = 0
Observatie
Bitii pt. x si c corespund
10
00
01
10
11
t0
t1
t2
t3
t4
t5
Anexa A1
Continutul clasei
Elemente ale clasei
0 + multiplii lui p(x) p(x), xp(x), (1+x)p(x),
1 + multiplii lui p(x) 1+p(x),1+ xp(x),
1+(1+x)p(x),
x+ multiplii lui p(x) x+p(x),x+ xp(x),
x+(1+x)p(x),
1+ x+
1+x+p(x), 1+x+xp(x),
multiplii lui p(x)
1+x+(1+x)p(x),
n-1
1+ x ++x +
1+ x ++xn-1 +p(x), 1+ x
multiplii lui p(x)
++xn-1+ xp(x), 1+ x
++xn-1+ (1+x)p(x),
in general:
in general:
n-1
a0+a1x++an-1x
a0+a1x++an-1xn-1 +p(x),
+ multiplii lui p(x) a0+a1x++an-1xn-1 +xp(x),...
Denumirea clasei
0
1
X
1+ X
1+ X++Xn-1
in general:
a0+a1X++an-1 Xn-1
Anexa A1
3) Daca p(x) = xn +1, se poate arata ca produsul de forma h(X) v(X) intre
doua elemente ale claselor de resturi modulo p(x) se poate pune sub o
forma similara produsului scalar h , v :
h(X) = h0 +h1X +h2X2
v(X) = a0 +a1X +a2X2
h(X) v(X) = h0 a0 +( h0 a1+ h1 a0)X +( h0 a2+ h1 a1+ h2 a0)X2 +( h1 a2+
h2 a1)X3 + h2 a2X4
deoarece p(X) =X3 +1= 0 X3 = 1, X4 = X,
h(X) v(X) = h0 a0+ h1 a2+ h2 a1 +( h0 a1+ h1 a0 + h2 a2)X+( h0 a2+
h1 a1+ h2 a0)X2 = 0,
de unde:
h0 a0+ h1 a2+ h2 a1 = 0
h0 a1+ h1 a0+ h2 a2 = 0
h0 a2+ h1 a1+ h2 a0 = 0
Prima relatie este similara produsului scalar h , v = 0 in care toate
componentele unuia din vectori sunt scrise in ordine inversa. In plus,
urmatoarele doua relatii pun in evidenta din nou proprietatea de
ciclicitate deoarece orice permutare ciclica a coeficientilor conduce la
un produs scalar nul. In general, daca gradul lui h(x) este k si gradul lui
v(x) este n-1 cele m ecuatii corespunzatoare sunt, avand in vedere ca
din cele n ecuatii date de permutarile ciclice numai m =n k sunt
independente:
a0 a1 ...an 1 00...0hk ...h0 = 0
0
... 0
hk ... h2 h1 h0
sau, compact:
HvT = 0
h0 a0
0 a1
=0
... ...
0 a n 1
Anexa A2
Anexa A2
260 bit / 20 ms = 13 kbit/s
Clasa 1a
50 bit
Biti de paritate
CRC
Clasa 1b
132 bit
Clasa 2
78 bit
Biti nuli de
demarcatie
50
132
78
378
C1
C2
C3
C4
Anexa A2