You are on page 1of 23

3.

Detectarea i corectarea erorilor


STD erori datorate canalelor cu perturbaii
Detectarea si corectarea erorilor se adaug o anumit redundan
mesaj

mesaj
k bii

Codor

Cuvnt de
cod

mesaj
k bii

bii de control
m bii

= cuvnt de cod

k : simboluri de date
m: simboluri de control
n : lungimea cuvntului de cod
Coduri bloc: prelucrarea pentru detecie sau corecie in blocuri de n simboluri
- coduri grup : cuvintele = elemente intr-un spaiu vectorial
- coduri ciclice: cuvintele = elemente intr-o algebr
Coduri convoluionale: prelucrarea continu a simbolurilor

3.1 Teorema lui Shannon pentru canale cu perturbaii

Surs de date cu un debit R bps


Canal cu capacitatea C bps
Dac R<C exist un cod avand cuvinte de lungime n
de decodare Pe :

probabilitatea unei erori

Pe 2nE R

E(R)

Pe

: nu depinde de perturbaii
E(R)

Pe

n
R

E(R): exponentul erorii

teoria codurilor

3.2 Coduri grup


Cuvnt n simboluri reprezentare vectorial
v [a1a2 ........an ]

Coduri binare ai GF(2)


Reguli de operare in GF(2):
adunare modulo 2
+ 0 1
0 0 1
1 1 0

multiplicare
0 1
0 0 0
1 0 1

U : N = 2 n mulimea tuturor cuvintelor (structur de spaiu vectorial)


V : S = 2 k mulimea cuvintelor de cod (cu sens) (structur de spaiu vectorial)
U
F : mulimea cuvintelor fr sens

3.2.1 Distana Hamming


U funcia distan:

Dvi , v j * (aik a jk )
n

k 1

* sumarea parantezelor in corpul numerelor reale


Distana Hamming = numrul de poziii binare in care dou cuvinte difer
Detectare e erori Dmin e 1
Corectare e erori Dmin 2e 1

3.2.2. Mecanismul de detecie i de corecie a erorilor

Introducerea erorilor cuvntul eroare: 1 2 n ;

1 dac pe poziia i a aprut o eroare


i
0 dac nu apar erori

perturbaii
v

Ov v * sau

Canal v *
v v*

v a1 a2 an
v* a1* a2* an*

a1* a1 1
a2* a2 2

a1 a1* 1
a2 a2* 2

an* an n

an an* n

v O 1v * v *

Detecia sau/i corecia erorilor

Detecie sau/i corecie

Z cu 2m elemente (corectori): spaiul de corecie


z Z corector: indic poziiile n care s-au introdus erori

U Z H v * z
H

Pentru
D

v V H v 0

E Z D z i D 1 z
Detecia erorilor: H v * 0
Corecia erorilor: H v * z
D z

O 1v * v * v

3.2.3. Codarea codurilor grup cu ajutorul matricei de


control H
H transformarea liniar h11a1* h12a2* h1nan* z1

h21a1* h22a2* h2n an* z2


h a* h a* h a* z
m1 1 m 2 2
mn n
m

T
Forma matriceal: Hv * z

h11 h12

H h21 h22

h
m1 hm 2

Notaii:

1 0 0
h1n
transf .
0 1 0
h2n
succesive H

0 0 1
hmn

z1
q11 q12
z2

z ; Q q21 q22

qm1 qm2
zm

q1k
q2k

qmk

q11 q12 q1k


q21 q22 q2k I

m Q


qm1 qm 2 qmk

Operatia de codare
Cuvnt de cod: v a1 am am1 am k c d
c a1 a2 am : simboluri de control

d am1 am 2 am k : simboluri de date

mk n

Codarea: determinarea simbolurilor


de control n funcie de simbolurile de date.
T

c
Hv T 0 I m Q T cT QdT 0
d
q11 q12 q1k am1 a
q
k
q22 q2k am 2 a2
21
T
T

c Qd

a j q jiami ,
j 1, m

