27.01.2015 Views

Note de curs - Departamentul Automatica, Calculatoare si ...

Note de curs - Departamentul Automatica, Calculatoare si ...

Note de curs - Departamentul Automatica, Calculatoare si ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

face codarea cu cuvinte binare <strong>de</strong> lungime w > 1 cu operatiile <strong>de</strong> adunare <strong>si</strong><br />

înmultire modulo 2 w . În loc trebuie utilizat câmpul Galois corespunzǎtor.<br />

Explicatiile relative la câmpurile Galois uzeazǎ <strong>de</strong> polinoamele într-o<br />

ne<strong>de</strong>terminatǎ cu coeficienti în GF(2). Adicǎ, dacǎ r(x) = x + 1 <strong>si</strong> s(x) = x atunci<br />

r(x) + s(x) = 1 doarece x + x = (1 + 1)x = 0x = 0. Mai mult, se pot lua polinoame<br />

<strong>de</strong> acest gen modulo alte polinoame conform cu i<strong>de</strong>ntitatea: dacǎ r(x) mod q(x)<br />

= s(x), atunci s(x) este un polinom <strong>de</strong> grad inferior lui q(x) <strong>si</strong> r(x) = q(x)t(x) +<br />

s(x) cu t(x) un polinom în x.<br />

Dacǎ, <strong>de</strong> exemplu, r(x) = x 2 + x <strong>si</strong> q(x) = x 2 + 1 atunci r(x) mod q(x) = x + 1.<br />

Fie acum q(x) un polinom primitiv <strong>de</strong> gradul w cu coeficienti în GF(2). Primitiv<br />

înseamnǎ cǎ polinomul nu are divizori cu coeficienti în GF(2) <strong>si</strong> polinomul x<br />

este generatorul câmpului GF(2 w ). Cum genereazǎ x câmpul Se con<strong>si</strong><strong>de</strong>rǎ<br />

initial elementele obligatorii 0, 1 <strong>si</strong> x <strong>si</strong> se continuǎ enumerarea elementelor<br />

obtinute prin multiplicarea ultimului element cu x <strong>si</strong> retinerea rezultatului<br />

modulo q(x). Enumerarea se încheie cu elementul pentru care rezultatul modulo<br />

q(x) este egal cu 1.<br />

Dacǎ, <strong>de</strong> exemplu, w = 2 <strong>si</strong> q(x) = x 2 + x + 1 atunci primele elemente sunt 0, 1 <strong>si</strong><br />

x, iar x 2 mod q(x) = x + 1 <strong>si</strong> cele patru elemente ale câmpului GF(4) sunt {0, 1,<br />

x, x + 1}. Un al cincilea element nu existǎ <strong>de</strong>oarece x(x + 1) = x 2 + x care luat<br />

modulo q(x) produce 1, element <strong>de</strong>ja existent.<br />

Câmpul general GF(2 w ) se construieste prin gǎ<strong>si</strong>rea unui polinom primitiv q(x)<br />

<strong>de</strong> gradul w peste GF(2) urmatǎ <strong>de</strong> enumerarea elementelor generate <strong>de</strong> x.<br />

Adunarea <strong>si</strong> multiplicarea elementelor câmpului se fac dupǎ regulile adunǎrii <strong>si</strong><br />

multiplicǎrii polinoamelor cu grija <strong>de</strong> a lua tot<strong>de</strong>auna rezultatul modulo q(x).<br />

Un asemenea câmp se mai scrie ca GF(2 w )= GF(2)[x]/q(x).<br />

Acum, pentru a uza <strong>de</strong> un câmp GF(2 w ) în algoritmul RS-RAID este necesarǎ<br />

<strong>de</strong>finirea unei aplicatii a elementelor din acest câmp pe cuvinte binare <strong>de</strong><br />

lungime w. Un polinom r(x) din GF(2 w ) poate fi aplicat pe un cuvânt binar b <strong>de</strong><br />

lungime w prin punerea celui <strong>de</strong> al i-lea bit din b egal cu coeficientul puterii x i<br />

din polinom. Pentru GF(4) = GF(2)[x]/x 2 + x + 1 se obtine tabelul urmǎtor<br />

Elemente<br />

generate<br />

Elemente<br />

polinomiale<br />

Elemente binare<br />

0 0 00 0<br />

x 0 1 01 1<br />

x 1 x 10 2<br />

x 2 x + 1 11 3<br />

Reprezentarea<br />

zecimalǎ<br />

Adunarea elementelor se realizeazǎ prin operatia SAU EXCLUSIV (XOR) bit<br />

cu bit. Multiplicarea este mai complicatǎ: se iau elementele sub forma<br />

polinomialǎ, se multiplicǎ ca polinoame <strong>si</strong> se ia rezultatul modulo q(x). Tabelele<br />

<strong>de</strong> logaritmi ca acela <strong>de</strong> mai sus se bazeazǎ pe o tabelǎ <strong>de</strong> compunere ca aceea<br />

datǎ pentru cazul GF(4).<br />

114

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!