Sunteți pe pagina 1din 11

Capitolul 5

Coduri grup - coduri Hamming


5.1 Breviar teoretic

Dac capitolul precedent s-a pus problema codrii surselor pentru ecientiezarea unei transmia n a siuni ce se presupunea a nu perturbat de erori, de aceast dat ne adresm unei transmisiuni a a a a conditii de zgomot, cnd mesajul transmis este modicat de erori. Cerinta este s se genereze n a a coduri capabile s detecteze i corecteze erorile aprute pe parcurs. a s a Operatii cu elemente ale multimii {0, 1} Simbolurile ce intr discutie nu pot lua dect a n a valori de 0 sau 1. Operatiile obinuite acest caz se desfoar conform tabelelor: s n as a + 0 1 0 0 1 1 1 0 Tabela 5.1: Adunarea elementelor multimii {0, 1}. 0 1

0 0 0

1 0 1 Tabela 5.2: Inmultirea elementelor multimii {0, 1}.

Distanta Hamming Distanta Hamming ntre dou cuvinte este egal cu numrul pozitiilor a a a care cele dou cuvinte difer. De exemplu: n a a distanta Hamming ntre 0010101 i 1010101 este 1 s ntruct difer doar simbolul de pe a a prima pozitie. distanta Hamming ntre 0010101 i 0000000 este 3 s ntruct difer simbolurile de pe pozitile a a 3, 5 i 7. s 47

48

CAPITOLUL 5. CODURI GRUP - CODURI HAMMING