i 1


qm1 qm 2 qmk am k am

Cod sistematic: simboluri de date = simboluri plasate la nceputul sau la sfritul


cuvntului de cod.

3.2.4. Codarea codurilor grup cu ajutorul matricei


generatoare G
Matricea generatoare: v dG

Determinarea matricei G : HvT 0 H GT dT HG T dT 0

(*)

Relaia (*) : valabil pentru d HG T 0


Q
Se alege: G QT I k HG T I m Q Q Q 0
I k

p11
p
T
P Q 21
Notaie:

pk1
Codare:

a1

p12
p22

pk 2

p1m
p2 m

pkm

v dG dP I k dP
v c d

a2 am am1 am 2

d
c dP

p11 p12
p
p22
am k 21

pk1 pk 2

p1m
k
p2m
a j ami pij , j 1, m

i 1

pkm

3.2.5 Formarea corectorilor

Corectorul

z Hv

*T

I m
z v * H c * d *
P
T

c*: matricea simbolurilor de control recepionate

d*: matricea simbolurilor de date recepionate

zT c* d*P c * c1 *
c1 * = simboluri de control codificarea simbolurilor de date recepionate

3.2.6 Relaii ntre numrul simbolurilor de control si


numrul simbolurilor de date
k sursa de mesaje
m numrul simbolurilor de date
mmin pentru a corecta e erori limita inferioar Hamming

2m : numrul corectorilor
Cn0 Cn1 .... Cne : numrul erorilor (inclusiv eroarea nul)

2 Cni
m

i 0

Ex.: e=1 2m n+1= m+k+1

lim. inferioar Hamming

3.2.7 Tabele de decodare


Subgrupul Vclase alturate
- prima clas : v V ncepnd cu elementul nul
- a doua clas : primul element 1 F ; nr. minim de 1
restul elementelor: v i 1 U ; i 1, S 1
.
}-cuvinte de cod
0
v1
v2
....
v S 1
1

1 v1

[0010]
[0100]
[1000]
[0011]
[0101]
[1001]

[1101]
[1011]
[0111]
[1100]
[1010]
[0110]

1 v 2

.... 1 v S 1

toate cuvintele din U

-cuvinte fr sens
2 2 v1 2 v 2 .... 2 v S 1

Decodere v* : se determin coloana primul element al coloanei = cuvntul de cod


Ex.: n=4, k=1 : cuvinte de cod [0000], [1111]
[0000] [1111]
Obs.- se poate corecta o eroare simpl si cateva erori
[0001] [1110]
duble

3.2.8 Codul Hamming grup corector de o eroare

H h1 h 2 h3

0
...

..... h n 0

0
1

0
...
0
1
0

0 ... 1
... ... ...

0 ... 1

1 ... 1
1 ... 1

hi exprim n binar poziia i


T
un singur 1 pe poziia i z Hv *T Hv HT hi
Corectorul : expresia binar a numrului i
Decodare : conversie binar/zecimal v v *
v c1 c2 d3 c4 d5 .... dn
Codare :
-simbolurile de control: poziii care se exprim prin puteri ale lui 2
HvT 0 h1 h2 .... hn c1 c2 d3 .... dn T 0
0
0
0
1

c1 0 c2 0 d3 0 ...... d n 1 0


0
1
1



1
1
0
1
1

,unde

c1 d3 d5 ... d n
c2 d3 d6 ... d n
.......... .......... .......... ....

Operatia de decodare
Decodare:
z Hv *T

z1
z
2 h1

zm

unde :
z m c1* d 3* d 5* ... d n*
z m 1 c2* d 3* d 6* ... d n*
............................................

h2

...

h n c1*

*
c2

d3*

...

d n*

3.3.

Coduri cu redundan ciclic


(cycle redundancy code CRC)

Coduri polinomiale: v a0 a1 ... an1 v( x) a0 ax an1xn1

Subspaiu V U ciclic dac v V se obine din v'V prin k permutri


