Anda di halaman 1dari 70

Universitatea Politehnica din Bucureti Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Modul de simulare de coduri corectoare de erori LDPC n canale magnetice

Lucrare de dizertaie
prezentat ca cerin parial pentru obinerea titlului de Master n domeniul Inginerie, Electronic si Telecomunicaii programul de studii de masterat Ingineria Informaiei si a Sistemelor de Calcul

Conductor tiinific Conf. Dr. Ing. tefan Stncescu

Absolvent Ichimoaei tefan-Cosmin

2012
1

CUPRINS
Capitolul I. Introducere 1.1 Scopul lucrrii...........04 1.2 Principii de nregistrare a informaiei pe suport magnetic.............05 1.2.1 Structura fizic a unui hard-disc...............05 1.2.2 Metode de codare a informaiei n canale magnetice............07

Capitolul II. Coduri corectoare de erori. 2.1 Coduri bloc i coduri convoluionale.........10 2.1.1 Coduri convoluionale...............11 2.1.2 Coduri bloc........11 2.2 Coduri Turbo..........12 2.2.1 Scurt istoric.....................................................................................12 2.2.2 Configuraii de turbo coduri...........................................................12 2.2.3 Explicarea principiului Turbo.........................................................14 2.2.4 Procesarea Turbo...........16 2.2.5 Decodarea codurilor Turbo.............................................................18 2.2.6 Principiile care stau la baza decodrii iterative (Turbo)..........19 2.3 Coduri LDPC.....................................................................................................21 2.3.1 Apariia codurilor LDPC.................................................................21 2.3.2 Prezentarea unui model al sistemelor de comunicaie..................21 2.3.2.1 Modele de canal.................................................................22 2.3.2.2 Coduri de canal..................................................................22 2.3.2.3 Limite de performan..............23 2.3.3. Codurile bloc liniare.......................................................................24 2.3.4 Codurile de Control al Paritii cu Densitate Mic......26 2.3.5 Reprezentarea grafic a coeficientului codurilor LDPC...28

Capitolul IV. Codarea LDPC 4.1 Coduri Structurate..32 4.2 Structuri de Cod Ciclic...33 4.3 Alte Structuri de Cod..35 4.4 Transformarea Matricii H...36 4.5 Calcul Anterior..37

Capitolul V. Decodarea LDPC 5.1 Decodarea iterativ.....37 5.2 Algoritmul sum-minim.............................................................................39 5.3 Algoritmul sum-produs...................................................................................41 5.4 Decodarea cu dou nivele de decizie (Hard Decision Decoding).................44 Capitolul VI. Aplicaii ale codurilor LDPC 6.1 Codurile LDPC in comunicaii optice..........................................................49 6.2 Codurile LDPC in comunicaiile n spaiul cosmic.......................................51 6.3 Codurile LDPC n sisteme de comunicaii RF..............................................53 6.4 Coduri LDPC n sisteme de comunicaii satelitare........................................54 6.5 Rezumat......................................................................................................54 Capitolul VII. Structura aplicaiei de simulare 7.1 Interfaa cu utilizatorul. Descrierea principalelor comenzi...........................55 7.2 Explicarea softului de simulare...................................................................57 Cap VIII. Rezultate experimentale..59 Capiitolul IX. Concluzii..64 Bibliografie......................................................................................................66

Capitolul I. Introducere
1.1 Scopul lucrrii
Dispozitivele de stocare a informaiei pe discuri magnetice reprezint o colecie impresionant de subsisteme mecanice i electronice, care opereaz la limitele tehnologiei moderne. Proiectarea i realizarea acestor uniti, care poart denumirea specific de harddiscuri, necesit o experien vast ntr-un numr impresionant de domenii, cum ar fi: cmpurile electrice i magnetice, materialele, aerodinamica, mecanica, electromecanica, comunicaiile digitale, codarea, procesarea de semnal i proiectarea circuitelor integrate. mpreun, experii n aceste discipline au reuit s menin rate exponeniale de cretere a capacitii de stocare a datelor i a ratelor de transfer n ultimii ani, evoluie care se prevede i pentru viitorul apropiat. Creterea rapid a capacitilor de stocare i a vitezelor de transfer presupune i creterea densitii de nregistrare a informaiei pe disc, ceea ce impune dezvoltarea unor metode din ce n ce mai performante de codare i detecie a informaiei n canalele magnetice, lucru necesar pentru a pstra integritatea datelor nregistrate. n cadrul acestei lucrri va fi prezentat metoda de codare a semnalului prin codarea LDPC, una dintre cele mai performante metode de codare existente la ora actual.

1.2. Principii de nregistrare a informaiei pe suport magnetic

1.2.1. Structura fizic a unui hard-disc n aceast seciune vom analiza pe scurt componentele de baz ale unui hard -disc i vom evidenia influenele acestora asupra semnalului nre gistrat acolo unde este necesar. Figurile urmtoare prezint o imagine simplificat a componentelor mecanice care alctuiesc sistemul de nregistrare magnetic al unui hard-disc.

Figura 1.1: Componentele mecanice eseniale ale unui hard-disc. Exist cte un cap de citire/scriere suspendat deasupra fiecrei suprafee (platan) al unui disc rotativ, pe care sunt stocate datele. Pe msur ce discul se rotete, capul va trece peste o regiune inelar a discului numit pist unde va fi fcut nregistrarea propriu-zis. Dac discul este constituit din mai multe platane, atunci pistele cu aceeai raz de pe fiecare platan vor forma un cilindru. Discul este nvelit ntr-o pelicul de material magnetic dur, care va reine magnetizarea creat de capul de citire/scriere. Datele sunt nregistrate sub forma unor regiuni magnetizate sau celule bit, pe fiecare pist. Fiecare bit nregistrat va avea una din cele dou direcii posibile de magnetizare ale cmpului magnetic. Trecerea de la o direcie de magnetizare la cealalt poart denumirea de tranziie magnetic. Figura 1.2 prezint detaliat seciunea transversal a interfeei cap magnetic mediu, n timpul unui proces de scriere pe disc i respectiv citire de pe disc.

Figura 1.2: Seciune transversal a interfeei cap magnetic-mediu.

Figura 1.3: Diferenele dintre tehnologiile de nregistrare longitudinal i transversal.

O form de und tipic a tensiunii induse n capul magnetic de citire, este prezentat n figura 1.4. Trebuie menionat c n figur s-a considerat semnalul ca fiind neafectat de zgomot i c de obicei nainte de a fi scrise, datele sunt precodate, astfel c n timpul procesului de citire un puls de tensiune pozitiv sau negativ va corespunde unui bit de 1, n timp ce absena unui puls va corespunde unui bit de 0 (codare NRZI).

Figura 1.4: Forma tensiunii induse n capul de citire (la densitate de nregistrare sczut). Din figura anterioar sunt importante de reinut dou aspecte: unui bit de 1 i va corespunde ntotdeauna o tranziie magnetic i dou pulsuri de tensiune consecutive vor avea ntotdeauna polariti diferite. Perioada de timp n care amplitudinea unui puls de tensiune depete 50% din valoarea sa de vrf este considerat ca reprezentnd 50% din limea impulsului i se noteaz cu PW50. Aceast noiune este important deoarece densitatea de nregistrare a canalului magnetic se definete ca fiind raportul dintre PW50 i perioada de bit a canalului ( T): D=PW50/T. La densiti de nregistrare foarte mari spaiul dintre impulsurile de tensiune din figura 1.4 ncepe s scad pn cnd acestea vor ncepe s se suprapun, fenomen care poart denumirea de interferen intersimbol (ISI). Prezena ISI mpreun cu cea a zgomotului poate conduce la nivele foarte ridicate ale ratei de erori n timpul procesului de citire/recuperare a datelor.

1.2.2. Metode de codare a informaiei n canale magnetice Codarea informaiei are un rol esenial n structura canalului magnetic de nregistrare, n acest mod prevenindu-se probleme majore care pot afecta sincronizarea capului de citire-scriere cu discul magnetic i integritatea datelor.
7

n figura urmtoare sursa de informaii este de obicei un sistem de calcul sau un alt sistem capabil s genereze date n format binar. Informaia este codat cu ajutorul unui cod corector de erori (de exemplu cod Reed-Solomon) cu rol de protecie a informaiei stocate n cazul unor defecte de material, zgomote, etc. Semnalul binar rezultat este n continuare aplicat unui circuit de scriere care realizeaz prelucrarea acestuia n vederea adaptrii sale la mediul magnetic de stocare. Aceste prelucrri constau n codri suplimentare (de exemplu codare RLL, etc), amplificare, etc. Semnalul obinut este apoi aplicat capului de scriere, care realizeaz nregistrarea fizic a informaiei pe suportul magnetic, sub forma unor tranziii n magnetizarea acestuia.

Figura 1.5: Schema tipic a unui canal de nregistrare pe suport magnetic. La citire, capul magnetic de citire furnizeaz n exterior un semnal obinut prin inducerea n circuitul magnetic al acestuia a unei tensiuni prin inducie electromagnetic. Acest semnal este aplicat unui circuit care realizeaz o amplificare i eventual alte prelucrri (de exemplu, filtrarea n vederea eliminrii interferenei ntre biii vecini). Semnalul (analogic) obinut la ieirea circuitului amintit mai sus este aplicat unui circuit de detecie, care realizeaz refacerea informaiei digitale. Informaia digital obinut este decodat, corectndu -se eventualele erori aprute, i furnizat sistemului de calcul. n continuare vom face o serie de precizri suplimentare legate de codurile RLL. Am precizat anterior faptul c nainte de a fi scrii, biii de informaie sunt precodai, sau codai NRZI. Codul NRZI este folosit pentru c dispozitivul de citire (capul magnetic) are o caracteristic de derivator (funcioneaz pe baza legii induciei electromagnetice), deci n semnalul de ieire tranziiile de magnetizare vor corespunde unor vrfuri, care pot fi detectate cu uurin ca bii de 1. Principa lul dezavantaj al acestui cod este faptul c la apariia unor iruri lungi de bii 0 este posibil pierderea sincronizrii circuitului de citire. Mai precis, datorit unor fluctuaii inerente n viteza de rotaie a
8

discului, capul magnetic ajunge s fie poziionat incorect n raport cu locaia de pe disc, care trebuie citit/scris. Aceste fluctuaii sunt compensate de un circuit specializat, o bucl PLL, care ns are la rndul ei nevoie de un semnal de tact pe care l preia chiar din semnalul indus n capul de citire de secvena nregistrat. Un ir lung de bii de 0 va duce la absena acestui semnal, aa cum se poate observa n figura 1.6, i la imposibilitatea compensrii fluctuaiilor de vitez amintite mai sus. Codurile RLL previn aceast problem introducnd cte un bit de 1 dup un anumit numr de bii 0.

Figura 1.6: Forma de und asociat unei secvene lungi de bii 0. Codurile RLL clasice, (de exemplu RLL (1,7) i RLL (2,7) ) au ca principal dezavantaj introducerea unei redundane semnificative a secvenei codate n raport cu secvena original (ntre 50%-100%). Acest fenomen implic necesitatea creterii densitii de nregistrare pentru a compensa spaiul pierdut prin codare i astfel se pierde ctigul iniial obinut prin micora rea ratei de erori de bit. Codurile MTR (Maximum Transition Run) RLL, rezolv aceast problem prin adaptarea tehnicii de codare la tipul canalului. Astfel, deoarece canalele PRML i DFE permit nativ densiti de nregistrare mai ridicate, sau altfel spus sunt mai puin sensibile (DFE) sau chiar utilizeaz efectele ISI (PR), codul nu mai este obligat s separe perechile de bii de 1 prin bii de 0, ci poate permite
9

secvene de tranziii magnetice de lungime maxim fixat [12]. Pentru codurile din aceast lucrare, lungimea maxim este de 3. n acest mod redundanele efective ale codurilor implementate variaz ntre: 25% i 6,25%, reducnd spaiul pierdut pe disc prin codare. Scopul principal al lucrrii este de a prezenta performanele codrii LDPC.

Capitolul II. Coduri corectoare de erori.

Concepte de baz Toate codurile corectoare de erori se bazeaz pe acelai principiu: Informaiei i este adugat redundan, pentru a ncerca corectarea eventualelor erori care pot aprea n procesul de stocare sau de transmisie. n principiu, simboluri redundante sunt ataate simbolurilor de informaie, pentru a se obine o secven codat sau un cuvnt de cod. n figura 2.1 este prezentat un cuvnt de cod obinut prin codare cu un bloc cod. O astfel de codare se numete sistematic. Asta nseamn c simbolurile de informaie vor aprea ntotdeauna n primele k poziii ale cuvntului de cod. Cele (n-k) simboluri rmase din cuvntul de cod sunt anumite funcii de simboluri de informaie si asigur redundan, care poate fi folosit pentru detectare/corectare erorilor. Mulimea tuturor secvenelor de cod de acest fel se numete cod corector de erori, i va fi notat cu C.

Figura 2.1 Codare bloc sistematic pentru corecia erorilor

2.1 Coduri bloc i coduri convoluionale


n funcie de metoda prin care redundana este adaugat mesajului, codurile corectoare de erori se mpart n dou clase: coduri bloc i coduri convoluionale. Ambele tipuri de codri au aplicaii practice. De-a lungul timpului, codurile convoluionale au fost preferate, aparent datorit posibilitii implementrii algoritmului de decodare Viterbi, i datorit prerii conform creia codurile bloc nu vor putea fi decodate eficient cu decizii soft. Totui, descoperirile recente n teoria i dezvoltarea algoritmilor de decodare cu decizii soft pentru codurile bloc liniare au nlturat aceast nencredere. Mai mult, cele mai bune coduri corectoare de erori cunoscute astzi sunt blocurile cod (coduri neregulate cu densitate mic i control al paritii).

10

2.1.1 Coduri convoluionale


Codurile convoluionale difer de codurile bloc att prin faptul c exist memorie pentru codor, ct si prin dependen celor n ieiri, la fiecare unitate de timp, nu numai de cele k intrri, ci i de cele m blocuri anterioare de intrare. Un cod convoluional (n,k,m) poate fi implementat cu un circuit secvenial care are n ieiri liniare, k intrri i m intrri de memorie. Uzual, n i k sunt valori ntregi cu k < n , dar valoarea lui m trebuie s fie mai mare pentru a avea probabilitate de eroare mic. n cazul n care k=1, secvena de informaie nu mai este divizat n blocuri i poate fi procesat n mod continuu. Codurile convoluionale au fost introduse n 1955 de ctre Elias ca o alternativ a codurilor bloc. La scurt timp dup aceea, Wozencraft a propus decodarea secvenial ca fiind o metod eficient pentru codurile convoluionale. n 1963, Massey a propus o metod de decodare mai puin eficient, dar mai simplu de implementat , numit decodarea cu prag. Aceasta a dat natere numeroaselor aplicaii ale codurilor convoluionale n cadrul transmisiilor digitale prin cablu sau unde radio. n 1967, Viterbi a propus o metod de decodare de plauzibilitate maxim, uor de implementat pentru codurile cu memorie mic. Aceast schem, denumit decodorul Viterbi, mpreun cu versiunea mbuntit a decodrii secveniale, au lrgit i mai mult domeniul de aplicaie al codurilor convoluionale spre comunicaiile prin satelit, la nceputul anilor 1970.

2.1.2 Coduri bloc


Codurile bloc proceseaz informaia bloc-cu-bloc, tratnd fiecare bloc de bii de informaie separat de celelalte. Cu alte cuvinte, codarea bloc este o operaie fr memorie, n sensul c toate cuvintele de cod sunt independente unul de cellalt. n schimb, rezultatele codrilor convoluionale depind nu numai de informaia de intrare n momentul actual, dar i de intrri si rezultate precedente, fie ntr-un mod bloc-cu-blo, fie bit-cu-bit. Trebuie menionat c i codurile bloc au memorie, cnd sunt proiectate ca un proces bit-cu-bit, n cadrul cuvntului de cod. n ultima perioad, n schimb, diferenele dintre codurile bloc i cele convoluionale sunt din ce n ce mai mici, mai ales n urma recentelor avansuri n nelegerea structurilor trellis i a unor structuri circulare convoluionale. ntr-adevr, unii cercettori care lucreaz cu coduri convoluionale le numesc uneori coduri cu structur trellis, variabil n timp, n timp ce unii cercettori care lucreaz cu coduri bloc le denumesc pe cele din urm - coduri cu structur trellis regulat.

