Sunteți pe pagina 1din 13

1.

CODURI LINIARE
Obiectivul lucrrii: Studierea codrii i decodrii codului liniar, corector de o eroare.
Sarcinile lucrrii:
de analizat modul de construire a codecului codului liniar;
de implementat i de simulat codecul codului liniar;
de estimat caracteristicile codecului.
1.1. Breviar teoretic
1.1.1. Proprietarea codului sistematic
Abilitatea codului de a detecta i corecta erori este condiionat de prezena simbolurilor
suplimentare (redundante). Coderul recepioneaz la intrare k simboluri informaionale binare, iar la
ieire genereaz n simboluri binare, numite combinaii sau cuvinte de cod n>k.
n codul sistematic simbolurile

informaionale i de corectare snt situate pe poziii strict

determinate (n combinaia de cod) i n conformite cu sistemul formal prescris. Aceste coduri snt
uniforme.
n codurile liniare bloc valorile simbolurilor de control sunt combinaii liniare ale simbolurilor
informaionale.

Pentru codurile liniare n calitate de operaie liniar este folosit suma modulo 2.

Cuvintele de cod poart denumirea justificat de vector. Prin definiie, un vector v se numete
vector cod <=> face parte dintr-un subspaiu vectorial v al spaiului vectorial w al tuturor cuvintelor cu
n simboluri.
Greutatea (ponderea) vectorului cod este numrul elementelor nenule din combinaie.
1.1.2. Proprietatea codului grup
Distana minimal de cod dintre vectorii codului este egal cu greutatea minimal a vectorilor nenuli.
Forma general a unui cuvnt de cod liniar este urmtoarea:
v= <v1,v2, ,vn >

(1)

unde v {0,1} i n= k+ m; m- simbolurile redundante.


Cele n simboluri ale unui cuvnt de cod pot fi interpretate ca fiind elementele unui vector n
dimensional.
1

Cele k simboluri snt generate de sursa de informaie i snt numite simboluri informaionale, iar
restul de m simboluri snt redundante i servesc pentru detectarea i corectarea erorilor; ele se mai
numesc simboluri de control.
Un cod corector bloc este definit prin ansamblul (n,k,t), unde t este numrul de simboluri ce pot
fi corectate:
t=(n-k) div 2.

(2)

n figura 1.1 este prezentat diagrama simplificat sistemului de transmisiune a informaiei,


unde: a este un vector de lungimea k ce conine biii informaionali, reprezentnd literele alfabetului
primar; v este un vector de lungimea n, reprezentnd cuvntul de cod; e este un vector de lungime n,
reprezentnd cuvntul eroare generat de sursa de zgomot N; v este vectorul la ieirea canalului de
transmisiune a informaiei i reprezint suma modulo 2 dintre vectorii e i v; a este combinaia
decodat.

N
(a)
Si

(v)
Coder

(e)

(v)

Canal de
transmisiune

(a)
Decoder

Fig.1.1. Schema bloc redusa a sistemului de comunicaie


1.1.3. Matricea generatoare
Dac se aleg k vectorii liniari independeni v1=w1,...,vk=wk drept vectori cod, acetia genereaz
un subspaiu vectorial v al spaiului vectorial w .
La baza construirii subspaiului vectorial v stau urmtoarele considerente:
n cazul canalelor la care erorile intervin n mod independent asupra simbolurilor transmise,
dou cuvinte de cod, care difer numai n modul de aranjare al simbolurilor, au aceti probalitate a
erorii;
n cazul canalelor simetrice (cnd simbolurile 0 i 1 snt eronate cu sceeai probabilitate),
probilitatea erorii nu depinde dect de numrul de erori. Fiindc n studiul codurilor intereseaz numai
proprietile de corecie a erorilor (n scopul micorrii probabilitii erorii), prin permutarea
coloanelor matricei generatoare G. Muimea tuturor combinaiilor liniare ale vectorilor linie din
matricea generatoare se numete spaiul linie al lui G. Dimensiunea acestui spaiu este k (care este i
rangul matricei G) :
G=[gij]kxn.

