![]()
Electrica
Coduri bloc lineare. coduri ciclice .coduri bloc lineare. coduri ciclice . INTRODUCERE TEORETICA 1. Coduri bloc liniare Codurile bloc lineare (n,k) colecteaza blocuri de k biti succesivi ai mesajului informational, pe care ii prelucreaza, generand blocuri de cate n>k biti ai mesajului codat Fig.1.1. Schema bloc conceptuala a codorului bloc (n.k) Rata codului In cele ce urmeaza se vor utiliza notatiile: Matricea generatoare a codului. Coduri sistematice Cum orice cod bloc linear
(n,k), este un subspatiu al
spatiului vectorial generat de multimea vectorilor binari de lungime n
Codorul este specificat prin matricea generatoare G (kxn),
daca
Orice cod (n,k) este deci complet specificat daca se cunoaste matricea generatoare a acestuia, cuvintele de cod fiind determinate de combinatii lineare ale celor k randuri independente ale matricii G, dictate de bitii ce formeaza mesajul ce trebuie codat. Coduri sistematice In general, atat din punct de vedere al simplitatii implementarii hardware a codorului cat si al decodarii semnalului, este de dorit ca toti bitii corespunzatori mesajului sa fie grupati la inceputul sau la sfarsitul secventei de cod, asa cum este sugerat in figura 1.6. Fig.1.6. Organizarea mesajului in forma sistematica In cazul in care se cuvintele de cod respecta aceasta organizare, codurile se numesc sistematice.
Matricea de verificare a paritatii si codul dual Pentru orice matrice Gkxn ale carei randuri sunt liniar independente, exista o matrice H(n-k)xn ale carui randuri sunt liniar independente, astfel incat orice vector obtinut ca o combinatie liniara de vectori din G este ortogonal pe orice vector din H.
Codul liniar (n,k) poate fi descris si cu ajutorul matricii H astfel: “c este un cuvant de cod al codului (n,k) generat de matricea G daca si numai daca c HT=0”. Matricea H se numeste matrice de verificare a paritatii. Cei 2n-k-1 vectori din spatiul generat cu ajutorul matricii H formeaza un cod bloc linear (n-k,k) cu lungimea cuvantului de cod n si k biti de verificare a paritatii. Acesta se numeste codul dual celui generat cu ajutorul matricii G si are proprietatea ca toti vectorii din acest cod sunt ortogonali pe cei ai codului original.
Daca matricea G este data in forma
sistematica, matricea H se poate determina din G
Conceptul de sindrom si detectia erorilor Fie codul bloc liniar (n,k) cu matricea generatoare G si matricea de verificarea a paritatii H. Se folosesc urmatoarele notatii - semnalul de cod
transmis - vectorul eroare
introdus pe canal - semnalul
receptionat Receptorul verifica daca semnalul receptionat este un cuvant de cod valid efectuand produsul dintre acesta si matricea H si verificand daca rezultatul este nul.
Se observa ca produsul (1.42) depinde numai de semnalul eroare. Vectorul s se numeste sindromul asociat erorii, si este nul numai daca eroarea este nenula sau ea se suprapune peste alt cuvant de cod (caz in care eroarea nu este detectabila). Decodarea pe baza sindromului si a matricii (tabelei) standard Fie C un cod bloc linear (n,k), cu elementele
Decodarea prin metoda sistematica se aseaza cei 2k vectori ai codului C in linie, cu vectorul nul c0=[00 0] in pozitia cea mai din dreapta; se selecteaza un vector eroare e1, care nu este identic cu nici un cuvant de cod si se aseaza sub vectorul nul; se formeaza cel de-al doilea rand prin adunarea lui e1 la fiecare cuvant de cod si plasarea fiecarui vector ci+e1 sub ci; se selecteaza un al doilea vector e2, care nu este identic cu nici unul din vectorii utilizati pana in acest moment si se formeaza cel de-al treilea rand prin adunarea lui e2 la fiecare cuvant de cod si plasarea sumei sub acesta. procedura se continua pana cand se epuizeaza toate cele 2n secvente binare posibile. Matricea astfel rezultata se numeste matricea v (tabela) standard asociata codului C. Regiunile de decizie asociate fiecarui cuvant de cod sunt date de coloanele
Matricea standard pentru un cod bloc linear (n,k) este data in tabelul 1.1. Tabelul 1.1.
Pentru a minimiza
probabilitatea de eroare vectorii eroare Pentru a efectua decodarea cu ajutorul acestei matrici se foloseste faptul ca produsul dintre orice vector al codului si transpusa matricii de verificare a paritatii este nul. Astfel, oricare ar fi vectorul receptionat y=cm+ej, produsul dintre acesta si transpusa matricii de verificare a paritatii este
Cu alte cuvinte sindromul semnalului receptionat este identic cu cel al semnalului eroare aflat la capatul din dreapta a liniei. Mai mult, sindromurile tuturor vectorilor de pe o linie a matricii standard sunt egale si egale cel al cu vectorului eroare aferent. Se poate determina urmatorul algoritm de decodare pe baza matricii standard: se determina sindromul
vectorului receptionat r, se determina vectorul eroare ej care determina acelasi sindrom s;acesta va reprezenta vectorul eroare introdus de canal se calculeaza vectorul transmis ca fiind suma dintre vectorul receptionat si vectorul eroare
Coduri ciclice Un cod bloc linear (n,k) se numeste cod ciclic daca are in plus
proprietatea ca prin deplasarea circulara a oricarui cuvant de cod se obtine de asemenea un cuvant
de cod. Astfel, daca descrierea codurilor ciclice (n,k) se poate face matriceal, folosind matricea generatoare G si matricea de verificare a paritatii H sau folosind reprezentarea polinomiala si polinomul generator g(D). De exemplu vectorul c se poate descrie si cu ajutorul polinomului c(D)
iar polinomul deplasat circular
unde D este operatorul de intarziere cu un tact. pentru un cod ciclic (n,k) operatia de codare poate fi de asemenea descrisa polinomial
unde: ci(D) este polinomul asociat cuvantului de cod, de grad n; mi(D) este polinomul asociat mesajului, de grad k; g(D) este polinomul generator, de grad (n-k). Se introduce operatia de inmultire a doua polinoame a(D), b(D) modulo un al treilea polinom d(D), definita ca restul impartirii produsului a(D) x b(D) la d(D).
Matricea generatoare si matricea de verificare a paritatii. Codul dual. Fie
pentru determinarea matricii de verificare a paritatii se calculeaza mai intai polinomul de verificare a paritatii
si polinomul reciproc al acestuia
matricea de verificare a paritatii are dimensiunea (n-k) x n si se determina pe baza polinomului reciproc de verificare a paritatii, astfel;
Se poate observa imediat ca, h*(D) este de asemenea un divizor al lui (Dn+1), deci este matrice generatoare a unui cod ciclic (n,n-k). Codarea in cazul codurilor ciclice forma sistematica a unui cod (n,k) presupune ca intr-un cuvant de cod de dimensiune n primii sau ultimii k biti sa corespunda mesajului informational restul fiind biti redundanti de verificare a paritatii. Cuvantul de cod apare deci sub forma:
m=[m0, m1, mk-1] este vectorul corespunzator mesajului; p=[p0, p1, pn-k-1] corespunde bitilor de verificare a paritatii Daca mesajul se scrie sub forma
polinomiala Fig.1.10. Generarea cuvintelor de cod in forma sistematica (b) Bitii de paritate se determina prin impartirea lui Dn-km(D) la g(D).
cum gradul lui m(D) k-1, gradul lui [Dn-km(D)] n-1 si gradul lui g(D) este n-k rezulta gradul lui r(D) n-k-1.
Relatia (1.106) devine
este un cuvant de cod in forma sistematica (b) cu bitii de verificare a paritatii pi=ri Codarea cu registru de deplasare in configuratie modulara, folosind polinomul generator g(D), Fie polinomul generator se inmulteste mesajul cu Dn-k pentru a obtine produsul obtine m(D)Dn-k ; se calculeaza restul impartirii lui Dn-km(D) la polinomul generator g(D); se obtine polinomul corespunzator cuvantului de cod
Circuitul este reprezentat in figura 1.11. Fig.1.11. Circuitul de codare in forma sistematica pentru codul ciclic (n,k), folosind registru in configuratia MSRG si polinomul de codare g(D) Operatia de codare se desfasoara astfel: la momentul t=0 toate celulele sunt initializate in starea '0' iar comutatoarele S1 si S2 sunt in pozitia 1. timp de k intervale de tact se incarca in registrul R cei k biti ai mesajului (m0, m1, mk-1), incepand cu mk-1; simultan sunt transmisi pe canal bitii corespunzatori lui Dn-km(D); la momentul t=kT comutatoarele sunt trecute in pozitia 2; biti de verificare a paritatii sunt calculati prin impartirea continutului registrului de deplasare la g(D) in (n-k) perioade de tact, timp in care se si transmit pe canal. Cuvantul de cod rezultat in n intervale de tact este Calcului sindromului si detectia erorilor Presupunand ca s-a transmis un
cuvant de cod c, fie r = [r0, r1, rn-1] vectorul
receptionat. Datorita erorilor introduse de propagarea pe canal,
vectorul receptionat poate sa difere de cel transmis. Aceasta se
verifica, ca si in cazul codurilor bloc, prin calcului sindromului In cazul codurilor ciclice, sindromul se poate determina si prin operatii polinomiale. Fie polinomul asociat semnalului receptionat
Impartind acest polinom la g(D) vom avea
Restul impartirii este egal cu polinomul asociat sindromului, de grad mai mic sau egal cu (n-k-1). DESFASURAEA LUCRARII I. Coduri bloc lineare; Generalitati Fie matricea generatoare pentru codul bloc linear (8, 4) I.1. Sa se determine cuvintele de cod corespunzatoare tuturor mesajelor posibile. Care este distanta Hamming minima a codului ? I.2. Sa se scrie matricea G sub forma sistematica [I4x4 Q] (daca este posibil, se vor pastra din matricea Q numai acele coloane care au cate doua simboluri 1). Sa se determine toate cuvintele de cod sub forma sistematica. I.3. Sa se scrie matricea H sub forma sistematica. Sa se determine toate cuvintele de cod corespunzatoare codului dual. Sa se verifice proprietatea de ortogonalitate a codului original cu cel dual. I.4. Sa se determine matricea standard de decodare. Sa se determine sindromurile corespunzatoare tuturor cuvintelor eroare alese Codurile Hamming sunt coduri bloc lineare (2m-1, 2m-m‑1) corectoare de o singura eroare (deci distanta Hamming minima este 3). Matricea de verificare a paritatii H, de dimensiune (m x (2m-1)) are urmatoarea proprietate: coloanele sale corespund vectorilor asociati tuturor secventelor binare de lungime m, cu exceptia vectorului nul. II. Coduri Hamming Codurile Hamming sunt coduri bloc lineare (2m-1, 2m-m‑1) corectoare de o singura eroare (deci distanta Hamming minima este 3). Matricea de verificare a paritatii H, de dimensiune (m x (2m-1)) are urmatoarea proprietate: coloanele sale corespund vectorilor asociati tuturor secventelor binare de lungime m, cu exceptia vectorului nul. II.1. Sa se determine analitic matricile G si H codul Hamming (7,4) in forma sistematica. II.1 Sa se determine matricile G si H pentru codul Hamming (7,4), folosind functia hammgen. Corespund aceste matrici formei sistematice ? II.2. Sa se determine toate cuvintele de cod posibile, folosind functia encode II.3. Sa se determine matricea (tabela) standard de decodare si sindromurile asociate cuvintelor de cod alese. II.4. Sa se decodeze mesajul [ 1 0 1 0 1 1 0] a) analitic; b) folosind functia decode; c) calculand sindromul si folosind matricea (tabela) standard de decodare. II. Coduri ciclice II.1. Folosind functia cyclpoly determinati polinomul generator corespunzator codului ciclic (8,3). Desenati structura codorului cu registru de deplasare. II.2. Folosind functia encode generati toate cuvintele de cod corespunzatoare unui cod ciclic (7,3). Verificati proprietatea de deplasare ciclica. II.3. Pe baza polinomului generator sa se scrie matricea G II.4. Folosind functia cyclgen determinati matricile G si H in forma sistematica. Verificati analitic ca aceasta forma este cea corecta. II.4. Care este sindromul corespunzator vectorului receptionat r= [0 1 1 1 0 0 0 ] ? Verificati analitic, folosind diviziunea polinomiala, rezultatul obtinut. II.5. Folosind functia decode determinati mesajul si pozitia erorii corespunzatoare mesajului receptionat de la punctul II.5. Verificati analitic rezultatul obtinut. III.
|