11

2.2 Coduri Turbo 2.2.1 Scurt istoric


Codarea turbo a fost introdus n 1993 de Berrou, Glavieux i Thitimajasima[1], care raportau rezultate impresionante pentru coduri cu lungime mare a cadrelor. Din momentul apariiei, turbocodarea a evoluat ntr-un ritm fr precedent, datorit eforturilor intense depuse de cercettorii din domeniu. Ca urmare, turbo codurile au fost introduse i n standarde, ca de exemplu standardul pentru comunicaii mobile de generaia a treia (3G). n sistemele video de difuzare, unde ntrzierea asociat sistemului e mai puin critic dect n sistemele interactive sensibile la ntrzieri, ctigurile n performan care pot fi atinse sunt i mai impresionante.
In lucrarea lor, autorii au folosit concatenarea paralel a dou coduri convoluionale recursive sistematice, RSC (Recursive Systematic Convolutional codes), cu un dispozitiv de aleatorizare (interleaver) plasat intre cele doua codoare. Pentru decodare, au folosit o structur iterativ avnd implementat o variant modificat a algoritmului MAP (Maximum A Posteriori probability), propus de Bahl, Cocke, Jelinek i Raviv. Pentru a fi eficient, procesul de decodare este iterativ, n sensul c fiecare decodor va genera, la fiecare iteraie, o informaie extrinsec utilizat de cellalt decodor pentru a-si mbunti performanele. Dac numrul de iteraii crete atunci crete i performana decodorului, ajungnd la limita capacitiii Shannon. De la apariia turbocodurilor s-a depus un efort enorm n domeniu, pentru a reduce complexitatea decodorului, de ctre diveri cercetatori, ca Robertson cu Villebrun i Hoeher, Berrou cu Adde Angui i Faudeuil, Bataille .a. S-a mai propus i utilizarea turbocodurilor mpreuna cu scheme de modulaie care folosesc eficient banda de frecvene. Lucrrile lui Benedetto i Montorsi respectiv Perez .a.[3] au facilitat nelegerea cauzelor performanelor excelente ale turbocodurilor. Hagenauer .a. a extins conceptul i pentru codurile bloc concatenate. Jung i Nasshan[4] au analizat performanele sistemelor codate n care se folosesc cadre scurte, ca de exemplu sistemele de transmisie a vocii. Ei au aplicat turbocodurile i la sistemele CDMA (Code Division Multiple Acces), folosind detecia combinat cu diversitatea antenelor. Barbulescu i Pietrobon s-au ocupat de proiectarea interleaverelor. In lucrarea sa, Sklar a descris decodorul iterativ i componentele acestuia.

2.2.2 Configuraii de turbo coduri


Cel mai ntlnit model al unui codor turbo este reprezentat prin utilizarea n paralel asupra aceleiai informaii a dou, trei sau n coduri convoluionale recursive sistematice (RSC -Recursive Sistematic Codes). Dei codurile nerecursive, nesistematice au o distan liber dfree, mai mare dect cele recursive i sistematice, i astfel utilizate n varianta clasic (fr a fi concatenate) ofer rezultate mai bune din punct de vedere al ratei erorii, totui n componena turbocodurilor se dovedesc a avea performane superioare codurile recursive i sistematice . 12

Structura paralel folosete dou sau mai multe coduri RSC fiecare cu un ntreestor propriu diferit de celelalte. Datorit ntreeserii, chiar dac prelucreaz aceeai informaie, codoarele componente vor genera bii de paritate diferii. O structur general a unui codor turbo convoluional concatenat n paralel (PCCC Parallel Concatenated Convolutional Code)[2] este prezentat n Figura 2.1

Codor 1 ntreestor 1 Codor 2

ntreestor n-1

Codor n

Figura 2.1 - Codor turbo convoluional concatenat n paralel cu rata de 1/(n+1)

Codurile convoluionale folosite de codurile turbo au de obicei lungimi de constrngere mici, n jur de 3, 5. Dac n cazul codurilor convoluionale simple lungimea de constrngere mare repezint un avantaj, n cazul codurilor turbo nu duce la performane mai bune, n shimb crete complexitatea calculelor i ntrzierea decodrii. Dac concatenm dou coduri obinem un semnal cu rata 1/3. Dac folosim trei coduri rata va fi 1/4, i tot aa. De obicei dou codoare sunt suficiente ntruct creterea numrului acestora reduce eficiena benzii fr s duc la mbuntiri proporionale ale performanelor. Un alt model de codor turbo este realizat prin concatenarea n serie a codoarelor convoluionale (SCCC Serial Concatenated Convolutional Code). Codurile SCC au performane mai bune n cazul rapoartelor semnal zgomot (SNR) mari. Dac n cazul codurilor PCC era necesar ca toate codurile componente s fie RSC, n cazul codurilor SCC doar codul de la intrare trebuie s fie RSC. De asemenea ratele codurilor componente ale unui SCCC pot fi diferite. Codul de ieire poate fi chiar un cod bloc. Un codor turbo realizat prin concatenarea n serie a altor coduri cu rate diferite poate arta ca n Figura

13

Codor 1 Rat 1/2

ntreestor

Codor 2 Rat 2/3

Figura 2.2 - Codor turbo realizat prin concatenare serie De asemenea exist i modele hibride care folosesc att concatenarea serie ct i cea paralel. Un astfel de exemplu este ilustrat n Figura .3 ntreestor 1 Codor 1

Codor 2

ntreestor 2

Codor 3

Figura 2.3 - Codor turbo hibrid Un alt tip de codor numit codor turbo produs (TPC Turbo Product Code) are o structur foarte diferit de cea paralel sau serie. Codul TP folosete coduri bloc n locul celor convoluionale. Dou coduri bloc diferite (de obicei coduri Hamming) sunt concatenate serial fr a mai exita vreun ntreestor ntre ele. Funcia de ntreesere este asigurat de aplicaia rnd-coloan de la un codor ctre cellalt. ntruct codurile sunt independente i opereaz pe rnduri i coloane,se obine o aleatorizare suficient i de aceea interleaver-ul nu mai este necesar. La fel ca i codurile PCC, codurile TP funcioneaz bine la raport semnal zgomot sczut i pot fi formate prin concatenarea oricror tipuri de coduri bloc. Nu structura codurilor prezentate mai sus duce la denumirea de Turbo ci tipul decodrii folosite. Este vorba de o decodare iterativ cu reacie (conexiune invers) care amintete de principiul de funcionare a motoarelor turbo.

2.2.3 Explicarea principiului Turbo


n Figura 2.4 se prezint schema unui TC n configuraie paralel. Secvena de informaie, notat u, este codat de ctre codorul C1 rezultnd secvena de paritate x . Aceeai secven de bii, u, este
1

furnizat, ns n alt ordine prin ntreesere cu ajutorul dispozitivului de ntreesere I, codorului C2, care genereaz la rndul su, secvena de paritate x . Secvenele rezultate x =u, x i x , prin multiplexare
2 0 1 2

i modulare (operaii omise n Fig.2.4) constituie ieirea TC-ului, semnal ce va fi emis n canal. La ieirea acestuia, prin demodulare i demultiplexare rezult secvenele (soft) recepionate, y , y i y .
0 1 2

14

Figura 2.4 - Schema unui turbocod (cod concatenat paralel) Fiecare decodor calculeaz logaritmul raportului de plauzibilitate (Log Likelihood Ratio LLR) pentru fiecare bit din u: LLR(ui)=ln

(1)

(n figur este prezentat doar logaritmul raportului de plauzibilitate al primului decodor, notat LLR1) i de asemenea informaia extrinsec destinat celuilalt decodor. Fiecare decodor primete informaie extrinsec i, pe baza ei i pe baza secvenelor venite din canal (y i y respectiv y ntreesut
0 1 0

i y ) furnizeaz la rndu-i informaie extrinsec. Acest proces se repet iterativ de un anume numr de ori
2

(impus sau calculat, funcie de tipul TC-ului). Dup efectuarea tuturor iteraiilor impuse, se face o decizie hard asupra logaritmului raportului de plauzibilitate generat dup ultima iteraie de unul din cele dou decodoare. Secvena rezultat prin operaia de decizie hard constituie ieirea TC-ului. Codoarele utilizate n TC-uri sunt n special cele recursive i sistematice. n Figura 5 este prezentat un codor convoluional recursiv, sistematic, avnd matricea generatoare:
2 2

G(D)=[1, (1+D )/(1+D+D )] sau, n octal: G = [1, 5/7]. n contrast cu codorul convoluional, care are o implementare hard simpl, dup cum se vede n Fig. 2.5, un decodor, pentru a putea fi component al unui TC, trebuie s accepte intrare soft i, de asemenea, s ofere ieire soft. Dispozitivul de ntreesere (interleaver) realizeaz o permutare a secvenei de intrare. Altfel spus, implementeaz o funcie bijectiv de forma: : I I, cu I = {1,2, ... N} (2) Rolul acestei rearanjri este de a produce o decorelare ntre diferitele intrri al e unui decodor component.

15

Figura 2.5 Codor convoluional recursiv,sistematic, cu G=[1,(1+D2)/(1+D+D2)]

2.2.4 Procesarea Turbo


Un sistem de comunicaie tipic const n general din o cascad de subsisteme cu diferite funcionaliti de procesare a semnalului. Fie, de exemplu, un sistem simplu de comunicaii folosind codare de canal i semnalizare peste un canal afectat de interferen inter -simbol (IIS), precum in figura2.6. ntr-un receptor convenional, demodulatorul ia decizii hard referitor la biii transmii {b[i]} pe baza semnalului recepionat r(t), care sunt apoi transmii la decodorul canalului care reface informaia original. Problema cu aceast abordare este c deciziile hard asupra biilor se face cu pierdere de informaie n fiecare subsistem (demodulator i decodor). Aceasta deoarece n timp ce subsistemul indic numai dac bitul recepionat este 0 sau 1, el are totui suficient informaie s estimeze gradul de ncredere asupra deciziilor sale. O soluie ce elimin pierderea de informaie i implicit scderea performanei este transmiterea nivelului de ncredere cu deciziile fcute (adic s fac decizii soft). Aceasta se face cnd se transmite informaia de la demodulator la decodor, ceea ce duce la un ctig de 2dB pentru canalul cu zgomot alb gaussian aditiv (AWGN). Totui, chiar dac se fac decizii soft optimale pentru fiecare bit pentru transmiterea de informaii ntre oricare subsisteme, performana este nc departe de cea optim. Cauza este c dei blocurile mai deprtate n lanul de procesare (decodorul) folosesc informaia de la stagiile anterioare (demodulatorul), inversul nu se ntmpl. Performana optim este atins n cazul efecturii deteciei n comun, inndu-se cont simultan de toate procesrile din receptor (detecie a probabilitii maxime bazat pe supertrellis-ul att a codului de canal ct i a canalului IIS), complexitatea acestei abordri fiind foarte prohibitiv. De aceea s-a propus o abordare iterativ care permite stagiilor incipiente (demodulare) s-i rafineze rezultatele pe baza informaiilor de la stagiile avansate (decodorul).

16

codor canal

ntreesere

{b[i]}

modulator

canal IIS

decodor

dentreesere

demodulator

r(t)

Figura 2.6 Comunicare codat pe un canal ce provoac interferen inter-simbol Pentru folosirea de procesare turbo n sistemul din figura 2.6, att demodulatorul ct i decodorul trebuie s fie de tipul probabilitate a posteriori maxim (MAP). Funcia unui demodulator MAP este de scoate la ieire decizii soft ce reflect probabilitatea ca un bit s fie 0 sau 1. La a l-a iteraie, informaia folosit de demodulatorul MAP const n semnalul recepionat r(t) i probabilitile a priori a biilor de intrare obinute de la decodorul MAP care sunt calculate pe baza ieirilor demodulatorului de la iteraia l 1. Demodulatorul MAP folosete aceast informaie, combinat cu informaia despre modulaia i structura canalului ales, pentru a produce probabilitile a posteriori (APP) a biilor.

(16)

(17) Considernd raportul de probabilitate logaritmic (LLR) format de probabilitile a posteriori din (16) i (17):

(18)

l Se vede din (18) c LLR-ul este suma a dou cantiti distincte, primul termen 1 (b[i]) , este

informaia extrinsec produs de subsistemul din primul stagiu din receptor (demodulatorul MAP), care este informaie despre b[i] extras de demodulator din semnalul recepionat r(t) i probabilitile a priori 17

a celorlali bii transmii, fr a folosi probabilitile a priori b[i]. Al doilea termen, l2-1 (b[i]) , conine probabilitile a priori b[i]. Pentru prima iteraie (l=1), se consider P0(b[i]=1)= P0(b[i]=0)=1/2
l ( l2-1 (b[i]) 0 pentru orice i). Informaia extrinsec { 1 (b[i]) } produs de demodulatorul MAP este

trimis subsistemului din stagiul urmtor (decodorul MAP) ca informaie a priori pentru decodare. Bazat pe informaia a priori primit de la demodulatorul MAP i pe constrngerile codului, decodorul MAP calculeaz LLR-ul a posteriori pentru fiecare bit:

(19) Ieirea decodorului este suma dintre informaia extrinsec l2 (b[i]) determinat de subsistemul
l din stagiul al doilea (decodorul MAP) i informaia anterioar 1 (b[i]) de la stagiul anterior

(demodulatorul MAP). Informaia extrinsec l2 (b[i]) este apoi retrimis la demodulatorul MAP ca informaie a priori pentru urmtoarea (l+1) iteraie. Trebuie remarcat c (18) i (19) sunt adevrate doar dac intrrile demodulatorului sau decodorului sunt independente. Cum att canalul IIS i codorul sunt cu memorie, aceast presupunere de independen este invalidat, deci trebuie fcut ntreeserea (per mutare n timp) ntre demodulator i decodor pentru a asigura independena aproximativ. n sfrit, structura receptorului turbo pentru un sistem IIS este ilustrat n figura 3.8. Aceast schem poart numele de egalizor turbo. Numele turbo este justificat deoarece demodulatorul i decodorul folosesc pentru a scoate date la ieire informaii a priori de la iteraia anterioar, similar funcionrii unui motor turbo.

demodulator MAP

dentreesere

decodor MAP

ntreesere

r(t)

Figura 2.7 Receptor turbo pentru comunicaie codat peste canal IIS

Principiul turbo poate fi deasemenea aplicat canalelor cu acces multiplu, rezultnd detectoare turbo multiutilizator.

2.2.5 Decodarea codurilor Turbo


Pentru orice cod tradiional simplu, ultimul pas de la decodor const n a produce decizia hard asupra biilor decodai (sau mai general a simbolurilor decodate). Pentru ca intr -o schem concatenat un cod turbo s funcioneze bine, algoritmul de decodare nu ar trebui s se limiteze la furnizare deciziilor 18

