Coduri Turbo Pentru Canale cu Relee

CUPRINS

1.Generalități despre coduri corectoare de erori 4

1.1 Tehnicile de codare de canal 6

2.Generalități despre codurile turbo 10

2.1 Structura codurilor turbo 10

2.2 Codurile convoluționale 11

2.3 Interleaver-ul 20

2.3.1 Interleaver-ul aleator 22

2.3.2 Interleaver-ul S-aleator 23

2.4 Procnoeul de puncturare 24

2.5 Terminarea trellis-ului 25

2.6 Algoritmii de decodare 27

2.6.1 Algoritmul de decodare Maximum A Posteriori (MAP) 27

2.6.2 Algoritmul BCJR aplicat decodorului turbo 32

2.6.3 Algoritmul log-MAP si max-log-MAP 35

2.6.4 Algoritmul cu intrare și ieșire soft(SISO) al lui Bennoetto 37

2.7 Tipuri de modulație 40

2.7.1 BPSK- Binary Phase-shiftkeying 40

2.7.2 DPSK- Differential phase-shift keying 41

3. Canalul cu releu 43

3.1 Modele de canal folosite 44

3.1.1 Modelul canalului afectat de zgomotulul alb aditiv gaussian (AWGN) 44

3.1.2 Modelul canalului de tip fading plat Rayleigh 45

3.2 Modalități de transmisie pe canalul releu 47

A. Transmisia directă 47

B. Decodare-transmisie(Decode-and-Forward-DF) 48

C. Amplificare-transmisie ( Amplify-and-Forward-AF): 49

4.Sisteme cu releu 51

4.1 Grupul de relee AF 55

4.2 Grupul de relee DF 56

4.3 Decodarea iterativă a GDTC 57

a. Sistemul DTC cu suprapunere 58

b. Sistemul DTC cu puncturare 59

4.4 Canal cu releu și tehnici de transmisie 60

A. Protocoalele de transmisie 61

B. Coduri turbo distribuite cu canale multiple 62

5. Rezultatele simulărilor sistemului codat turbo prin metoda DF a canalului de tip releu utilizând coduri componente recursiv sistematice 64

5.1. Rezultatele simulărilor pentru codurile cu memorie 2 64

5.2 Rezultate simulărilor pentru codurile cu memorie 3 68

5.3 Rezultatele simulărilor pentru codurile cu memorie 4 72

6. Concluzii 77

Bibliografie 80

1.Generalități despre coduri corectoare de erori

Chiar dacă majoritatea calculatoarelor au capacitatea de a corecta eventualele erori apărute în timpul transmisiei, folosirea codurilor corectoare de erori este o operațiune mai puțin costisitoare decât construcția unor calculatoare care pot asigura o lipsă sigură a erorilor. În prezent, codurile corectoare de erori sunt folosite în majoritatea comunicațiilor fără fir.

Informația este transmisă de la emițător la receptor după un principiu aleatoriu. Emițătorul transmite receptorului doar unul dintre toate mesajele posibile. Acest mesaj este ales dintr-un set de mesaje posibile, care sunt cunoscute atât la emisie, cât și la recepție. Zgomotul de canal distorsionează semnalul purtător de informație pe parcursul transmisiei.

Figura 1 Sistem general de comunicație

Doar unul dintre cele M mesaje din setul de mesaje este selectat de emițător, de exemplu și este mai apoi transformat în semnalul care, în general, este o funcție continuă în timp. Canalul de comunicație este, de fapt, mediul de transmisie, și este reprezentat de o linie de telefon, o legătură radio sau orice alt tip de legătură.

Odată ce zgomotul intern al emițătorului este aleator, atunci și ieșirea emițătorului este aleatoare. Un astfel de zgomot aleator afectează canalul de transmisie. Estimarea mesajului transmis cu probabilitatea cea mai mare se realizează de receptor. Se poate realiza și o detecție a mesajului, aceasta în cazul în care are loc o transmisie discretă, deoarece receptorul nu dorește să reproducă întocmai mesajul dat, ci trebuie să ia o decizie dintr-un număr finit de mesaje. Probabilitatea de eroare va fi folosită ca o măsură a calității transmisiei și este definită ca fiind probabilitatea ca mesajul , care a fost identificat de receptor, să nu fie mesajul original ales de emițător, adică:

; (1.1)

Datorită faptului că transmisia datelor se realizează pe un canal cu releu există posibilitatea ca acestea să fie afectate de diferite perturbații, iar pentru a se reduce rata de eroare (adică probabilitatea de eroare ) este necesară adăugarea unui număr suplimentar de biți pentru a asigura detecția și mai apoi, corectarea erorilor apărute în timpul transmisiei. Atunci când se detectează eroarea, cadrul de date este retransmis, iar atunci când există posibilitatea de a se corecta o eroare este necesară o informație suplimentară redundantă pentru a i se determina cu exactitate poziția și a putea fi corectată.

Informația suplimentară redundantă se asociază cu informația originală ce urmează a fi transmisă. Această asociere are loc respectându-se un algoritm matematic prin intermediul codurilor detectoare sau corectoare de erori. Transmiterea informației pe canal se realizează codat, iar decodarea, operația inversă, se realizează prin detecția sau corecția eventualelor erori.

Cuvântul cu erori primit de receptor nu trebuie să fie un cuvânt de cod valid pentru cuvântul recepționat. Un cuvânt de cod va fi format din n=m+k biți, unde:

m= numărul de biți de control ce conțin informație redundantă;

k= numărul de biți de date, deci dintre cele 2n combinații binare posibile cu n biți se aleg numai 2k cuvinte valide, adică doar numărul combinațiilor realizabile cu biți de date, celelalte reprezentând cuvinte fără sens.

Figura 2 Cuvântul de cod

Apariția unor erori este semnalizată de recepționarea cuvintelor fără sens în locul cuvintelor de cod.

1.1 Tehnicile de codare de canal

Există două tipuri de sisteme de transmisie: într-un singur mod – „one way”, așa cum este și sistemul din figura 1, unde corecția are loc doar pe direcția înainte și în două moduri – „two ways”, unde are loc o detecție a erorilor într-un sens (codurile FEC- “Forward Error Correcting”) și o cerere de retransmisie atunci când se detectează erorile în sens invers, lucru care conduce la sisteme ARQ (automatic repeat request). Codurile FEC sunt utilizate de cele mai multe tipuri de sisteme codate și pot fi coduri bloc, coduri convoluționale și coduri concatenate din coduri bloc și coduri convoluționale.

Una dintre primele tehnici de coduri corectoare de erori a fost codarea bloc. Codul bloc este format dintr-un set de vectori cu lungime fixă, numite cuvinte de cod. Numărul de elemente ale vectorului oferă lungimea cuvântului de cod și se notează cu n. Dintr-un alfabet care conține q elemente, vor fi selectate elementele unui cuvânt de cod. Putem lua exemplu codurile bloc binare unde q=2 elementele vor fi 0 și 1. Atunci când valoarea lui q este mai mare de 2, codul este nebinar. Dacă q poate fi calculat după următoarea formulă , unde b este număr întreg pozitiv, fiecare element q se poate reprezenta binar pe b biți. Codul bloc nebinar care are lungimea N poate fi schimbat într-un cod binar care are lungimea . Este posibil un număr de cuvinte de , asta pentru un cod binar de lungime n. Cuvintele de cod trebuie selectate pentru formarea codului dacă în codul de lungime n sunt k biți de informație . Se formează câte un cod de lungime n pentru fiecare bloc de k biți de informație, care a fost selectat din cuvinte de cod posibile. Rezultă un cod bloc care este notat (n,k), iar raportul este denumit rata codului (rată de codare). Există cuvinte posibile într-un cod cu lungime n cu q elemente. Ponderea cuvântului de cod este un alt parametru important, este notată cu w și reprezintă numărul de elemente diferite de zero din fiecare cuvânt de cod. Distribuția de ponderi a codului este determinată de mulțimea ponderilor dintr-un cod.

Prima clasă de coduri corectoare de erori a fost descoperită de Hamming și descrisă într-o manieră combinatorială. Aceste coduri pot fi clasificate în două categorii: coduri corectoare de o eroare și coduri corectoare de o eroare și detectoare de erori duble. Mai apoi au fost descoperite codurile Reno-Solomon (RS) și codurile Bose-Chaudhuri-Hocquenghem (BCH). Codurile Hamming și codurile Golay (sunt coduri perfecte – acele tipuri de coduri care pot corecta toate combinațiile de e erori sau mai puține, dar nici o combinație de e+1 erori) fac parte din categoria codurilor BCH. Codurile BCH binare sunt coduri asimptotic slabe, adică nu sunt bune din punct de vedere asimptotic.

În cazul unei familii de coduri binare în care este un cod cu distanța Hamming minimă , dacă sunt îndeplinite următoarele condiții ea poate fi numită asimptotic bună: (i) și (ii) atât rata familiei , dar și distanța minimă relativă a sa , sunt strict mai mari ca zero. În sens de distanță separabilă maximă, codurile RS sunt optime, adică distanța Hamming minimă (egală cu ponderea minimă a cuvintelor de cod, diferită de zero, în cazul unui cod liniar) atinge marginea superioară care mai poartă denumirea de marginea Singleton ( valoarea în cazul unui cod ). Prin concatenarea codurilor aleatoare scurte cu codurile RS lungi, propusă de Fourney, a fost soluționată problema complexității asimptotice.

Reno a introdus primul algoritm practic de decodare a codurilor turbo. Mai târziu, mai multe metode au fost propuse: soluționarea sistemelor de ecuații, decodarea secvențială, decodarea codurilor cu densitatea joasă a controlului parității (adică cele cu matrice de control în care apar puțini biți de 1 și mulți biți de 0) și decodarea algebrică, așa cum este si algoritmul Berlekamp-Massey pentru coduri RS.

În cazul codurilor convoluționale sau a codurilor non-bloc, biții de ieșire depind de biții de intrare din momentul curent, dar și de un număr de biți din momentele anterioare ( prin bit se înțelege un element al cuvântului de cod ), iar în cazul codurilor bloc, cuvântul de cod depinde de un singur bloc de biți de lungime fixă. Elias a propus pentru prima dată codurile convoluționale și a demonstrat că alegerea unui astfel de cod în mod aleator este o opțiune bună.

Codorul convoluțional este sistemul care are memorie finită și care la ieșire furnizează biți binare pentru fiecare biți de informație. În alcătuirea unui codor convoluțional intră un registru de deplasare care are celule de întârziere, sumatoare modulo 2 și un alt registru cu celule pentru biții de ieșire.

Codul are rata . Acei biți generați depind de cei biți de informație de la intrare și de biți anteriori. Pe lângă rata codului mai există și alți doi parametri importanți ai codului convoluțional: memoria codului și lungimea de cons trângere N (numărul de blocuri de biți de care depind ce biți de ieșire). Un cod convoluțional poate fi definit cu ajutorul acestor trei parametri .

Primul algoritm practic de decodare al codurilor convoluționale lungi alese în mod aleator a fost decodarea secvențială. Metoda aceasta este caracterizată de calculul variabil și este limitată de rata de tăiere ( rata maximă de codare în cazul căreia probabilitatea de eroare medie tinde să ia valoarea zero atunci când lungimea codului tinde la infinit). Un alt tip de algoritm descoperit mai târziu este algoritmul Viterbi care are capacitatea de a micșora probabilitatea de eroare a secvenței estimate. Lungimile de constrângere mici sunt potrivite acestui tip de algoritm pentru că are un număr limitat de calcule per pas și astfel nu este limitat de rata de tăiere. Algoritmul maximum a posteriori (MAP) este o alternativă pentru algoritmul Viterbi, care a fost introdus de Bahl, Cocke, Jelinek și Raviv și are capacitatea de a minimiza probabilitatea de eroare de bit. Pentru codurile convoluționale și pentru codurile bloc (cărora li se poate atașa un trellis) se poate folosi algoritmul de decodare MAP. Pentru că are o complexitate de două ori mai mare decât algoritmul Viterbi, acesta nu a fost folosit în decodarea codurilor turbo și furnizează o complexitate asemănătoare atunci când este aplicat codurilor convoluționale.