(3)
2

Cu ajutorul unor transformrii elementare (respectiv schimbare ntre ele a dou linii sau a dou
coloane, adunarea elementelor unei linii cu elementele coresponztoare din alt linie) matricea G poat
fi adus la una dincele dou forme canonice echivalente:
a) matrice cu structura KR (matricea unitara Ik este plasata inaintea matricei arbitrare P)
1
0
G
...

0
1
...
0

...
...
...
...

0
0
...
1

p11 ... p1m


p21 ... p2 m
Ik P
...
... ...

pk 1 ... pkm

b) matrice cu structura RK (matricea unitara P este plasata inaintea matricei arbitrare Ik)
p11
p
G 21
...

pk 1

...
...
...
...

p1m 1 0
p2 m 0 1
...
... ...
pkm 0 0

...
...
...
...

0
0
PI k ,
...

unde: m=n-k -- simboluri de control, Ik - este matricea unitar i P - este o matricea arbitrar
construit conform anumitor reguli:
1) Greutatea vectorului cod >=3;
2) distana minim dintre vectori dmin>=2t+1=3.
Din aceste expresii rezult n mod evident c cei k vectori linie snt liniar independeni.
Structura cuvintului de cod este definit de: v=aG
1.1.4. Spaiul corectorilor
Pentru a stabili o modalitate de detecie sau corecie a erorilor se consider un spaiu m
dimensional (m=n-k ) care se numete spaiul de corecie z i care are zm elemente z Z numite
corectori.
Corectorii se reprezint prin matrice. n literatur corectorul se numete vector de control de
paritate sau sindrom.
Corectorii snt destinai s indice poziiile din cuvntul de cod n care s-au introdus erori. n
acest scop se stabilete o ceresponden univoc ntre mulimea tuturor cuvintelor recepionate
(respectiv spaiul W ) i mulimea corectorilor (respectiv spaiul Z). Aceast coresponden (aplicaie)
se poate stabili un operator astfel ca: (vi)=z ori : W ->Z, unde vi W i z Z.

Dac v=vi , adic dac transmisiunea s-a fcut fr erori, z trebuie s fie acelai pentru orce i,
indicnd astfel faptul c nu snt erori. Se alege n acst caz pentru z valoare 0 i ca urmare avem
urmtoarea relaie:

(vi)=0 ,

i=1,2k

(2)

Pentru a putea corecta erorile introduse n procesul de transmisiune este necesar ca petru fiecare
cuvnt eroare care poate fi generat de perturbaiile din canal se existe un singur corector diferit de zero.
1.1.5. Matricea de corecie (control).
Din cele menionate rezult c operatorul determin o transformare univoc de la spaiul
cuvintelor recepionate la spaiul corectorilor (transformare invers nu-i definit).
Cea mai simpl structur pentru operatorul se obine dac se consider o transformare liniar
univoc de la spaiul cuvintelor recepionate la spaiul corectorilor, definit de ecuaiile:
n

j 1

j 1

hij a ' j vi ;...; hmj a ' j vm ;

(3)

unde hij {0;1} snt parametrii care determin transformarea ;

aj simbolurile unui cuvnt

recepionat i vi {0;1} coordonatele care determin punctul z (componentele corectorului z).

Matricea H[hij]mxn se numete matricea de control.


Prin unele transformri elementare matricea H poate fi adus la una din cele dou forme
canonice echivalente:
a) matrice cu structura RK (matricea unitara Ik este plasata inaintea matricei arbitrare P)
q11
q
H 21
...

qk 1

...
...
...
...

q1m 1 0
q2 m 0 1
... ... ...
qkm 0 0

...
...
...
...

0
0
QI m
...

b) matrice cu structura KR (matricea unitara P este plasata inaintea matricei arbitrare Ik)

1
0
H=
...

... 0

q11

... 1 0 q 21
... ... ... ...
... 0

q k1