hard. Pentru a exploata ct mai bine informaiile nvate de la fiecare decodor, algoritmul de decodare trebuie sa efectueze un schimb de decizii soft dect unele hard. Pentru un sistem cu 2 componente de cod, conceptul care st n spatele decodrii turbo const n a transmite decizii soft de la ieirea unui decodor la intrarea celuilalt, i s itereze acest proces de mai multe ori pentru a avea decizii mai bune. Aadar un decodor pentru a putea fi component al unui turbo cod, trebuie s accepte intrare soft i, de asemenea, s ofere ieire soft. n continuare vor fi prezentai principalii algoritmi SISO (soft-input soft-output). Algoritmii de decodare bazai pe trellis reprezint metode recursive prin care se estimeaz secvena de date pe baza secvenei recepionate, pe baza unui criteriu de evaluare a distanei dintre secvena recepionat si toate secvenele posibile prin diagrama trellis, distan ce trebuie minimizat. Sunt cunoscute dou mari clase de algoritmi bazai pe trellis: familia de algoritmi de tip MAP (Maximum Aposteriori Probability). El maximizeaz logaritmul raportului de plauzibilitate condiionat de o anumit secven recepiont i o anumit succesiune de stri prin trellis. Acest algoritm este optim din punct de vedere al minimizrii probabilitii de eroare de bit, fiind, din acest punct de vedere superior algoritmului Viterbi, oferind nu numai secvena estimat ct i probabilitiile ca fiecare bit din secven s fie corect recepionat. Dezavantajul su const n faptul c complexitatea sa este mult mai mare dect a algoritmului Viterbi convenional, deoarece trebuie s examineze toate cile posibile prin trellis, fr eliminrile pe care algoritmul Viterbi le face la anumii pai. Din aceast cauz au fost deduse un numr de versiuni simplificate care duc la performane mai bune i la o complexitate mai mic (Max-Log-MAP, Log-MAP,etc). algoritmul Viterbi minimizeaz probabilitatea ca o secven incorect prin trellis s fie aleas ca fiind cea corect n raport cu secvena recepionat. Fa de algoritmul Viterbi clasic, cel folosit n cazul decodrii codurilor turbo prezint dou modificri, i anume: modalitatea de calcul a metricilor cilor a fost modificat astfel nct s in seama de informaia apriori obinut de fiecare decodor de la perechea sa; algoritmul a fost modificat astfel nct s se obin att un estimat al secvenei prin trellis ct i o ieire soft care s ofere celuilalt decodor o informaie asupra metricii calculate;

A nu se confunda decodarea MAP sau SOVA ( Soft Output Viterbi Algoritm) cu noiunea de decodare iterativ. Algoritmii MAP i SOVA sunt utilizai cu sistemele de codare bazate pe trellis n timp ce procesul iterativ se poate aplica oricrui tip de cod inclusiv codurilor bloc care nu sunt bazate pe trellis. n cazul codurilor turbo, implementarea decodorului este foarte costisitoare din punct de vedere al efortului de calcul; de aceea se prefer structuri de codare cu memorie mic ( folosind registre de deplasare cu maxim 4 celule) i dimensiuni relativ reduse ale circuitului de ntreeser e, pentru a nu lucra cu blocuri de date foarte lungi (lungimea trellisului pentru care se determin parametrii fiind dictat de dimensiunea blocului de intrare)

19

Figura 2.8 Decodor SISO (pentru un cod sistematic)

2.2.6 Principiile care stau la baza decodrii iterative (Turbo)


