Sunteți pe pagina 1din 5

CURS 2

2.3. Coduri detectoare i corectoare de erori



n fluxul prelucrrii automate a datelor, operaia de transfer a informaiilor
prin intermediul unui canal de comunicaie este extrem de frecvent. Cu ocazia
transfer de informaie, la nivelul canalului de comunicaie pot apare perturbaii.
Pentru a nu se altera coninutul informaional este necesar protejarea informaiilor
mpotriva acestor perturbaii. Procedura presupune adugarea unor informaii
suplimentare, necesare n primul rnd detectrii erorilor i ulterior corectrii
acestora.

2.3.1. Coduri pentru controlul paritii

Una din modalitile practice cel mai frecvent utilizate n detectarea erorilor
este reprezentat de codurile pentru controlul paritii. La emisia unei secvene
binare de n bii se ataeaz o cifr binar suplimentar, numit cifr de control,
astfel nct:

- n cazul paritii pare, numrul poziiilor binare din ir care au valoarea 1 s
fie par (inclusiv cifra de control)
- n cazul paritii impare, numrul poziiilor binare din ir (inclusiv cifra de
control) care au valoarea 1 s fie impar

Exemplu:

Paritatea simpl par:

1 0 0 1 0 0 1 1 par
bitul de control

La recepia unui caracter se efectueaz suma cifrelor binare care au fost
primite. Dac aceast sum respect convenia de paritate stabilit, mesajul este
considerat corect recepionat. n caz contrar se semnaleaz eroarea, solicitndu-se
reluarea transmisiei. Acest tip de cod este implementat de regul hardware la
nivelul dispozitivelor fizice ale sistemului de calcul. El are dou forme de
reprezentare:

VRC control de paritate vertical
LRC control de paritate orizontal (longitudinal)

n anumite situaii, simpla detectare a erorilor este ineficient. n vederea
eliminrii, fie i numai pariale, a acestui neajuns, au fost proiectate coduri care, pe
lng detectarea erorilor, ofer i posibilitatea corectrii cifrelor binare eronate.
Unul dintre cele mai semnificative sisteme de coduri din aceast categorie este
codul de paritate ncruciat.
La codurile de paritate ncruciat succesiunea de cifre binare care se
transmit se divide ntr-un numr de secvene binare de aceeai lungime n, astfel
nct succesiunea va fi format dintr-un numr variabil de linii i un numr fix de
coloane. La emisie fiecrei linii i fiecrei coloane i se va ataa o cifr de control
de paritate. Practic se aplic LRC pentru linii i VRC pentru coloane. La recepie,
prin controlul paritii, pe fiecare linie i coloan se detecteaz eventualele erori,
avnd posibilitatea de a corecta o singur eroare detectat la intersecia liniei i a
coloanei care nu respect paritatea stabilit.

Exemplu:

Paritatea ncruciat par:

1 0 0 1 0 0 1
1 1 0 1 0 1 1
1 0 0 0 1 0 0
1 LRC
1
0
1 1 0 0 1 1 0 0
VRC


2.3.2. Coduri Hamming

Codurile Hamming sunt coduri de grup la care fiecare cuvnt de cod de n
bii conine m bii informaionali i k = n-m bii de control, eficiena maxim a
acestor coduri fiind obinuta n situaia n care n = 2
k
-1.
Biii de control sunt determinai in funcie de biii informaionali prin relaii
de condiie care asigur paritatea prin suma modulo 2.

Codurile Hamming pot fi:

- sistematice, situaie n care primii m bii sunt informaionali, iar urmtorii k=n-m
sunt bii de control;
- ponderate, n cazul n care biii de control apar pe poziii care reprezint puteri
ale lui 2: 1,2,4

Generarea codului se poate face prin dou metode:

- direct din relaiile de condiie care furnizeaz biii de control i apoi i insereaz
n poziiile corespunztoare din cuvntul de cod;
- prin metode matriceale, mai ales pentru coduri cu cuvinte de cod lungi.

Se propune studiul detaliat al codului Hamming de tip (7, 4) (n=7, m=3).

Se consider cuvntul de 7 bii u = a
1
a
2
a
3
a
4
a
5
a
7
i cuvntul recepionat u' =
a
1
'a
2
'a
3
'a
4
'a
5
'a
7
' .

Erorile singulare care pot s apar la recepie, n care e
1
, e
2
, e
3
sunt
simbolurile pentru cei trei bii de test (corespunztori celor 8 erori posibile), sunt
prezentate n tabelul care urmeaz:

eroare asupra e
3
e
2
e
1

nici unei cifre 0 0 0
a
1
' 0 0 1
a
2
' 0 1 0
a
3
' 0 1 1
a
4
' 1 0 0
a
5
' 1 0 1
a
6
' 1 1 0
a
7
' 1 1 1

Din examinarea tabelului rezult condiiile ca e
1
, e
2
, e
3
s aib valoarea 1:

e
1
= a
1
' + a
3
' + a
5
' + a
7
'
e
2
= a
2
' + a
3
' + a
6
' + a
7
' (1)
e
3
= a
4
' + a
5
' + a
6
' + a
7
'

Pentru a determina biii de control a
5
, a
6
, a
7
n funcie de biii informaionali, este
suficient s punem condiia de nonexisten a erorii, anume:

a
1
'= a
i
, i = 17 (2)

i deci e
1
= e
2
, astfel nct se obin urmtoarele relaii ;

a
1
+ a
3
+ a
5
+ a
7
= 0
a
2
+ a
3
+ a
6
+ a
7
= 0 (3)
a
4
+ a
5
+ a
6
+ a
7
= 0

care genereaz condiiile:

a
5
= a
2
+ a
3
+ a
4

a
6
= a
3
+ a
6
+ a
7
(4)
a
7
= a
1
+ a
2
+ a
4


n cazul n care codurile Hamming se scriu n form ponderat, adic n forma n
care biii de control ocup poziiile corespunztoare puterilor cresctoare ale lui 2:
a
1
, a
2
, a
4
,, relaiile de control devin:

a
1
= a
3
+ a
5
+ a
7

a
2
= a
3
+ a
6
+ a
7
(5)
a
4
= a
5
+ a
6
+ a
7


Condiiile de control pot fi scrise i sub form matriceal i anume:

| | | |
(
(
(
(

=
1 1 1
0 1 1
1 0 1
1 1 0
a a a a a a a
4 3 2 1 7 6 5
(6)

sau

< t > = < s >I
m
.
k
, (7)

cu < t > : matricea de test
< s > : matricea biilor infomaionali.
De regul, se genereaz direct din combinaiile de cod:

| | | |
(
(
(
(

=
1 1 1
0 1 1
1 0 1
1 1 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
a a a a a a a a a a a
4 3 2 1 7 6 5 4 3 2 1
(8)

sau

< u > = < s >G
4 x 7
= < s >[ I
4 x 4
I
4 x 3
], (9)

cu G
4 x 7
: matrice generatoare de cod

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