Introducere.................................................................................................................................................... 1
II.
III.
IV.
V.
Aplicatii ...................................................................................................................................................... 3
VI.
Teme .......................................................................................................................................................... 3
I.
Introducere
In matematica si teoria informatiei codurile grup reprezinta tipuri importante de coduri bloc (coduri la
care informatia este organizata in cuvinte, blocuri de n simboluri) folosite in schemele de detectie si corectie a
erorilor. Codurile grup permit o codare si decodare eficienta fata de alte coduri.
Codurile grup sunt folosite la transmiterea simbolurilor (e.g. biti), in canalele de comunicatie astfel
incat erorile ce apar pot fi detectate de receptorul mesajului bloc. Un cod de lungime n transmite blocuri
continand n simboluri. De exemplul codul Hamming (7,4) este un cod binar ce reprezinta valori de 4 biti
folosind 7 biti. In acest fel, receptorul poate detecta erori grave ca 2 biti pe bloc.
In codurile grup un numar de k biti de informatie este urmat de un numar de m biti de control, derivati
din cei de informatie astfel incat la receptor, bitii de control sunt folositi pentru a valida bitii de informatie.
II.
Fiecare bloc de k biti este codat intr-un bloc de n biti ( > ) prin adaugarea n-k=m biti de control.
Numarul de biti de control m este stabilit de marginea Hamming prin relatia:
2
care reprezinta o conditie necesara dar nu suficiena. In cazul cazul corectiei unei singure erori:
2 1
III.
Asa cum s-a precizat pentru ca un cod sa poata avea proprietati de corectie este necesar ca din multimea de
cuvinte de n litere, numai o parte sa constituie cuvinte cu sens. Rezulta astfel in spatiul cuvintelor o distanta
care a fost definita de Hamming ca fiind egala cu numarul pozitiilor prin care 2 cuvinte difera. Distanta dintre
cuvintele de cod si reprezinta ponderea unui cuvant de cod .
Conditia necesara si suficienta pe care trebuie sa o indeplineasca distanta dintre cuvinte pentru a se corecta
erori este:
= = 2 + 1
= = + 1
Orice cod corector sau detector de erori este caracterizat prin matricea de control
(, ) si matricea
generatoare (, ). Intre aceste doua matrici exista relatia:
= 0. Orice cuvant de cod, fiind o
combinatie liniara a liniior matricii G satisface relatia
= 0. Aceasta permite determinarea simbolurilor de
control cand se cunosc cei de informatie, operatie efectuata la codare.
Relatia
= 0 este similara cu = unde v este cuvantul de cod, i cuvantul de date iar G matricea
generatoare scrisa = [ |], cu matricea unitate de ordin k iar P este regula predefinita de codare. In
continuare vom folosi matricea generatoare pentru a realiza codarea.
IV.
Sintaxa MATLAB
Pentru codurile grup functia encode codeaza msg folosid genmat, respective matricea generatoare, o matrice
, necesara ca intrare.
V.
Aplicatii
Exemplul de mai jos ilustreaza 2 formate diferite de informatie (vectorul binar si matricea binara) pentru
codurile bloc. Ca rezultat, cele doua coduri create de functia encode au acelasi continut in formate
corespondente diferite.
k=11. m=4 satisface marginea Hamming 2 1
m=4; % m este numarului bitilor de control.
k=11;% numarul simbolurile de informatie, lungimea mesajului trimis de sursa
n=m+k;% lungimea cuvantului de cod
% creerea aleatoarea 100 de mesaje , de k biti fiecare.
msg1=randint(100*k,1,[0,1]); %vector coloana
msg2=vec2mat(msg1,k);% matrice cu K coloane create din vectorul definit intial
%creearea a 100 de cuvinte de cod, de n biti fiecare
P=[1 1 1 1;0 1 1 1;1 1 1 0;1 1 0 1;0 0 1 1;0 1 0 1;0 1 1 0;1 0 0 1;1 0 1 0;1 0 1
1;1 1 0 0];%regula predefinita de codare
genmat=[eye(11) P] ; %concateneaza matricea identitate cu matricea predefinita P
pentru a creea matricea generatoare
code1 = encode(msg1,n,k,'linear/binary',genmat)
code2 = encode(msg2,n,k,'linear/binary',genmat)
if ( vec2mat(code1,n)==code2 )
disp('All two formats produced the same content.')
end
VI.
Teme
0 1 1
Fiind dat un cod bloc (6,3) generat de matricea predefinita: = 1 0 1
1 1 0
a) Codati mesajele [1 1 1] si [1 0 1] manual si verificati rezulatul in Matlab.
b) Codati toate mesajele posibile ( = 2 ) in Matlab, verificati rezultatul si scrieti cuvintele codate.
Mesaj
Vectorul de cod
000
001
010
011
100
101
110
111
c) Distant Hamming minima este:______________________
0
1 .
1
b) Completati valorile cuvintelor de cod prin simulare si scrieti ponderea acestora (Denumim ponderea
unui cuvant de cod numarul componentelor sale diferite de zero.)
c)
Mesaj
Vectorul codului
Weight
Dmin
000
001
010
011
100
101
110
111
d) Care este valoarea lui
?(Distanta Hamming a unui cod este cea mai mica distanta Hamming dintre
cuvintele codului, fiind egala cu ponderea cea mai mica a cuvintelor de cod, exceptand cuvantul nul).
VII.
Fie k numarul simbolurilor informationale necesare transmiterii unei informatii. Numarul simbolurilor de
control, m, ce trebuie adaugate n scopul corectiei unei erori, se determina din relatia:
2m -1>=n
Hamming a propus ntocmirea matricei de control dupa urmatoarea regula: coloana hi sa fie reprezentarea
binara a numarului i pe m biti, cu bitul cel mai semnificativ n prima linie. Conform acestei reguli matricea de
control
va avea forma:
De asemenea, Hamming a propus ca n structura matriceala a cuvintelor de cod simbolurile de control sa fie
plasate pe pozitiile 20, 21, 22, ..., 2m-1, numaratoarea efectundu-se de la stnga la dreapta. Cele k simboluri de
informatie vor ocupa locurile ramase libere, adica: [v]=[c1,c2,i3,c4, i5, i7, c8, i9..in].
Determinarea simbolurilor de control, cunoscute fiind simbolurile informationale, se efectueaza cu relatia HvT=0,
dupa cum urmeaza:
Codorul, care are misiunea de a calcula simbolurile de control, cunoscute fiind simbolurile informationale, va fi
format dintr-un registru care contine n circuite basculante bistabile n care se stocheaza simbolurile
informationale n pozitiile corespunzatoare din cuvntul de cod si o serie de sumatoare modulo 2 care,
conform sistemului de ecuatii calculeaza simbolurile de control. Simbolurile de control astfel calculate se
stocheaza apoi n pozitiile n care acestea intervin n cuvntul de cod.
Decodorul implementeaza relatia z=HvT unde z se numeste corectorul cuvantului receptionat.
Deoarece coloana hi este reprezentarea binara a numarului i pe m biti, rezulta ca pozitia erorii n cuvntul
receptionat se deduce astfel:
- se calculeaza componentele corectorului cu sistemul de ecuatii de mai sus;
Relatiile de codare
Relatiile de decodare