ciclice: 1 k n 1
Dac : v0 a0 a1 ... an1V atunci: v1 an1 a0 ... an2 V

v n1 a1 a2 ... a0 V
Cod numai cu secvene ciclice cod ciclic
Peterson: cod ciclic reprezentat prin polinoame de grad = n-1 ideal n
algebra claselor de resturi de polinoame modulo (xn +1)
Ideal de polinoame: submulime a unui inel de polinoame multiplii unui
polinom generator g(x)
Cod polinomial-ciclic: o mulime de secvene reprezentate sub form polinomial
ce se divid toate prin acelai polinom

3.3.1. Codarea cuvintelor de cod cu elemente n idealul


generat de g(x) de grad m
Polinomul simbolurilor de date:

d ( x) am am1x am k 1x k 1

Polinomul simbolurilor de control:

c( x) a0 a1x am1x m1

Polinomul generator:

g ( x) g0 g1x g m1x m1 x m

v( x) d ( x) g ( x) cod nesistematic

v(x) c(x) x m d ( x) cod sistematic


x m d ( x)
r ( x)
r ( x) x m d ( x)
q( x)

q( x)
g ( x)
g ( x)
g ( x)
g ( x)
r ( x) x m d ( x) q ( x) g ( x) V
r(x): restul mpririi grd r (x) m-1

x m d ( x)
c( x) r ( x) rest
g ( x)

( g m 1)

Algoritm de codificare

1.

Simboluri de date

d ( x) am am1x am k 1x k 1

2.

Polinomul generator

g ( x) g0 g1x g m1x m1 x m

- dintre divizorii lui xn +1


3.

xmd(x) se deplaseaz la dreapta m poziii d(x) ( se nscriu zerouri n


primele m poziii)

4.
5.

x m d ( x)
c( x) r ( x) rest
; grad r ( x) m 1 simbolurile de control
g ( x)
v( x) c( x) x m d ( x)

3.3.2. Decodarea codurilor ciclice


v* ( x) ( x) v( x) v* ( x) ( x)
Cortectorul (paragraful 3.2.5) z ( x) c* ( x) c1* ( x)
x m d * ( x)
c ( x) rest
g ( x)
*
1

x m d * ( x)
z ( x) c ( x) rest
c* ( x) x m d * ( x)

g ( x) z ( x) rest
g ( x)

grd c* ( x) m 1 m

v* ( x)
( x)
z ( x) rest
z ( x) rest
g ( x)
g ( x)
*

Tipuri de erori ce pot fi detectate

Tipuri de erori

Recepie: v* ( x) g ( x) ( x) g ( x)
- eroare pe un singur bit:

( x) xi g ( x) : 2 sau mai muli termeni

- dou erori izolate pe un bit:

( x) xi x j i j

( x) xi ( xi j 1) - g(x) nu este divizibil prin x


- g(x) nu este divizibil prin x k 1 (k i j )
Ex.: g ( x ) x15 x14 1 nu se divide prin x k 1 pentru k 32768
- nr. impar de bii eronai: Ex. ( x ) x5 x 2 1
- nu exist nici un polinom cu nr. impar de termeni divizibil prin x + 1
g(x): factor pe (x + 1)

Polinoame generatoare

Polinoame standarde internaionale:

CRC 12

g ( x) x12 x11 x3 x 2 x 1 (k 6)

CRC 16

g ( x) x16 x15 x 2 1

(k 8)

CRC CCITT g ( x) x16 x12 x5 1

(k 8)

x+1: factor prim


CRC-16 si CRC-CCITT:
- toate erorile singulare si duble
- erorile cu numar impar de biti
- erorile in rafale de lungime < 16 biti

3.3.3 Circuite pentru codare si decodare

g(x)= x4 + x3 + 1

Circuit pentru codare

Circuit pentru decodare

g(x)= x4 + x3 + 1

3.3.4 Metoda bitului de paritate

Bitul de paritate: numarul de biti 1 din cuvantul de


cod este par (even) sau impar (odd) (5)

You might also like