Sunteți pe pagina 1din 23

3.

Detectarea i corectarea erorilor


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




= cuvnt de cod
k bii k bii m bii

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
Codor
mesaj Cuvnt de
cod

mesaj bii de control mesaj
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 probabilitatea unei erori
de decodare :


E(R)


: nu depinde de perturbaii
E(R)

C n teoria codurilor
R

E(R): exponentul erorii
e
P
( ) R nE
e
P

s 2
e
P
e
P
3.2 Coduri grup
Cuvnt n simboluri reprezentare vectorial


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

U : N = mulimea tuturor cuvintelor (structur de spaiu vectorial)
V : S = mulimea cuvintelor de cod (cu sens) (structur de spaiu vectorial)
U
F : mulimea cuvintelor fr sens
] ........ [
2 1 n
a a a = v
e
i
a
n
2
k
2
3.2.1 Distana Hamming
U funcia distan:



* sumarea parantezelor in corpul numerelor reale
Distana Hamming = numrul de poziii binare in care dou cuvinte difer

Detectare e erori

Corectare e erori
( ) ) ( ,
1
*
jk
n
k
ik j i
a a D +

=
=
v v
1
min
+ = e D
1 2
min
+ = e D
3.2.2. Mecanismul de detecie i de corecie a erorilor
Introducerea erorilor cuvntul eroare:
dac pe poziia i a aprut o eroare
dac nu apar erori



| | E
n
e = ;
2 1
c c c
0
1
=
i
c
* v v
Canal
perturbaii
{ }
| |
| |
{ } v v v
v
v
v v v v
+ = =
+ =
+ =
+ =

+ =
+ =
+ =

=
=
= + =

* *
*
* sau *
1
*
2
*
2 2
1
*
1 1
*
2 2
*
2
1 1
*
1
* *
2
*
1
2 1
O
O
n n n n n n
n
n
a a
a a
a a
a a
a a
a a
a a a
a a a
c
c
c
c
c
c

Detecia sau/i corecia erorilor


Detecie sau/i corecie
Z cu elemente (corectori): spaiul de corecie
corector: indic poziiile n care s-au introdus erori

Pentru
i
Detecia erorilor:
Corecia erorilor:
m
2
Z e z
{ } z v = * H
H
Z U
{ } 0 = e v v H V
{ } z = D
D
Z E { } z =
1
D
{ } 0 * = v H
{ }
{ }
{ } v v v
z
z v
= + =
=
=

* *
*
1
O
H
D
3.2.3. Codarea codurilor grup cu ajutorul matricei de
control H
H transformarea liniar

= + + +
= + + +
= + + +
m n mn m m
n n
n n
z a h a h a h
z a h a h a h
z a h a h a h
* *
2 2
*
1 1
2
*
2
*
2 22
*
1 21
1
*
1
*
2 12
*
1 11

Forma matriceal:
z Hv =
T
*
| | Q I H H
m
k
mk m m
k
k
m
mn m m
n
n
q q q
q q q
q q q
succesive
transf
h h h
h h h
h h h
=
(
(
(
(
(
(

=
(
(
(

2 1
2 22 21
1 12 11
2 1
2 22 21
1 12 11
1 0 0
0 1 0
0 0 1
.
Notaii:
(
(
(

=
(
(
(

=
mk m m
k
k
m
q q q
q q q
q q q
z
z
z

2 1
2 22 21
1 12 11
2
1
; Q z
Cuvnt de cod:

Codarea: determinarea simbolurilor de control n funcie de simbolurile de date.



Cod sistematic: simboluri de date = simboluri plasate la nceputul sau la sfritul
cuvntului de cod.
| | | |
| |
| |
n k m
a a a
a a a
a a a a
k m m m
m
k m m m
= +
=
=
= =
+ + +
+ +
date de simboluri :
control de simboluri :
2 1
2 1
1 1


d
c
d c v
| |
m j a q a
a
a
a
a
a
a
q q q
q q q
q q q
k
i
i m ji j
m k m
m
m
mk m m
k
k
T T
T T
T
T
m
T
, 1 ,
0 0
1
2 2
1
2 1
2 22 21
1 12 11
=

=
(
(
(
(

=
(
(
(
(

(
(
(
(

=
= + =
(

=
=
+
+
+
+

Qd c
Qd c
d
c
Q I Hv
Operatia de codare
3.2.4. Codarea codurilor grup cu ajutorul matricei
generatoare G
Matricea generatoare:
Determinarea matricei G : (*)
Relaia (*) : valabil pentru d
Se alege:


Notaie:

Codare:
dG v =
( ) 0 0 = = =
T T T T T
d HG d G H Hv
0 =
T
HG
| | | | | |
| | | |
| |
dP c
d c v
d dP I P d dG v
Q P
Q Q
I
Q
Q I HG I Q G
=
)
`

=
= = =
(
(
(
(

= =
= + =
(

= =
k
km k k
m
m
T
k
m
T
k
T
p p p
p p p
p p p

2 1
2 22 21
1 12 11
0
| | | | m j p a a
p p p
p p p
p p p
a a a a a a
k
i
ij i m j
km k k
m
m
k m m m m
, 1 ,
1
2 1
2 22 21
1 12 11
2 1 2 1
=

=
(
(
(
(

=
=
+ + + +


3.2.5 Formarea corectorilor


Corectorul

c*: matricea simbolurilor de control recepionate

d*: matricea simbolurilor de date recepionate


= simboluri de control codificarea simbolurilor de date recepionate

| |
(

= = =
P
I
d c H v z Hv z
m T T T
* * *
*
| | | | * *
1
c c P d c z + = + = * *
T
*
1
c
3.2.6 Relaii ntre numrul simbolurilor de control si
numrul simbolurilor de date

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

: numrul corectorilor
: numrul erorilor (inclusiv eroarea nul)

lim. inferioar Hamming

Ex.: e=1 n+1= m+k+1
min
m
m
2
e
n n n
C C C + + + ....
1 0
>
m
2

>
=
e
i
i
n
m
C
0
2
3.2.7 Tabele de decodare
Subgrupul Vclase alturate
- prima clas : v V ncepnd cu elementul nul
- a doua clas : primul element ; nr. minim de 1
restul elementelor:
.
}-cuvinte de cod
toate cuvintele din U
-cuvinte fr sens

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
[0010] [1101]
[0100] [1011]
[1000] [0111]
[0011] [1100]
[0101] [1010]
[1001] [0110]
e
F e
1

1 , 1 ;
1
= e + S i U
i
v
1 2 2 2 1 2 2
1 1 2 1 1 1 1
1 2 1
....
....
.... 0

+ + +
+ + +
S
S
S
v v v
v v v
v v v
3.2.8 Codul Hamming grup corector de o eroare





exprim n binar poziia i
un singur 1 pe poziia i
Corectorul : expresia binar a numrului i
Decodare : conversie binar/zecimal
Codare :
-simbolurile de control: poziii care se exprim prin puteri ale lui 2


,unde

v v + = *
| |
(
(
(
(
(
(

= =
1 ... 1 0 1
1 ... 1 1 0
1 ... 0 0 0
... ... ... ... ...
1 ... 0 0 0
.....
3 2 1 n
h h h h H
i
h
( )
i
T T T
h H v H Hv z = = + = = *
| |
n
d d c d c c ....
5 4 3 2 1
= v
| || | 0 .... .... 0
3 2 1 2 1
= =
T
n n
T
d d c c h h h Hv
0
1
1
1
1
......
1
1
0
0
0
1
0
0
1
0
0
0
3 2 1
=
(
(
(
(
(
(

+ +
(
(
(
(
(
(

+
(
(
(
(
(
(

+
(
(
(
(
(
(


n
d d c c
.... .......... .......... ..........
...
...
6 3 2
5 3 1
n
n
d d d c
d d d c
+ + + =
+ + + =


Decodare:
| || |
T
n n
m
T
d d c c
z
z
z
* *
3
*
2
*
1 2 1
2
1
... ... * h h h Hv z =
(
(
(
(

.... .......... .......... .......... ..........


...
...
: unde
* *
6
*
3
*
2 1
* *
5
*
3
*
1
n m
n m
d d d c z
d d d c z
+ + + + =
+ + + + =

Operatia de decodare
3.3. Coduri cu redundan ciclic
(cycle redundancy code CRC)
Coduri polinomiale:
Subspaiu ciclic dac se obine din prin k permutri
ciclice:
Dac : atunci:

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 (x
n
+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
| |
1
1 0 1 1 0
) ( ...


+ + + = =
n
n n
x a ax a x v a a a v
cU V V V e e ' v v
1 1 < < n k
| | e =

V a a a
n 1 1 0 0
... v
| |
| | V a a a
V a a a
n
n n
e =
e =


0 2 1 1
2 0 1 1
...
...
v
v
3.3.1. Codarea cuvintelor de cod cu elemente n idealul
generat de g(x) de grad m
Polinomul simbolurilor de date:
Polinomul simbolurilor de control:
Polinomul generator:






r(x): restul mpririi grd r (x) s m-1
) 1 ( ) (
) (
) (
1
1 1 0
1
1 1 0
1
1 1
= + + + + =
+ + + =
+ + + =

+ +
m
m m
m
m
m
k
k m m m
g x x g x g g x g
x a x a a x c
x a x a a x d

) (
) (
rest ) ( ) (
) ( ) ( ) ( ) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
sistematic cod ) (
ic nesistemat cod ) ( ) ( ) (
x g
x d x
x r x c
V x g x q x d x x r
x q
x g
x d x
x g
x r
x g
x r
x q
x g
x d x
x d x c(x) v(x)
x g x d x v
m
m
m m
m
= =
e = +
= + + =
+ =
=
Algoritm de codificare

1. Simboluri de date
2. Polinomul generator
- dintre divizorii lui x
n
+1

3. x
m
d(x) se deplaseaz la dreapta m poziii d(x) ( se nscriu zerouri n
primele m poziii)
4. simbolurile de control
5.
m m
m
k
k m m m
x x g x g g x g
x a x a a x d
+ + + + =
+ + + =

+ +
1
1 1 0
1
1 1
) (
) (

s = = 1 ) ( grad ;
) (
) (
rest ) ( ) ( m x r
x g
x d x
x r x c
m
) ( ) ( ) ( x d x x c x v
m
+ =
3.3.2. Decodarea codurilor ciclice

Cortectorul (paragraful 3.2.5)
) ( ) ( ) ( ) ( ) (
* *
x x v x v x x v c c + =
) ( ) ( ) (
*
1
*
x c x c x z + =
) (
) (
rest ) (
) (
) (
rest ) (
) (
) ( ) (
rest ) (
1 ) ( grd
) (
) (
rest ) ( ) (
) (
) (
rest ) (
*
* *
*
*
*
*
*
1
x g
x
x z
x g
x v
x z
x g
x d x x c
x z
m m x c
x g
x d x
x c x z
x g
x d x
x c
m
m
m
c
= =
+
=

< =
+ =
=
Tipuri de erori ce pot fi detectate

Tipuri de erori
Recepie:
- eroare pe un singur bit: : 2 sau mai muli termeni
- dou erori izolate pe un bit:
- g(x) nu este divizibil prin x
- g(x) nu este divizibil prin
Ex.: nu se divide prin
- nr. impar de bii eronai: Ex.
- nu exist nici un polinom cu nr. impar de termeni divizibil prin x + 1
g(x): factor pe (x + 1)

) ( ) ( ) ( ) (
*
x g x x g x v c
j i x x x
x g x x
j i
i
> + =
=
) (
) ( ) (
c
c
) 1 ( ) ( + =
j i i
x x x c
) ( 1 j i k x
k
s +
32768 pentru 1 < + k x
k
1 ) (
14 15
+ + = x x x g
1 ) (
2 5
+ + = x x x c
Polinoame generatoare
Polinoame standarde internaionale:






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







) 8 ( 1 ) (
) 8 ( 1 ) ( 16
) 6 ( 1 ) ( 12
5 12 16
2 15 16
2 3 11 12
= + + + =
= + + + =
= + + + + + =
k x x x x g CCITT CRC
k x x x x g CRC
k x x x x x x g CRC
3.3.3 Circuite pentru codare si decodare
Circuit pentru codare
g(x)= x
4
+ x
3
+ 1

Circuit pentru decodare
g(x)= x
4
+ x
3
+ 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)

S-ar putea să vă placă și