Dacă se realizează o concatenare a codurilor, atunci câștigurile de codare pot fi mai mari cu o complexitate similară. Fourney a introdus pentru prima dată conceptul de coduri concatenate în anul 1966; el a folosit concatenarea serială a codurilor obținând performanțe mult mai bune în corectarea de erori. Pentru îmbunătățirea performanței codurilor concatenate este folosită decodarea iterativă care presupune folosirea aceluiași decodor component de un anumit număr de ori, însă cu altă secvență de intrare care a fost furnizată la ieșirea decodorului în iterația anterioară. Algoritmul cu ieșire soft (“Soft Output Viterbi Algorithm”-SOVA) este utilizat pentru ca un decodor să îl poată ajuta pe celălalt prin intermediul informației de fiabilitate.

Prin îmbinarea dintre următoarele componente s-au realizat codurile turbo: două sau mai multe coduri convoluționale recursive (cu reacție), un interleaver pseudoaleator (dispozitiv de permutare a biților la intrarea codoarelor componente) și un algoritm de decodare MAP iterativ. La o rată a erorii de bit (BER) de se realizează o performanță de 5dB față de limita Shannon (adică valoarea minimă a raportului semnal/zgomot care are drept scop obținerea unei anumite rate de eroare) și a fost obținută cu un cod de lungime de constrângere 5, un interleaver cu o lungime de 256×256 biți și 18 iterații de decodare.

Au apărut și variante ulterioare ale codurilor turbo numite coduri convoluționale concatenate paralel („Parallel Concatenatno Convolutional Codes”-PCCC) care sunt coduri convoluționale concatenate serial ( „Serial Concatenatno Convolutional Codes”-SCCC ) și codurile convoluționale concatenare hibrid ( „Hybrid Concatenatno Convolutional Codes” -HCCC). SCCC și HCCC furnizează performanțe superioare celor PCCC la rapoarte mari semnal/zgomot ( „signal to noise ratios SNR”). În procedeul de concatenare se pot folosi și codurile turbo drept coduri constituente.

2.Generalități despre codurile turbo

Pentru corecția erorilor au fost propuse mai mule tipuri de coduri, cum ar fi codurile binare sau non-binare (Hamming, Reno Muller, codul produs, Reno Solomon) și codurile convoluționale. Odată cu apariția codurilor corectoare de erori, au apărut și noi algoritmi de decodare, cum ar fi al lui Peterson, Chase pentru codurile bloc și algoritmul Viterbi pentru codurile convoluționale. Codurile turbo fac parte din categoria codurilor corectoare de erori având o utilizare foarte largă în zilele noastre, mai ales în majoritatea comunicațiilor fără fir. Ele au fost introduse în anul 1993 de către Beerrou, Glavieux și Thitimajshima și de atunci sunt într-o permanentă dezvoltare. Codurile turbo au ca scop principal decodarea secvențelor codate cu o probabilitate de eroare cât mai mică.

În funcție de cum sunt adăugate simbolurile de control simbolurilor informaționale, se poate realiza o divizare în două clase a codurilor corectoare de erori: codurile bloc și codurile convoluționale. În cele mai multe cazuri sunt preferate codurile convoluționale pentru că utilizează algoritmul Viterbi.

2.1 Structura codurilor turbo

În alcătuirea codurilor turbo intră două sau mai multe codoare care pot fi de mai multe tipuri: coduri convoluționale sistematice recursive, coduri convoluționale sistematice non-recursive și coduri bloc. Concatenarea este procesul prin care aceste coduri sunt reunite pentru a se forma structura unui cod turbo. Cele mai des folosite tipuri de concatenări sunt cea paralelă și cea serială. Prin combinarea acestor două tipuri de concatenări rezultă concatenarea hibridă, care este folosită mult mai rar din cauza faptului ca acel câștig de performanță este mai mic față de cel generat de concatenarea serială sau cea paralelă.

2.2 Codurile convoluționale

Codurile convoluționale sunt folosite în aplicațiile următoare: comunicațiile wireless, comunicațiile terestre digitale si prin satelit, sistemele de multipropagare și sisteme de comunicații spațiale. Ele utilizează ca metodă de decodare algoritmul Viterbi. Odată cu introducerea noțiunii de concatenare a codurilor convoluționale cu un interleaver s-a obținut o apropiere de limita Shannon.

Pentru lungimile mici de bloc, informația este prelucrată serial sau continuu de codurile convoluționale. Codorul convoluțional beneficiază de memorie, pentru că simbolurile de la ieșire depind atât de simbolurile de la intrare cât și de intrările și/sau ieșirile precedente. Codorul este o mașină cu stări finite sau un circuit secvențial, iar starea codorului este dată de starea memoriei.

Un codor convoluțional de rată are registre de deplasare, unul pentru fiecare bit de informație de la intrare și biți codați de ieșire dați de combinațiile liniare ale biților de informație. Lungimea totală a registrelor de deplasare din codor este, de fapt, memoria acestuia.

Lungimea de constrângere, , pentru codurile de rată reprezintă, de fapt, numărul de intrări care pot afecta ieșirile din momentul de timp de i. Codorul de memorie m este codorul cu elemente de memorie. O diagramă de stare poate reprezenta un codor convoluțional de memorie și rată În cazul fiecărui bit de informație, intră două ramuri și apoi părăsesc fiecare stare.

Figura 3 Cod convoluțional de memorie 2 și rată ½

Cu ajutorul diagramei de stare se poate specifica dacă codul convoluțional este sau nu catastrofic. Se poate afirma că un codor convoluțional este catastrofic dacă un număr finit de erori de canal produce un număr infinit de erori după ce are loc decodarea. Acest tip de codor poate fi recunoscut prin diagrama sa de stare.

Codul convoluțional de memorie și rată se poate considera a fi un sistem discret linear invariant în timp. Codorul este astfel caracterizat de răspunsul la impuls, ieșirea codorului când intrarea este un “impuls”

Simbolul care se află cel mai în stânga va fi primul simbol care va fi transmis către canal în cazul unei secvențe.

Pentru un codor de rată sunt răspunsuri la impuls, unul pentru fiecare ieșire Atâta timp cât impulsul parcurge elementele de memorie ale codorului, acesta “memorează” conexiunile dintre elementele de memorie și ieșiri, fiind sistemul cu răspuns finit la impuls.

Răspunsurile la impuls ale unui codor convoluțional de rată sunt denumite și secvențe generatoare ale codului, care indică de fapt, conexiunile fizice reale ale codorului. Toate secvențele generatoare sunt egale cu zero după biți. Prin urmare, se vor lua în considerare doar vectorii care au lungimea Codorul prezintă o natură dinamică pusă în evidență prin introducerea noțiunii de celulă de întârziere, denumita prin variabila D. Astfel, matricele generatoare devin polinoame în D: Atunci când se face referire la un cod convoluțional, se exprimă în formă octală matricele generatoare .

Ca urmare a structurii dinamice a codorului convoluțional, diagrama de stare poate fi reprezentată cu ajutorul unei diagrame trellis. Această diagramă trellis este construită prin plasarea diagramei de stare a codului la fiecare interval de timp și având ramuri care leagă stările din momentele de timp și 1 , în concordanță cu tabelul de codare. Etichetarea ramurilor trellis are loc în același mod ca etichetarea ramurilor diagramei de stări.

Sistemul liniar invariant în timp care are răspunsurile la impuls furnizate de polinoamele generatoare este un codor convoluțional, unde :

, pentru ; (2.1)

Prin utilizarea relației de mai sus, vor rezulta următoarele secvențe de ieșire:

, pentru (2.2)

Forma matricială a relației de mai sus este:

(2.3)

unde G este matricea generatoare a codului convoluțional.

Fie polinomul generator:

; (2.4)

Relația dintre secvența de intrare și cea de ieșire poate fi scrisă astfel:

; (2.5)

unde polinoamele codului convoluțional de rată sunt aranjate într-o matrice numită matricea polinoamelor generatoare, care este de obicei scrisă sub formă octală:

; (2.6)

Codul recursiv sistematic convoluțional de memorie și rată este caracterizat de matricea generatoare de forma:

; (2.7)

După ce are loc divizarea și multiplicarea termenului din dreapta al relației (2.5) cu împreună cu relația (2.6), se obține:

; (2.8)

unde:

(2.9)

Relațiile demonstrează că atât codorul non-sistematic, cât și codorul sistematic au capacitatea de a furniza aceleași secvențe codate, fiind diferit faptul ca secvențele de informație corespunzătoare sunt aleatorizate de polinomul din codul recursiv convoluțional.

Codurile convoluționale au următorii parametri:

Rata de codare care este definită ca fiind raportul dintre numărul de biți de intrare și numărul de biți de la ieșirea codorului;

Memoria care este reprezentată de numărul de celule de întârziere ale codului;

Lungimea de constrângere care este dată de numărul total de biți unde reprezintă memoria codului, iar reprezintă numărul biților de la intrare.

Figura 4 Cod convoluțional recursiv nesistematic de memorie 3 cu matricea generatoare [15/13, 3/13]

Polinoamele matricei generatoare pentru codul recursiv nesistematic [15/13, 3/13] sunt conform relației (2.5):

; (2.10)

; (2.11)

Polinomul din relația (2.10), conform figurii 4, mai poate fi scris și sub forma:

; (2.12)

Purtând denumirea de polinom direct.

Polinomul din relația (2.11), conform figurii 4, mai poate fi scris și sub forma:

; (2.13)

purtând denumirea de polinom de reacție.

Polinoamele secvențelor de biți de la ieșire sunt date de relațiile:

; (2.14)

; (2.15)

Matricea generatoare a codului RSC se poate scrie sub forme diferite:

; (2.16)

Figura 5 Trellis-ul codului cu matricea generatoare [15/13, 3/13]

Schema codului convoluțional recursiv sistematic cu matricea generatoare G=[1,15/13] este cea din figura 6:

Figura 6 Cod convoluțional recursiv sistematic de memorie 3 cu matricea generatoare [1,15/13]