Erori. Detectie i corectie Dac v este un cuvnt (vector de simboluri) de cod valid, cuvnt s a a a care este transmis pe un canal cu perturbatii, iar este vectorul perturbator, atunci v = v + este cuvntul receptionat. Dac perturbarea a fost cu o singur eroare, atunci cuvntul eroare a a a a va avea un singur 1, pe poztia modicat i rest 0. a s n Distanta Hamming ntre cuvntul transmis i cuvntul receptionat este 1 (i este egal cu a s a s a numrul erorilor introduse. Dac toate combinatiile posibile cu k biti sunt considerate cuvinte, a a atunci distant minim a a ntre cuvinte este 1. acest caz cnd toate combinatiile posibile ale simbolurilor de informatie sunt cuvinte de In a cod, iar timpul transmisiunii apare o eroare atunci cuvntul receptionat va tot un cuvnt cu n a a sens dei este greit. De aceea dac se dorete detectia erorilor cuvintele de cod trebuie spatiate s s a s (crescut distant a a ntre ele). Acest lucru se realizeaz prin adugarea simbolurilor de control. a a Acestea sunt numr de m, iar lungimea unui cuvnt de cod este: n = k + m. Simbolurile de n a a control vor combinatii ale simbolurilor de informatie care vor transmise astfel de mai multe ori, crescndu-se redundanta. a a ntre dou cuvinte de cod trebuie s e dmin = a a Pentru detectie a ed erori, distanta minim n a a ed + 1; acest mod, orice cuvnt cu sens, ce ulterior va eronat, va plasat la o distant s a a maxim ed i va conduce la un cuvnt fra sens. a Pentru corectie distanta trebuie mrit. Dac se dorete un cod cabapil s corecteze ec erori a a a s a n a aa atunci distanta minim trebuie s e dmin = 2ec + 1; acest fel, ind dat un cuvnt fr sens, a a se poate identica i cuvntul cu sens din care a provenit. s a Identicarea erorii se face cu ajutorul simbolurilor de control. Dac un cod este capabil s a a corecteze 1 eroare, aceasta poate pe oricare din cele n pozitii ale cuvntului de cod. Pentru 2 a erori, acestea pot orice combintie de n luate cte 2. Generaliznd, dac sunt ec erori atunci n a a a a ec i . Avnd m simboluri de control numrul cuvintelor construibile a a cazurile posibile sunt i=1 Cn m . Dac retinem o pozitie pentru cuvntul corect iar restul sunt folosite pentru a a cu acestea sunt 2 identicarea erorilor atunci putem scrie relatia cunoscut ca marginea Hamming: a
ec

2m 1
i=1

i Cn

(5.1)

Codarea Codarea presupune constructia cuvntului de cod pornind de la simbolurile de a informatie. Exist dou variante de codare: a a 1. Codarea v = iG, unde v este vectorul asociat cuvntului de cod, i este vectorul asociat a cuvntului de informatie, iar G este matricea generatoare. Aceasta are k linii i n coloane. a s Dac g1 , g2 , . . . gk sunt liniile matricei G, iar i1 , i2 , . . . ik sunt simbolurile de informatie a atunci relatia de codare se poate rescrie astfel: v = i1 g1 + i2 g2 + . . . ik gk (5.2)

De aici rezult c cuvintele de cod sunt toate combinatiile liniare ale liniilor matricei a a generatoare. s a 2. Codarea Hv T = 0, unde H este o matrice de m linii i n coloane ce este denumit matrice de control. Pentru aarea relatiilor de codare, acest caz, se vor plasa simboluri de n control pe pozitiile corespunztoare coloanelor matricei H avnd un singur 1, i se va a a s rezolva sistemul rezultant, avnd drept necunoscute simbolurile de control. a

5.2. Probleme rezolvate

49

a Decodarea. Corect erorilor Decodarea se face pe baza relatiei Hv T = 0. Dac v este a un cuvnt cu sens (cuvnt nealterat de erori) atunci a a nmultindul cu cu H se va obtine 0. Dac a acest caz, dac circuitul functioneaz regim: rezultatul este nenul atunci sunt erori. In a a n 1. detectie atunci se va semnala existenta unor erori. 2. corectie atunci se vor corecta erorile Pentru corectia erorii se calculeaz sindromul s. Dac cuvntul receptionat este v = v + a a a atunci (5.3) H(v )T = Hv T + HT = 0 + Hv T = s Sindromul s identic eroarea. Dac de exemplu exist o singur eroare, pe pozitia 2 atunci a a a a sindromul va egal cu coloana a 2 a matricei H. Odat identicate poztia erorilor (sau cu alte cuvinte identicat vectorul eroare) corectia se a obtine adunnd 1 simbolurilor corecpunztoare receptionate. Adic v = v + . a a a

5.2

Probleme rezolvate
1 0 0 1 1 H = 0 1 0 0 1 0 0 1 1 0 (a) S se determine numrul de simboluri de informatie i numrul de simboluri de a a s a control. S se determine proprietile de corectie / detectie ale acestui cod. Acest cod a at este perfect? (b) S se calculeze matricea generatoare a codului. a (c) S se deduc relatiile de codare. a a (d) S se realizeze codarea att cu matrice G ct i c matricea H. a a a s (e) Cuvntul [11111] este cuvnt de cod?. S se explice functionare decodorului cazul a a a n in care se receptioneaz acest cuvnt. a a Rezolvare: (a) Parametrii codului : se tie c matricea H are m (numrul de simboluri de control) s a a linii i n (lungimea cuvntului de cod) coloane: s a m = 3, n = 5 = k = 2 Avnd k simboluri de informatie numarul maxim de mesaje care se pot coda cu a k = 4 mesaje ale sursei Numrul de erori corectabile este de dat de acest cod sunt: 2 a marginea Hamming (aceasta este o conditie necesar nu i sucient): a s a
ec

1. [8] Un cod grup are matricea de control :

2 1
m i=1

i Cn

50

CAPITOLUL 5. CODURI GRUP - CODURI HAMMING Membrul stng este: 2m 1 = 7. a Membrul drept este: cazul unei erori n = 5 < 2m1 In cazul a 2 erori C 1 + C 2 > 7 In n n = codul e corector de o eroare Un cod corector de ec erori poate detecta ed = 2ec erori.Un cod capabil s corecteze a a ec erori are distanta minim dm in = 2ec + 1 = ed + 1. Codul nu este perfect (nu se obtine egalitate in marginea Hamming). Un cod perfect are exact numarul de corectori necesari pentru a detecta orice variant de eroare. a (b) Matricea de control a codului este scris forma canonic: H = [Im Q]. Matricea a n a t I ].; generatore (in form canonic) se poate obtine ca: G = [Q k a a 1 1 Q = 0 1 1 0 1 0 1 1 0 1 1 0 = G = [Qt Ik ] = 1 1 0 1 1 0 0 1

= Qt =

(c) Structura unui cuvnt de cod sistematic presupune o separare a bitilor de control a de cei de informatie. Fcnd conventie c biti de control corespund coloanelor din a a a H care au un singur 1 succesiunea simbolurilo ntr-un cuvnt de cod este: v = a [c1 c2 c3 i1 i2 ]. De fapt forma canonica a matricelor de control si generatoare impune un cod sistematic.Relatiile de codare presupun aarea modului care se formeaz n a bitii de control din bitii de informatie. Vom considera ca punct de pornire relatia T =0 Hv c1 c1 + i1 + i2 1 0 0 1 1 c2 0 1 0 0 0 c3 = c2 + i2 = 0 c3 + i1 0 0 1 1 0 i1 i2 In baza 2 scderea cu x este echivalent cu adunarea cu x. Adic: a a a c1 = i1 + i2 c2 = i2 c3 = i1 Schema codorului este prezentat gura 5.1; a n (d) Pentru a calcula cuvintele de cod avem doua variante: s calculm relatiile de codare a a folosind matricea H sau s calculam cuvintele de cod folosind direct matricea G: a v = iG

5.2. Probleme rezolvate

51

Figura 5.1: Codorul. Schema logic urmarete relatiile de codare. Fiecare simbol este stocat a s ntr-o celul a unui registru de deplasare; la ecare tact, o celul comunic valoarea celulei a a a din stnga sa. Dup formarea cuvntului de cod intrrile (biti de infomatie) sunt blocate si a a a a continutul este vrsat la ieire sub forma unui tren de impulsuri. a s Un cuvnt de infomatie con dou simboluri: i = . Matricea generatoare poate a ne a scris pe linii G = a g1 . Atunci relatia de codare devine: g2 V = iG = In acest caz cuvintele de cod sunt: 0 0 1 1 0 1 0 1 v = g1 + g2 00000 11001 10110 01111 g1 = g1 + g2 g2

Tabela 5.3: Cuvintele de cod

Se poate observa c ponderea minima a unui cuvnt de cod este 3. a a a (e) Cuvntul receptionat este: v = [11111] Considerm corectorul: a 1 1 0 0 1 1 1 1 = 0 1 0 0 0 1 = z = 0 = 0 0 0 1 1 0 1 0 1

Hv ,T

Fiindc corectorul este nenul exist erori. Atunci se poate spune: a a dac decodorul functioneaz regim de corectie este capabil s corecteze o eroare a a n a (orice variant de eroare). Eroare este pe pozitia 1.Pozitia erorii se determin a a prin identicare coloanei din matricea de control H egal cu corectorul calculat z. a Acelai lucru se constat si dac se compara cuvantul eronat cu cuvintele cu sens s a a determinate tabelul 5.3. acest caz cuvntul cu sens este v = [01111]. Dac n In a a

52

CAPITOLUL 5. CODURI GRUP - CODURI HAMMING cuvntul receptionat contine dou erori atunci corectorul d informatii greite. a a a s S consideram alt exemplu : a v = [10110] Corectorul calculat este: 1 1 0 0 1 1 0 0 = 0 1 0 0 0 1 = z = 0 0 0 1 1 0 0 1 1 = [00011] v = v + = 10101

Hv ,T

Adic eroare este pe pozitia 3 si deci cuvntul cu sens este v=[10001]. Ceea ce a a nu este adevarat.Un cod corector de o eroare nu poate corecta dou erori a dac decodorul functionez in regim de detectie, indc corectorul este nenul a a a nseman c exist erori. regim de detectie nu se poate spune nimic despre a a a In numrul si pozitia erorilor. Dac exist mai multe erori dect codul poate detecta, a a a a se obin aberatii. De exemplu pentru un cuvnt eroare = [11001] i pentru a s cuvntul cu sens v = [11001] se obtine alt cuvnt cu sens i, deci nu se detecteaz a a s a nimic. Adic un cod detector de 2 erori nu poate detecta trei erori. a 2. [8] Cele 6 simboluri generate de o surs sunt transmise pe un canal binar cu perturbatii a folosind un cod Hamming grup corector de o eroare. (a) S se determine numrul de simboluri de informatie, de control si lungimea cuvintelor a a de cod. Codul este perfect? (b) S se scrie matricile de control i generatoare a codului? Codul este sistematic? a s (c) S se scrie cuvintele de cod i s se determine ponderea minim a acestora. a s a a (d) S se explice ce se ampl dac a nt a a ntr-un cuvnt receptionat apar dou erori, pe a a pozitiile 1 i 2. s Rezolvare: (a) Cele 6 simboluri pot reprezentate folosin k biti de informatie: 2k 6 = k = 3 Marginea Hamming pentru un cod corector de ec = 1 erori este: 2m 1 n = m + k = m + 3 2m 4 m = m = 3 n=k+m=6 Dat ind ca nu si atinge margine (nu avem egalitate) codul nu e perfect.

5.2. Probleme rezolvate

53

(b) Matricea de control a unui cod Hamming se obtine codnd pe ecare coloana indicele a ei baza 2: n 0 0 0 1 1 1 H = h1 h2 h3 h4 h5 h6 0 1 1 0 0 1 1 0 1 0 1 0 Dac facem conventia c plasm simbolurile de control pe pozitiile corespunztoare a a a a colanele matricei de control care contin un singur unu, cuvntul de cod este de forma: a v = [c1 c2 i1 c3 i2 i3 ] acest caz, codul nu e sistematic. In Hv T = 0 c1 c2 0 0 0 1 1 1 c3 + i2 + i3 i 1 0 1 1 0 0 1 = c2 + i1 + i3 = 0 c3 c1 + i1 + i2 1 0 1 0 1 0 i2 i3 c1 = i1 + i2 c2 = i1 + i3 c3 = i2 + i2 Se poate arta foarte uor c pe linii G are cuvinte de cod. a s a g1 v = iG = i1 i2 i3 g2 = i1 g1 + i2 g2 + i3 g3 g3 i1 = 0; i2 = 0; i3 = 1 = v = g3 = [010101] i1 = 0; i2 = 1; i3 = 0 = v = g2 = [100110] i1 = 1; i2 = 0; i3 = 0 = v = g1 = [111000] 1 1 1 0 0 0 G = 0 1 0 1 0 1 1 0 0 1 1 0 Alte cuvinte de cod sunt:

54

CAPITOLUL 5. CODURI GRUP - CODURI HAMMING

i1 = 0, i2 = 0, i3 = 0 = v = [000000] i1 = 0, i2 = 0, i3 = 0 = v = g1 + g2 + g3 = [101011] i1 = 1, i2 = 1, i3 = 0 = v = g1 + g2 = [110011] i1 = 0, i2 = 1, i3 = 1 = v = g2 + g3 = [011110] i1 = 1, i2 = 0, i3 = 1 = v = g1 + g3 = [101101] (c) = [110000] 0 T H = 1 = 0 1 Dat ind faptul ca corectorul este nenul, se poate spune c: a Dac functionarea este in regim de corectie se hotrte c eroarea este pe pozitia a a as a 3. Greeala se datoreaz aparitiei a doua erori cnd codul poate corecta numai s a a una. Pentru a corecta dou erori este necesar ca suma a oricare doua coloane a a lui H sa aib rezultat diferit. Aici:h1 + h2 = h3 . a Dac corectorul obtinut era z = [111]T , care este diferit de orice coloana a lui H, a nseamn c au fost dou erori: e pe pozitiile 1 i 6, e pe 2 i 5. Acest fenomen a a a s s se datoreaz faptului c codul nu e perfect. a a Dac functionarea este in regim de detectie se depisteaz aparitia unor erori. a a

5.3

Probleme propuse

1. [7] Se consider o surs de informatie avnd un alfabet de dimensiune Q = 15 simboluri a a a echiprobabile. (a) S se determine parametrii k, m, n ai unui cod bloc Hamming corector de erori sina gulare. (b) S se scrie matricea H de control a codului. a (c) S se precizeze structura cuvntului de cod. a a (d) Codul este sistematic? De ce? (e) S se efectueze codarea utiliznd matricea H de control a codului. a a (f) S se scrie matricea G generatoare a codului. a (g) S se verice prin calcul direct relatia de ortogonalitate a ntre matricile H si G. (h) S se efectueze codarea utiliznd matricea G generatoare a codului. a a (i) S se deseneze schema codorului i s se explice functionarea sa. a s a (j) S se scrie toate cuvintele de cod. a (k) S se efectueze codarea Hamming sistematic extins cu matricea Hext a vectorului a a a informational avnd nenule doar primul i ultimul simbol. a s

5.3. Probleme propuse (l) S se scrie matricea generatoare de cod sistematic extins Gext . a

55

(m) Se consider cuvntul de cod extins avnd simbolul de control a paritii eronat. S a a a at a se scrie vectorul eroare extins. S se calculeze vectorul corector (extins). a (n) S se scrie vectorul eroare pentru eroare dubl, de simboluri informationale consecua a tive partea central a zonei informationale a cuvntului de cod sistematic. n a a (o) S se scrie corectorul extins pentru eroarea dubl de mai sus i s se explice utilizarea a a s a sa. 2. [7] Un numr de 20 simboluri se transmit pe un canal cu perturbatii utiliznd cod Hamming a a grup corector de o eroare. (a) S se determine numrul simbolurilor de informatie k, al celor de control m si a a lungimea n a ecrui cuvnt de cod. a a (b) S se scrie matricea de control a codului H. a (c) S se scrie formele canonice ale matricei de control. a (d) S se scrie formele canonice ale matricei generatoare. a (e) S se deduc matricea generatoare. a a (f) S se scrie toate cuvintele de cod. a (g) S se stabileasc expresia corectorului pentru cazul c se eroneaz pozitia 4 din a a a a cuvntul de cod. a (h) S se explice ce se ampl dac a nt a a ntr-un cuvnt de cod se eroneaz pozitiile 2 i 7. a a s (i) S se stabileasc schema codorului. a a 3. [8] Se d matricea de control a unui cod grup: a 1 0 0 H = 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0

(a) S se determine numrul de simboluri de control, numrul de simboluri de informatie, a a a lungimea cuvintelor de cod, numrul de simboluri ce pot transmise cu acest cod i a s numrul de erori ce pot corectate. Codul este perfect? Codul este sistematic? a (b) S se precizeze structura cuvintelor de cod i s se scrie ecuatiile de codare. a s a (c) S se determine matricea generatoare a codului. a (d) S se calculeze corectorul i s se explice decizia luat la decodare dac se a s a a a receptioneaz un cuvnt eronat pe pozitiile 2 si 3? a a

56 4. [4] Fie matricea de control

CAPITOLUL 5. CODURI GRUP - CODURI HAMMING

0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1 1 0 1 0 1 0 1 (a) Artati c, prin transformri elementare, aceast matrice poate adus la forma a a a a a H = [I3 Q]. (b) Artati c respectivele transformri pot astfel alese at proprietile de detectie a a a nc at i corectie a erorilor s rmn aceleai. s a a a a s (c) S se determine simbolurile de control functie de cele de informatie att pentru a n a matricea H ct i pentru matricea H . a s 5. [4] Considernd matricea a 0 0 0 1 1 1 1 H = 0 1 1 0 0 1 1 1 0 1 0 1 0 1

s a a s se determine matricea generatoare G = [P Ik ] i s se realizeze codarea dup aceasta. a 6. [4] Se consider un cod cu n = 6 i k = 3 a crui matrice de control este: a s a 1 0 0 1 1 0 H = 0 1 0 1 0 1 0 0 1 0 1 1 (a) Codul este sau nu perfect? (b) Ce decizie de ia pentru un corector cu valoarea z t = [010]? Dar pentru z t = [111]

Bibliograe
[1] Mihai Ciuc. Note de seminar. [2] A. T. Murgan, I. Spnu, I. Gavt, I. Sztojanov, V. E. Neagoe, i A. Vlad. Teoria Transmia a s siunii Informat - probleme. Editura Didactic i Pedagogic, Bucureti, Romnia, 1983. ei as a s a [3] Alexandru Sptaru. Teoria Transmisiunii Informattiei. Editura Didactic i Pedagogic, a a s a Bucureti, Romnia, 1983. s a [4] Alexandru Sptaru. Fondements de la theorie de la transmisssion de l a nformation. Presses polytechniques romandes, Lausanne, Elvetia, 1987. [5] Rodica Stoian. Note de seminar. [6] Dan Alexandru Stoichescu. Note de seminar. [7] Eugen Vasile. Note de seminar. [8] Constantin Vertan. Note de seminar.

67

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