Pentru prima iteraie de decodare a decodorului SISO din figura 2.8, se presupune c datele sunt echiprobabile, genernd o valoare apriori iniial a LLR-ului egal cu 0 (L(d)=0). Ieirea L( ) a decodorului din fig 2.8 este format din LLR-ul detectorului, L`(d) i din LLR-ul extrinsec de la ieire, Le( ), reprezentnd informaia nvat din procesul de decodare. Dup cum este ilustrat n fig 2.8, pentru o decodare iterativ plauzibilitatea extrinsec este ntoars n intrarea decodorului, pentru a servi la mbuntirea valorii apriori pentru urmtoarea iteraie. S considerm codul bidimensional reprezentat n fig 2.9. Configuraia poate fi descris ca o matrice de date format din k1 linii si k2 coloane. Fiecare din cele k1 linii conine un vector de cod format din k2 bii de informaie i n2-k2 bii de paritate. n mod similar, fiecare din cele k2 coloane conine un vector de cod format din k1 bii de informaie i n1-k1 bii de paritate. Diferitele pri ale structurii sunt notate cu d pentru date, ph pentru paritatea orizontal (de-a lungul liniilor) i pv pentru paritatea vertical (de-a lungul coloanelor). n plus, sunt blocuri notate cu Leh i Lev care conin valorile LLR extrinseci nvate din paii de decodare orizontal i respectiv vertical. De reinut c acest cod produs este un exemplu simplu de cod concatenat. Structura lui conine 2 pai de decodare diferii, orizontal i vertical.

20

k2 k1 rnduri d n1-k1 rnduri Verticala extrinsec

n2-k2

coloane coloane L eh Orizontal a extrinsec

Figura 2.9 Cod produs bidimensional

Algoritmul de decodare iterativ al acestui cod produs acioneaz dup cum urmeaz:

1. Stabilete informaia apriori L(d)=0 2. Decodeaz orizontal i folosind ecuaia (15) se obine informaia extrinsec orizontal dup cum urmeaz: Leh( ) = L( ) Lc(x) L(d) 3. Stabilete L(d) = Leh( ) 4. Decodeaz vertical i folosind ecuaia (15) se obine informaia extrinsec vertical dup cum urmeaz: Lev( ) = L( ) Lc(x) L(d) 5. Stabilete L(d) = Lev( ) 6. Dac au fost suficiente iteraii pentru a genera o decizie de ncredere, du-te la pasul 7; altfel du-te la pasul 2. 7. Ieirea soft este: L( )=Lc(x)+Leh( )+Lev( ) (20)

2.3 Coduri LDPC 2.3.1 Apariia codurilor LDPC


Robert Gallager a introdus codurile de control al paritii de mica densitate[5,6], la doar o decad dup ce opera lui Shannon a fost publicat[7]. Abordarea sa urma s formeze n cele din urm baza pentru o clas de coduri care se apropie foarte mult de legtura lui Shannon. Codurile lui Gallager, i algoritmii iterativi de decodare, au fost oarecum trecui cu vederea de cei din domeniul codificrilor. n acea period, nu muli cercettorii aveau la dispoziia lor un calculator performant, aa c munca lui nu a mai fost continuat. Ba mai mult, avnd o intuiie puternic, abordarea lui Gallager era o provocare pentru paradigma de codificare ntr-o vreme n care
21

specialitii puneau accent pe distana minim. Adevratul potenial al controlului paritii de mic densitate a fost redescoperit abia trei decade mai trziu, la jumtatea anilor 1990. Un numr mic de cercettori au continuat s foloseasca codurile Gallager timp de cteva decade dup publicarea tezei lui, vezi [8,9]. La nceputul anilor 1980, Tanner a furnizat o reprezentare grafic a LDPC i a altor scheme de codificare, care sunt cunoscute acum su b denumirea de diagrama Tanner[10]. El a propus ca problema decodificrii s fie rezolvat prin descompunerea codurilor n coduri mai simple din structura lor i a introdus noiunea care este cunoscut n prezent sub denumirea de algoritm de decodificare a sumelor minime. Tanner a prevzut de asemenea i potenialul enorm al paralelismului, permind codurilor mai simple sa fie procesate simultan datorit coplexitii lor sczute. De la descoperirea codurilor de control al paritii de mic densitate au fost propuse mai multe variante de mbuntire. Unele dintre aceste coduri, n special n cazul diagramelor foarte mari(ntre aproximativ 105 i 107 bii) pot s ating performane pn aproape de o sutime a unui decibel a legturii lui Shannon[11].

2.3.2 Prezentarea unui model al sistemelor de comunicaie


Un sistem de comunicaie complet include numeroase pri componente care pot ridica probleme interesante i greu de rezolvat. Cele mai multe sisteme de comunicaie moderne lucreaz n domeniul digital, acesta oferind o mulime de posibiliti de procesare a semnalului. n general, pentru obinerea de performane optime, codorul sursei, codorul de canal i modulatorul ar trebui considerate ca fcnd parte din aceeai funcie a sistemului i n u ca blocuri separate. Shannon[13] a demonstrat c partea de codare a sursei i partea de codare de canal pot fi separate n uniti individuale fr a se pierde la capitolul optimizare. Aceeai regul ns nu se poate aplica i pentru desprirea funciilor de codare de canal i modulare. De exemplu, modulaia bazat pe codare trelli s (TCM ), care este o tehnic ce combin codarea de canal i modulaia, poate obine performane mai ridicate dect metodele care separ codarea de canal i modulaia.

2.3.2.1 Modele de canal


Pentru studierea i compararea codurilor de canal este folositor s considerm modulatorul i demodulatorul ca fiind pri componente ale canalului. Rezultatul este un canal cu intrri i ieiri n timp discret, caracterizat de intrrile i ieirile posibile i de probabilitile de tranziie care fac legtura dintre intrri i ieiri. De asemenea, ieirea poate s nu depind numai de intrarea curent ci i de cele anterioare. n aceste cazuri vorbim despre canale cu memorie. Acest proiect are ca scop nelegerea i simularea codurilor LDPC. acest scop va fi folosit ca nalul cu zgomot aditiv Gaussian alb( additive white Gaussian noise - AWGN), acesta fiind un tip de canal cu o bun relevan practic. Aa cum este sugerat i de numele canalului ieirea Y este modelat prin adugarea unei variabile aleatoare distribuite Gaussian ( G ) la intrarea n canal X. Y=X+G (21)

22

G este o variabil aleatoare distribuit Gaussian de medie zero i varian a2. Pentru un anumit simbol X= x ieirea din canal Y este o variabil aleatoare distribuit Gaussian de medie x i varian 2, dat de formula:

(22)
unde p( ) reprezint densitatea de probabilitate a unei funcii de o variabil aleatoare.

2.3.2.2 Coduri de canal Scopul codrii de canal este de a face mesajul transmis mai puin susceptibil la zgomotul introdus de canal. Acest lucru este realizat prin adaugarea de informaie redundant structurat sevenei transmise, deci crescnd numrul de bii transmii. Exist dou tipuri primare de coduri folosite pentru a introduce aceast redundan: coduri bloc i coduri convoluionale. Un cod bloc transform un bloc de informaie de lungime k ntr-un bloc cod de dimensiune n, unde n>k. Un codor convoluional este n schimb un codor ce introduce n mod continuu redundan unui ir de bii de informaie primii n mod continuu. Pentru ambele tipuri de coduri, rata de cod R este dat de numrul de simboluri de informaie transmise pentru un simbol iniial. Pentru coduri bloc aceasta este R=k/n . n acest proiect sunt folosite coduri binare deci fiecare simbol va putea lua numai valorile 0 sau 1. Datorit redundanei adugate de ctre codorul de canal, receptorul poate detecta i corecta erorile introduse de canal. Codurile de canal care sunt realizate n acest scop se numesc coduri corectoare de erori. Codurile LDPC fac parte din aceast categorie. Performana unui cod corector de erori poate fi masurat, de exemplu, n raportul semnal zgomot( SNR ) necesar pentru a obine comunicaia cu o anumit eroare de rat maxim. De obicei SNR-ul necesar pentru a obine o anumit rat de eroare este cu mult mai mic cnd sunt folosite coduri corectoare dect atunci cnd informaia este transmis fr codare. Totui exist i dou dezavantaje date de folosirea codurilor corectoare de erori: mrete numrul de accesri ale canalului, deci lrgimea de band, i conduce la o complexitate crescut a implementrii transmitoarelor i receptoarelor. n seciunea urmtoare sunt prezentate cteva limite i restricii fundamentale care sunt folositoare pentru analizarea performanelor unui cod n perspectiva folosirii lui n cadrul unui sistem. 2.3.2.3 Limite de performan
Ca parte a teoriei matematice a comunicaiei, Shannon a definit conceptul de capacitate de canal. Capacitatea unui canal reprezint o msura a cantitii de informaie ce poate fi transportat ntre intrarea X i ieirea Y a unui canal. Definiia capacitii este legat de definiia matematic a informaiei; informaia medie mutual ntre variabilele aleatoare continue X i Y , n bii, definite astfel:

23

(23) unde px,y(x,y), px(x) i py(y) sunt densitatile de probabilitate pt X si Y. Capacitatea canalului C este definit ca maximul valorii I(X,Y) pentru distribuia de intrare px(x) msurat n bii/canal: C=maxI(X;Y) (24)

Teorema codrii(Shanon) de canal asigur o relaie ntre capacitatea canalului C i rata de transmisie a informaiei R: Dac avem o surs cu un debit de informaie R bii/s i un canal de capacitate C bii/s i dac R < C, exist un cod cu cuvinte de lungime n astfel nct probabilitatea unei erori de decodare s fie: PE2-nE(R) unde n este lungimea cuvntului de cod i E(R) o funcie nenegativ numit exponentul erorii. Deci, indiferent de nivelul perturbaiilor din canal se poate face transmisiunea cu o probabil itate a erorii orict de mic. Performanele codorului LDPC sunt foarte bune tinznd spre limita teoremei lui Shannon. Se definete eficiena spectral: ES=rb bit/sec/hz, unde rb este rata de transmisie i B banda . Eficiena spectral maxim ESmax=log2MR Raportul semnal/zgomot (26) (25)

(27)

unde M este modulaia, R rata codorului i

reprezint raportul dintre energia de bit i

densitatea spectral de putere a zgomotului. Teorema lui Shannon spune c se poate realiza o probabilitate de eroare de bit orict de mic prin codare-decodare dac rb < C, unde C este capacitatea canalului C=B log2(1+ ) Daca rb=C (29)
24

(28)

Rezult c eficiena spectral maxim este:

(30) i reprezint raportul minim dintre energia de bit i densitatea spectral de putere a zgomotului necesar pentru transmisie. Pentru canalul discret AWGN cu intrri i ieiri continue capacitatea canalului este dat de relaia :

(31) unde puterea la intrarea canalului este limitat de E[X2]2x si 2 este variana zgomotului. n practic forma de und folosit este limitat de band. Deci rata de transmisie nu poate fi crescut orict prin accesarea orict de des a canalului. O cerin fundamental pentru comunicaie este dat de:

(32) deci nu este posibil s se conceap un sistem cu o rat arbitrar sczut de erori dac E b/N0<0.7 dB. Pe de alt parte, att timp ct condiia este ndeplinit, teoretic se pot atinge probabiliti de eroare sczute folosind coduri suficient de mari. Aceast restricie impune o limit inferioar n ceea ce privete raportul energie per bit pe densitatea spectral a zgomotului (E b/N0), limit ce trebuie respectat pentru a putea obine o comunicaie fr erori. Oricum, presupunerile folosite pentru a obine aceasta limit sunt prea optimiste pentru cele mai multe situaii reale. Cea mai important diferen ntre descriererea teoretic i realizarea practic este dat de faptul c banda canalului este, n realitate, limitat. Din aceast cauz raportul Eb/N0 necesar pentru o comunicaie bun, chiar folosind coduri foarte mari, este mai mare dect 0.7 dB.

2.3.3. Codurile bloc liniare


Codurile de control al paritii de densitate mic fac parte din categoria codurilor bloc liniare. Pentru o mai bun nelegere vom defini proprietile codurilor cu diagrame liniare: Sursa informaiei mprim o secven cu sursa primar ntr-un ir de vectori de lungime k nainte de codificare. Un astfel de vecor se noteaz cu u. Codarea se face pe baza lungimii unei diagrame aplicnd u pe un ir de vectori cifrat cu x. Un cod (n,k) are lungimea de cod n.

25

Cod sistematic Un cod n care informaia vector apare ca o parte a cuvntului de cod siste matic. Segmentul de informaie din cuvntul de cod este numit xp = u i lungimea n-k bii de paritate adugai xp. Proprietatea de liniaritate Codul C este un cod liniar binar dac i numai dac C formeaz un subspaiu vectorial peste+. Deci, suma oricror dou cuvinte de cod trebuie s fie n sine un cuvnt de cod. Dimensiunea codului este dimensiunea spaiului vectorial care i corespunde. Un cod binar (n,k) are dimensiunea k, i astfel are un total de 2k cuvinte de cod, fiecare de lungime n. Cuvnt de cod diferit de zero O consecin direct a proprietii de liniaritate este aceea c numele de cod total=zero , x=0, este un membru al oricrui cod liniar. Coeficientul codului Coeficientul codului este r=k/n. Coeficientul codului indic proporia de informaie transferat pe canal utilizat. Matricea Generatoare Proprietatea de liniaritate implic existena unei baze pentru cod. S construim o matrice generatoare pentru cod, denumit G, folosind baza independent de cuvntul de cod k pe post de ir de vectori G. Matricea generatoare are dimensiunea k x n i poate fi folosit pentru a codifica vectorul de informaie. S considerm forma sistematic Gsys=[P|Ik] n aa fel nct biii de paritate ai cuvntului de cod s precead biii de informaie. Aici [ P|Ik] denot legatura matricei unitare k x k cu P. Aadar, codificarea este realizat respectnd x=[xp|xu]=uG. Matricea generatoare descrie structura codului, totui nu este definit numai pentru cod. Matricea Controlului Paritii Un alt mod de a descrie structura codului, este furnizat de matricea de control al paritii, denumit H. n general, H are dimensiunea m x n, unde m=n-k. Toate cuvintele de cod trebuie s respecte condiia HxT=0. Matricea de control al paritii nu este definit numai pentru cod i este legat de G prin HGT=0. Forma sistematica a lui H poate fi obinut din G, i viceversa, folosind Hsys=[Im|PT]. Distribuia greutii Definim vectorul de greutate x, W(x), ca numrul elementelor diferite de zero pe care le conine. Distribuia greutii unui cod este o list cu numrul de cuvinte la fiecare greutate, pentru toate greutile cuvntului cod. Distana Hamming dintre dou cuvinte cod este numrul poziiilor n care ele difer. Distana minim se noteaz cu dmin i este cea mai mic distana Hamming dintre dou cuvinte de cod din mulimea tuturor cuvintelor. Avnd n vedere c un cuvnt de cod nul (cu toti biii zero) este un membru al fiecarui cod liniar, distana minim a unui cod liniar este egal cu greutatea cuvntului de cod care are cea mai mic greutate. n general, un cod cu greutatea minim dmin poate corecta [(dmin-1)/2] greeli.

26

n timp ce irurile matricei generatoare sunt cuvinte de cod, irul cu cea mai mic greutate reprezint o legatur superioar simpl sau o distan minim. Teorema urmtoare se leag de structura codului prin matricea de control al paritii[14]. Teorema (Massey). Distana minim a unui cod cu diagrama liniar binar este egal cu numrul minim de coloane diferite de zero n matricea sa de control al paritii care nsumeaz zero.

2.3.4. Codurile de Control al Paritii cu Densitate Mic


Un cod de control al paritii cu densitate mic(LDPC) este un cod cu o matrice liniar care are o matrice de control al paritii slab populat. n acest capitol vom prezenta evoluia codurilor LDPC, ncepnd de la codurile prezentate prima dat de Gallager pn la posibilitatea recent de abordare a structurii. Considernd un cod LDPC regulat cu matricea de paritate H dat :

Fig. 2.10 Matrice de control a paritii Atribuim fiecrui bit al cuvntului de cod o variabil, vs:s {1..m}, unde fiecare variabil corespunde de asemenea unei coloane H. Aadar, fiecare ir din H reprezint o restricie a controlului de paritate cu codul, cr:r {1..m}. Participarea variabilei vs la controlul restriciei este sugerat de un element diferit de zero de pe poziia (r,s) n H. Nodurile variabile si cele de control pot de asemenea s aib valori asociate cu ele. Simbolurile vs i cr sunt folosite att pentru a denumi aceste noduri ct i pentru a reprezenta valorile. Denumim numrul de elemente diferite de zero din ir, sau coloan, ca fiind greutate. Fiecare linie din H reprezint o constrngere a controlului de paritate. Deci, urmeaz mulimea complet de restricii, presupunnd aritmetica binar. Dac valorile atribuite mulimii de variabile reprezint un cuvnt de cod valid, atunci cr=0 pentru toate r {1..m}.

27

v1+v3+v5+v7=c1 v1+v4+v6+v8=c2 v2+v3+v6+v7=c3 v2+v4+v5+v8=c4

(33) (34) (35) (36)

Gallager definete o structur regulat pentru codurile de control al paritii cu densitate mic dup cum urmeaz: Definiia 1. Codul regulat LDPC Un cod regulat LDPC cu parametrii (n,j,i) este un cod bloc de lungime n care are o matrice de control al paritii cu greuti pentru rnd i coloan de exact j pe coloan i i pe linie. Prin contrast, codurile neregulate LDPC permit variabilelor s participe n numere diferite de controale i fac posibil aplicarea restriciilor controlului la numere diferite de variabile. Un cod neregulat LDPC poate fi descris de distribuiile greutii vectorului de linie i de coloan ale matricei sale de control al paritii. Dup cum am spus i mai devreme codul dat ca exemplu n fig. 2.10 are o structur regulat(8,2,4). Este foarte utilizat denumirea de coduri regulate LDPC fr a se specifica lungimea n serie, ex(2,4)-regulat. Dup cum vom vedea n seciunea de codificare, eficiena acestor coduri este permis de proprietatea matricei de control al paritii de a fi slab populat. Exist multe variante de a construi o matrice de control al paritii p(j,i). O variant des folosit este de a aduna sau a suprapune matricele permutrilor aleatorii. n fig. 2.11 folosim notatia din[15], unde un numr ncercuit reprezint acel numr al matricei permutrilor aleatorii suprapuse (nu mbinate). Figura 2.11(a) ofer un exemplu de construcie regulat (3,6). Figura 2.11(b) arat cum pot fi adunate matricile permutrilor aleatorii n aa fel nct s rezulte un cod regulat(4.8). Figura 2.11(c) ne arat cum putem de asemenea vizualiza construcia suprapus sub forma unei permutri aleatorii de legturi ntre muchii:

28

(a)

(b)

(c)

Fig. 2.11 Moduri de construcie ale matricilor circulare

Un total de coduri rmase n cu gradul j reprezint variabilele i nodurile drepte m de gradul j reprezint restriciile controlului. Dac coloanele lui H sunt independent liniare atunci coeficientul codului este r =(i-j)/i, n caz contrar coeficientul este r=(n-i-I)/n, unde I este dimensiunea spaiului H al linei peste cmpul binar care este folosit aici. Exist rezultate importante n cazul codurilor LDPC regulate generate aleator care au greutatea coloanei j>=3[2,10]. n primul rnd distana minim a unui astfel de cod crete liniar cu lungimea diagramei. n al doilea rnd, dac este decodificat de un decodor optim i dac acel coeficient diferit de zero al codului este sub vreun coeficient maxim, un astfel de cod va dezvolta o probabilitate de eroare arbitrar mic n limita n care lungimea diagramei tinde la infinit.

2.3. 5. Reprezentarea grafic a coeficientului codurilor LDPC

Folosim termenul cod compus pentru a clasifica orice cod care poate fi divizat n subcoduri constituente, de exmplu, un cod LDPC[16]. Renvierea interesului pentru structurile codului compus i algoritmii iterativi de decodare au dus la noi reprezentri pentru coduri n grafuri. Acestea ne ofer o unealt folositoare pentru reprezentarea codului i iau parte la analiza de decodificare a algoritmilor. S lum o funcie global, de exemplu, o funcie a tururor variabilelor n, g (x1,...,xn). Presupunem c aceast funcie global se descompune ntr-un produs de funcii locale, fr(Xr). Aici rR este indexul funciei locale i Xr reprezint submulimea variabilelor care particip la fr .

29

Rezultatul va fi: (37) Definiia 2. Graful coeficientului. Un graf al coeficientului este un graf bipartiionat care reprezint factorizarea descris n (37). Graful const n variabile i noduri de decodificare. Exist un nod variabil pentru fiecare variabil xs, astfel ncat s{1...n}. Exist un nod de decodificare pentru fiecare funcie local fr. Legtura se afl n cadrul diagramei ntre nodul variabil xs i nodul funcional fr dac i numai dac xsXr. Un exemplu simplu ar fi s considerm o funcie global de valoare real cu trei variabile, g(x1,x2,x3), care poate fi reprezentat ca produsul a dou funcii locale f1 i f2 dup cum urmeaz: g(x1,x2,x3)=f1(x1,x2,x3)f2(x1,x2,x3) (38)

Reprezentarea diagramei coeficientului pentru (38) este redat n figura (2.12). Nodurile variabile i nodurile funcionale sunt reprezentate prin cercuri respectiv cutii. Nodul variabil x s pentru s{1,2,3}, este conectat printr-o muchie la nodul funcional fr , pentru r{1,2,3}, dac i numai dac xs este o variabil independent a fr.

Fig. 2.12 Structura diagramei bipartiionate a coeficientului


Structura diagramei bipartiionate a coeficientului reprezint foarte bine codur ile LDPC. Nodurile funcionale reprezint restriciile controlului de paritate ale codului i se mai numesc prin urmare i noduri de control. Structura regulat descris n fig.(2.10) este reprezentat prin urmtoarea diagram:

30

Fig. 2.13 Diagrama ascociat matricei de verificare a paritii Matricea H indic muchiile (bidirecionale) ale diagramei n funcie de poziia elementelor sale diferite de zero. n acest caz, nodurile variabile n=8, fiecare cu gradul j=2, reprezint simboluri ale cuvintelor de cod. Nodurile de control m=4, fiecare cu gradul i=4, reprezint controlul de paritate. S lum un cod C de lungimea n cu matricea de control de paritate H. S ne amintim c un cuvnt de cod valid x respect Hx = 0, i c fiecare linie din H reprezint o restricie separat a controlului de paritate. Atribuim o funcie local de indicare fiecrei restricii de control. Funcia local asociat cu controlul cr este ndeplinit cnd particip la control toate variabilele, exemplu setul Xr, suma zero pe F2, de exemplu Aici folosim convenia lui Iverson[17] pentru a arta gradul de adevr al unei declaraii S. Dac S este adevrat atunci [S] = 1, n caz contrar [S] = 0. Deci, cnd funcia local este ndeplinit aceasta i nsuete valoarea 1, n caz contrar are valoarea 0. n concluzie, rezultatul acestor funcii locale de indicare se numete funcia global de indicare. Vectorul x este un cuvnt de cod valid, care corespunde pe diagrama coeficientului unei configuraii valide, dac i numai dac ndeplinete funcia global de indicare a codului. Aadar, funcia global se mai numete funcia ce aparine unei mulimi de coduri i este notata prin [(xi,... ,xn) C] n cazul unui cod C de lungimea n. S lum exemplul simplu de cod dat n (1) cu grupul de restricii listat n (33-36). Folosind aritmetica n loc de F2, funcia global de indicare pentru acest cod este dat de:
31

[(x1...x8)C]=[x1+x3+x5+x7=0][x1+x4+x6+x8=0] [x2+x3+x6+x7=0][x2+x4+x5+x8=0] (19)

Tanner a introdus pentru prima dat ceea ce e ste azi cunoscut sub denumirea de reprezentarea prin diagrama de coeficient a codurilor lui Gallager [10]. El a prevzut de asemenea i potenialul ce se dezvolta n paralel, acela de a rupe codurile lungi n componente constituente mai mici pentru a fi decodificate. Wiberg, Loeliger i Kotter [18,19] au adugat la diagrama lui Tanner, reprezentarea variabilei de stare, fcnd posibil astfel reprezentarea codurilor turbo i trellis. Aplicaiile diagramei de coeficient se extind mult n afara domeniului cod ificrilor pentru controlul greelilor, i pot fi folosite pentru a descrie multi ali algoritmi, cum ar fi filtrul Kalman i anumii algoritmi de transformare Fourier rapid (TFR)[20].

Capitolul IV. Codarea LDPC


Codurile de densitate mic pentru controlul paritii reprezint o clas a codurilor bloc liniare. Astfel ele pot fi codificate folosind matricea generatoare ns n absena unei structuri n interiorul codului, pe msura ce dimensiunea blocului de date crete aceast metoda impune decodorului stocare mare i cerine legate de procesare. Dei H este construit ca sa fie slab populat, matricea generatoare a codului, G, este ncrcat n general. De fapt,daca G ar fi rar atunci nu neam fi ateptat ca acel cod s fie o distan minim bun. S ne amintim c irul cu cea mai mic greutate din G e limitat de dmin . Aadar codoarele pot deveni considerabil mai lente i mai mari cnd lungimea blocului n este crescut, avnd n vedere c nmulirea matricei -vector are complexitatea O(n2). Acest lucru a dirijat cercetarea spre gsirea unor codoare eficiente din punct de vedere al calculului i a codurilor structurate care necesit implementarea unui codificator de complexitate redus. n acest capitol sunt recapitulate mai multe propuneri de construire a unei arhitecturi centrate pe codificator pentru codificarea liniar n timp a codurilor LDPC. Mai nti se face o recapitulare a metodelor existente care pot fi folosite la construirea codurilor structurate, care sunt proiectate special pentru a permite implementarea simpl a codificatorului. Apoi este descris o tehnic ce poate fi folosit pentru a transforma codurile, astfel nct un codificator cu o complexitate liniar de timp aproximativ s poat fi construit. Urmtorul argument al acestei abordri este s se reduc mrimea per total a sistemului de comunicaii prin ndeplinirea ambelor funcii de ctre un singur circuit avnd o baz de schimbare a timpului.

32

4.1Coduri Structurate
Structura codurilor LDPC cu matrice de control al paritii care au o structur aproape triunghiular a fost propus de MacKay .a. [21]. Aceast metod permite ca cea mai mare parte din biii de paritate s fie calculai n timp liniar folosind operaii puine, de exemplu funciile care nu implic dect un numr mic de variabile. Experimentele lor arat c astfel de coduri au o performan care e comparabil cu cea a codurilor regulate LDPC. O matrice triunghiular de control al paritii este exemplificat n figura 4.1. Se presupune c cuvintele de cod sunt aranjate n iruri de vectori x = [xp | xu], unde xu sunt biii de informaie i xp sunt biii de paritate. n aproape acelai fel este partiionat i matricea de control al paritii, H = [Hp | Hu]. Vectorul intermediar b este definit b = HuxuT, care poate fi evaluat n timp liniar prin calculul matricei-vector. Cnd Hp are form triunghiular putem calcula xp n timp liniar folosind Hp i b, prin substituie regresiv. n cazul exemplului precizat mai sus acest lucru poate fi realizat n urmtorii trei pai:

Fig. 4.1. O matrice triunghiular superioar a controlului de paritate

1. xp4 = b4, xp6 = b6, xp7 = b7, xp8 = b8, xp9 = b9 2. xp2 = xp4 + xp8 + b2, xp3 = xp6 + xp9 + b3, xp5 = xp7+ b5 3. xp1=xp2+xp3 + xp5 + b1 Un caz special de triunghiularitate este ntlnit atunci cnd Hp are structura dual diagonal expus n Figura 4.2. Structura a fost prima dat propus de Ping .a.[22], i a reaprut recent n literatur[23,24]. Aici substituia regresiv urmeaz o structur simpl i poate fi efectuat folosind un acumulator.

33

Fig. 4.2 O structur n form de s pentru H Se observ c dac matricea de control al paritii are vreo coloan de greutatea j>1, i este strict triunghiular, atunci structura codului este neaprat neregulat.

4.2Structuri de Cod Ciclic


O alt variant de a asigura codificarea liniar de timp folosete structurile ciclice i cvasi-ciclice[25,26]. Un cod ciclic are proprietatea c orice deplasare ciclic a unui cuvnt de cod este n sine un cuvnt de cod. Un cod cvasi-ciclic are proprietatea c, pentru mrimea fix de deplasare, o deplasare ciclic a oricrui cuvnt de cod de acea mrime este n sine un cuvnt de cod. Putem construi matricea de control al paritii pentru un cod LDPC cvasi-ciclic prin unirea pe orizontal a matricelor rare circulare, fiecare avnd dimensiunea m x m[27].

Definiie. Matricea Circular O matrice circular este o matrice ptrat n care fiecare ir este o deplasare ciclic a irului anterior. Un exemplu de matrice de control al paritii pentru un cod cvasi-ciclic avnd n=18 i k=12, i deci r=2/3 , este dat n figura 5.3. Aceast matrice poate fi rearanjat cu uurin n forma cvasi ciclic prezentat n [28] prin permutarea coloanelor sale n ordinea 1, m + 1, 2m + 1, 2, m + 2, 2m + 2, ...m, 2m, 3m. Se observ c permutarea liniilor i coloanelor H nu schimb structura codului ci doar redenumete controalele sau respectiv variabilele.

Fig. 4.3 O matrice cvasi-ciclic de control al paritii


34

mprim H n trei componente circulare m x m. Aici exist un total de componente ale matricei n0=3, iar k0=2 din acestea corespunde biilor de informare ai cuvntului de cod. Mai exact, Hp corespunde biilor de paritate, n timp ce Hu1 i Hu2 corespunde biilor de informare. Dac Hp nu este singular atunci putem ncepe prin a multiplica H cu Hp-1 pentru a obine forma sistematic Hsys = [Im|Hu(sys)] = [Im | Hp-1Hu1 | Hp-1Hu2]. Apoi permutm coloanele aparinnd Hu(sys) n ordinea 1, m + 1, , 2, m + 2 ...m, 2m pentru a redefini biii de informare corespunztor. Acest loc apare ntr-o form sistematic cvasi-ciclic dupa cum e artat n figura 4.4. Se observ c fiecare ir aparinnd Hu(sys) este o deplasare ciclic corect, prin locurile k0. Acest lucru permite codurilor cvasi-ciclice s fie codificate folosind aceeai metod ca aceea folosit de codurile ciclice[28]. Pentru a genera biii de paritate pentru codul de mai sus folosim arhitectura registrului de deplasare regresiv a stadiului k din figura 5.5. n aceast diagrama vectorul sursa, u, este luat din stnga i plasat n dreapta,

Fig. 4.4 Forma sistematic cvasi-ciclica a H

ncepnd cu bit-ul uI. Fiecare cutie reprezint o celula de memorie care pstreaz valoarea ncrcat de obicei pn cnd este aplicat o deplasare, stadiu n care ia valoarea celulei precedente. Schimbtorul s este iniial conectat la o surs de informaie n serie, pentru a ncrca vectorul surs n registru. Aceast operaie are loc n k deplasri. Primul bit de paritate este apoi calculat printr-o operaie XOR pe biii de informaie selectati, alei de ramurile paralel ale codorului cu registru de deplasare. Poziiile ramurilor sunt setate pe poziia (inversat) de termeni zero n primul ir de Hu(sys). Schimbtorul este apoi nchis n poziia iniiat i datele sunt deplasate ciclic de k0 ori. Apoi urmtorul bit de paritate este calculat. Acest proces este repetat pn cnd toti biii de paritate m vor fi generai.

35

Fig. 4.5 Codor cu registru de deplasare pentru un cod cvasi-ciclic

Se poate extinde matricea de control al paritii pentru a construi coduri d e un randament mai mare prin adunarea orizontal a altor matrice circulare. n cazul particular al n0 matrici circulare adunate lungimea diagramei este n = mn0. Deci, alegerea unei rate de cod este restrns de relaia r =(n0 - 1)/n0.

4.3Alte Structuri de Cod


Sipser i Spielman au propus o clas de coduri de expansiune decodabil i codificate n timp liniar in [29]. Abordarea lor implic folosirea diagramelor n cascad pentru a construi recursiv coduri bazate pe subcoduri simple la fiecare stadiu al diagramei. Codurile corectoare de erori sunt construite combinnd recursiv coduri mai slabe de reducere a erorii. Au dovedit c n cazul n care codurile de reducere a erorii sunt codificabile/decodificabile n timp liniar, aceast proprietate va fi pstrat pn la obinerea codului final corector de erori [30]. Luby .a. au construit coduri bazate pe aceste structuri care au o performan foarte bun [31]. Echard i Chang au prezentat o variant de construire a codurilor LDPC srtucturate cvasiregulat, numit codurile de rotaie [32,33]. Matricea de control al paritii pentru aceste coduri este construit din componente ale matricelor de permutare i rotaiile lor. Ele ar putea fi codificate n timp liniar folosind un circuit codificator bistabil. Zhang i Parhi au prezentat un desen codec pentru codurile LDPC regulate [34]. Algoritmul lor de codificare este similar cu acela prezentat n seciunea urmtoare. Totui, ei mai degrab construiesc codul n aa fel nct s optimizeze viteza codificatorului, dect s transforme un cod existent.

36

4.4 Transformarea Matricii H


Richardson i Urbanke au artat c H poate fi manipulat la cea mare parte a codurilor LDPC, astfel ncat coeficientul termenului ptratic n complexitatea codificrii este foarte mic [35]. Aceasta este o soluie general la problema codificrii eficiente n timp, deoarece nu se bazeaz pe o nou structur de cod dar mai degrab restructureaz orice matrice de control al paritii existente (non-singur i rar). Motivat de avantajele calculului triunghiular, H este mai nti rearanjat n forma de triunghi aproximat artat n figura 5.6. Acest lucru este realizat prin exploatarea spaiului liber al H, folosind doar reordonarea coloanelor i liniilor, i deci densitatea matricei rmne neschimbat. Distana, g, este definit ca diferena dintre numrul de linii din forma aproximativ triunghiular-inferioar i numrul de randuri n H. Codificarea complexitii este proporional cu n + g2. Prin urmare problema de a reduce complexitatea codificrilor devene astfel una cu g redus. Pentru un cod LDPC regulat numrul clar de operaii cerute nu este mai mare de 0.0172n 2 + O(n). Deci pn i cea mai mic durat constant admite aproximativ complexitatea codificrii liniare chiar i n cazul unor durate lungi. Un alt rezultat cheie este c toate codurile LDPC probabil bune [36] au distane foarte mici, tipic pe o arie de la 1 la 3, i n consecin au complexitate de codificare liniar.

Fig. 4.6 Matricea de control al paritii rearanjat ntr-o form aproximativ triunghiular-inferioar

Matricea e mprit n ase componente dup cum se vede. Matricea T are o forma triunghiular-inferioar i toate elementele diagonale ale T se unesc devenind unul. S considerm secia de paritate a cuvntului de cod sistematic ca fiind mprit n dou segmente, de exemplu, x = [u|xp1|xp2]. Biii de paritate sunt generai dup cum urmeaz.

37

4.5 Calcul Anterior


Se calculeaz nainte matricea de densitatea g x g = -ET-1B + D i calculai inversul ei. De observat c H trebuie s fie n faa irului pentru ca s fie reversibil. Se calculeaz primul vector de paritate xp1: 1. z1 = AuT (nmulire mprtiat n timp liniar) 2. z2=T-1z1. Avnd n vedere c T este triunghiular-inferior i mprtiat aceast operaie poate fi efectuat prin nlocuire regresiv n timp liniar. 3. z3=-Ez2 (multiplicare mprtiat n timp liniar). 4. z4=z3+CuT (multiplicare mprtiat n timp liniar i adunare). 5. xp1=-1z4 (multiplicare prin matricea de densitatea g x g). Se calculeaz al doilea vector de paritate xp2:
1. z5=Bxp1T(multiplicare mprtiat n timp liniar). 2. z6=z1 + z5 (adunare n timp liniar). 3. Xp2=-T-1z6 (nlocuire regresiv n timp liniar).

Capitolul V. Decodarea LDPC

5.1 Decodarea iterativ

Cuvntul de cod transmis, x, este expus zgomotului provenit de la canal. Decodorul ofer un estimat al informaiei transmise, pe baza restriciilor codului i a vectorului y recepionat. n acest subcapitol sunt prezentate cteva abordri ale decodificrilor care folosesc trecerea iterativ a mesajelor pe diagrama de coeficient a codului. Valorile mesajului sunt calculate la fiecare nod pe baza restriciilor de cod locale. H este calculat uor datorit numrului sczut de componente. Algoritmii iterativi vin in dou versiuni: algoritmul sum-minim i algoritmul sumprodus. Aceti algoritmi sunt mai degrab nite generalizri ale algoritmului Viterbi sau ale altor algoritmi bazai pe trellis. Un alt caz special l reprezint algoritmul lui Gallager de decodare a codurilor cu densitate mica si control al paritii. O formulare relativ general a algoritmilor a fost dat de Tanner. Structura general a algoritmilor si contextul n care se aplic este ilustrat in Fig. 6.1. Dup cum se poate observa, algoritmii nu iau decizii, n schimb calculeaz un set de funcii
38

finale de cost pe baza crora se va lua o decizie final. Ieirea canalului intr in algoritmi ca un set de funcii locale de cost iar scopul algoritmilor este de a concentra, pentru fiecare variabil, toat informaia din ieirea canalului care este relevant pentru acea variabil. Oficial, exist o singur funcie local de cost pentru fiecare variabil s N, exprimat de (unde R reprezint mulimea numerelor reale), si una pentru fiecare set de controale E Q, exprimat de . n mod similar, avem o funcie de cost final pentru fiecare variabil s N, exprimat de , i una pentru fiecare set de controale, dat de .

Fig. 5.1. Aplicarea tipic a algoritmilor de decodare sum-minim i sum-produs. Ieirea canalului ia forma funciilor locale de cost s care sunt folosite de algoritmi pentru a calcula funciile finale de cost, s, pe baza crora vor fi luate deciziile finale. n timpul procesului de calculare, algoritmii menin un set de funcii de cost intermediare.

n timpul calculelor, algoritmii menin un set de funcii de cost intermediare: pentru fiecare pereche (s, E) de variabile si controale adiacente(s E), exist o funcie de cost control spre-variabil i o funcie de cost variabil-spre-control . Cel mai bine este ca aceste funcii s aib o direcie in graful Tanner. De exemplu, vom numi E,s contribuia dinspre controlul E spre variabila s.

39

5.2 Algoritmul sum-minim


Algoritmul sum-minim este o generalizare direct a algoritmului Viterbi. Scopul acestui algoritm este de a gsi o configuraie valid x B astfel nct suma costurilor locale(pentru toate controalele si variabilele) este minimul posibil. Cnd se folosete algoritmul sum-minim pentru decodarea intr-un canal fr memorie i un un vector primit y, costurile locale ale controalelor E(xE) sunt omise de obicei(setate la zero) iar costurile locale ale variabilelor s(xs) sunt de obicei logp(ys|xs). ntr-un canal binar simetric, costul local al variabilei s(xs) va fi reprezentat de distana Hamming dintre xs si simbolul recepionat ys.

Fig. 5.2 Regulile de actualizare pentru algoritmul sum-minim Algoritmul const n urmtorii pai: Iniializare. Funciile de cost locale s i E sunt iniializate corespunztor(folosind informaiile de canal). Funciile intermediare E,s i s,E sunt setate la zero. Iteraii. Funciile intermediare de cost E,s i s,E sunt actualizate alternativ de un numar potrivit de ori, n funcie de regulile prezentate in figura de mai sus. Costul variabil-sprecontrol s,E(a) este calculat ca suma ccosturilor lecale ale variabile si toate contribuiile care intr in s, cu excepia celei dinspre E:

(39) Costul control-spre-variabil E,s(a) este obinut examinnd toate configuraiile valide ale lui E care indeplinesc a pentru variabila s, pentru fiecare adunnd costurile locale ale controalelor si toate contribuiile care intr in E mai putin cea dinspre s. Minimul acestor sume va lua valoarea E,s(a):

(40)
40

Finalizare. Funciile finale de cost s i E sunt calculate. Costul final al variabilelor s(a) este calculat ca suma dintre costurile locale ale variabile i toate contribuiile care intr n variabila s: (41) iar costul final al variabilelor E(a) pentru o configuraie a BE este calculat ca suma dintre costurile locale ale controalelor si toate contribuiile care intr n E: (42)

Dup cum am menionat, scopul acestui algoritm este de a gsi o configuraie cu cel mai mic cost posibil. Pentru a formula mai precis, definim costul global a unei configuraii valide xB astfel:

(43) Teorem. Dac structura codului este finit si fr cicluri, funciile costurilor converg dupa un numr finit de iteraii, iar funciile finale de cost devin: (44) i (45) Pentru grafuri Tanner care conin cicluri, nu exist un rezultat general pentru costurile finale, sau pentru performana decodrii.

41

5.3 Algoritmul sum-produs


Algoritmii de decodare cu mai multe nivele de decizie se folosesc de informaia recepionat. Lund n considerare canalul folosit, un vector de valori a priori este generat de y i ndeplinete funcia de transmisie pentru decodor. Un vector de valori a posteriori este returnat atunci cnd se ncheie procesul de decodificare. x se produce n urma impunerii unei admiteri dure asupra acestui vector. Algoritmul sum-produs este o generalizare direct a algoritmului nainte-napoi al lui Bahl[2] pentru calcularea probabilitiilor a posteriori ntr-un trellis. Dou cazuri speciale ale algoritmului sum-produs sunt decodorul turbo clasic al lui Berrou[1] i algoritmii de decodare ai lui Gallager pentru coduri cu densitate mic i control al paritii. Cazul general a fost descris de ctre Tanner, care nu a luat n considerare, totui, probabilitiile a priori. n algoritmul sum-produs, funciile locale de cost s i E iau o interpretare multiplicativ: definim un costul global pentru orice configuraie xW ca produsul

(46) Termenul de cost este oarecum derutant n algoritmul sum-produs, deoarece n general va fi subiectul unor maximizri(spre deosebire de minimizriile din algoritmul sum-min); am ales acest termen pentru a face transparent strnsa relaie dintre cei doi algoritmi. Algoritmul nu maximizeaz G direct; el doar calculeaz anumite proiecii ale lui G, care vor fi la rndul lor candidai naturali pentru maximizare. Cnd discutm despre algoritmul sum-produs, este normal s punem condiia ca costurile controalelor E(xE) s fie zero pentru configuraiile locale invalide i pozitive in rest. Astfel, se cere E(xE)0 cu egalitate dac i numai dac . (47)

Dac se impune de asemenea ca i costurile locale ale variabilelor s(xs) s fie strict pozitive pentru orice xs, se poate observa c costul global(8) al unei configuraii x este strict pozitiv dac x este valid, si zero altfel. n particular, o configuraie care maximizeaz G este ntotdeauna valid(cu condiia c B nu este vid). n situaia n care avem un canal fara memorie i un vector primit y, costurile locale ale variabilelor s(xs) sunt setate ca probabilitiile canalului p(ys|xs), iar costurile locale ale controalelor sunt alese in funcie de distribuia a priori pentru configuraia transmis x, care trebuie s fie de forma .

42

Fig.5.3. Regulile de actualizare pentru algoritmul sum-produs. Algoritmul sum-produs const n urmtorii pai: Iniializare. Funciile locale de cost s i E sunt iniializate corespunztor(folosind informaiile din canal i/sau o distribuie a priori cunoscut). Funciile intermediare de cost E,s i s,E sunt setate unu. Iteraii. Funciile intermediare de cost E,s i s,E sunt actualizate de un numr corespunztor de ori(Fig. 6.3). Costul variabil-spre-control s,E(a) este calculat ca produsul dintre costul local al variabilei si toate contribuiile care intr in s n afar de cea dinspre E:

(48) Costul control-spre-variabil E,s(a) este obtinnd prin nsumarea tuturor configuraiilor locale ale lui E care ndeplinesc a pentru variabila s, fiecare termen fiind produsul dintre costurile locale ale variabilelor si toate contribuiile care intr n E cu excepia celei dinspre s:

(49) Se observ c suma din (49) este doar peste BE(configuraiile locale valide), deoarece E(xE) este presupus ca fiind zero pentru . Finalizare. Funciile finale de cost s i E sunt calculate. Costul final al variabilelor s(a) este calculat ca fiind produsul dintre costul local al variabilei si toate contribuiile care intr in s:

43

(50) Iar costul final al controalelor E(a) va fi calculat ca produsul dintre costul local al controlului i toate contribuiile care intr n E: (51) Teorema 2. Dac structura codului este finit si fr cicluri, funciile de cost converg dup un numr finit de iteraii i funciile finale de cost devin

(52) i

(53) Ca i n cazul algoritmului sum-minim, nu exist nici o garanie a performaei de decodare dac graful Tanner conine cicluri. ntr-o aplicaie de decodare(estimare), un estimat pentru valoarea variabilei xs este obinut prin alegerea valorii xs care maximizeaz costul final s(xs). Pentru o structur ce nu conine cicluri, aceast operaiune minimizeaz probabilitatea de eroare de simbol. Diagrama de coeficient reprezint factorizarea unei funcii globale care confirm restricia privind ncadrarea ntr-o mulime de coduri. Fiecare nod de control confirm o restricie local adjunct (XOR), susinnd ideea c paritatea per total a mesajelor care intr n nod ar trebui s fie zero. Fiecare variabil confirm o restricie local a egalitii care se aplic mesajelor ce intr n nod, susinnd ideea c ele toate ar trebui s indice aceeai valoare pentru variabil. Aceste restricii dicteaz calculele care se fac n noduri, i deci dicteaz i mesajele care rezult la ieirea din nod. Avnd n vedere c mesajele reprezint valori de probabilitate dur, folosim porile logice [20,37] pentru a ntri restriciile. n plus, nodurile calculeaz un mesaj de output pentru fiecare muchie bidirecional. La nceput, lum un nod cu trei muchii, care descrie calculul ce genereaz un mesaj de ieire pentru o singur muchie i apoi aplicm acest lucru unui nod bidirecional. Calculam mesajul de ieire, de exemplu, funcia cu probabilitate binar, pz(z)=(pz(0), pz(1)), folosete mesajele de intrare px(x) i py(y), care se presupune c sunt independente. Definiia 1.(Poarta XOR). Poarta egal calculeaz masa de ieire de probabilitate pz(z), folosind intrrile px(x) i py(y) dup cum urmeaz:

44

(54) Definiia 2(Poarta egal). Poarta egal calculeaz masa de ieire de probabilitate pz(z) innd cont de urmtoarea expresie, unde factorul de normalizare Y este ales s asigure pz(0) + pz(1)=1.

(55) Figura 4 ne arat cum putem folosi aceste cmpuri pentru a construi cmpuri bidirecionale, pentru care avem urmtoarea definiie. Definiia 2.5 (Poarta Bidirecional Logic (BSG). Poarta bidirecional logic este un dispozitiv cu 3 porturi unde fiecare port are o ieire i o intrare. Ieirea fiecrui port este calculat folosind cele dou intrri cu muchie extrinsec i ntrebuinnd aceeai funcie, de exemplu, px(X)out=f(py(y)in, pz(z)in), py(y)out=f(px(x)in, pz(z)in) i pz(z)out=f(px(x)in, py(y)in). Deci un BSG poate fi construit pornind de la trei pori, prin alinierea ieirii unuia la fiecare dintre muchiile de ieire a fiecrui BSG. Datorit realizrilor lui Forney n domeniul grafurilor normale, putem s spargem structura unui nod cu mai multe muchii n elemente constituente. Variabilele i nodurile de control de mrime arbitrar pot fi construite prin legarea n cascad a porilor bidirecionale i respectiv a porilor XOR[20,37].

Fig. 5.4 Porti logice


45

Odat ce nodurile variabile i cele de control au fost construite, se leag folosind muchii bidirecionale, n conformitate cu structura diagramei de coeficient. Definim E(vs) ca fiind o mulime a tuturor nodurilor de control alturate nodului variabil vs, specificat de coloana s a lui H. Tot astfel, mulimea tuturor nodurilor variabile alturate nodurilor de control cr, E(cr), este specificat de irul r al matricei H. Mesajele de control al variabilelor sunt notate cu s,E iar mesajele variabilelor de control cu E,s. Prin E(vs)\c definim toate controalele E(vs) excluznd controlul c, i tot astfel definim i E(cr)\s. O muchie de intrare cu o singur direcie, folosit la transportarea mesajelor a priori, ps, este adaugat la fiecare nod variabil n diagrama de coeficient. n acelai fel, o muchie de ieire cu o singur direcie este ataat pentru a transporta mesajul a posterior, qs. Valoarea a posterioar, qs, este generat pentru fiecare simbol al cuvntului de cod, la sfritul fiecrei iteraii. n concluzie la aceste valori este executat o admitere dur ca sa fie posibil generarea estimatului cuvntului de cod X. Dac estimaia satisface toate restriciile codului, atunci procesul se ncheie, n caz contrar el se repet pn cnd va expira un numr maxim de iteraii. Fiind date valorile recepionate y i diagrama de coeficient pentru H, acum rezumm algoritmul sum-produs cu dou nivele de decizie. Sunt furnizate att descrierea domeniului de probabilitate ct i descrierea domeniului de nregistrare a probabilitii, presupunnd un canal AWGN i o transmisie aplicat BPSK, M(0)=+1, M(1)=-1. Presupunem de asemeni c deinem cunotine despre variaia canalului de zgomot, 2. Variabila de control a domeniului de probabilitate i regulile revizuite ale controluiui variabilei revizuit din descrierile porilor XOR i egal de mai sus. Regulile domeniului de nregistrare a probabilitii sunt uor derivate, folosind definiia LLR. Cnd executm algoritmi cu dou nivele de decizie este important s lum n calcul poteniale chestiuni numerice. La Pasul 3 al algoritmului de domeniu de nregistrare a probabilitii, trebuie s rezolvm problema discontinuitii tanh-1(a), cnd a = 0. Pentru a face asta definim parametrul limitor .

5.4 Decodarea cu dou nivele de decizie (Hard Decision Decoding)


Putem aplica decodarea cu dou nivele de decizie n cazul AWGN, tergerii binare i canalelor binare simetrice[38]. Dac informaia este purtat cu vectorul de recepionare atunci este descrcat. Aceti algoritmi nu au acelai nivel de performan ca algoritmii de decizie cu dou nivele. Totui, simplitatea lor permite executarea lor rapid i a dus de asemenea la cteva rezultate analitice interesante[5, 39, 40, 41].

46

n cadrul acestei discuii considerm y pentru a reprezenta vectorul de recepionare, care provine din M(ys<0)=+1, M(ys>=0)=-1. La nceput Gallager a propus urmtorii doi algoritmi de admitere dur. Algoritmul A de Decodare Gallager Mesajul de ieire din nodul variabil vs de-a lungul muchiei e este egal cu valoarea recepionat ys deoarece acel nod, altul dect cel de-a lungul muchiei e este diferit de vs, dac toate mesajele intr n ys. n acest caz opusul lui ys este trimis, de exemplu, dac ys = -1 atunci o valoare de mesaj de +1 este trimis, i invers. Mesajul cu ieire din controlul cr ctre o variabil conectat de-a lungul muchiei e este rezultatul tuturor mesajelor primite pe muchii conectate la cr, excluznd cea de la e.

Algoritmul 1: Decodorul Sum-Produs (Domeniul de Probabilitate) 1. Folosind fiecare simbol recepionat ys se calculeaz u=2ys/2. Se calculeaz ps=eu/(1+eu) si ps=e-u/(1+e-u) 2. Variabila spre control: Presupunem vs= s,E(0) - s,E(1) i calculm

De la fiecare control cr la fiecare variabil s E(vs) se transmite:

3. Control spre variabil: Din fiecare variabil s pentru fiecare c E(vs) se transmite

Factorul de normalizare este ales astfel nct s,E(0) + s,E(1) = 1. 4. Calcule a posteriori Pentru fiecare simbol se calculeaz :

47

Factorul de normalizare este ales astfel nct qs(0) + qs(1) = 1. 5. Stop/Continu: Se calculeaz din x din: Dac H x =0, apoi operaiunea este ncheiat cu succes, astfel dac se atinge limita iterativ operaiunea trebuie ncheiat i declarat un eec, n caz contrar se face ntoarcerea la Pasul 2. Algoritmul 2: Decodorul Sum-Produs(Domeniul de nregistrare a Probabilitii) 1. Iniializarea: Se initializeaza mesajele s,E= E,s=0 2. Setarea prioritii: Folosind fiecare simbol ys se stabilete ps=2ys/2 3. Control spre variabil: De la fiecare control cr la fiecare variabil s E(cr) se trimite

4. Variabil spre control: De la fiecare variabil s la fiecare c E(vs) se trimite

5. Calcule a Posteriori: Pentru fiecare simbol se calculeaz

48

6. Stop/Continu: Dac toate controalele respect

atunci operaiunea se ncheie fiind declarat un succes, altfel dac este atins limita de iteraie atunci operaiunea se ncheie fiind declarat un eec, n caz contrar trebuie s ne ntoarcem la Pasul 3. Algoritmul B de Decodare Gallager Acest algoritm este o versiune modificat a algoritmului A. Cnd se calculeaz mesajul variabil, opusul valorii recepionate va fi trimis dac cel puin un numr b de mesaje n curs de expediere sunt n dezacord. Aceast valoare a mesajelor b este n mod tipic o funcie a gradelor muchiei i a numrului de iteraie. Decodare cu eliminare S lum n considerare canalul binar de tergere, cu aplicaia ieirii M(0) = +1, M(1) = -1, M(stergere) = 0. Definim operatorul sgn(a) = +-1 pentru a <> 0 i sgn(0) = 0. Decodorul cu eliminare a mesajelor n curs acioneaz, folosind aritmetica real, dup cum urmeaz. Putem considera acest algoritm ca fiind o versiune de admitere cu dou nivele de decizie a decodorului sum-produs. Algoritmul 3: Decodorul cu eliminare 1. lniializarea: Se fixeaz valoarea variabilei s n funcie de valoarea corespunztoare simbolului primit ys {0,-1,+1}. Se iniializeaz toate mesajele cu 0. 2. Variabil spre control: De la fiecare variabil s la fiecare cr E(vs) se trimite

3. Control spre variabil: De la fiecare punct de control cr la fiecare variabil s E(cr) se trimite
Pentru toate variabilele s, dac cel puin o s,E 0 , atunci se d valoarea variabilei s. 4. Stop/Continuare: Dac s 0 pentru toate variabilele s atunci operaiunea e ncheiat i declarat un succes. Dac aceasta nu e prima iteraie i mulimea de valori pe care o au n prezent variabilele s

49

este aceeai cu mulimea de valori a ultimei iteraii, atunci operaia se ncheie i e declarat un succes. n caz contrar trebuie s ne ntoarcem la Pasul 2.

Capitolul VI. Aplicaii ale codurilor LDPC


Codurile cu densitate mic i control a paritii posed o serie de caracteristici care le fac deosebit de atractive pentru cercettori, modul lor de construcie permind o implementare fizic facil, i atingerea unor performane mult mbuntite fa de alte coduri clasice, la costuri similar, ntr-o gam variat de domenii. n ultima decad codurile LDPC au primit mult atenie datorit performanelor superioare de corecie de erori, i au fost adoptate de mai multe standarde recente de comunicaie, cum ar fi 10 Gigabit Ethernet(10GBASE-T), broadcast video digital(DVBS2(satelit), DVB-T2(terestru), DVB-C2(cablu)), Wimax(802.16e), Wi-Fi(802.11n) i 60 GHz WPAN(802.15.3c)[1].

6.1 Codurile LDPC in comunicaii optice


Comunicaiile optice reprezint un domeniu care ncepe s foloseasc coduri cu densitate mic i control al paritii pentru rezolvarea unor probleme importante. Performanele sistemelor de comunicaii prin fibr optic ce opereaz la viteze mari sunt degradate semnificativ datorit mai multor imperfeciuni de transmisie, cum ar fi neliniariti ale fibrei la nivel intra sau inter-canal, efectul Gordon-Mollenauer sau dispersia n polarizare(PMD). PMD este un defect dificil de compensat datorit caracteristicilor sale stocastice i variabile n timp. n ultima vreme, mai multe compensatoare electrice de PMD au fost propuse, care folosesc egalizatoare Viterbi sau turbo, dar s-au obinut rezultate foarte bune i folosind multiplexarea ortogonal prin divizie in frecven(OFDM) a unor semnale codate LDPC[42]. OFDM este un caz special de transmisie multi-purttoare n care un singur sir de informaii este transmis pe mai multe sub-canale de rat mai mic, i este deja folosit pentru o multitudine de aplicaii de ultim generaie, printre care transmisia HDTV, transmisia audio digital, IEEE 802.11, comunicaii optice prin spaiu liber, legturi de fibr multi-mode sau 100Gb/s Ethernet. Datorit ortogonalitii dintre sub-purttoarele OFDM este permis suprapunerea parial a sloturilor de frecvene vecine, astfel mbuntindu-se eficiena spectral comparativ cu alte sisteme convenionale multi-purttoare. De asemenea, folosind un numr suficient de mare de de sub-purttoare, interferena inter-simbol(ISI) datorit PMD poate fi redus. Aceast schem de compensare a PMD este combinat cu o corecie de erori avansat care se bazeaz pe coduri LDPC structurate.

50

Fig.6.1 Configuraia transmitorului(a), configuraia receptorului(b) Pentru implementarea acestui sistem sunt propuse dou familii de coduri LDPC de rat mare, bazate pe dou obiecte combinatoriale diferite: (i) sisteme de diferene, si (ii) un produs de designuri combinatoriale. Un set S1....St de dimensiune k formeaz un sistem de diferene (v, k, ) peste un grup abelian aditiv V de ordinul v, dac diferenele fa de Si ale fiecrui element nonzero din V sunt maxim . Deplasnd ciclic fiecare set Si de m ori(mod v), b=tm seturi diferite pot fi create. Considernd elementele a b seturi ca poziii de 1 n coloanele corespondente ale unei matrici de inciden, se poate verifica faptul c o astfel de matrice de inciden are proprietiile unei matrici de control a paritii H a codului LDPC corespondent. Alegnd indicele =1, se poate demonstra ca matricea H rezultat are o circumferin de minim 6. Pentru aceste sisteme sunt folosite urmtorii parametrii: v=20t+1, k=5, =1. Numrul de blocuri din aceste sisteme de diferene este b=t(20t+1). Codul LDPC corespondent are lungimea N= t(20t+1), numrul de bii de paritate N-K= 20t+1, rata de cod este limitat inferior de R11/t, iar circuferina este minim 6. Pentru rate de cod peste 0.9, parametrul t trebuie s fie mai mare sau egal cu 10. Deoarece standardul ITU-T G.975 pentru comunicaii prin fibr optic limiteaz overhead-ul pentru corecie a erorilor la 7%, designul codurilor LDPC cu rat peste 0.9 este foarte important. n acelasi timp, ntrzierile n decodare nu pot fi acceptate din cauza vitezelor extrem de mari, fiind necesare coduri LDPC de lungime medie. De exemplu, pentru t=14 se obine un cod LDPC de rat R=1-1/14=0.93, cu 7.7% overhead. Lungimea cuvntului de cod va fi 3934 iar numrul de bii de paritate N-K=281. Aceste coduri au dus la rezultate foarte bune n compensarea PMD pentru grupuri difereniale de ntrziere(DGD) mai mari de dou perioade de bit. Pentru DGD-uri sub dou perioade de bit este mai eficient de folosit egalizarea turbo a semnalului codat LDPC. Aceste scheme de compensare au adus importante avantaje OFDM, cum ar fi insensitivitatea la

51

zgomotul de faz al laserului, o complexitate mai mic a implementrii receptorului i compatibilitatea cu sistemele IM/DD instalate anterior.

6.2 Codurile LDPC in comunicaiile n spaiul cosmic


Unul dintre cele mai interesante i problematice domenii n care codurile LDPC i -au artat eficiena n ultima decad este cel al comunicaiilor n spaiul cosmic. Comparativ cu comunicaiile standard terestre i satelitare, comunicaiile n spaiul cosmic prezint o serie de probleme pentru transmisia de informaii, cum ar fi distanele foarte lungi care trebuie parcurse de semnal(prin spaiu cosmic se nelege de obicei spaiul aflat la mai mult de 2 milioane de km de Pmnt), raport semnal-zgomot foarte mic, ntrzieri mari n propagarea semnalelor, rate de corupie a datelor ridicate sau lrgimi de band asimetrice. n studierea spaiului, pe lng tehnologia extraordinar de avansat folosit la emitor, receptor sau antene, un rol foarte important l au i codarea la sursa imaginii, codarea de canal, modulaia sau demodulaia.[43] Comunicaiile n spaiu au continuat s se mbuntesc odat cu dezvoltarea explorrilor spaiale, n mai mult de 40 de ani. Mariner4, lansat n 1965, comunica folosind banda S(2.3 GHz), i nu existau nici coduri corectoare de erori, nici compresia datelor, iar rata era de doar 8.33 bps. Mars Global Survezor(MGS), lansat in 1997, folosea banda X(8.4 GHz). Codul de canal folosea un cod convolutional cu constrngere de lungime 7 i rat 1/2 concatenat cu un cod Reed-Solomon(255, 223), iar rata de transmisie era 128 kbps. Mars Pathfinder, lansat n 1997, folosea codarea JPEG cu un raport de compresie de 6. Misiunile de explorare Spirit i Opportunity(MER-A i MER-B) trimise pe Marte in 2004 foloseau un cod de compresie a imaginilor bazat pe wavelet. Raportul de compresie era 12, iar rata de transmisie era 168kbps. Pentru misiunea Mars Reconnaissance(MRO), lansat in 2006, s-au folosit coduri Turbo i LDPC ca i coduri de canal, i un sistem de compresie a imaginiilor rapid i eficient ca i cod surs, iar viteza de transmisie este 12Mbps. Sistemele de comunicaie folosite la MER i MRO reprezint cele mai avansate tehnologii din lume n acel moment. Comparativ cu codurile Turbo, codurile LDPC au prezentat performane similare(chiar superioare n cazul codurilor lungi) la decodare, dar au i avantajul unei viteze superioare de decodare, implementarea VLSI mult simplificat i un prag sczut de erori. Aceste coduri sunt potrivite pentru condiii de comunicaii n spaiul cosmic, n care se ntlnesc ntrzieri mari. Cercetrile au artat c un cod LDPC neregulat cu rat 1/2 i mesaje de lungime 10 7 bii atinge o performan cu doar 0.04dB sub limita Shannon ntr-un canal AWGN, aceste performane fiind superioare chiar i celor mai bune coduri Turbo.

52

Fig. 6.2 Performanele codurilor pentru BER=10-9

Codurile cu densitate mic i control a paritii folosite sunt coduri de rat 0.5 sau 0.8, dup cum se observ n figur. Ratele sub 0.5 sunt potrivite pentru misiuni n spaiu la care se folosesc rate mici, iar cele ntre 0.5 i 0.8 sunt potrivite pentru misiuni n spaiu cu rate mari, dac sunt modulate QPSK. Rate de cod peste 0.8 nu sunt recomandate comunicaiilor spaiale datorit reducerii severe a eficienei puterii. Aceste coduri au dou mari avantaje: o mai mic complexitate la decodare, fiind deci recomandate pentru pentru viteze foarte mari(>10 Mb/s), i se comport mult mai bine la BER foarte mic(10-9), deoarece pragul lor de erori poate fi controlat i pot fi forate la BER mai mic. Pentru operaiuni care necesit valori ale BER mai mici de valoarea tradiional de 10-6 i rate mari de date, codurile LDPC sunt alegerea potrivit.

6.3 Codurile LDPC n sisteme de comunicaii RF


n cazul comunicaiilor RF/micround, semnalul care se propag prin atmosfer va experimenta fluctuaii n amplitudine i n faz datorita turbulenelor atmosferice(cea, ploaie). Pentru a se combate mcar o parte din aceste fluctuaii si a se mbuntii performanele sistemelor de transmisiune, au fost propuse mai multe tehnici de codare, printre care i folosirea de coduri convoluionale, coduri Turbo sau coduri Reed-Solomon dar toate aceste tehnici prezint o serie de neajunsuri. n cazul codurilor convoluionale non-binare sau a codurilor
53

Turbo, complexitatea foarte ridicat la decodare poate fi prohibitiv pentru implementarea unui sistem de transmisie prin care se dorete atingerea unor rate de cod de ordinul Gbps, iar pentru codurile Reed-Solomon, n condiii de turbulene puternice sau de cea dens, ctigul din codare este prea mic pentru a face fa cerinelor i sunt necesare scheme de codare FEC(Forward Error Control) mai avansate, cum ar fi coduri Turbo sau LDPC. n ultimii ani, cererea de viteze din ce n ce mai mari de comunicaii radio a dus la o mai mare nevoie de frecvente de transmisie. n plus, cantitatea de informaie trimis ntre dispozitive a crescut rapid datorit mbuntirilor n calitatea sunetului i a imaginiilor, fiierelor audio, foto, sau a imaginilor video folosite pentru TV, aparate mobile sau servicii de video-conferin online. Aceste mbuntiri au dus la cerina ca tehnologiile s faciliteaze transmisia de mari cantiti de date la viteze mult mai ridicate. n ideea de a ajuta la rezolvarea acestor probleme, la nceputul anului, compania japonez Sony, n colaborare cu Tokyo Institute of Technology, a anunat creearea unui sistem de transmisiune n radio frecven format dintr-o serie de LSI-uri(circuite integrate) care permit transfer de date folosind lungimi de und milimetrice, cu cea mai mare rat de transfer din lume, 6.3 Gb/s. Implementarea acestei tehnologii va permite utilizatorilor s trimit i s primeasc date la viteze mult mai mari fr a avea nevoie de conexiuni prin cablu. De asemenea, cu ajutorul acestei tehnologii, utilizatorii vor putea beneficia de streaming video de cea mai bun calitate dinspre un terminal mobil ctre un display. La dezvoltarea acestei tehnologii, un rol important l-au avut o familie de coduri LDPC foarte eficiente, de rata 14/15, dezvoltate de Sony, care scad cantitatea de date redundante necesare coreciei de erori, acest lucru ducnd la o decodare LDPC cu cea mai mare eficien energie per-bit din lume: 11.8 pJ/b(74 mW pentru 6.3 Gb/s). Aceste coduri au fost propuse pentru standardul de comunicaii wireless IEEE 802.15.3c, care folosete banda de frecvene de 60 GHz, cu lungimi de und milimetrice.

6.4 Coduri LDPC n sisteme de comunicaii satelitare


Un alt domeniu de interes major pentru implementarea LDPC l reprezint comunicaiile satelitare, care n prezent cunosc o dezvoltare fr precedent. n momentul de fa, acest tip de comunicaii se realizeaz folosind intervalul de frecvene cuprinse ntre 26,5 40 GHz, denumit i banda Ka. Totui, propagarea benzii Ka este mult mai vulnerabil la condiiile meteorologice i la umbrire dect benzile de frecvene inferioare, cum ar fi banda Ku (12-18 Ghz) sau banda C(4-8 GHz). n cazul canalelor satelitare n band Ka, atenuarea datorat ploii i umbrirea sunt principalii factori care deterioreaz performanele sistemului, pierderea semnalului radio,

54

scderea fiabilitii i a performanelor link-urilor satelitari. Pentru a combate aceste probleme, este necesar o metod de codare eficient pentru transmisiuni cu rat mare de date.

Fig. 6.3 Diagrama bloc a sistemului n band Ka codat LDPC La transmitor, datele binare sunt codate folosind codorul LDPC si apoi sunt mapate prin modulaie. Datele complexe sunt trecute apoi printr-un convertor serial-paralel(S/P) i apoi li se aplic transformata Fourier invers(IFFT) pentru a fi modulate. Datele sunt mprtiate n domeniul timp i frecven, astfel c sistemul poate profita din plin de diversitatea de frecvene a canalului. La receptor, transformata Fourier este aplicat datelor primite, care sunt apoi modificate de ctre convertorul paralel-serial(P/S) i demodulate. La final, datele sunt decodificate folosind decodorul LDPC. n [45] se compar performanele BER ntre codurile LDPC i codurile convoluionale i se arat c, pentru modulaii 16QAM i BPSK, codurile LDPC ofer un ctig la codare net superior codurilor convoluionale, n condiiile unui BER comparativ, ceea ce le face eficiente i fezabile pentru comunicaiile satelitare.

6.5 Rezumat
Teoria codrii a suferit o schimbare de paradigm n ultimii ani, odat cu introducerea decodrii iterative i a codurilor n grafice. Codurile de joas densitate i verificare a paritii introduse de Gallager ofer o corectare a erorilor mai bun. De la redescoperirea lor multe modificri au fost propuse pentru a le mbunti ulterior performanele.

55

n orice caz, mai trebuie imbuntiri n domeniul analizei decodrii iterative i n proiectarea codurilor bune de lungime scurt i medie. Analiza grafic se bazeaz pe structura unei matrici de verificare a paritii particular i ia n considerare operaia de decodare iterativ. n acest caz, s-a artat c metricitatea tradiional a distanei minime a codului este mai puin important dect pseudo-greutatea minim asociat matricii de verificare a paritii.

Capitolul VII. Structura aplicaiei de simulare


In simulatorul deja existent,CAMAG 6, am mbuntit i optimizat modulul de simulare a codurile LDPC(Low Density Parity Check) creat n mediul de dezvoltare Visual Studio 2008 cu limbajul C++.

7.1 Interfaa cu utilizatorul. Descrierea principalelor comenzi Aplicaia realizat ofer o interfa simpl i uor de utilizat care permite selectarea i configurarea rapid a parametrilor simulrii. Fereastra principal a programului, prezentat n figura 7.1 permite selectarea tipului de canal magnetic i a detectorului pentru care se va realiza simularea. Tot aici se poate efectua pas cu pas o simulare prin apsarea succesiv a butoanelor: Generare si Codare Detectie si Decodare.

56

Fig. 7.1 Fereastra principal a simulatorului CAMAG7


Pentru simularea de coduri LDPC ,prin apsarea butonului i prin completarea cmpurilor din Opiuni, se lanseaz programul de simulare.

57

Fig. 7.2 Fereastra Opiuni

7.2 Explicarea softului de simulare


Iniial, programul creeaz matricea H (matrice semi-aleatoare de verificare a paritii) a crei coloane conin acelai numr de 1uri. Coloanele sunt create una dup alta, ntr-o manier n care nu se permite ca dou coloane s aib mai mult de o suprapunere de 1uri n toate rndurile lor. Aceast metod reduce ciclurile scurte n graful Tanner asociat matricii, dar n schimb face procesul de decodare mult mai eficient. Deasemenea, ajut la conceperea tuturor rndurilor matricii H astfel nct acestea s aib un numr aproximativ egal de 1uri. Sunt

58

necesari civa pai adiionali pentru a face ca toate rndurile s aib acelai numr de 1uri, dar au fost evitai aceti pai deoarece codurile LDPC neregulate au o performan mai bun. Dup creare, matricea H este adusa la forma sistematica H=[P|I], iar n final, matricea generatoare G este construit sub forma: G=[I | P]. Procesul de decodare este fcut cu algoritmul de transmitere a mesajelor, decodor probabilistic. La rularea programului, se creeaz un fiier text (RezultateSimulareLDPC.txt) n care se va pstra ultimul rezultat al simulrii. Se cere utilizatorului s introduc dimensiunea mesajului (messageLenght) i dimensiunea codului (codeLenght). Programul va aloca spaiul de memorie necesar pentru crearea matricilor H si G. Pentru matricea H trebuie ndeplinite anumite reguli si se pun urmtoarele condiii: 1. s nu existe mai mult de o suprapunere de 1uri ntre oricare dou rnduri 2. greutatea fiecrei coloane s nu fie mai mare dect cea specificat n program, care este 3 Se vor face 5 ncercri pentru generarea matricii H, dar n cazul n care nu se poate genera, se va abandona sarcina i se va afia pe ecran numrul de iteraii n care s-a ncercat crearea. n cazul n care matricea H este generat, se ncearc reducerea acesteia la forma H=[Pt|I]. Dac este imposibil trecerea la o astfel de form, se iese din program. Avnd H sub aceasta form, se compune matricea G sub forma [I | P] i se adaug zgomotul (AWGN) de dispersie setat manual n cod. La msurtori s-a folosit o valoare de 0.5. Pentru aflarea mesajului care va fi codat, exist posibilitatea alegerii ntre citirea mesajului dintrun fiier, sau generarea unui mesaj aleator (m) n funcie de dimensiunea mesajului introdus de utilizator (k), apoi se codeaz acest mesaj n funcie de G, k si n (dimensiunea codului introdus de utilizator). Mesajului codat C i se adaug zgomot pentru a se coda pentru canal AWGN. Mesajul codat AWGN, Xg, se trece prin canal i se scoate Yg. Se verific dac cuvntul primit are erori(Y * HT=0). Se decodeaz cuvntul primit n funcie de H, k, n i dispersia zgomotului,

59

se verific dac este corect i se afiseaz rezultatul, iar dup terminarea decodrii tuturor blocurilor se afieaz numrul de bii eronai rezultai dup decodare.

Cap VIII. Rezultate experimentale


In acest capitol am efectuat o simulare cu softul de simulare LDPC modificat n programul CAMAG 7. Desfurtorul simulrii este urmtorul: Mrimea mesajului: 15 Mrimea codului: 30 Dimensiunea mesajului creat aleator: 30

Incerc sa creez matricea H pentru coduri LDPC


================================================================

Se creeaza coloana 0..... Gata!!! A durat 1 Se creeaza coloana 1..... Gata!!! A durat 1 Se creeaza coloana 2..... Gata!!! A durat 1 Se creeaza coloana 3..... Gata!!! A durat 2 Se creeaza coloana 4..... Gata!!! A durat 3 Se creeaza coloana 5..... Gata!!! A durat 1 Se creeaza coloana 6..... Gata!!! A durat 6 Se creeaza coloana 7..... Gata!!! A durat 1 Se creeaza coloana 8..... Gata!!! A durat 1 Se creeaza coloana 9..... Gata!!! A durat 3 Se creeaza coloana 10.....Gata!!!A durat 1 Se creeaza coloana 11.....Gata!!!A durat 5 Se creeaza coloana 12.....Gata!!!A durat 1 Se creeaza coloana 13.....Gata!!!A durat 1 Se creeaza coloana 14.....Gata!!!A durat 1 Se creeaza coloana 15.....Gata!!!A durat 4 Se creeaza coloana 16.....Gata!!!A durat 2 Se creeaza coloana 17.....Gata!!!A durat 3 Se creeaza coloana 18.....Gata!!!A durat 6 Se creeaza coloana 19.....Gata!!!A durat 6 Se creeaza coloana 20.....Gata!!!A durat 41 Se creeaza coloana 21.....Gata!!!A durat 24 Se creeaza coloana 22.....Gata!!!A durat 55 Se creeaza coloana 23.....Gata!!!A durat 12 Se creeaza coloana 24.....Gata!!!A durat 108

iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii 60

Se creeaza coloana 25.....Gata!!!A durat 146 iteratii Se creeaza coloana 26.....Gata!!!A durat 41 iteratii Se creeaza coloana 27.....Gata!!!A durat 934 iteratii Se creeaza coloana 28.....Am incercat 100000 de iteratii, si nu am gasit nici un vector potrivit.

Reiau creearea matricii. Mai am 4 incercari!

Se creeaza coloana 1..... Gata!!! A durat 1 Se creeaza coloana 2..... Gata!!! A durat 2 Se creeaza coloana 3..... Gata!!! A durat 1 Se creeaza coloana 4..... Gata!!! A durat 1 Se creeaza coloana 5..... Gata!!! A durat 2 Se creeaza coloana 6..... Gata!!! A durat 1 Se creeaza coloana 7..... Gata!!! A durat 1 Se creeaza coloana 8..... Gata!!! A durat 1 Se creeaza coloana 9..... Gata!!! A durat 7 Se creeaza coloana 10.....Gata!!! A durat 6 Se creeaza coloana 11.....Gata!!! A durat 1 Se creeaza coloana 12.....Gata!!! A durat 7 Se creeaza coloana 13.....Gata!!! A durat 5 Se creeaza coloana 14.....Gata!!! A durat 8 Se creeaza coloana 15.....Gata!!! A durat 1 Se creeaza coloana 16.....Gata!!! A durat 8 Se creeaza coloana 17.....Gata!!! A durat 6 Se creeaza coloana 18.....Gata!!! A durat 1 Se creeaza coloana 19.....Gata!!! A durat 4 Se creeaza coloana 20.....Gata!!! A durat 7 Se creeaza coloana 21.....Gata!!! A durat 14 Se creeaza coloana 22.....Gata!!! A durat 1 Se creeaza coloana 23.....Gata!!! A durat 22 Se creeaza coloana 24.....Gata!!! A durat 48 Se creeaza coloana 25.....Gata!!! A durat 37 Se creeaza coloana 26.....Gata!!! A durat 147 Se creeaza coloana 27.....Gata!!! A durat 40 Se creeaza coloana 28.....Gata!!! A durat 2 Se creeaza coloana 29.....Gata!!! A durat 132 Matricea H a fost creata cu succes...

iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii iteratii

Aceasta este matricea H...

61

011000001000010000001000000010 100010100010010000100000000000 000011000000000000000010001011 000000111000101000000000000100 001010010000000000000001010000 000000010100010001010000101000 000100001001000000100101001000 001000000101001100000010000000 100000000000100010000001100000 000000000000001010111000010001 000000000011100001000000010010 000101000000000111000000000000 100001000100000000001100000100 010000100000000100000100100001 010100000010000000010010000100

Greutatea randului este: 6 Greutatea randului este: 6 Greutatea randului este: 6 Greutatea randului este: 6 Greutatea randului este: 5 Greutatea randului este: 7 Greutatea randului este: 7 Greutatea randului este: 6 Greutatea randului este: 5 Greutatea randului este: 7 Greutatea randului este: 6 Greutatea randului este: 5 Greutatea randului este: 6 Greutatea randului este: 6 Greutatea randului este: 6

Matricea H sub forma H = [At|I]...


010110111101011100000000000000 000101010001110010000000000000 100100000111111001000000000000 100001110100011000100000000000 011010000011100000010000000000 100011010011101000001000000000 101101111001000000000100000000 001010000110101000000010000000 111000100001010000000001000000 110000110110101000000000100000 000110110101001000000000010000 010001110001010000000000001000 100001101100110000000000000100 001101000110101000000000000010 000100110110101000000000000001 Greutatea randului este: 11 Greutatea randului este: 7 Greutatea randului este: 9 Greutatea randului este: 8 Greutatea randului este: 7 Greutatea randului este: 9 Greutatea randului este: 9 Greutatea randului este: 7 Greutatea randului este: 7 Greutatea randului este: 9 Greutatea randului este: 8 Greutatea randului este: 7 Greutatea randului este: 8 Greutatea randului este: 8 Greutatea randului este: 8 Greutatea randului este: 8 Greutatea randului este: 6 Greutatea randului este: 6 Greutatea randului este: 8 Greutatea randului este: 6 Greutatea randului este: 8 Greutatea randului este: 10 Greutatea randului este: 10 Greutatea randului este: 4 Greutatea randului este: 10 Greutatea randului este: 8 Greutatea randului este: 10 Greutatea randului este: 10 Greutatea randului este: 8 Greutatea randului este: 10

Matricea G...
100000000000000001101101100100 010000000000000100010001101000 001000000000000000010111000010 000100000000000111000100010011 000010000000000100011010010000 000001000000000010101100001110 000000100000000100100101111101 000000010000000110101100111001 000000001000000100000100000100 000000000100000101100010110111 000000000010000001011010100011 000000000001000111011101011000 000000000000100011011010100111 000000000000010111100001001100 000000000000001101101010110011 62

SIMULARE CU CODURI LDPC PENTRU CANAL AWGN CU SIGMA PATRAT 0.5 ==============================================================

Se creeaza un mesaj aleator. Acesta este: 110100101110010000001111001101 -------------------------------------------------------------Luam primi 15 biti si ii codam. Vom coda deci urmatoare secventa din mesaj: 110100101110010 ------------------------------------------------------------------------------Mesajul codat(din mesajul initial si matricea G) este: 110100101110010001000000111110 ------------------------------------------------------------------------------Mesajul primit de canal dupa ce a fost trecut prin zgomot (AWGN) este: 110100001110010001001010111110 3 erori. ------------------------------------------------------------------------------Mesajul decodat este: 110100101110010001000000111110 Sindrom = Zero Decodare cu succes. A durat 4 iteratii ------------------------------------------------------------------------------Mesajul final (primi 15 biti din mesajul decodat): 110100101110010 ******************************************************************************* Mesajul initial a fost: 110100101110010000001111001101 ------------------------------------------------------------------------------Luam urmatori 15 biti si ii codam. Vom coda deci urmatoare secventa din mesaj: 000001111001101 ------------------------------------------------------------------------------Mesajul codat(din mesajul initial si matricea G) este: 000001111001101101001100000010 ------------------------------------------------------------------------------Mesajul primit de canal dupa ce a fost trecut prin zgomot (AWGN) este: 010001111111101101001100000010 3 erori. ------------------------------------------------------------------------------Mesajul decodat este: 000001111001101101001100000010 Sindrom = Zero Decodare cu succes. A durat 9 iteratii ------------------------------------------------------------------------------Mesajul final (primi 15 biti din mesajul decodat): 000001111001101 ******************************************************************************* Mesajul initial creat aleator este: 63

110100101110010000001111001101 ------------------------------------------------------------------------------Mesajul codat complet este: 11010010111001000100000011111000000111100110110100110 0000010 ------------------------------------------------------------------------------Mesajul primit complet este: 11010000111001000100101011111001000111111110110100110 0000010 ------------------------------------------------------------------------------Mesajul decodat complet este: 11010010111001000100000011111000000111100110110100110 0000010 ------------------------------------------------------------------------------Mesajul final complet este: 110100101110010000001111001101 ------------------------------------------------------------------------------Numarul de biti eronati este: 0 -------------------------------------------------------------------------------

Fig 8.1 BER pentru coduri LDPC Codurile LDPC generate au urmtorii parametrii: mrime mesaj 15, mrime cod 30 i mrime mesaj 990

64

Fig. 8.2 Comparaie performane BER Coduri TURBO cu parametrii: interleaver de Tip par/impar, numr iteraii 10, dimensiune fiier 10000 Coduri LDPC cu urmtorii parametrii: mrime mesaj 15, mrime cod 30 i mrime mesaj 9990

65

Capitolul IX. Concluzii

Codurile LDPC au fost introduce iniial de Gallager n 1962, dar, abia n anul 1996, au fost redescoperite de MacKay i de R.Neal, care au artat ctigurile de performan a acestor coduri. La codurile LDPC este mai puin important tradiionala distan minim a codului dect greutatea minim asociat matricii de verificare a paritii. Din punct de vedere al vitezei, se estimeaz c decodificatorii analogici vor funciona la viteze cu aproximativ dou ordine de mrime mai repede dect decodificatorii digitali. Acest lucru este susinut de rezultatele obtinue recent de la decodificatorii analogici. Am observat n urma simulrilor repetate c, evitndu-se prea multe suprapuneri ale biilor de 1 n coloanele matricii de paritate H, circumferina crete iar decodarea este mai rapid. n acelai timp, eficiena codurilor (la codificare) este permis de proprietatea matricii de control a paritii de a fi slab populat. Complexitatea algoritmului este mai mic dect complexitatea algoritmilor altor metode de codare/decodare. Ca performan ajung codurile TURBO, ns costul de implementare este cu mult mai sczut. Pentru performan este important ca numrul de interaii s depeasc valoarea de 1000 spre deosebire de TURBO, unde dup 20 de iteraii mbuntirea performanelor este nesemnificativ.

66

Bibliografie
[1] Berrou, C., Glavieux, A., and Thitimajshima, P., Near Shannon Limit Error-Correcting Coding and Decoding: Turbo-Codes, Proceedings of ICC 1993, Geneva, Switzerland, pp. 10641070, May 1993. [2] Bernard Sklar: A primer on turbo code concepts, IEEE Comunications Magazine, vol.35, no. 12, pp. 94-98, Dec.1997 [3] Benedetto, S., and Montorsi, G., Unveiling Turbo Codes: Some Results on Parallel Concatenated Coding Schemes, IEEE Transactions on Information Theory, Vol. 42, No. 2, pp. 409-428, March 1996. [4] P. Jung, M. Nasshan, and J. Blanz, Application of turbo-codes to a CDMA mobile radio system using joint detection and antenna diversity, in Proceedings of the IEEE Conference on Vehicular Technology, pp. 770-774, 1994 [5]. R. G. Gallager, Low-density parity-check codes. Cambridge, Press, 1963. [6]. ----, "Low-density parity check codes," IRE Trans. Inform. Theory, vol. IT-8, pp. 21-28, Jan. 1962. [7] C. E, Shannon, "A. mathematical theory of communication," Bell System Technical Journal, vol 27, pp. 379-423, 623-665, Jury, Oct. 1948. [8]. V.Zybalov and M. S. Pinsker, Estimation of the error-correcting complexity of Gallager low-density codes Problems of Info. Trans, vol. 11, no. 1,pp. 23-26, 1975. [9]. G. A. Margulis, ''Explicit constractions of graphs without short cycles and low density codes, Combinatorica, vol. 2. no. 1, pp. 71--78, 1982. [10] R. M. Tanner, "A recursive approach to low complexity codes," IEEE Trans, In- form. Theory, vol IT-27, pp. 533-547, Sept. 1981. [11] M. G. Luby, M. A. Shokrolloahi, M. Mizenmacher, and D. A. Spielman , ''Improved low-density parity-check cedes using irregular graphs, IEEE Tmns, Inform, Theory, vol. 47, no, 2, pp. 585-598, Feb. 2001. [12] T. Tian, C. Jones, J. D. Villaseaor, and R. D. Wesel, "Construction of irregular LDPC codes with low error floors," in Proc. ICC 2003, vol. 5, Anchorage, AK, 2003, pp. 3125-3129. [13]. C. E, Shannon, "A. mathematical theory of communication," Bell System Technical Journal,1948.
67

[14]. X. L, Massey, Threshold decoding, Cambridge, MA; MIT Press, 1963. [15]. R. Kotter .and P. O. YoatobeL, Graph-covers and iterative decoding of finite length codes," 2003 [16]. F.R Kschischang and B.J.Frey, Iteratice decoding of compound code by probability propagation in graphical models, IEEE [17]. R, L. Graham, D. E. Knuth, and O. Patashnik, Concrete Mathematics. [18]. N. Wiberg, "Codes and decoding on general graphs," Ph.D. dissertation, Univ. Linkoping, 1996. [19]. N. Wiberg, R. Kotter, and H.-A. Loeliger, Codes and iterative decoding on general graphs.'' European Trans. on Telecomnmn,1995. [20]. F. R Kschischang, B. J. Frey, and H.-A. Loeliger, "Factor graphs and the sum-product algorithm,IEEE Trans. Inform. Theory, Feb.2001 [21]. D. J. C. MacKay,S. T. Wilson, and M. C. Davey, Comparison of constructions of irregular Gallager codes, IEE Trans. Communications, vol 47,no. 10,pp 1449- 1454,Oct 1999. [22]. L. Ping, W. K. Leung, and N. Phamdo, "Low density parity check codes with .semirandom parity check matrix," Electron. Lett., vol. 35, no. 1, pp. 38-39, Jan.1999. [23]. M. Rasbidpour and S, H. Jamali, "Low-density parity-check codes with simple irregular semi-random parity-check matrix for finite-length applications," in Proc. IEEE Int. Symp. on Personal, Indoor and Mobile Communication, PIMRC2003, vol. 1, Beijing, China, 2003, pp. 439-443. [24]. M. Yang, W. E. Ryan, and. L. Yan, "Design of efficiently encodable moderate-length high-rate irregular LDPC codes, IEEE Tmns. Communications, vol. 52, no. 4, pp, 564-571, Apr. 2004. [25]. R. Lucas, M. P. C. Fossorier, Y, Kou, and S, Lin, "Iterative decoding of one-step majority logic deductible codes based on belief propagation," IEEE Trans. Communications, vol. 48, no. 6, pp. 931-937, June 2000. [26]. Y. Kou, S, Lin, and M, P. Foasorier, "Low density parity check codes based on finite geometries: A rediscovery and new results," IEEE Trans. Inform: Theory, vol. 47, no. 7, pp. 2711-2736, Nov. 2001. [27]. S. J. Johnson and S. R. Weller, A family of irregular LDPC codes with low encoding complexity," IEEE Commun. Lett., vol. 7, no. 25 pp. 79-81, Feb. 2003. [28] . W. W. Peterson, Error Correcting Codes Cambridge, MA: MIT Press, 1961.
68

[29]. M. Sipser si D. A. Spielman, Expander codes, IEEE Trans, Inform, Theory, ol. 42, no. 6, pp. 1710-1722, Nov. 1996 [30]. D. A. Spielman, Linear-time encodable and decodable error-correcting codes, IEEE Trans. Inform. Theory, vol. 42, no. 6, pp. 1723 -1731, Nov. 1996. [31] M. G. Luby, M. A. Shokrolloahi, M. Mizenmacher, and D. A. Spielman , ''Improved low-density parity-check cedes using irregular graphs, IEEE Tmns, Inform, Theory, vol. 47, no, 2, pp. 585-598, Feb. 2001. [32]. R. Echard si S. C. Chang, The -rotation low-density parity check code, In Proc. GLOBECOM 2001, vol. 2, San Antonio, TX, 2001, pp. 980-484. [33]. __________ The extended irregular ar-rotation low-density parity check codes, IEEE Commun. Lett, vol. 7, no. 5, pp. 230-232, May 2003. [34]. T. Zhang si K. K. Parhi, Joint (3,k)-regular LDPC code and decoder/encoder design, IEEE Trans. Sig. Proc., vol. 52, no. 4, pp. 1065-1079, Apr. 2004. [35]. T. J. Richardson si R. L, Urbanke, Efficient encoding of low-density parity-check codes. IEEE Trans. Inform. Theory, vol. 47, no. 2, pp. 638-656, Feb. 2001. [36]. T. J. Richardson, A. Shokrollahi, R. Urbanke, Design of provably good low-density parity-check codes, in Proc. Int. Symp. Information Theory, Sorrento., Italy, 2000, p. 199.
[37] F. Lustenberger, "On the design of analog iterative VLSI decoders," Ph.D. dissertation, ETH, Zikieh, Switzerland, 2000. [38] S. B. Wicker, Error Control Systems for Digital Communication and Storage. Prentice Hall, 1995. [39] M. G. Luby, M. A. Shokrolloahi, M. Mizenmacher, and D. A. Spielman, ''Improved lowdensity parity-check cedes using irregular graphs, IEEE Tmns, Inform, Theory, vol. 47, no, 2, pp. 585-598, Feb. 2001. [40] C.Di, D. Proietti, I. E. Teletar, T. J. Richardson, and R. L. Urbanke, Finite-length analysis of low-deasity parity-check codes on the binary erasure channel, IEEE Trans. Inform. Theory, vol. 48, no. 6, pp. 1570-1579, Jun. 2002. [41] T. J. Richardson and R. L. Urbanke, The capacity of low-density parity-check codes under message-passing decoding, IEE, Feb 2001

[42] Ivan B. Djordjevic, PMD compensation in fiber-optic communication systems with direct detection using LDPC-coded OFDM [43]. Xiao Song, Li Yunsong, Bai Baoming, ZhouYouxi, The Key Technologies of Deep Space Communications
69

[44]. Sony Corporation, Tokio Institute of Technology, Press release, February 17, 2012 [45] Da Xinyu, Wang Yanling, Xie Tiecheng, Performance of LDPC Codes for Satellite Communication in Ka Band [46] Prof. Warren J. Gross, Forward Error-Correction in High-Speed Optical Communications, International Workshop on Trends in Optical Technologies CPqD, Campinas, Brazil, May 9, 2012; [47] Murat Arabaci, High-Rate Nonbinary Regular Quasi-Cyclic LDPC Codes for Optical Communications, Journal of Lightwave Technology, vol. 27, no. 23, December 1, 2009, pp. 5261-5267; [48] Ivan B. Djordjevic, Nonbinary LDPC Codes for Optical Communication Systems, IEEE Photonics Technology Letters, vol. 17, no. 10, October 2005, pp. 2224-2226;

70

Anda mungkin juga menyukai