Figura 7 Trellis-ul codului cu matricea generatoare [1,15/13

Polinoamele matricei generatoare pentru codul RSC cu G=[1,15/13], conform relației (2.5) sunt:

; (2.17)

; (2.18)

Polinomul din relația (2.17), conform figurii 6, se mai poate scrie sub forma dată de relația (2.12) și poartă numele de polinom direct.

Polinomul din relația (2.18), conform figurii 6, se mai poate scrie sub forma dată de relația (2.13) și poartă numele de polinom de reacție.

Polinomul care corespunde secvenței de biți sistematici de ieșire este obținut prin relația:

; (2.19)

Polinomul care corespunde secvenței de biți de paritate este obținut prin relația:

; (2.20)

Prin urmare, matricea generatoare a codului RCS poate fi scrisă sub diferite forme:

; (2.21)

Se poate observa faptul că diagramele de stare a celor doua coduri sunt similare. Codurile au aceeași distanță minimă, funcția de transfer a celor două coduri este identică, iar ele pot fi descrise de o structură trellis similară. Probabilitatea de eroare de cadru este identică pentru ambele coduri, însă ratele de eroare de debit sunt diferite (BER), din cauza faptului că valoarea BER depinde de corespondența intrare-ieșire a codoarelor. Valorile BER pentru un cod recursiv sistematic sunt mai scăzute decât valorile BER pentru un cod nerecursiv nesistematic pentru valori mici ale raportului semnal-zgomot .

Distanța liberă a unui cod convoluțional este cea mai mică distanță dintre oricare două secvențe de cod distincte. Este necesar ca lungimea secvențelor sa fie mai mare decât lungimea de constrângere K a codului.

În figura următoare va fi prezentat codul turbo rezultat prin concatenarea paralelă a două coduri convoluționale recursive sistematice, printr-un interleaver aleator.

Figura 8 Structura codurilor turbo

La intrarea codului RSC1 cu lungimea L=1024 biți se va emite un bloc de simboluri care reprezintă mesajul transmis . Secvența de intrare, la intrarea în codor, este transmisă în trei moduri. În primul mod este copiată direct la ieșire cu scopul de a furniza secvența de biți de informație = . Secvența biților de paritate rezultă din trecerea secvenței de intrare prin codul RSC1 care are funcția de transfer . Intercalarea celor două secvențe duce la crearea unei secvențe sistematice codată convoluțional care are rata R=1/2. Trecerea secvenței prin interleaverul aleator notat ,va crea o secvență .Trecerea secvenței prin cel de-al doilea cod RSC2 care are aceeași funcție de transfer va crea o secvență de ieșire .Prin multiplexarea celor trei secvențe de ieșire se formează secvența de ieșire finală:

; (2.22)

În acest mod se poate produce un cod bloc sistematic linear care are rata R=1/3. Secvențele de paritate și care alcatuiesc codul sunt parțial independente datorită intercalării.

Procedeul de puncturare a secvenței de paritate de ieșire din codor este adesea folosit pentru obținerea unei rate de cod mai mari și este prezentată de următoarea matrice:

; (2.23)

Biții de pe prima coloană sunt biții de ieșire din momentele pare ale secvenței de ieșire , iar biții de pe a doua coloană indică biții de ieșire din momentele impare.

În situația dată secvențele de biți de la ieșirea codoarelor sunt:

; (2.24)

ce reprezintă secvența de ieșire a codului RSC1.

; ( 2.25)

ce reprezintă secvența de ieșire a codului RCS2.

După puncturarea celor două codoare se va obține un cod de rată R=1/2 cu secvența de ieșire:

; (2.26)

Secvența va fi in continuare modulată și transmisă pe canal.

Figura 9 Structura codului turbo cu blocul de punctuare

2.3 Interleaver-ul

Interleaver-ul îndeplinește două roluri: unul la codare și unul la decodare. La codare, are rolul de a combina cuvintele de cod care au o pondere joasă, generate de unul dintre cele două codoare cu cele care au pondere mare, generate de celălalt codor . În urma acestei combinări rezultă o pondere globală mare a cuvântului de cod turbo și multiplicități cât mai mici. La decodare, interleaver-ul are rolul de a realiza o decorelare cât mai mare a secvențelor de intrare în decodorul component, lucru care este foarte important în cazul decodării codurilor turbo.

Decodarea codurilor turbo este una iterativă, suboptimală deoarece o complexitate rezonabilă este impusă, ea conducând la performanțe asemănătoare celor rezultate din decodarea de maximă plauzibilitate.

Operația de permutare realizată de un interleaver este dată de următoarea relație:

; (2.27)

unde T este perioada și i reprezintă poziția elementului permutat din secvența de intrare.

Atunci când secvența ajunge la receptor, este din nou permutată de un deinterleaver cu scopul de a reveni la forma inițială, totodată adăugându-se o eventuală întârziere. Această permutare inversă descrie interleaver-ul și se notează cu . Interleaverele au o eficiență ridicată în corectarea “burst-urilor” de erori (pachete de erori) pentru că în urma amestecării simbolurilor, “burst-ul” de erori este “spart” și transmis, astfel creându-se un canal cu erori independente sau aleator.

Pentru formarea cuvintelor de cod cu pondere globală mare și multiciplitate joasă are loc intercalarea (întrețeserea) cuvintelor de cod de pondere joasă de la ieșirea primului codor cu cele de pondere mare de la ieșirea celui de-al doilea codor. Funcția de decorelare a secvențelor sistematice și de paritate este realizată de interleaver în interiorul decodorului, această operație ducând la îmbunătățirea convergenței decodorului. Interleaverele aleatoare care au lungimi mai mari de 1000 beneficiază de proprietăți mai bune de corelație fără a fi necesară o proiectare specifică a acestor proprietăți.

Parametrii care caracterizează interleaver-ul sunt următorii:

Factorul de împrăștiere (s,t) care este definit astfel:

dacă pentru orice , atunci (2.28)

unde π(i) este permutarea elementului i. Dacă interleaver-ul are factorii de împrăștiere (s,t), atunci deinterleaver-ul va avea factorii de împrăștiere (t,s). Valorile factorilor de împrăștiere ai interleaver-ului pot fi mai mari sau egale cu 1;

Parametrul S care este definit astfel:

dacă pentru orice , atunci ; (2.29)

Parametrul D care este definit de relația:

(2.30)

i≠j

i,j∈δL

unde este metrica Lee dintre punctele ale reprezentării interleaver-ului: ; (2.31)

pentru: ; (2.32)

Dispersia pentru interleaverele bloc se poate define ca fiind mulțimea vectorilor de deplasare diferiți folosită pentru aleatorizarea interleaver-ului și este dată de următoarea relație:

; (2.33)

Îmbunătățirea performanțelor sistemului care presupune un cod turbo se poate realiza prin alegerea interleaver-ului potrivit( BER/FER are valori scăzute, iar câștigul de codare crește).

2.3.1 Interleaver-ul aleator

Cu ajutorul interleaver-ului aleator este realizată o permutare aleatoare a elementelor unui vector de intrare. În funcție de ordinul pseudo-aleator al locațiilor de memorie este permutată informația transmisă cu ajutorul unor indici de permutare. Acești indici de permutare trebuie sa fie cunoscuți de deinterleaver exact în aceeași ordine în care au fost folosiți de interleaver pentru a readuce informația la forma originală, nepermutată.

Figura 10 Interleaver aleator

2.3.2 Interleaver-ul S-aleator

Performanțele BER/FER oferite de interleaver-ul S-aleator sunt superioare celor oferite de interleaver-ul aleator și sunt bazate pe creșterea iterativă a lungimii .

Respectarea următorilor pași este necesară pentru construcția unui interleaver S-aleator:

– generarea unui vector de N elemente nule;

– generarea unui alt vector de elemente aleatoare în intervalul cu o distanță mai mare decât S pentru toate cele N elemente, între elementul întreg generat și S întregi generați anterior;

– respectarea condiției ca pentru fiecare pereche : dacă , atunci:

(2.34)

– dacă se ia în considerare , atunci se produce timpul de generare al elementelor interleaver-ului;

– performanțele interleaver-ului aleatoriu cresc dacă sunt alese dispersia normalizată și parametrul S cu valori mai mari.

Interleaver-ul S-aleator prezintă și o serie de dezavantaje, cum ar fi: timpul de generare a interleaver-ului crește odată cu mărirea valorii parametrului S, nesiguranța terminării cu succes, nu se ia în considerare concatenarea evenimentelor cu eroare multiple și nici cuvintele de cod cele mai semnificative dau performanțe BER bune pentru codul component al codului turbo.

2.4 Procedeul de puncturare

Procedeul de puncturare a secvenței de paritate de ieșire din codor este adesea utilizat pentru obținerea unor rate de cod mai mari. Acest tip de procedeu poate fi reprezentat prin următoarea matrice:

; (2.35)

Biții de ieșire la momentele pare ale secvenței sunt reprezentați în prima coloană, iar biții de ieșire la momentele impare sunt indicați de a doua coloană. În urma puncturării secvențelor codate ale celor două codoare, se va obține un cod de rată

Figura 11 Structura codului turbo cu blocul de puncturare

2.5 Terminarea trellis-ului

Pentru codurile turbo, terminarea terllis-ului are un rol important în păstrarea performanțelor sistemului, în special în cazul lungimilor mici ale blocurilor de informație, în momentul în care interleaver-ul determinist este folosit pentru a se produce complexitatea procedeului de permutare a polinoamelor generatoare.

Performanțele BER/FER sunt de asemenea influențate de terminarea trellis-ului; este necesar ca niște biți de terminare sa fie adăugați în secvența inițială transmisă pe canal, cu scopul de a aduce codorul într-o stare cunoscută, ajutând totodată și decodarea iterativă. Există posibilitatea să apară unele erori din cauza slabei terminări a secvenței bloc de date, aceasta în cazul în care nu se cunosc stările inițiale si finale ale codoarelor.

Se vor prezenta trei metode de terminare a trellis-ului, luându-se în considerare două codoare de memorii diferite și .

Prima metodă folosită este cea în care este terminat primul codor adăugându-i-se secvenței de intrare un număr de biți egal cu ordinul memoriei primului cod , așa încât primul codor ajunge în starea zero. Trellis-ul celui de-al doilea codor nu va fi terminat fiindcă biții adăugați inițial sunt incluși în secvența care va intra în interleaver, nefiind identici cu biții de terminare ai celui de-al doilea codor din cauza permutării secvenței realizate de interleaver. Rata de codare în cazul codurilor turbo simetrice cu va fi dată de următoarea relație:

; (2.36)

unde N descrie lungimea secvenței de biți de la intrare.

Cea de a doua metodă utilizată este terminarea post-interleaver având drept caracteristică faptul că terminarea trellis-urilor celor două componente va avea loc în același stare, în mod normal starea zero și independent unele de altele după codarea secvențelor de N biți corespunzătoare interleaver-ului de la intrare. În figura următoare este reprezentat un cod convoluțional recursiv, sistematic care utilizează terminarea trellis-ului post-interleaver.

Figura 12 Schema unui codor convoluțional recursiv sistematic cu terminare a trellis-ului post-interleaver

Din următoarea relație rezultă rata de codare în cazul în care biții de terminare ai celui de-al doilea codor nu sunt transmiși:

; (2.37)

În cazul în care sunt transmiși biții de terminare ai celui de-al doilea codor, rata de codare va fi daca de relația de mai jos:

; (2.38)

2.6 Algoritmii de decodare

2.6.1 Algoritmul de decodare Maximum A Posteriori (MAP)

Algoritmul MAP constă în găsirea valorii cel mai probabilă a fiecărui bit (0 sau 1). Astfel, secvențele probabilităților sunt transmise de la un decodor la altul și reactualizate in timpul fiecărei iterații. Calculul dintr-o perioadă de timp rezonabilă, a secvenței de probabilități transmise în funcție de datele recepționate și datele redundante X , oferă acestui tip de algoritm o dificultate mai crescută.

Se ia în considerare mașina de stări finite (FSM) cu alfabetul care reprezintă codorul. Mașina de stări finite trece din starea anterioară în starea curentă , la un moment t.

; (2.39)

Figura 13 Diagrama de tranziție directă a stărilor

În figura de mai sus este reprezentată secvența de biți de la emisie cu , iar secvența de biți de la recepție este reprezentată de . Există două probabilități de tranziție: 0 în cazul în care tranziția de la starea la nu este posibilă sau ½ în cazul în care tranziția de la starea la este posibilă, știindu-se că bitul de intrare poate lua valoarea 1 echiprobabil sau 0.

În timpul fiecărei iterații, probabilitatea bitului de intrare este dată de suma probabilităților tuturor stărilor posibile care permit obținerea intrării la momentul t.

; (Regula lui Bayes) (2.40)

Dacă presupunem că îi lipsește memoria canalului, secvența recepționată va depinde doar de starea actuală m și nu și de stările anterioare m’ sau de secvențele de canal recepționate actuale și anterioare, putând fi dedusă următoarea relație:

; (2.41)

Dacă utilizăm din nou regula lui Bayes, am putea scrie relația de mai sus sub următoarea formă:

; (2.42)

unde σ(.) este metrica de tranziție a stărilor.

(2.43)

(2.44)

Vom defini funcțiile delta astfel:

va fi 1 dacă are loc tranziția din starea m’ în starea m și i trebuie să fie 0, altfel va lua valoarea 0.

va fi 1 dacă are loc tranziția din starea m’ în starea m și i trebuie să fie 1, altfel va lua valoarea 0.

Algoritmul are scopul de a calcula eficient valoarea lui din relația (2.42). Putem considera mașina automată ca fiind un lanț Markov, rezultând că evoluția după momentul t depinde numai de mașina la momentul t și de intrările următoare, dar în nici un caz de cele anterioare.

poate fi simplificat în următoarea expresie:

Folosind pașii de calcul ai algoritmului BCJR vom obține următoarele relații pentru metrica de recurență înainte (parcurgând trellis-ul de la stânga la dreapta), iar pentru metrica de recurență înapoi (parcurgând trellis-ul de la dreapta la stânga) și pentru coeficientul metricii de tranziție a stărilor :

(2.47)

În final vom obține următoarea expresie:

(2.48)

Astfel, expresia lui poate fi descompusă în trei factori, α reprezentând trecutul, γ prezentul, iar β viitorul.

b. Calculul recursiv al matricei α:

Relația (2.39) poate fi scrisă și sub următoarea formă:

(2.49)

Efectuând suma celor două stări vom obține expresia recursivă a matricei α: m’ permițând aducerea mașinii FSM în starea m corespunzătoare aplicării la intrarea unui 0 sau 1. Deoarece se iau în considerare două evenimente disjuncte suma probabilităților rămâne valabilă.

Figura 14 Diagrama de tranziție din starea anterioară în starea curentă corespunzătoare metricii de recurență înainte

(2.50)

Va rezulta din folosirea proprietății lanțurilor Markov următoarea formulă:

(2.51)

Iar prin identificare rezultă:

(2.52)

Relația rezultată este una crescătoare. Urmează a fi definită inițializarea pentru momentul t=0 cu și pentru m≠0 ; (2.53)

c. Calculul recursiv al lui β.

Prin combinarea relației (2.45) cu (2.40) rezultă următoarea relație:

; (2.54)

Efectuându-se suma stărilor viitoare m’’ accesibile începând de la starea curentă m cu intrarea .

Figura 15 Diagrama de tranziție din schema curentă în starea viitoare corespunzătoare metricii de rezistență înapoi

Relația (2.48) se mai poate rescrie și sub următoarea formă:

; (2.55)

; (2.56)

Din relațiile (2.46) și (2.47) rezultă prin identificare:

; (2.57)

Relația rezultată este una crescătoare.

La momentul de timp t=T cu și m≠0 ; are loc inițializarea.

d. În funcție de probabilitatea de eroare în transmisie γ poate fi interpretat astfel:

; (2.58)

Atunci când mașina FSM este în starea , γ este probabilitatea de a avea intrarea si iesirea .

Figura 16 Diagrama de tranziție din starea anterioară în starea curentă

Dacă presupunem că intrarea permite trecerea din starea m’ în starea m este , atunci:

; (2.59)

Dacă ,atunci:

(2.60)

Dacă ,atunci:

(2.61)

Dacă în primul caz nu se produce nici o eroare,în cel de-al doilea ea apare.

2.6.2 Algoritmul BCJR aplicat decodorului turbo

Rolul algoritmului BCJR modificat este de a calcula raportul logaritmic de plauzibilitate (LLR) pentru primul decodor, știind formulele coeficienților (LLR):

(2.62)

În relația de mai sus, reprezintă informația extrinsecă, iar definește fiabilitatea canalului de transmisie.

Fiabilitatea canalului de transmisie se va calcula după următoarea formulă în cazul unui canal afectat de zgomotul alb aditiv gaussian (AWGN):

(2.63)

reprezintă fiabilitatea canalului , reprezintă rata codului, este energia bitului necodat, este energia formei de undă și este densitatea spectrală a zgomotului. În cazul în care considerăm valoarea lui egală cu 1, atunci variația zgomotului va fi egală cu , iar coeficientul de tranziție a stărilor , respectiv se exprimă în funcție de fiabilitatea zgomotului:

; (2.64)

respectiv,

; (2.65)

În relația de mai sus, informația extrinsecă depinde de secvența de paritate, iar .

Începând cu a doua iterație, pentru primul si pentru cel de-al doilea decodor , probabilitatea depinde de probabilitatea a priori a lui . În relația (2.62) la numărător, dacă atunci:

; (2.66)

la numitor dacă atunci:

; (2.67)

unde este LLR-ul probabilității a priori a bitului emis .

LLR devine, dacă ne ajutăm de relațiile (2.66) și (2.67):

; (2.68)

Există o diferență între relațiile (2.57) și (2.63) ,în cea de a doua relație apare LLR-ul probabilității apriori a lui egală cu ,secventa cuprinzân informația extrinsecă intercalată care provine de la primul codor.

Coeficientul de tranziție al stărilor pentru canalul AWGN este:

; (2.69)

unde secvențele biților sistematici de informație și a celor codați sunt trecute în interleaver

și , iar:

; (2.70)

Pentru primul decodor după prima iterație informația extrinsecă care provine de la cel de-al doilea decodor urmează sa treacă prin de-interleaver și LLR-ul rezultat este:

; (2.71)

Decizia va fi luată la sfârșitul iterațiilor dat de un anumit criteriu impus:

; (2.72)

unde reprezintă bitul estimat la momentul t.

2.6.3 Algoritmul log-MAP si max-log-MAP

În cazul acestor doi algoritmi multiplicările din algoritmul BCJR sunt înlocuite cu sumările, ajutându-se de algoritmul Jacobian:

; (2.73)

Aproximarea logaritmului Jacobian se face cu , iar termenul de corecție este reprezentat de . Modalitatea în care este folosit logaritmul Jacobian reprezintă, de fapt, diferența dintre algoritmul log-MAP și algoritmul max-log-MAP. Dacă primul folosește formula (2.73) exact așa cum este ea, cel de-al doilea utilizează o formulă asemănătoare:. Notația va fi modificată prin funcția , rezultând astfel:

-în cazul logaritmului log-MAP:

; (2.74)

-în cazul logaritmului max-log-MAP:

; (2.75)

Atunci când se folosește algoritmul max-log-MAP va avea loc o degradare a performanței din cauza aproximării. Algoritmul log-MAP se comportă asemănător algoritmului BCJR și nu are acest dezavantaj. Algoritmului log-MAP îi poate fi stocat termenul de corecție într-un tabel unde x poate lua opt valori în intervalul 0 si 5. Chiar dacă vor exista valori mai mari decât cele 8 nu va apărea nici o îmbunătățire a performanței. Astfel variabilele vor fi definite după următoarele formule:

; (2.76)

; (2.77)

; (2.78)

Dacă logaritmăm relația, rezultă:

; (2.79)

se obține:

; (2.80)

Deoarece termenul este o constantă el va fi omis din calcularea raportului de maximă plauzibilitat e . Dacă utilizăm ecuațiile recursive ale lui α și β vom obține următoarele formule:

; (2.81)

Fiecare sumare din formulele de mai sus conține doi termeni fiindcă folosește coduri binare. Dacă analizăm termenul , observăm că algoritmul max-log-MAP folosește una dintre cele două ramuri care ajung în starea m, altfel spus cea pentru care suma ia valoarea maximă. Ca și în cazul algoritmului Viterbi există o ramură “supraviețuitoare” și una care va fi eliminate. Analog pentru termenul , dar în direcția opusă.

La terminarea trellis-ului, A și B are următoarele valori inițiale:

; (2.82)

(2.83)

și pot fi interpretate metrici de ramură: în cazul lui metrica se va calcula asemenea algoritmului Viterbi, de la începutul până la sfârșitul trellis-ului,iar în cazul lui metrica se calculează de la sfârșitul la începutul trellis-ului. Algoritmul max-log-MAP operează ca doi algoritmi Viterbi simultan,unul care traversează trellis-ul într-o direcție și celălalt care îl traversează în direcția opusă. Cu ajutorul următoarei relații poate fi calculat raportul de maximă plauzibilitate:

(2.84)

Doar una din ramurile fiecărei mulțimi și va fi folosită de algoritmul max-log-MAP,unde este probabilitatea recepționării bitului 0, iar reprezintă probabilitatea recepționării bitului 1.

2.6.4 Algoritmul cu intrare și ieșire soft(SISO) al lui Bennoetto

Modulul SISO este folosit în schema decodorului turbo propus de Bennoetto și este reprezentată în figura următoare:

Figura 17 Decodarea iterativă a unui cod convoluțional concatenat paralel (PCCC)

Figura 18 Modelul soft-input soft-output (SISO)

Modulul SISO este un dispozitiv care are patru porturi:două de intrare și două de ieșire. Secvențele distribuțiilor de probabilitate și sunt primite de porturile de intrare, iar următoarele secvențe ale distribuțiilor de probabilitate și definite în funcție de intrări, dar și de cunoașterea trellis-ului codorului sunt date de porturile de ieșire.

Plecând de la premisa că intervalul de timp este finit, atunci algoritmul pe baza căruia funcționează modulul SISO în evaluarea distribuțiilor de ieșire va fi prezentat în doi pași.

În primul pas se va lua în considerare următorul algoritm:

Probabilitățile de distribuție de la ieșire din momentul de timp k vor fi calculate prin folosirea următoarelor formule:

; (2.85)

; (2.86)

Cu ajutorul recursiilor înainte și înapoi vor fi calculate metricile și :

(2.87)

(2.88)

Având valorile inițiale:

; (2.89)

; (2.90)

Constantele nominalizate și sunt definite de:

; (2.91)

; (2.92)

Pe baza observației conform căreia cantitățile și nu depinde de e, în cel de-al doilea pas, după definirea indicilor de însumare vor rezulta următoarele relații:

; (2.93)

; (2.94)

unde și reprezintă constantele normalizate, astfel încât:

; (2.95)

; (2.96)

Iar

; (2.97)

; (2.98)

unde A și B sunt definite de aceleași recursii prezentate în ecuațiile precedente.

O versiune simplificată a distribuțiilor de intrare și o reprezintă noile probabilități de distribuție , bazate de constrângerile codului și obținute prin folosirea probabilităților de distribuție a tuturor simbolurilor k din secvență. vor fi denumite informație extrinsecă în decodarea turbo și reprezintă valorile adăugate ale modului SISO distribuțiilor apriori

Acest algoritm are drept avantaj faptul că structura trellis generală a codului poate fi utilizată, folosindu-se stările finale ale trellis-ului (de la marginea trellis-ului) în loc de perechi de stări. Algoritmul are un caracter general datorită acestui fapt și poate fi utilizat în structuri de coduri cu rate mai mari de 1.

2.7 Tipuri de modulație

2.7.1 BPSK- Binary Phase-shiftkeying

BPSK este, de asemenea, numit și RRK-phase reversal keying sau 2-PSK și este cea mai simplă formă a PSK-ului. PSK-Phase Shift Keying este o schemă de modulație digitală care transmite date prin schimbarea sau modularea fazei unui sistem de referință ( a undei purtătoare). Modulația de tip BPSK mai este denumită și 2-PSK pentru că utilizează două faze care sunt separate de . Această modulație este cea mai puternică dintre toate cele de tip PSK pentru că este nevoie, pentru a face ca modulatorul ca să ia o decizie incorectă, de un nivel de zgomot sau de o distorsiune foarte mare. Are capacitatea de a a modula 1bit/simbol și prin urmare, nu este potrivit pentru aplicații cu viteză mare de date. În modulația de tip BPSK, datele sunt adesea codificate diferențiat înainte de modulare.

Figura 19 Exemplu de diagrama pentru BPSK

Modelul general al BPSK este dat de următoarea ecuație:

; (2.99)

Acest lucru duce la două faze, 0 și π. Datele binare sunt adesea transmise cu următoarele semnale:

pentru bitul 0; (2.100)

pentru bitul 1; (2.101)

unde este frecvența undei purtătoare.

Astfel, spațiul semnalului poate fi reprezentat de singura funcție de bază.

; (2.102)

unde 1 este reprezentat de și 0 este reprezentat de -.

Rata erorii de bit (BER) a BPSK în canalul AWGN se poate calcula după următoarea formulă:

; (2.103)

2.7.2 DPSK- Differential phase-shift keying

Codarea diferențială

DSPK este o formă comună de modulație a fazei, care transmite date prin schimbarea fazei undei purtătore. Există o ambiguitate a fazei dacă constelația este rotită de un anumit efect în canalul de comunicare prin care trece semnalul. Problema poate fi depășită prin utilizarea datelor cu ajutorul cărora este schimbată faza.

Spre exemplu, în cazul BPSK-ului codat diferențial, bitul “1” poate fi transmis prin adăugarea a fazei curente, iar bitul “0” prin adăugarea a fazei curente. O altă variantă a DSPK-ului este SDPSK- Symmetric Differential Phase Shift keying în cazul căruia codarea ar fi + pentru bitul “1” și – pentru bitul 0.

Codarea diferențială aproape că dublează rata de eroare, iar acest lucru poate fi rezolvat printr-o mică creștere a raportului . Acestă observație a fost facută în cazul unui sistem afectat de zgomotul aditiv alb Gaussian (AWGN) și care va avea un canal între transmițător si receptor care va introduce o fază necunoscută semnalului PSK. În aceste cazuri, schema diferențială va produce o mai bună rată de eroare decât schema normală.

Demodularea

Pentru un semnal care a fost modulat diferențial, nu există altă metodă de demodulare

decât cea diferențială. În loc de demodularea obișnuită și ignorând ambiguitatea fazei purtătoare, faza dintre două simboluri primite succesiv este comparată și utilizată pentru a determina ceea ce datele trebuie să fie. Când codarea diferențială este utilizată în această formă, schema este cunoscută ca fiind una DPSK. Se observă o mică diferență față de PSK-ul codat diferențial pentru că, odată recepționate, simbolurile primite nu sunt decodate unul câte unul, ci sunt comparate unul cu altul.

Dacă reprezintă simbolurile primite, este intervalul de timp și faza , faza undei purtătoare este

egală cu 0 și termenul AWGN este , atunci:

; (2.104)

Probabilitatea de eroare este greu de calculat în cazul BPSK, dar în cazul DBPSK este:

; (2.105)

3. Canalul cu releu

Un canal cu releu este constituit din cel puțin trei noduri de rețea constând din sursă, releu/relee (unul sau mai multe noduri intermediare) și destinație. Nodul intermnoiar are rolul de a transmite informația între sursă si destinație. Sursa emite mesajul ce urmează a fi captat de nodurile ce joacă rolul de releu. Receptorul aflat la destinație captează semnalul transmis nu numai de sursă , ci și de toate releele, obținându-se astfel un efect de diversitate, conceptul fiind considerat similar cu noțiunea de salt de frecvență (frequency-hopping). Semnalele captate din diferite locații spațiale, pot fi descrise prin termenul de salt spațial sau schimbare spațială (spatial-hopping).

Figura 20 Schema unui canal cu releu

Transmiterea prin releu poate fi folosită pentru crearea unor antene virtuale ; acest lucru este posibil pentru că două dispozitive cooperează schimbându-și rolurile ca sursă și releu. Această strategie este numită diversitate cooperativă. Releul poate utiliza mai multe strategii de transmitere, incluzând: amplificare – transmitere, compresie – transmitere și decodare – transmitere. Ultima strategie se referă la faptul că releul decodează mesajul primit de la sursă și apoi îl recodează (probabil cu un cod diferit) înainte de a-l transmite mai departe. Se creează un cod turbo distribuit prin intercalarea datelor codate la releu având drept beneficiu suplimentar faptul că este potrivit la transmiterea semnalului în regim de zgomot.

Canalul cu releu conține dispozitive foarte simple; releul nu poate să primească și să transmită în mod simultan. În plus, nici sursa, nici releul nu cunosc faza relativă a celuilalt și prin urmare nu pot transmite coerent. Astfel, canalul cu releu operează într-un mod de divizare a timpului de tip duplex: în primul interval de timp sursa emite către releu și destinație, iar în cel de-al doilea interval de timp doar releul transmite către destinație.

Atât sursa cât și releul, generează un cod foarte simplu, în acest caz se generează numai biții de control din codul RSC(Recursive Systematic Convolutional) cu fenoback octal și fenoforward generators.

După codare semnalul este modulat BPSK(Binary Phase Shift Keying). Ieșirea de paritate este generată de un decodor diferit, iar o altă interpretare ar fi aceea că fiecare terminal transmite în paralel atât în mod BPSK cât și în mod DPSK(Differential Phase Shift Keying).

3.1 Modele de canal folosite

3.1.1 Modelul canalului afectat de zgomotulul alb aditiv gaussian (AWGN)

Modelul canalului afectat de zgomotul alb aditiv gaussian face parte din categoria celor mai importante canale folosite în sistemele de comunicație. Vom lua în considerare un sistem de transmisie binar cu biții codați care aparțin mulțimii și care au fost transformate în valorile reale corespunzătoare din mulțimea ; Vectorii sunt n-dimensionali, iar vectorul de intrare poate fi definit astfel:. În funcție de secvența de intrare se va calcula densitatea de probabilitate condiționată a secvenței de ieșire y, cu ajutorul următoarei relații:

; (3.1)

unde este densitatea de probabilitate condiționată a celor n elemente de zgomot statistic independent și identic distribuite (i.i.d) Gaussian cu media zero și dispersia fiind densitatea spectrală de putere unilaterală a zgomotului.

Probabilitatea de eroare de bit , notată cu pentru o transmisie binară pe canal cu zgomot aditiv alb gaussian a codurilor lineare sistematice binare este mărginită de următoarea limită superioară :

; (3.2)

unde: -R este rata de codare;

-w este ponderea cuvântului de cod;

-reprezintă numărul de cuvinte de cod cu ponderea Hamming w;

-Q este funcția gaussiană Q.

Rezultatele specialiștilor arată că pe lângă faptul că această limită superioară este calculată doar pentru codarea sistematică, minimizarea probabilității erorii de bit are loc tocmai prin această codare sistematică. Prin urmare, ea reprezintă o alegere optimă în orice caz.

3.1.2 Modelul canalului de tip fading plat Rayleigh

Canalul afectat de fading lent Rayleigh este un alt tip de canal important. În cazul sistemelor de comunicație wireless, fadingul apare sub forma unor distorsiuni variabile în timp a semnalului transmis. Fiindcă nu depinde de frecvență el este plat, iar funcția de transfer trebuie sa fie constantă în domeniul frecvență.

Figura 21 Modelul canalului afectat de fading plat Rayleigh

În cazul canalului afectat de fading plat Rayleigh apare o distorsiune multiplicativă α exprimată de vectorul cu n variabile aleatoare, ,fiind diferit astfel de canalul AWGN, fiecare fiind caracterizată de funcția densitate de probabilitate:

(3.3)

Raportul mediu semnal- zgomot per bit este egal și este asemănător cazului AWGN fiindcă momentul de ordin doi al amplitudinilor de fading este .

Probabilitatea de eroare condiționată după decodarea unui cuvânt de cod sau a unui bit va fi calculată pentru a se determina performanțele unui cod liniar binar pe canalul cu fading plat Rayleigh. Prin integrarea unui produs a lui cu funcția densitate de probabilitate vor fi obținute probabilitățile de eroare necondiționate.

Probabilitățile rezultate în urma transmisiei binare prin canalul AWGN sunt asemănătoare cu probabilitățile condiționate. Există o diferență între cele două dată de argumentele funcției , care corespunde probabilității de eroare a perechii la decodarea unei erori și care depinde de amplitudinile de fading . Probabilitatea condiționată de eroare în cazul unui sistem de transmisie codat binar, fără a ști starea canalului (channel state information-CSI) este dată de următoarea relație:

(3.4)

; (3.5)

Probabilitatea de eroare în decodare este atunci următoarea:

; (3.6)

3.2 Modalități de transmisie pe canalul releu

A. Transmisia directă

Semnalul este transmis în mod direct de la sursă (S) către destinație (D), iar modularea canalului se poate face după următoarea formulă:

; (3.7)

unde:

reprezintă simbolul transmis de S;

reprezintă câștigul generat de canalul complex sursă-destinație;

reprezintă zgomotul complex circular simetric Gaussian;

reprezintă simbolul recepționat la destinație;

reprezintă puterea emisă de sursă în perioada de timp n.

Se va obține rata de codare:

; (3.8)

unde Γ reprezintă capacitatea, iar W lățimea pulsului.

B. Decodare-transmisie(Decode-and-Forward-DF)

În fig.22 este prezentat canalul releu de tip DF:

Figura 22 Partea stânga a canalului releu DF reprezintă primul interval de timp,iar partea dreapta reprezintă al doilea interval de timp

În primul interval de timp R decodează simbolul , iar in al doilea interval de timp îl retransmite mai departe cu o putere P(R,n).

La recepție se vor obține următoarele ecuații :

; (3.9)

(3.10)

; (3.11)

Următoarea condiție trebuie să fie îndeplinită pentru ca semnalul transmis în primul interval de timp de sursăsă fie decodat corect:

; (3.12)

(3.13)

echivalent cu:

; (3.14)

Pentru obținerea unei decodări corecte la destinație trebuie să se îndeplinească următoarea relație:

; (3.15)

C. Amplificare-transmisie ( Amplify-and-Forward-AF):

În următoarea figură este prezentat canalul de tip releu AF:

Figura 23 Descrierea primului interval de timp este reprezentata in partea stânga a canalului de tip releu, iar in partea dreapta este reprezentata descrierea celui de-al doilea interval de timp

În primul interval de timp semnalul transmis de sursă este recepționat de releul R, iar în cel de-al doilea interval de timp retransmite o versiune amplificată a acestuia care are puterea Se vor obține urmatoarele ecuații ale semnalelor recepționate :

; (3.16)

; (3.17)

; (3.18)

unde:

; (3.19)

Formula de mai sus reprezintă factorul de amplificare în putere la releu.

Atunci când releul nu are un SNR suficient de mare pentru a putea realiza decodarea sistemului transmis, este potrivită această schemă a transmisiei cu AF. În urma amplificării semnalului rezultă o amplificare a zgomotului.

Următoarea relație trebuie îndeplinită pentru ca destinația sa poată decoda semnalul emis în cele două intervale de timp.

; (3.20)

4.Sisteme cu releu

Un model de sistem cu releu este oferit de Zhao în lucrarea lui din anul 2003 . Se știe că un canal cu releu conține elemente foarte simple. Releul nu poate să primească și să transmită în mod simultan, iar transmiterea nu poate avea loc coerent nici din partea releului și nici din partea sursei. Canalul cu releu folosește o modalitate de divizare a timpului de tip duplex. În primul interval de timp, sursa transmite către releu și destinație, iar în cel de-al doilea interval de timp, doar releul transmite către destinație. În primul caz, atât sursa cât și releul generează un cod foarte simplu, iar în cel de-al doilea caz se generează jumătate din codul RSC. Semnalul este modulat BPSK după codare. Pentru că ieșirea de paritate este generată de un codor diferit, ar mai putea fi interpretat și altfel: fiecare terminal transmite un semnal BPSK și unul DPSK în paralel.

Figura 24 Model de sistem cu releu

Un releu convențional de tip DF (decodare-transmitere) are capacitatea de a decoda semnalul codat de RCS-ul de la sursă și îl va recodifica cu un cod RSC identic. Două versiuni ale aceluiași cuvânt cod vor ajunge la destinație, unul venit direct de la sursă și unul de la releu (are loc o repetiție a cuvântului de cod). Cele două semnale pot fi combinate prin tehnica MRC (Combinare cu raport semnal- zgomot maxim), iar biții de informație pot fi detectați cu ajutorul unui decodor Viterbi.

Se poate adăuga un interleaver la releu. Dacă releul intercalează datele sursă estimate înainte ca să aibă loc codarea RSC, atunci releul și sursa au construit prin cooperare un cod turbo distribuit. Redenumind acesta un cod turbo sau un cod convoluțional concatenat paralel (PCCC), va avea loc o codificare recursivă de câte două ori a datelor: prima oară în ordinea lor naturală și a doua oară după ce au fost intercalate. Astfel, pe ruta sursă-destinație sunt date neintercalate, codate, iar pe ruta releu-destinație sunt prezente datele intercalate, codate. Codul iterativ poate fi detectat la destinație cu ajutorul unui decodor turbo standard. Există un câștig suplimentar, superior celei cu un singur RSC observat la două canale independente și care se datorează câștigului intercalării a construcției codului turbo și câștigului procesului turbo a decodorului iterativ.

În anul 2012 Huynh aduce câteva modificări modelului de sistem cu releu oferit de Zhao în 2003 .

Figura 25 Model de sistem

Și acest sistem cu releu este alcătuit tot din trei noduri terminale: sursă, releu și destinație. Canalele dintre sursă și destinație, sursă și releu, releu și destinație sunt canale de tip AWGN cu SNR-urile notate . La nodul sursă și nodul releu sunt folosite decodoarele RSC și modulatoarele BPSK, iar secvența biților de informație este notată cu .

Sistemul folosește tot modalitatea de tip duplex pentru divizarea timpului. În primul interval de timp al transmisiei, sursa transmite simbolurile codate și modulate la destinație. Din cauza naturii de transmisie a canalelor wireless, versiunile zgomotoase ale simbolurilor transmise pot ajunge la releu. Secvența biților de informație detectați este recodată, remodulată și generată datorită erorilor de decodare ale releului. Decodorul releului poate fi atât un decodor Viterbi cât și un decodor BCJR. În al doilea interval de timp, secvența detectată este recodată, remodulată și retransmisă către destinație. Astfel, la destinație ajung două secvențe zgomotoase de observație, notate cu , care sunt transmise de la sursă la releu.

Utilizând aceste două secvențe primite și un decodor IMAP ( decodor A Posteriori Maximum Îmbunătațit) sau HMID (Decodor Iterativ Modificat Euristic), destinația generează secvența biților de informație detectați a secvenței originale transmise de sursă .

O schemă de codare eficientă este codarea turbo distribuită (DTC) și crește capacitatea rețelei releu wireless (fără fir). Cele mai multe scheme DTC iau în considerare o rețea de relee cu un singur nod releu și se presupune că releul poate realiza o decodare fără erori, ceea ce se referă la o schemă DTC perfectă. Este descris în continuare un sistem generalizat de codare turbo distribuit (GDTC) cu un protocol hibrid de relocare pentru anumite rețele relee. În timpul fiecărei transmisii, care se bazează pe capacitatea releelor de a realiza decodarea corect sau nu, fiecare releu face parte din unul dintre cele două grupuri de relee: grupul de relee cu decodare și transmitere (DF) și grupul de relee cu amplificare si transmitere (AF). Semnalele primite de la sursă sunt decodate de grupul de relee DF, apoi sunt intercalate, recodate și transmise către destinație, în timp ce fiecare releu din grupul AF amplifică semnalele primite și le retrimite către destinație. Atunci când ajung la destinație, toate semnalele transmise de releele din grupul DF sunt combinate într-un singur semnal și cele transmise de grupul AF sunt combinate într-un alt semnal. Aceste două semnale formează un cuvânt de cod DTC generalizat.

Se mai poate dezvolta și un sistem DTC cu informații soft la relee (DTC-SIR) pentru un sistem în care are loc o decodare imperfectă la releu. Unele rezultate arată că informația soft de la relee are capacitatea de a diminua eficient propagarea erorii datorată decodării imperfecte și astfel îmbunătățește performanța transmisiei cu mai multe relee plasate în mai multe etaje.

Totuși, aproape toate sistemele DTC s-au bazat pe protocoalele de relee AF și DF, care pot prezenta unul dintre cele două dezavantaje: fie amplificarea zgomotului, fie propagarea erorii. În plus, multe dintre sistemele DTC sunt proiectate pentru rețelele de relee cu un singur nod releu.

În continuare este descris un sistem general cu protocol de relocare hibrid (GDTC) pentru o rețea de relee cu două salturi și cu un număr arbitrar de relee. În timpul fiecărei transmisii, bazată pe capacitatea releelor de a decoda corect sau nu, toate releele sunt împărțite în două grupe, care poartă numele de: grupul releelor DF și grupul releelor AF. Toate releele ce pot realiza o decodare corectă a semnalelor transmise de sursă, fac parte din grupul releelor DF, iar celelalte relee, cele care nu au capacitatea de a decoda corect semnalele transmise de sursă, sunt incluse în grupul releelor AF.

Semnalele primite de la sursă sunt amplificate de releele din grupul AF și apoi transmise către destinație, iar fiecare releu din grupul DF decodează semnalele primite, le intercalează, apoi recodează simbolurile intercalate și în cele din urmă sunt transmise către destinație. Are loc apoi combinarea la destinație a semnalelor transmise de grupul de relee AF într-un singur semnal, iar semnalele transmise de grupul de relee DF sunt combinate în alt semnal. După ce are loc combinarea, ansamblul de cuvinte cod este format din simbolurile de informație codate, combinate și transmise de la releele din grupul AF și simbolurile de informație codate, combinate, intercalate și transmise de la releele din grupul DF.

Figura 26 Diagrama bloc a unui cod turbo distribuit generalizat

Grupul de relee AF

În grupul de relee AF, notat cu , sunt inculse toate releele care nu au capacitatea de a decoda corect. Odată ce au fost primite semnalele de la sursă, fiecare releu din grupul AF trebuie să amplifice semnalele de la sursă. Dacă reprezintă semnalul transmis de la releul i la momentul , atunci acesta poate fi exprimat astfel:

; (4.1)

unde este un factor de amplificare astfel încât satisface puterea de constrângere și poate fi calculat din relația:

; (4.2)

Semnalul primit la destinație, transmis de releul i, este:

; (4.3)

Toate semnalele transmise de grupul de relee AF, la momentul de timp sunt combinate la destinație cu semnalele transmise direct de sursă, așa cum urmează:

; (4.4)

unde reprezintă semnalul combinat la momentul de timp și reprezintă coeficientul de combinare.

Valorile optime ale și sunt date de relațiile:

; (4.5)

SNR-ul corespunzător de la destinație pentru semnalele combinate de grupul de relee AF, notat cu , poate fi aproximat astfel:

; (4.6)

unde este numit media armonică a variabilelor și .

Grupul de relee DF

Grupul de relee DF cuprinde toate releele ce au capacitatea de a realiza o decodare fără erori. Odată ce semnalele au fost primite, fiecare releu care face parte din grupul DF va decoda semnalele primite de la sursă, va intercala simbolurile de informații decodate, le va recoda și le va transmite către destinație.

Deoarece toate releele din grupul DF au capacitatea de a realiza o decodare corectă, fiecare releu din grupul DF poate recupera informațiile de flux binar B. B este intercalat în, codat și modulat în :

; (4.7)

unde este semnalul transmis de releu la momentul Releul i din grupul de relee DF va transmite simbolurile modulate cu puterea către destinație:

; (4.8)

Astfel semnalele primate la destinație devin:

; (4.9)

La destinație ,semnalele transmise de la grupul de relee DF în momentul sunt combinate. Dacă reprezintă semnalul combinat, acesta este dat de relația:

; (4.10)

Asemănător calculului pentru grupul de relee AF, SNR-ul la destinație a semnalului combinat din grupul DF este dat de:

; (4.11)

Decodarea iterativă a GDTC

Se poate observa că ansamblul de cuvinte este alcătuit din simbolurile de informative codate, combinate și transmise de grupul de relee AF, dar și din simbolurile codate, combinate ale secvenței de informație intercalate, transmise de grupul de relee DF. Aceste două semnale sunt denumite la destinație cu si . Pentru că cele două semnale transportă aceeași informație, ele urmează a fi combinate în mod corespunzător înainte de decodare. Semnalul combinat al si este și respectiv

Între cele două decodoare asociate cu și are loc un algoritm al decodării turbo-iterative. Decodorul are la bază algoritmul de decodare BCJR MAP. Două decodoare MAP cu simbolurile de intrare și trebuie să calculeze probabilitatea a posteriori a simbolurilor de informație transmise și a celor informații intercalate, respectiv informația extrinsecă. Informația extrinsecă a unui decodor este folosită pentru a actualiza probabilitatea a priori a celuilalt decodor în următoarea iterație. După un anumit număr de iterații decizia se bazează pe probabilitățile a posteriori a primului decodor.

Există un singur scenariu ca pentru același bloc de transmisie să nu existe deloc relee, care să poată face decodarea corectă. Acest lucru poate avea loc în regiunea cu valoare mică a raportului semnal- zgomot. În acest caz nu există relee în grupul DF, releele fiind doar în grupul AF, deci este necesară doar o decodare , care va da simbolurile de informație estimate.

Prin utilizarea tehnicii DTC, informația este codată de sursă cu un singur codor RSC și emite informația codată atât către sursă, cât și către destinație. Releul decodează informația, o intercalează și o recodează cu un alt codor RSC, apoi transmite informația codată către destinație unde se formează împreună cu informația primită direct de la sursă, un cod turbo distribuit. Informația codată de la sursă și cea de la releu se combină prin tehnica MRC.

În continuare se descriu două sisteme DTC, care poartă denumirea de sistem DTC cu suprapunere și sistem DTC cu puncturare. Datorită structurii unice de codare a acestor două sisteme rata succesului de decodare la releu este considerabil ridicată. Acest lucru îmbunătățește considerabil performanța sistemului în ansamblu.

Sistemul DTC cu suprapunere

În sistemul turbo codat cu suprapunere, codorul binar turbo este alcătuit din două codoare RSC concatenate paralel de rată ½ separate de un interleaver. Fluxurile de simboluri binare sunt transmise la releu și la destinație. Prima parte reprezintă biții de informație sistematici și cea de a doua parte sunt biții de paritate de la cele două codoare RCS constituente, care sunt suprapuse într-un flux de paritate în următoarea manieră:

; (4.12)

unde a și b sunt coeficienți de normalizare a puterii totale.

Fluxurile de simboluri binare sunt atunci mapate într-un flux modulat de un modulator BPSK. Se consideră că datele transmise de la sursă și de la releu vor fi transmise pe canale ortogonale, unde sursa și releul transmit în intervale de timp separate. Sursa emite cele două fluxuri de informație atât releului cât și destinației. Simbolurile primite la releu și destinație pot fi exprimate astfel:

; (4.13)

; (4.14)

unde , si reprezintă simbolurile de informație și, respectiv, simbolurile de paritate de la releu., și reprezintă simbolurile de informație și, respectiv, simbolurile de paritate de la destinație, și sunt coeficienții de fading.

b. Sistemul DTC cu puncturare

Decodarea DTC puncturat la releu și destinație este similară cu metoda decodare cu rată compatibilă puncturată. În timpul codării, fiecare bit secund și prim de la RCS-ul 1 și 2 sunt puncturate. În depuncturare este inclusă valoarea 0 a bitului puncturat. După depuncturare cele două fluxuri de ieșire vor fi trecute către decodoarele corespunzătoare, iar apoi cele două decodoare vor schimba în mod iterativ informația dintre ele până când decizia finală va fi luată de decodorul 1. În cazul unei decodări cu succes la releu, intrarea decodorului MAP2, , este reprezentată de simbolurile de paritate de la releu. Altfel, destinația va lua o decizie simplă bazându-se pe informația de la sursă.

4.4 Canal cu releu și tehnici de transmisie

Luăm în considerare un sistem de codare distribuit atât la sursă cât și la relee, unde procesul de deodare este împărțit în două cadre de transmisie. În cele ce urmează, notăm cu S și Ri nodurile de destinație, cu D sursa și releul cu I . În figura de mai jos, datele sunt transmise de la S la D cu ajutorul releului i (), iar nodul nu poate trimite și primi în mod simultan.

Figura 27 Model de sistem de codare cooperativă cu relee multiple

De asemenea, toate nodurile sunt echipate cu o singură antenă emițătoare și receptoare. Atât nodurile sursă cât și releele se angajează să protejeze biții de informație. Sunt prezenți un număr de k biți în fiecare bloc emis de sursă, iar lungimea cuvântului de cod este notată cu N. Cuvântul de cod cu N biți este împărțit în două cadre succesive ( de exemplu, cadrul 1 și cadrul 2) de N1 și N2 biți cu ratele R1 și R2 utilizând un cod turbo compatibil puncturat ( RCPT- rate compatible punctured turbo code).

Nivelul cooperării poate fi cuantificat cu ajutorul parametrului:

; (4.15)

ceea ce arată că o porțiune din totalul N de biți din cuvântul de cod transmis pe canal este alocată celui de-al doilea cadru.

Protocoalele de transmisie

În cazul primului cadru de transmisie, semnalele care sunt primite la relee și la destinație sunt date de următoarele formule:

; (4.16)

; (4.17)

unde x reprezintă semnalul modulat de sursă, i=1, 2, …M și hs,d, reprezintă coeficienții de fading ( de atenuare) de la S la Ri, respectiv de la S la Ri . și reprezintă puterea semnalului transmis pentru legăturile corespunzătoare, în timp ce și reprezintă eșantioanele de zgomot alb aditiv gaussian (AWGN) de pe canalele corespunzătoare.

Fie L numărul de relee care sunt utilizate în cooperare în a doua fază ( de exemplu, releele care decodează corect mesajul primit). În consecință, semnalele primite la nodul destinație sunt date de:

; (4.18)

; (4.19)

unde reprezintă semnalul transmis de releu și 1/L este raportul pentru menținerea aceleași puteri medii. Cu alte cuvinte, energia de transmisie este împărțită în mod egal între toate releele active din faza a doua, fiecare releu transmițând cu aceeași putere. Se observă că fiecare ramă are un L diferit.

Coduri turbo distribuite cu canale multiple

Implementarea codării și decodării cooperative utilizând codurile turbo distribuite (DTC) este ilustrată în figura de mai jos.

Figura 28 Codare turbo distribută într-un sistem de codare cooperativ

Codurile turbo utilizează două coduri constituente, coduri sistematice recursiv-convoluționale (RSC) concatenate paralel cu interleaver. Sursa și releul folosesc același interleaver aleatoriu, notat cu π. Pentru a reduce complexitatea implementării, releul utilizează un decodor convențional Viterbi. Trebuie reținut că prima secvență de biți paritate are N1 biți, iar a doua secvență de biți paritate are lungimea de N2. Este posibil să avem un nivel al cooperării mult mai flexibil, precum și o performanță mult mai bună, prin utilizarea codurilor turbo puncturate.

Figura de mai sus prezintă diagrama bloc pentru un sistem de codare cooperativă. În primul cadru, sursa emite N1 biți ( sistematic și prima secvență de biți de paritate) atât releelor cât și destinației. Dacă releul decodează corect mesajul primit de la sursă utilizând un decodor Viterbi, acesta intercalează biții de la sursă și îi recodează în N2 biți (a doua secvență de biți de paritate). În caz contrar, releul rămâne tăcut. În cel de-al doilea cadru, sursa și releul, ale căror sume control (CRC-cyclic rnoundancy checks) sunt validate, transmit ce N2 biți la destinație. La destinație, copiile primite ale celei de-a doua secvență de biți de paritate sunt combinate utilizând combinarea cu raport maxim (MRC). De asemenea, biții de informație din primul și al doilea cadru sunt concatenate și apoi decodate cu un decodor turbo. Complexitatea scăzută a unui decodor iterativ conferă o performanță de decodare aproape optimă pentru codurile turbo.

Rezultatele simulărilor sistemului codat turbo prin metoda DF a canalului de tip releu utilizând coduri componente recursiv sistematice

În acest capitol se vor prezenta rezultatele simulărilor cu privire la impactul pe care îl au în performanță codurile convoluționale recursive sistematice, formate din polinoame primitive și neprimitive, transmisia pe canale fiind afectată de AWGN și fading lent Rayleigh.

Pentru analiza performanțelor codurilor componente asupra curbelor BER, simulările au fost realizate cu ajutorul a două coduri RSC identice atât la sursă, cât și la releu, având memorii și matrice generatoare diferite pentru fiecare simulare în parte. La codurile turbo curbele BER sunt alcătuite din trei regiuni și anume: prima regiune este numită regiunea cu SNR mic, a doua regiune se numește regiunea cascadă, iar a treia poartă denumirea de regiunea de aplatizare a curbei erorii. Polinoamele de reacție care corespund codurilor RSC pot fi polinoame de reacție primitive (7,13,15,23,31) și polinoame de reacție neprimitive (5,17,21,27,37). Reprezentarea polinoamelor este în format octal. Lungimea secvenței de informație este 65536, iar numărul de iterații în decodare este 6.

5.1. Rezultatele simulărilor pentru codurile cu memorie 2

În figura 29 sunt reprezentate curbele BER pentru codurile de memorie 2 cu matricele generatoare G=[1,5/7] și G=[1,7/5] pentru canalul AWGN.Valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu 2 dB. Figura 30 prezintă curbele BER pentru codurile de memorie 2 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de 2 dB.

Din cele două figuri se poate constata că pentru codurile RSC cu polinomul de reacție neprimitiv 5 se obțin performanțe mai bune decât pentru codurile RSC cu polinomul de reacție primitiv 7 la valori scăzute, dar și ridicate ale SNRsd; adică între -12 și -8 dB și între -2,2 si 0 dB pentru canalul AWGN și între -4 și -3dB și între -1.2 și 7dB pentru canalul Rayleigh. Primul interval SNR, adică cel cu valori SNR mici, corespunde regiunii cu SNR scăzut, iar ultimul interval, cel în care SNR-ul are valori mari, corespunde regiunii cu SNR ridicat (regiunea „error-floor”). Dacă SNRsd are valori medii, adică de la -8dB la -2.3dB pentru canalul AWGN și de la -2.5 la 0dB pentru canalul Rayleigh ( care mai este numită regiunea cascadă ), se obțin performanțe mai bune pentru codul RSC cu polinomul de reacție primitiv. În cazul canalului AWGN câștigul de codare crește cu până la 2dB în momentul în care valoarea BER este egală cu , iar în cazul canalului Rayleigh câștigul de codare crește cu până la 1dB în momentul în care BER are valoarea egală cu .

Figura 29 Curbele BER pentru RSC de memorie 2 și canal AWGN

Figura 30 Curbele BER pentru RSC de memorie 2 și canal fading Rayleigh

În figura 31 sunt reprezentate curbele BER pentru codurile de memorie 2 cu matricele generatoare G=[1,5/7] și G=[1,7/5] pentru canalul AWGN. Atunci când valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu -7 dB. Figura 32 prezintă curbele BER pentru codurile de memorie 2 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh, folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de -7 dB.

Din figurile 31 și 32 rezultă faptul că dacă SNRsd are valori medii (adică între 1dB și 3dB pentru canalul AWGN și între 3dB și 5.8dB pentru canalul afectat de fading Rayleigh), codurile RSC cu polinomul de reacție primitiv 7 obțin performanțe mai bune decât codurile RSC cu polinomul de reacție neprimitiv 5. În această situație câștigul de codare poate fi de 0.35dB în cazul canalului AWGN în momentul în care valoarea BER este egală cu și de 0.7dB în cazul canalului Rayleigh în momentul în care BER are valoarea de . Dacă SNRrd are valori mai mari (mai mari decât 3dB pentru canalul AWGN și decât 6dB pentru canalul Rayleigh), atunci utilizarea codurilor RSC cu polinomul de reacție neprimitiv va duce la performanțe mai bune (se vor obține valori scăzute ale lui BER).

Figura 31 Curbele BER pentru RSC de memorie 2 și canal AWGN

Figura 32 Curbele BER pentru RSC de memorie 2 si canal fading Rayleigh

5.2 Rezultate simulărilor pentru codurile cu memorie 3

Figura 33 prezintă curbele BER pentru codurile de memorie 3 cu matricele generatoare , și pentru canalul AWGN. Valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu 2 dB. Figura 34 prezintă curbele BER pentru codurile de memorie 3 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh, folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de 2dB.

Din figurile 33 și 34 se poate constata faptul că dacă SNRsd are valori mici (de la -12dB la -9dB) dar și mari (de la -6.3dB la -3dB) pentru canalul AWGN, iar pentru canalul Rayleigh de la -4dB la -2.7dB și de la -1.2dB la 1dB, performanțe mai bune au fost observate în cazul codurilor RSC cu polinomul de reacție neprimitiv 17 decât în cazul polinoamelor de reacție primitive 15 și 13. Dacă SNRsd are valori medii, adică între -9dB și -6.5dB pentru canalul AWGN și între -2.7 și -1.2dB pentru canalul Rayleigh, se observă performanțe mai bune prin utilizarea polinoamelor de reacție primitive 13 și 15, obținându-se astfel un câștig suplimentar de codare de 1.1dB pentru canalul AWGN în momentul în care BER are valori între și și de până la 0.6dB pentru canalul Rayleigh atunci când BER are valoarea egală cu

Figura 33 Curbele BER pentru RSC de memorie 3 și canal AWGN

Figura 34 Curbele BER pentru RSC de memorie 3 și canal fading Rayleigh

Figura 35 prezintă curbele BER pentru codurile de memorie 3 cu matricele generatoare , și pentru canalul AWGN. Valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu -7dB. Figura 36 prezintă curbele BER pentru codurile de memorie 3 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh, folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de -7dB.

Din figurile 35 și 36 reiese faptul că dacă SNRsd are valori mai mari de 3dB în cazul canalului AWGN și mai mari de 4 dB în cazul canalului cu fading Rayleigh, o performanță mai bună vor avea codurile RSC cu polinomul de reacție ne-primitiv 17 decât codurile RSC cu polinomul de reacție primitiv 15. Câștigul de codare rămâne constant în intervalul regiunii “cascadă” în ambele canale și pentru toate matricele generatoare.

Figura 35 Curbele BER pentru RSC de memorie 3 și canal AWGN

Figura 36 Curbele BER pentru RSC de memorie 3 și canal fading Rayleigh

Rezultatele simulărilor pentru codurile cu memorie 4

Figura 37 prezintă curbele BER pentru codurile de memorie 4 cu matricele generatoare , și pentru canalul AWGN. Valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu 2dB. Figura 38 prezintă curbele BER pentru codurile de memorie 4 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh, folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de 2dB.

Figurile 37 și 38 arată că dacă SNRsd are valori mici, adică între între -12dB și -10.7dB pentru canalul AWGN și între -4dB și -2.3dB pentru canalul Rayleigh, performanțe mai bune sunt oferite de codurile RSC cu polinomul de reacție neprimitiv 37. Astfel, se obține un câștig suplimentar de codare de până la 1.5dB în cazul canalului AWGN atunci când BER are valoarea egală cu și de până la 1dB în cazul canalului Rayleigh în momentul în care BER are valoarea egală cu , față de codurile RSC cu polinoamele de reacție 23 și 31. În intervalul (-8; -3) în cazul canalului AWGN și în intervalul (-2; 1) în cazul canalului fading Rayleigh se observă un proces de urmărire a conturului curbelor BER și astfel câștigul de codare rămâne constant.

Figura 37 Curbele BER pentru RSC de memorie 4 și canal AWGN

Figura 38 Curbele BER pentru RSC de memorie 4 și canal fading Rayleigh

Figura 39 prezintă curbele BER pentru codurile de memorie 4 cu matricele generatoare , și pentru canalul AWGN. Valoarea SNRsr este 6 dB, iar valoarea lui SNRrd este egală cu -7dB. Figura 40 prezintă curbele BER pentru codurile de memorie 4 cu aceleași matrice generatoare, dar pentru canalul afectat de fading lent Rayleigh, folosind pentru SNRsr valoarea egală cu 12 dB, iar pentru SNRrd valoarea de -7dB.

Se poate observa în figurile 39 și 40 că dacă SNRsd are valori mari, adică mai mari decât 2dB pentru canalul AWGN și mai mari decât 4dB pentru canalul Rayleigh, performanțe mai bune vor obține codurile RSC cu polinoamele de reacție primitive 23 și 31 decât codurile RSc cu polinomul de reacție neprimitiv 37. Dacă SNRsd are valori medii, adică 1dB pentru canalul AWGN și 3dB pentru canalul Rayleigh, performanțele vor fi mai bune utilizându-se codurile RSC cu polinomul de reacție neprimitv 37.

Figura 39 Curbele BER pentru RSC de memorie 4 și canal AWGN

Figura 40 Curbele BER pentru RSC de memorie 4 și canal fading Rayleigh

Concluzii

Folosirea codurilor corectoare de erori este o operațiune mai puțin costisitoare decât construcția unor calculatoare care pot asigura o lipsă sigură de erori. De la emițător la receptor este emisă o informație după un principiu aleatoriu. Acest mesaj este ales dintr-un set de mesaje posibile, care sunt cunoscute atât la emisie cât și la recepție.

Au fost propuse mai multe tipuri de coduri pentru corecția codurilor erorilor, printre care: codurile binare sau non-binare bloc ( Hamming, Muller, codul produs, Reno Solomon) și codurile convoluționale. Odată ce au apărut aceste coduri, au fost dezvoltați și noi algoritmi de decodare: algoritmul lui Peterson, Chase, pentru codurile bloc și algoritmul Viterbi pentru codurile convoluționale.

Codurile turbo fac parte din codurile corectoare de erori având o utilizare foarte largă. Ele au fost introduse în anul 1993 și au drept scop principal decodarea secvențelor codate cu o probabilitate de eroare cât mai mică. Sunt formate din două sau mai multe codoare care pot fi de mai multe tipuri: coduri convoluționale sistematice recursive, coduri convoluționale sistematice non-recursive și coduri bloc. Codul turbo se formează prin concatenare, adică reunirea acestor tipuri de coduri cu interleaver-e.

Codurile convoluționale sunt folosite în următoarele aplicații: comunicațiile wireless, comunicațiile terestre digitale și prin satelit, sistemele de multipropagare și sisteme de comunicații spațiale. Metoda de decodare pe care o folosesc este algoritmul Viterbi.

Canalul cu releu este alcătuit din cel puțin trei noduri de rețea: sursă, releu și destinație. Rolul nodului intermediar (releul) este de a transmite informația între sursă și destinație. Mesajul este emis de sursă și apoi urmează să fie captat de nodurile releu. Receptorul aflat la destinație captează semnalul transmis nu numai de sursă, ci și de toate releele. Utilizând dispozitive foarte simple, releul nu poate să primească și să transmită în mod simultan. Nici sursa, nici releul nu cunosc faza relativă a celuilalt și prin urmare nu pot transmite coerent. Astfel, canalul cu releu operează într-un mod de divizare a timpului de tip duplex: în primul interval de timp sursa emite către releu și destinație, iar în cel de-al doilea interval de timp doar releul transmite către destinație.

Transmiterea prin releu se poate folosi pentru crearea unor antene virtuale, acest lucru fiind posibil pentru că cele două dispozitive cooperează schimbându-și rolurile ca sursă și releu.

Cu ajutorul simulărilor realizate am găsit rezultatele cu privire la impactul pe care îl au codurile convoluționale recursive sistematice asupra performanței. Aceste coduri sunt formate pe baza unor polinoame primitive și neprimitive, iar transmisia pe canale este afectată de AWGN și Fading lent Rayleigh. Pentru analiza performanțelor BER a codurilor componente asupra codurilor turbo, simulările au fost realizate cu ajutorul a două coduri RSC identice atât la sursă cât și la releu, având memorii și matrice generatoare diferite pentru fiecare simulare în parte.

Pe baza simulărilor am reprezentat curbele BER pentru codurile de memorie 2, 3 și 4. Pentru codurile RSC de memorie 2 s-au folosit matricele generatoare G=[1,5/7] și G=[1,7/5], atât pentru canalul AWGN cu valorile SNRsr egală cu 6dB și SNRrd egală cu 2, cât și pentru canalul Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu 2. S-a observat că folosind codurile RSC cu polinomul de reacție neprimitiv 5 se obțin performanțe mai bune decât dacă se folosesc codurile RSC cu polinomul de reacție primitiv 7, atât la valori mici, cât și la valori mari ale SNRsd. La valori medii ale SNRsd se observă în cazul ambelor canale o creștere a câștigului de codare. În cazul canalului AWGN cu valoarea SNRsr egală cu 6dB și cu valoarea SNRrd egală cu -7dB și a canalului Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu -7, codul RSC cu polinomul primitiv 7 obține performanțe mai bune decât codul RSC cu polinomul neprimitiv 5 la valori medii ale SNRsd. La valori mari ale SNRsd, codul RSC polinomul neprimitiv 5 va duce la performanțe mai bune.

Pentru codurile RSC de memorie 3 s-au folosit matricele generatoare G=[1,15/17], G=[1,15/13] și G=[17/15] atât pentru canalul AWGN cu valorile SNRsr egală cu 6dB și SNRrd egală cu 2, cât și pentru canalul Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu 2. S-a observat că folosind codul RSC cu polinomul de reacție primitv 17 se obțin performanțe mai bune decât dacă se folosesc codurile RSC cu polinoame de reacție primitive 15 și 13, la valori mici ale SNRsd. La valori medii ale SNRsd se observă performanțe mai bune prin utilizarea codurilor RSC cu polinoamelor de reacție primitive 15 și 13. În cazul canalului AWGN cu valoarea SNRsr egală cu 6dB și cu valoarea SNRrd egală cu -7dB și a canalului Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu -7, codul RSC cu polinomul de reacție neprimitiv 17 obține performanțe mai bune decât codul RSC cu polinomul de reacție primitiv 15. Câștigul de codare rămâne constant în intervalul regiunii cascadă în ambele canale și pentru toate matricele generatoare.

Pentru codurile RSC de memorie 4 s-au folosit matricele generatoare G=[1,21/37], G=[1,27/31] și G=[1,35/23] atât pentru canalul AWGN cu valorile SNRsr egală cu 6dB și SNRrd egală cu 2, cât și pentru canalul Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu 2. S-a observat că folosind codul RSC cu polinomul de reacție neprimitiv 37 se obțin performanțe mai bune decât dacă se folosesc codurile RSC cu polinoame de reacție primitive 31 și 23, la valori mici ale SNRsd. În cazul canalului AWGN cu valoarea SNRsr egală cu 6dB și cu valoarea SNRrd egală cu -7dB și a canalului Rayleigh cu valorile SNRsr egală cu 12dB și SNRrd egală cu -7, codurile RSC cu polinoame de reacție primitive 23 și 31 obțin performanțe mai bune decât codul RSC cupolinomul de reacție neprimitiv 37, la valori mai mari de 2dB ale SNRsd.

Tabel figuri

Figura 1 Sistem general de comunicație 4

Figura 2 Cuvântul de cod 6

Figura 3 Cod convoluțional de memorie 2 și rată ½ 12

Figura 4 Cod convoluțional recursiv nesistematic de memorie 3 cu matricea generatoare [15/13, 3/13] 15

Figura 5 Trellis-ul codului cu matricea generatoare [15/13, 3/13] 16

Figura 6 Cod convoluțional recursiv sistematic de memorie 3 cu matricea generatoare [1,15/13] 16

Figura 7 Trellis-ul codului cu matricea generatoare [1,15/13] 17

Figura 8 Structura codurilor turbo 18

Figura 9 Structura codului turbo cu blocul de punctuare 20

Figura 10 Interleaver aleator 23

Figura 11 Structura codului turbo cu blocul de puncturare 24

Figura 12 Schema unui codor convoluțional recursiv sistematic cu terminare a trellis-ului post-interleaver 26

Figura 13 Diagrama de tranziție directă a stărilor 27

Figura 14 Diagrama de tranziție din starea anterioară în starea curentă corespunzătoare metricii de recurență înainte 30

Figura 15 Diagrama de tranziție din schema curentă în starea viitoare corespunzătoare metricii de rezistență înapoi 31

Figura 16 Diagrama de tranziție din starea anterioară în starea curentă 32

Figura 17 Decodarea iterativă a unui cod convoluțional concatenat paralel (PCCC) 37

Figura 18 Modelul soft-input soft-output (SISO) 37

Figura 19 Exemplu de diagrama pentru BPSK 40

Figura 20 Schema unui canal cu releu 43

Figura 21 Modelul canalului afectat de fading plat Rayleigh 46

Figura 22 Partea stânga a canalului releu DF reprezintă primul interval de timp,iar partea dreapta reprezintă al doilea interval de timp 48

Figura 23 Descrierea primului interval de timp este reprezentata in partea stânga a canalului de tip releu, iar in partea dreapta este reprezentata descrierea celui de-al doilea interval de timp 49

Figura 24 Model de sistem cu releu 51

Figura 25 Model de sistem 52

Figura 26 Diagrama bloc a unui cod turbo distribuit generalizat 55

Figura 27 Model de sistem de codare cooperativă cu relee multiple 60

Figura 28 Codare turbo distribută într-un sistem de codare cooperativ 62

Figura 29 Curbele BER pentru RSC de memorie 2 și canal AWGN 65

Figura 30 Curbele BER pentru RSC de memorie 2 și canal fading Rayleigh 66

Figura 31 Curbele BER pentru RSC de memorie 2 și canal AWGN 67

Figura 32 Curbele BER pentru RSC de memorie 2 si canal fading Rayleigh 68

Figura 33 Curbele BER pentru RSC de memorie 3 și canal AWGN 69

Figura 34 Curbele BER pentru RSC de memorie 3 și canal fading Rayleigh 70

Figura 35 Curbele BER pentru RSC de memorie 3 și canal AWGN 71

Figura 36 Curbele BER pentru RSC de memorie 3 și canal fading Rayleigh 72

Figura 37 Curbele BER pentru RSC de memorie 4 și canal AWGN 73

Figura 38 Curbele BER pentru RSC de memorie 4 și canal fading Rayleigh 74

Figura 39 Curbele BER pentru RSC de memorie 4 și canal AWGN 75

Figura 40 Curbele BER pentru RSC de memorie 4 și canal fading Rayleigh 76

Similar Posts