... q1m
... q 2 m
= [ImQ] ,
... ...

...
q km

unde k=n-m , din care se vede c cei m vectori linie snt liniar independeni, Im - este matricea unitar,
iar Q este transpusa matricei P.
Din cele precedente rezult, c un vector v este vector cod dac:
4

1) se gsete n spaiul linie al matricei G: v v, sau dac


2) se gsete n spaiul nul al matricei H:
HvT=0.

(4)

unde vT este transpusa vectorului recepionat v=<v1,,vn> .


Operaia de codare const n determinarea simbolurilor de control atunci cnd se cunosc
simbolurile de informaie, n vederea construirii cuvintelor de cod.
Dac cuvntul recepionat este un cuvnt de cod (v=v), conform relaiei (4) corectorul este nul:
HvT=0.

(5)

Aceast relaie stabilete legtura care trebuie s existe ntre simbolurile de informaie i cele de
control ntr-un cuvnt de cod pentru a-l distinge de cuvintele care n-au sens.
Dac matricea H indeplinete condiiile pentru detecia anumitor erori, atunci:
HvT 0

(6)

cnd erorile existente snt de tipul celor ce pot fi detectate. Dac: Ha T=0 , atunci nu snt erori de tipul
celor ce pot fi detectate, ns pot fi alte erori, care nu pot fi detectate.
Dac matricea H ndeplinete condiiile pentru corecia anumitor erori, atunci corectorii z=HvT
snt distinai cnd erorile existente snt de tipul celor ce pot fi corectate; pot exista ns erori
necorectabile care au aceiai corectori. Dac z=0, nu exist erori de tipul celor ce pot fi coretate, ns
pot fi alte tipuri de erori care nu pot fi corectate.
Dac ponderea sindromului =0, atunci combinaia recepionat se presupune fr erori, n caz
contrar eronat. Corectarea erorilor se efectueaz n conformitate cu valoarea sindromului

z,

deoarece fiecare simbol eronat i corespunde un singur corector.


Valorile tipice ale codurilor liniare snt:
a) distana minim de cod dmin este distan minim dintre vectorii vi i vj ale spaiului ndimensional, dmin=d(vi ,vj).
Pentru codurile corectoare de erori are loc inegalitatea:
d min t 1

(2)

unde t este capacitatea sau abilitatea corectoare, este abilitatea detectoare; t .


n cazul t inegalitatea (2) se transform n:
d 2t 1 .

(3)

b) Numrul simbolurilor de control r ntr-un cuvnt de cod liniar urmeaz inegalitatea:


5

2m m k 1.

(4)

c) Matricea de control H de dimensiuni m n. Cuvintele de cod sunt n spaiul nul al matricei


H, or fiecare cuvnt de cod este ortogonal pe orce vector linie al matricei H:
HvT=0

(5)

1.2. Generarea codului liniar


Se consider un vector informaional de lungime k=4.
1. Pentru t=1, conform relaiei (4), rezult m=3. Deci, lungimea cuvntului de cod este: n= m+ k=
7.
2. Alctuim matricea generatoare G a unui cod binary liniar corector de o eroarea, care are
structura:

sau

Gk n=Ik kPk m,

(6)

Gk n=Pk mIk k,

(7)

unde Ik k este matrice-unitate i Pk m este o matrice arbitrar construit conform anumitor reguli.
n acest caz matricea generatoare va avea forma: Gkxn=IkxkPkxm

G47

0
1
0
0

0
0
1
0

0
0
0
1

0
1
1
1

1
0
1
1

1
0

In liniile matricei trebuie sa fie nu mai putin de 3 uniti, distana minim dintre vectori
dmin>=2t+1=3
3. Pentru codul liniar n=7 structura cuvntului de cod este:
v=<v1 v2 v3 v4 v5 v6 v7>
Structura cuvintului de cod este definit de:

v a G
n urma codrii primim :
v1=a1; v2=a2; v3=a3; v4=a4

v 5 a2 a3 a4

v 6 a1 a3 a4 ,

