Sunteți pe pagina 1din 6

Codarea pentru canale cu perturbatii I- Coduri grup

Codarea pentru canale cu perturbatii I- Coduri grup............................................................................................... 1


I.

Introducere.................................................................................................................................................... 1

II.

Determinarea numarului de simboluri......................................................................................................... 1

III.

Distanta intre cuvintele de cod................................................................................................................... 2

IV.

Sintaxa MATLAB ..................................................................................................................................... 2

V.

Aplicatii ...................................................................................................................................................... 3

VI.

Teme .......................................................................................................................................................... 3

Codor si decodor Hamming corector de o eroare................................................................................................ 4

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.

Determinarea numarului de simboluri

Un cuvant de cod de lungime n are k simboluri de informatie si m simboluri de control si poote fi


reprezentata sub forma unei matrici linie:
 = [ ,  , .  ], n=m+k.
Daca se foloseste pentru codare un alfabet X=[0,1], pentru transmisiunea a N simboluri ale sursei sunt
necesare k simboluri de informatie, numar care satisface relatia:
2 

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.

Distanta intre cuvintele de cod

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

iar pentru a se detecta erori conditia este:

= = + 1

Se remarca ca un cod corector de este detector de 2 erori.

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 codare se foloseste functia encode, cu urmatoarea sintaxa:


code=encode(msg, n,k,linear/fmt,genmat)
unde lungimea cuvantului de cod este n iar lungime mesajului k.
msg reprezinta mesajul de codat ce poate fi in format binar sau zecimal. Valoarea default pentru acest
parametru este binar , valoare ce va fi folosita mai departe.
Formatul msg poate fi un vector coloana binar dupa cum urmeaza:
msg=[ 0 1 1 0 0 1 0 1 1 0 0 1 ].
SImbolul indica transpunearea matricii. La fel formatul msg poate fi o matrice binara cu numar de coloane
egal cu k. Formatul rezultat code va fi o matrice binara cu n coloane.Acelasi mesaj:
msg=[0 1 1 0;0 1 0 1;1 0 0 1]. K=4.

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

In schimbul generarii aleatoare a


codate.

VI.

cuvintelor in Matlab se poate creea o matrice de date ce le dorim a fi

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:______________________

d) Numarul de erori pe care codul il poate detecta este:____________________


e) Numarul de erori pe care codul il poate corecta este:____________________
f) Este acest cod sistematic? Justificati raspunsul.
1 1
Considerati un cod bloc sistematic generat de matricea = 0 1
1 0
a) Identificati valoarea lui n si a lui k

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.

Codor si decodor Hamming corector de o eroare

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:

Ecuatia matriceala este echivalenta cu urmatorul sistem de ecuatii:

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.

Structura matriceala a corectorului e data de:

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;

- se transcrie n zecimal numarul binar corespunzator componentelor corectorului.


n felul acesta se precizeaza pozitia i a erorii. Decodorul Hamming, corector de o eroare va fi format,
fo
deci,
dintr-un registru cu n circuite basculante bistabile n care va fi memorat cuvntul receptionat, o serie de
sumatoare modulo 2 care, conform sistemului de ecuatii, calculeaza componentele corectorului si un
decodificator din binar n zecimal cu m intrari si n iesiri.

Relatiile de codare

Relatiile de decodare

Codul Hamming (7,4)

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