v a a a ,
1
2
4
7
4. Generm valori aleatorii a i calculam cuvintul de cod:
a1=1;a2=1;a3=0;a4=0.
Determinm cuvintul de cod:
v1=1;
v2=1;
v3=0;
v4=0;

v5 1 0 0 1;

v6 1 0 0 1;
v7 1 1 0 0;

Codarea poate fi realizat prin circuitul, prezentat in figura 1.2.

Fig.1.2 Bloc schema coderului codului liniar (7,4)


5. Asamblm schema n EWB i verificm corectitudinea circuitului asamblat (fig.1.3):

Fig.1.3 Schema coderului codului liniar (7,4) i rezultatele simulrii


8

La intrarea circuitului este generat combinaia informaional a=1100, n fereastra analizorului


logic apar diagramele de timp(temporale) corespunztoare vectorului estimat v=<1100110>. Astfel
schema asamblat a coderului funcioneaz corect.
6. Se consider un cod grup corector de o eroare. Matricea de control este construit conform
structurii:

sau

Hm n= Qm kIm m

(8)

Hm n= Im mQm k

(9)

unde Im m este matricea unitate m n ,iar Qm k este transpusa matricei Pk m.


n acest caz matricea de control, va avea forma urmtoare:
Hrxn=QmxkImxm

H 37

7.

0 1 1 1 1 0 0

1 0 1 1 0 1 0
1 1 0 1 0 0 1

Pentru a stabili poziia erorii se realizeaz operaia de decodare cu ajutorul metodei

numerelor de control [z1....zm].


Aceste numere snt soluiile urmtorului sistem de ecuaii:
HvT=Z;
innd seama de structura matricei H, calculul numerelor de control necesare decodificrii snt
calculate cu relaiile:

z1 v2 v3 v4 v5 ;

z2 v1 v3 v4 v6 ;
z3 v1 v2 v4 v7 ;
Schema bloc circuitului de decodare este prezentat n figura 1.4, unde DC este un decodificator
ce implementeaz transformarea: HeT=Z.
9

Fig.1.4 Schema decoderului codului liniar (7,4)


8. Proectm decodificatorul. Are loc o relatie pentru construirea tabelului de adevar a
decodificatorului:
HeT=Z
Tabelul 1. Tabel de adevar DCD proectat
Z1
0
1
1
1
1
0
0

Z2
1
0
1
1
0
1
0

Z3
1
1
0
1
0
0
1

e1
1
0
0
0
0
0
0

e2
0
1
0
0
0
0
0

e3
0
0
1
0
0
0
0

e4
0
0
0
1
0
0
0

e5
0
0
0
0
1
0
0

e6
0
0
0
0
0
1
0

e7
0
0
0
0
0
0
1

unde e1...e7 iesirile DCD; Z1...Z3 intrarile DCD.

10

9. Asamblm

schema

decoderului

verificm

funcionarea

perturbaiilor(zgomotului): e7

Fig.1.5 Schema decoderului codului liniar (7,4) fr defectare

Fig.1.6 Rezultatul verificrii schemei fr defectare


11

ei

lipsa

10.

Asamblm schema decoderului i verificm funcionarea ei cu o eroare:

Fig.1.7 Schema decoderului codului liniar (7,4) cu o eroare

Fig.1.8 Rezultatul verificrii schemei cu eroare

12

Aplicm valorile i simulm o eroare(n poziia b6), eroarea este corectat de codec la ieirea
cruia va fi generat combinaia identic cu ceea informaional.
1.3. Sarcina de lucru i coninutul referatului
Pentru codul liniar (n, k) de prezentat structura cuvntului de cod i de construit matricele de
control H i generatoare G. De obinut relaia de legtur dintre simbolurile de control i
informaionale.
De sintezat schemele bloc de codare i decodare a codului liniar. De asamblat i de depanat
codecul (coderul i decoderul) codului liniar n sistemul de simulare electronic. De prezentat
rezultatele i concluzia asupra executrii lucrrii.

13

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