Umătoarele șase experimente presupun proiectarea transmițătoarelor ce se bazează pe modulații digitale, acestea vor fi denumite astfel: [307157]

[anonimizat]. Astfel s-a ajuns la conceptul de sisteme de comunicație bazate pe radio definit prin software (Software Defined Radio) prescurtat SDR. SDR este definit ca un sistem radio în care unele sau chiar toate funcțiile sistemului sunt implementate software.

[anonimizat] a [anonimizat], [anonimizat]. [anonimizat], [anonimizat] o [anonimizat] o soluție eficientă din punctul de vedere al consumului de energie.

[anonimizat]. Oferind o [anonimizat], voce și multimedia. Astăzi, [anonimizat] o [anonimizat], [anonimizat].

Am ales acestă temă din dorința de a [anonimizat]. Neavând experiență în ceea ce privește partea de implementare a diferitelor tipuri de transmițătoare radio digitale mi s-a părut ocazia oportună pentru a-[anonimizat].

[anonimizat], [anonimizat], [anonimizat]-au fost propuse de către profesorul îndrumător.

Având în vedere faptul că implementarea experimentelor presupune utilizarea unei placi de dezvoltare Raspberry Pi3 pe post de procesor de semnal digital în scopul obținerii unor sisteme de comunicație bazate pe radio definit prin software (SDR), [anonimizat] a fost deloc complicată considerând că ar fi un momentul prielnic pentru a căpăta mai multă experiență și în aceste domenii.

Obiectivele generale ale proiectului sunt de a [anonimizat], diverse transmițătoare ce folosesc diferite tipuri de modulații digitale cum ar fi: modulația impulsurilor în amplitudine (PAM), modulația cu salt de amplitudine (ASK), modulația cu salt de fază în cuadratură (QPSK), modulația cu salt de frecvență (FSK), modulația de amplitudine în cuadratură (QAM), modulația cu diviziune în frecvență ortogonală (OFDM).

Ca hardware este folosit un microcalculator de tipul Raspberry Pi3 ce are rolul unui procesor de semnal digital. Pe această placă de dezvoltare vor fi încărcate toate experimentele realizate în Simulink și vor fi puse în funcțiune.

[anonimizat] (utilizând blocuri de procesare de semnal disponibile în bibliotecile mediului de dezvoltare Simulink) și simularea lor, până la implementarea hardware și punerea în funcțiune pe Raspberry Pi3, urmând apoi măsurători folosind instrumente clasice de laborator (analizor spectral, osciloscop), analizând și comentând rezultatele.

Ca și aplicații de început, mi-am propus să folosesc Raspberry Pi3 pe post de generator de semnal și mai apoi pe post de filtru digital, aceste aplicații având ca scop familiarizarea cu mediul de dezvoltare, cu microcalculatorul, dar și cu realizarea conexiunii dintre cele două.

Umătoarele șase experimente presupun proiectarea transmițătoarelor ce se bazează pe modulații digitale, acestea vor fi denumite astfel:

– „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3” – dezvoltând două tipuri de transmițătoare ce folosesc modulațiile 2-PAM și 4-PAM;

– „Modulația cu salt de amplitudine (ASK) pe Raspberry Pi3” – dezvoltând două tipuri de transmițătoare ce folosesc modulațiile 2-ASK și 4-ASK;

– „Modulația cu salt de frecvență (FSK) pe Raspberry Pi3” – realizând un transmițător cu modulație B-FSK;

– „Modulația cu salt de fază în cuadratură (QPSK) pe Raspberry Pi3” – realizând două transmițătoare diferite cu modulație QPSK;

– „Modulația de amplitudine în cuadratură (QAM) pe Raspberry Pi3” – realizând două transmițătoare diferite cu modulație 16-QAM;

– „Modulația cu diviziune în frecvență ortogonală (OFDM) pe Rapsberry Pi3” – realizând un transmițător ce folosește OFDM.

Toate aceste sisteme au fost proiectate cu ajutorul mediului de dezvoltare Simulink, implementate și puse în funcțiune pe Raspberry Pi3 și apoi testate cu instrumente de laborator.

Capitolul 1: ECHIPAMENTE RADIO DEFINITE PRIN SOFTWARE

1.1 Introducere

Acest capitol oferă o prezentare generală a conceptului de echipamente radio definite prin software (Software Defined Radio – SDR). La modul general, un dispozitiv de comunicație a fost proiectat pentru a procesa o formă de undă specifică, astfel, având o funcție unică într-un mediu prestabilit, optimizarea acestora din punct de vedere al performanțelor, al dimensiunilor și al puterii consumate sunt ușor de realizat. Cu toate acestea, dezavantajul major este reprezentat de limitarea în funcționare a dispozitivelor tradiționale. Pentru a face un sistem hardware de comunicații, multifuncțional, inevitabil, costurile vor fi ridicate, consumul de putere va fi mare, iar dimensiunile nu vor reprezenta un avantaj.

Putem spune acum că principala caracteristică a unui SDR este posibilitatea procesării diferitelor forme de undă modificând doar software-ul dispozitivului, hardware-ul rămânând nemodificat. Majoritatea dispozitivelor aflate în funcțiune nu sunt definite prin software, ci, sunt controlate prin software. Un exemplu bun în acest sens este un telefon mobil modern, care suportă diferite standarde de rețea, selectarea uneia dintre rețele fiind făcută de către software-ul aparatului respectiv. În figura 1.1 este prezentat modul de funcționare al unui dispozitiv controlat software, unde microprocesorul va selecta una dintre formele de undă disponibile.

Figura 1.1 Exemplu de dispozitiv controlat prin software

Prin evoluția tehnologiei, sistemele radio controlate prin software au devenit sisteme radio definit prin software. Diferența dintre cele două este că un sistem controlat prin software este limitat din punct de vedere al funcționalității, în timp ce, un sistem definit prin software poate fi reprogramat pentru a îndeplinii funcționalități care nu au fost anticipate. În figura 1.2 este reprezentată schema unui sistem radio definit prin software.

Figura 1.2 Exemplu de sistem radio definit prin software

Informația digitală provenită de la microprocesor va fi convertită în semnal analogic de către convertorul digital-analogic și trimisă apoi la antenă. Semnalul transmis va fi repecționat de către antena receptoare, apoi va fi eșantionat și convertit în semnal digital și prelucrat în timp real de către microprocesorul asociat receptorului. Se remarcă faptul că microprocesorul este folosit pe post de procesor de semnal digitale.

Conceptul SDR ideal presupune că hardware-ul din componența sa să suporte orice formă de undă cu orice frecvență purtătoare și având orice lățime de bandă.

Putem spune astfel că un sistem radio definit prin software prezintă o arhitectură flexibilă și versatilă, utilizând un dispozitiv hardware de uz general care poate fi configurat și programat conform cerințelor utilizatorului. Flexibilitatea sistemului implică însă o complexitate sporită a sa, în special când intervine și procesul de atenuare a interferențelor. Sistemele SDR tind să proceseze mai mult semnalele digitale, în comparație cu arhitecturile sistemelor tradiționale. Cu toate acestea, adaptabilitatea sistemelor SDR la numărul mare de tipuri de aplicații pe care le poate suporta reprezintă avantajul cel mai important față de soluțiile clasice ale sistemelor de comunicații.

În continuare vom discuta pe larg despre avantajele și dezavantajele sistemelor de tipul radio definit prin software.

1.2 Avantaje SDR

Este nevoie de timp pentru a face trecerea unei noi tehnologii de la nivel de laborator la punerea în aplicare în sistemele deja funcționale. Conceptul SDR este relativ nou, nefiind clar încă unde va putea fi implementat. În cele ce urmează vor fi descrise câteva dintre avantajele și aplicațile unui sistem radio definit prin software.

Interoperabilitate

Un sistem SDR oferă posibilitatea comunicării cu multiple sisteme incompatibile până în prezent sau poate acționa ca o punte de comunicare între ele. Un singur SDR ce conține standarde și canale multiple poate fi folosit pe post de translator pentru toate sistemele de comunicație diferite.

Utilizarea eficientă a resurselor în diferite condiții

Un SDR oferă posibilitatea ajustării unui semnal, maximizând o anumită valoare importantă a acestuia, ca de exemplu selectarea unui semnal cu putere redusă în condițiile în care dispozitivul funcționează cu baterie scăzută. Prin alegerea formei de undă potrivită pentru fiecare scenariu în parte, dispozitivele pot oferi o experiență mai bună pentru utilizatori.

Reutilizarea optimă a frecvenței

Un sistem radio definit prin software poate profita de un spectru insuficient utilizat de către aparținătorul spectrului respectiv, împrumutându-l până în momentul în care aparținătorul se hotărăște să îl utilizeze. Prin această metodă crește destul de mult cantitatea spectrului disponibil.

Reducerea uzurii

Pot fi actualizate sistemele SDR aflate în funcțiune pentru a suporta ultimele standarde de comunicații implementate. Software-urile referitoare la noile standarde pot fi încărcate de la distanță într-o stație de bază SDR, eliminând astfel munca necesară pentru instalare sistemului hardware dar și costul acestuia. Acestă posibilitate este foarte importantă mai ales pentru sistemele cu cicluri de viață lungi.

Cost scăzut

Un SDR poate fi adaptat pentru a-l utiliza în mai multe aplicații reducându-se astfel costurile pentru fiecare dispozitiv în parte. Ca de exemplu, același dispozitiv poate fi vândut atât producătorilor de automobile cât și producătorilor de telefoane mobile. De menționat că și costul întreținerii este redus.

Cercetare și dezvoltare

SDR poate fi utilizat pentru generarea multor forme de undă diferite permițând analiza performanțelor în timp real, oferind astfel oportunități multiple în ceea ce privește cercetarea și dezvoltarea noilor tehnologii.

1.3 Dezavantaje SDR

Despre avantajele SDR am tot discutat în subcapitolele anterioare, iar după cum bine se știe, nicio tehnologie nu este lipsită de dezavantaje. În acest subcapitol vor fi prezentate câteva dintre aceste dezavantaje ale sistemelor radio definit prin software.

Costul

Dezavantajul principal al SDR este reprezentat de cost, fiind extrem de important pentru produsele cu volum mare de consum dar cu limite reduse din punct de vedere al funcțiilor pe care trebuie sa le îndeplinească. Având în vedere ca un SDR este mult mai complex decât un dispozitiv cu o singură funcție, costul chipului SDR ar fi mult mai mare. Spre exemplu, receptoarele AM și FM sunt foarte utilizate, iar costul acestora este destul de scăzut.

Consumul mare de energie

Al doilea argument important împotriva SDR este reprezentat de cosumului mare de energie. Acesta se datorează: creșterii complexității procesorului digital de semnal și lărgimii mărite a benzilor semnalelor. Convertoarele analogic-digital și digital-analogic dar și antenele folosite pentru SDR consumă mai multă putere decât echivalentele lor în bandă îngustă. Diferența este foarte mare în ceea ce privește amplificatoarele de putere de bandă largă, al căror consum de putere reprezintă în jur de 70% din totalul consumat de un sistem radio, eficiența lor fiind de două ori mai mică decât cea a unui amplificator de bandă îngustă. Cu toate acestea, posibilitatea SDR de a adapta formele de undă va reduce puterea necesară pentru transmitere, economisind astfel energie.

Complexitatea

Un alt argument împotriva SDR este reprezentat de către complexitatea necesară pentru realizarea unor astfel de sisteme. Putem împărții argumentele referitoare la complexitate în trei categorii:

Creșterea timpului și a costului pentru implementare. Intuitiv, trebuie depus mai mult efort pentru implementarea unui software care să suporte mai multe tipuri de forme de undă decât un singur tip.

Un sistem SDR trebuie să conțină un anumit set de forme de undă de bază suportate, dar, în același timp, trebuie să anticipeze forme de undă noi. Este destul de complicată și foarte complexă implementarea unei astfel de funcții, trebuie avut în vedere și furnizarea de resurse suplimentare pentru procesorul digital de semnal pentru a putea suporta semnale viitoare.

Riscul crescut. Deoarece SDR este un concepot relativ nou, este dificilă anticiparea problemelor ce pot fi întâmpinate în momentul implementării, acest lucru va duce la incapacitatea finalizării proiectelor la timp crescând astfel și bugetul alocat respectivelor proiecte. Un alt risc este reprezentat de către imposibilitatea testării sistemelor în toate modurile pe care acestea le suportă și le anticipează.

Capitolul 2: TEHNICI DE MODULAȚIE

2.1 Modulația impulsurilor în amplitudine PAM (Pulse Amplitude Modulation)

Diferența dintre modulația impulsurilor în amplitudine și modulația în amplitudine este dată de către purtatoare, care în cazul modulațiilor în impulsuri este formată dintr-o succesiune de impulsuri. Semnalul modulat PAM este un semnal eșantionat obținut din înmulțirea semnalului modulator cu semnalul purtător, format din impulsuri.

Unui simbol îi sunt asociate cuvinte formate din n biți, frecvența de generare a biților fiind fb, va rezulta o durată de simbol de forma:

Fiecarui simbol format dintr-o succesiune de n biți îi va fi asociată o anumită valoarea a parametrului modulat, dintre cele M=2n valori posibile. Receptorul va realiza funcția inversă celei de asociere, adică în funcție de parametrii recepționați va genera cuvintele binare asociate acestora la transmisie.

Cele M=2n valori posibile ale tensiunii vor alcătui mulțimea „M” care mai poartă numele de „alfabet de intrare în canal”. Astfel, pe durata fiecarei perioade de simbol va fi transmisă una dintre aceste tensiuni, iar tensiunea corespunzătoare perioadei „k” de simbol va fi notată cu „mk”, fiecare dintre aceste simboluri având probabilități egale de apariție.

Elementele mi ale mulțimii „M” sunt date de relația:

considerându-se constantă diferența tensiunii dintre două elemente alaturate, unde:

Am reprezintă valoarea maximă de tensiune care poate fi transmisă;

i reprezintă indicele perioadei de simbol și poate lua urmatoarele valori i=0,1,…,2n-1;

A0 are expresia:

iar 2A0 reprezintă distanța minimă dintre două elemente ale mulțimii, oricare ar fi acele doua elemente.

Semnalul modulat are urmatoarea expresie:

unde: reprezintă impulsul treaptă unitate, pe intervalul [0,Ts) luând valoarea 1, și 0 in afara acestui interval.

Cu ajutorul relației de mai jos se poate calcula puterea medie corespunzătoare semnalelor PAM:

Densitatea spectrală de putere corespunzătoare semnalului PAM este descrisă de relația următoare, variabila aleatoare este reprezentată de către nivelul semnalului modulat:

,

unde:

– mm reprezintă media variabilei aleatoare;

– σm reprezintă dispersia variabilei aleatoare.

Impunând ca mm să fie 0, asta însemnând că valorile nivelele modulatoare să fie simetrice față de 0V, densitatea spectrală de putere va arată ca in figura de mai jos:

Figura 2.1 Densitatea spectrală de putere a semnalului PAM

Semnalul PAM este de fapt varianta în banda de bază a semnalului ASK (modulația cu salt de amplitudine), modulația ASK fiind obținută prin înmulțirea semnalului modulat PAM cu o purtătoare cosinusoidală.

2.2 Modulația cu salt de amplitudine ASK (Amplitude Shift Keying)

În cazul acestui tip de modulație de amplitudine, la începutul fiecărei perioade de simbol, amplitudinea semnalului purtător va fi modificată cu o valoare dependentă de combinația biților de date care trebuie transmiși. Semnalul purtător este de obicei un semnal cosinusoidal.

Semnalul modulat:

unde:

fp este frecvența purtătoarei;

uT(t) fiind impulsul treaptă-unitate și având durata unei perioade se simbol Ts:

Ecuația semnalului modulat ASK mai poate fi scrisă și sub urmatoarea forma:

,

ceea ce inseamnă ca semnalul ASK reprezintă un semnal modulat cu bandă laterală dublă, semnalul modulator fiind un semnal PAM.

Expresia transformatei Fourier a semnalului modulator, , sugerează o lărgime de bandă teoretic infinită, acest fapt se datorează formei rectangulare a semnalului modulator și duratei finită în timp a acestuia. După modulare, semnalul purtător având frecvența fp, spectrul va fi translatat în jurul frecvenței acestuia, fiind necesară mai apoi o filtrare a semnalului pentru a putea fi încadrat in banda limitată de frecvență asociată canalului folosit la transimisie.

Spectrul semnalului uT(t)

Purtătoarea nemodulată

Spectrul semnalului modulat

Figura 2.2 Spectrul semnalului ASK

Va fi inevitabilă apariția interferențelor intersimbol (IIS), acest fapt se datorează benzii limitate de frecvență a impulsului treaptă-unitate. Eliminarea interferențelor intersimbol se poate face folosind o caracteristică de filtrare de tipul cos ridicat cu factor de exces de banda. Astfel filtrarea se poate face în doua moduri:

După modulație folosind o caracteristică RRC trece-bandă, centrată pe fp;

Înainte de modulație, filtrarea fiind realizată în bandă de bază folosind o caracteristică RRC trece-jos. Acest tip de filtrare va duce la limitarea benzii de frecvență a semnalului modulator PAM.

Mai jos sunt prezentate schema bloc a emițătorului și expresia semnalului ASK având bandă limitată de frecvență:

Figura 2.3 Schema bloc a emițătorului ASK

Expresia:

Semnalul recepționat are expresia:

,

unde n(t) reprezintă zgomotul aditiv corespunzător canalului de transmisie.

Schema bloc a receptorului ASK este următoarea:

Figura 2.4 Schema bloc a receptorului ASK

Expresia semnalului demodulat este:

unde reprezintă eroarea de recuperarea a purtatoarei locale, daca tinde spre zero înseamnă că semnalul de la intrarea demodulatorului este un semnal PAM afectat de zgomot aditiv.

Performanțele semnalului modulat ASK în funcție de RSZ(raportul semnal-zgomot) sunt identice cu cele din cazul modulației PAM.

2.3 Modulația cu salt de fază PSK (Phase Shift Keying)

În cazul modulației PSK, faza semnalului purtător va fi modificată la inceputul fiecărei perioade de simbol. Valoarea cu care este modificată faza depinde de combinația biților de date care trebuie transmiși. Avantajele acestui tip de modulație sunt date de buna imunitate la distorsiuni si perturbații, banda de frecveță ocupată pentru un debit binar dat fiind redusă.

Modulația PSK este de doua tipuri:

– modulația de fază absolută APSK (Absolute PSK);

– modulația de fază diferențială DPSK (Differential PSK).

Diferența dintre aceste doua tipuri este dată de referința utilizată pentru definirea fazei.

Un grup de biți de date este format dintr-o succesiune de „p” biți, Ts reprezentând perioada în care este transmis un grup de biți (perioada de simbol).

Relația dintre frecvența de simbol si frecvența de bit este următoarea:

„M” reprezintă numarul de nivele de fază ale semnalului modulat și este descris de relația de mai jos:

Debitul este dat de relația:

unde vs reprezintă viteza de semnalizare (numărul de variații pe secundă ale unui parametru modulat corespunzător semnalului purtător) și se măsoară în „baud” (simboluri/secundă).

Semnalul modulat PSK are următoarea expresie:

unde: – reprezintă impulsul treaptă-unitate având perioada Ts ;

– reprezintă faza inițială a semnalului purtător pe durata perioadei „n” de simbol.

Cu alte cuvinte, un semnal modulat PSK reprezintă de fapt o succesiune de semnale modulate, fiecare având durata de o perioadă de simbol, salturile de fază corespondente acestor perioade neinterferând între ele. Tipul modulației (APSK sau DPSK) este indicat de către modul de calcul al lui .

2.3. Modulația cu salt de fază în cuadratură QPSK (Quadrature Phase Shift Keying)

Rata de bit „Rb” reprezintă numărul de biți care sunt transmiși într-o secundă pe canalul de comunicație (se măsoară în biți/secundă). Rata de semnalizare „Rs” reprezintă numarul de schimbări pe secundă care au loc în faza semnalului transmis pe linie (se măsoară în baud). Unui simbol îi vor fi asociate grupuri de câte „p” biți, relația dintre rata de bit si rata de semnalizare este:

Numărul total de nivele de semnalizare este .

Pe fiecare perioadă a semnalului modulator din banda de bază vor fi transmise două elemente de semnalizare, adică rata de semnalizare va fi de doua ori mai mare decât frecvența maximă corespunzătoare spectrului semnalului modulator (Rs = 2f0). Frecvența maximă determină banda ocupată de semnal:

ceea ce înseamnă că se poate transmite cu aceeași rată de bit pe o bandă de „p” ori mai mica.

În cazul modulației QPSK, nu se va mai asocia câte o faza diferită fiecărui bit (caz specific modulației binare de fază BPSK) , ci va fi asociată câte o fază fiecărui grup de 2 biți. Ceea ce inseamnă că se vor transmite câte doi biți în același interval de timp în loc de unul singur, folosind o singură fază, astfel dublându-se rata de bit în condițiile în care rata de semnalizare și banda de frecvență rămân aceleași.

Vor fi necesare M=4 faze distincte, care vor fi distribuite uniform pe cercul trigonometric (cu unghi de 90o între ele) pentru transmiterea tuturor valorilor posibile pentru grupurile de câte 2 biți. Constelația de semnal obținută în cazul modulațiilor QPSK poate fi observată in figura 2.5 de mai jos. Această reprezentare fazorială descrie amplitudinea si faza semnalului modulat, mai precis vârful vectorului rotitor aflat în punctele care sunt utilizate pentru codificarea biților.

Figura 2.5 Constelația semnalele modulate QPSK

Fluxul binar transmis va fi împarțit în două secțiuni: o secțiune care va fi alcătuită din biții pari ai fluxului și o secțiune alcătuită din biții impari, astfel vom avea doua semnale modulatoare utilizate simultan. Secțiunea formată din biții pari, I(t), reprezintă componenta în fază a semnalului și modulează funcția cosinus, în timp ce secțiunea formată din biții impari, Q(t), reprezință componenta în cuadratură, modulând funcția sinus. Aceste doua semnale sunt ortogonale (putând fi transmise simultan fară a interfera între ele), iar prin însumarea lor se va obține forma de undă QPSK:

Cele două componente au următoarele expresii:

Prin înlocuirea celor doua componente va rezulta expresia semnalului modulat QPSK de mai jos:

Unde:

;

Schema bloc a modulatorului QPSK poate fi observată în figura 2.6, iar în figura 2.7 schema bloc a demodulatorului:

Figura 2.6 Schema bloc a modulatorului QPSK

Figura 2.7 Schema bloc a demodulatorului QPSK

2.5 Modulația cu salt de frecvență FSK (Frequency Shift Keying)

Modulația FSK binară constă în modularea în frecvență a unei purtătoare în funcție de valoarea logică a bitului curent care trebuie modulat. Purtătoarea poate să fie sinusoidală sau cosinusoidală. Pentru valoarea „1” a bitului se va transmite un semnal de frecvență „f1”, în timp ce, pentru valoarea „0” se va transmite un semnal cu frecvența „f2”. Perioada de bit este egală cu perioada de simbol, lucru care se datoarează faptului că fiecărui bit în parte îi este asociat câte un simbol.

În cazul modulației M-FSK, frecvența instantanee va lua M = 2n valori corespunzătoare celor M combinații care sunt posibile cu cei n biți.

O observație importantă în cazul modulației FSK este aceea ca trecerea de la o frecvență la alta trebuie realizată păstrând continuitatea fazei semnalului purtător, ceea ce inseamnă că acest tip de modulație se realizează cu fază continuă. FSK cu salt de frecvență nu trebuie utilizat deoarece în teorie se arată că spectrul de frecvență este mult mai larg și astfel conduce la variații semnificative după filtrari ale amplitudinii semnalului modulat.

Figura 2.8 Modulație B-FSK

Semnalul FSK este descris de următoarea relație:

Frecvența instantanee în cazul B-FSK va lua M=2 valori, în timp trebuie aleasă astfel încât la sfârșitul perioadei de simbol să fie asigurată continuitatea fazei.

Expresia pentru calculul frecvenței instantanee este:

unde:

Ecuația pentru B-FSK devine:

Astfel pentru semnalul modulat va fi: , iar pentru

: , unde .

Frecvența este denumită frecvență unghiulară superioară, în timp ce este denumită frecvență unghiulară inferioară.

Schema bloc a modulatorului B-FSK poate fi observată în figura 2.9 de mai jos:

Figura 2.9 Schema bloc a modulatorului BFSK

Se poate observa că în figura 2.9 sunt folosite doua circuite de produs, cu ajutorul acestor circuite se înmulțesc purtătoarele ( cu frecvențele și cu două semnale binare: și .

Cele două semnale binare au următoarele ecuații:

Comform schemei bloc din figura 2.9, ecuația semnalului B-FSK poate fi scrisă în funcție de doua semnale binare după cum urmează:

În figura 2.10 poate fi observată schema bloc a receptorului B-FSK.

Fiecare dintre cei doi termeni din ecuația de mai sus reprezintă un semnal B-FSK, ținând cont că și , problema trebuie redusă la una cunoscută după cum urmează:

Figura 2.10 Schema bloc a receptorului B-FSK

Rescriind relația semnalului modulat B-FSK se observă că vom avea doua spectre, unul centrat pe , iar celălalt pe și doua impulsuri Dirac cu amplitudinea A/2 pe aceleași două frecvențe, lucru care poate fi vazut în figura 2.11.

Figura 2.11 Densitatea spectrală de putere a semnalului B-FSK

Există o condiție care trebuie pusă penctru ca lobii principali ai cele două spectre B-FSK să nu se suprapună și anume: . Punând această condiție, bandă ocupată va fi:

2.6 Modulația de amplitudine în cuadratură QAM (Quadrature amplitude modulation)

Modulația de amplitudine în cuadratură (QAM) presupune transmiterea a două semnale independente folosind două purtătoare în cuadratură. Rezultatul obținut după modularea unuia dintre semnale cu ajutorul purtătoarei cosinusoidale va reprezenta componenta în fază, în timp ce, semnalul obținut prin modularea cu purtătoarea sinusoidală va reprezenta componenta în cuadratură. Aceste doua semnale sunt ortogonale, iar prin însumarea lor se va obține forma de undă QAM. Utilizând această tehnică, banda canalului va fi folosită mai eficient, dublându-se viteza de transmisie.

Ecuația semnalului QAM este următoarea:

În figura 2.12 este prezentată schema bloc a modulatorului QAM, iar mai jos, în figura 2.13 schema bloc a demodulatorului QAM.

Figura 2.12 Schema bloc a modulatorului QAM

Figura 2.13 Schema bloc a demodulatorului QAM

O altă utilizare importantă a modulației de amplitudine în cuadratură este tehnica de implementare a modulării altor tipuri de modulații fie ele de amplitudine, de frecvență sau de fază. Spre exemplu, dacă QAM este utilizat pentru modulație digitală, cele două semnale și vor fi obținute prin filtrarea a două semnale dreptunghiulare cu nivele multiple, în funcție de tipul de modulație folosit, și vor avea perioada de simbol Ts.

În cele ce urmează vom discuta despre modulația digitală 16-QAM. Acest tip de modulație presupune divizarea datelor în grupuri de câte 4 biți. Fiecare grup de 4 biți este asociat unui simbol, confom relației:

unde: M=16 și reprezintă mulțimea simbolurilor folosite de către modulația 16-QAM.

Astfel, modulația 16-QAM presupune folosirea a 16 simboluri, fiecărui simbol îi va fi asociată una dintre cele 16 stari diferite ale amplitudinii si fazei. Constelația 16-QAM poate fi văzută în figura 2.14

Figura 2.14 Constelația 16-QAM

Avantajul folosirii QAM este reprezentat de faptul că este o tehnică mai avansată de modulație, putând transporta mai mulți biți informaționali per simbol. Crescând ordinul modulației vor crește ratele de transfer și eficiența spectrală a sistemelor de comunicații, însă odată cu creșterea acestora apar și dezavantaje. Sistemele ce folosesc ordine mari de modulație sunt mai puțin rezistente la zgomot și interferențe.

2.7 Modulația cu diviziune în frecvență ortogonală OFDM (Orthogonal Frequency Division Multiplex)

OFDM este o tehnică de transmisie care are la bază modularea mai multor semnale purtătoare (denumite subpurtătoare) simultan. Divizarea canalului în mai multe subcanale care au puterea concentrată în benzi mai înguste de frecvență se obține prin subdivizarea fluxului de date aplicat la intrare în N fluxuri având debitul redus și fiind modulate independent folosind subpurtătoare ortogonale.

Prin modularea independentă a subpurtătoarelor se poate obține o optimizare a puterii emise și totodată a performanțelor de eroare impuse. Sistemele OFDM impun ca subpurtătoarele celor N subcanale obținute prin divizarea canalului de bandă largă să fie ortogonale între ele. Această cerință este necesară deoarece trebuie eliminate interferențele intercanal din momentele de sondare de la recepție.

Frecvențele purtătoare ale subcanalelor sunt fk cu k = 0,1,…,N-1, iar pe fiecare subcanal se modulează un simbol complex folosind modulația QAM. Fiecărui simbol îi vor fi asociați biți, iar coordonatele simbolurilor vor fi constante pe o perioadă de bit, lucru care se realizează efectuând un produs complex între semnalul purtător și cel modulator, ambele fiind complexe.

Ortogonalitatea frecvențelor subpurtătoare se realizează prin separarea acestora cu o distanță egală cu , ceea ce inseamnă ca vor avea următoarele valori:

Semnalul modulat în banda de bază este format din suma semnalelor modulate QAM folosind fiecare dintre subpurtătoarele precedente. Expresia acestui semnal este următoarea:

I(t) reprezintă partea reală a ecuației, iar Q(t) partea imaginară.

Prelucrând relația vom obține:

unde: ), iar

La demodulare, presupunând ca procesul va fi coerent pentru fiecare subpurtătoare în parte, adică vor fi înmulțite cu și folosind două ramuri și apoi filtrate cu un FTJ, vor apărea produse de forma ,, și care însă vor fi eliminate dupa filtrare daca , observându-se astfel ortogonalitatea subpurtătoarelor.

Spectrul semnalului OFDM poate fi observat în figura 2.15 de mai jos.

Figura 2.15 Spectrul semnalului OFDM

Numărul „N” al subcanalelor trebuie de fie mare, chiar și de ordinul zecilor de mii, acest lucru se impune pentru a asigura transmisiei o eficiență spectrală buna și pentru îndeplinirea cerințelor menționate în paragrafele anterioare. Schema bloc a unui modulator OFDM în banda de bază poate fi observată în figura 2.16

Figura 2.16 Schema bloa a modulatorului OFDM

La demodularea subcanalelor trebuie înmulțit semnalul modulat cu o subpurtătoare locală complex conjugată, semnalul astfel obținut va fi filtrat cu un FTJ, iar mai apoi trebuie realizată o sondare a părților reale și imaginare corespondente semnalului modulator care au fost obținute pe cele două ramuri în cuadratură. În figura 2.17 poate fi observată schema bloc a unui demodulator OFDM.

Figura 2.17 Schema bloc a demodulatorului OFDM

Se folosește un singur demodulator, deoarece realizarea separată a demodularii celor N subcanale este complexă și ineficientă. Ortogonalitatea subpurtătoarelor elimină semnalele modulatoare ale celorlalte subcanale în momentul demodulării semnalului de pe subcanalul „k”.

Capitolul 3: DESCRIEREA ECHIPAMENTELOR UTILIZATE

3.1 Hardware

În cadrul subcapitolului curent voi descriere totalitatea echipamentelor hardware folosite pentru implementarea aplicațiilor ce vor fi prezentate în capitolul următor.

3.1.1 Raspberry Pi3 Model B

Raspberry Pi este caracterizată ca o placă de dezvoltare de tip Single Board Computer (SBC). SBC reprezintă un sistem de calcul nemodular implementat pe un cablaj electronic singular. Principala caracteristică a unei placi de dezvoltare Rapsberry Pi este că deși are dimensiuni extrem de mici (8.5cm x 5.5cm) poate fi folosit ca un calculator complet, oferind posibilitatea rulării unui sistem de operare și a folosirii de aplicații de tip utilizator precum aplicațiile de internet, medii de dezvoltare sau chiar jocuri. Diferențele dintre Raspberry Pi și un calculator personal (sau un laptop) constau în dimensiunea redusă a placii de dezvoltare, dar și în puterea mai mică a acesteia, având performanțe de calcul mai slabe decâte ale unui calculator personal care are totuși un cost mai ridicat dar și o dimensiune mult mai mare. Putem compara o placă Raspberry Pi cu o tabletă din punct de vedere al performanțelor, dar fără a dispune de tastatură și display. O altă caracteristică importantă a lui Raspberry Pi este posibilitatea conectării diverselor componente electronice precum: ecran LCD sau pe 7 segmente, senzori, butoane, diferite tipuri de motoare, etc.

Posibilitatea utilizării diverselor aplicații și posibilitatea interconectării cu diferite componente electronice fac din Raspberry un microcalculator ce poate sta la baza multor proiecte interesante și puternice, dezvoltate de utilizatori, putând fi integrat în sisteme electronice și mecanice.

Raspberry Pi3 acoperă complet funcționalitățile unui sistem de calcul dispunând de numeroase periferice integrate (porturi USB, conectivitate la rețea, audio, video). Alimentarea sa se realizează doar cu 5V prin Micro USB.

Figura 3.1 Raspberry Pi3 Model B utilizat în cadrul acestei lucrări

În continuare voi descrie componentele unui Raspberry Pi3 Model B:

Procesor Broadcom BCM2837 64bit, Quad Core, ce lucrează la o frecvență de 1.2GHz;

Memorie RAM de 1GB folosită și ca memorie video, partajată cu procesorul grafic;

Procesor grafic VideoCore 4, frecvență 300MHz, oferă suport Full HD;

Ieșire HDMI;

Ieșire analogică video/audio mixtă printr-o mufă jack 3.5mm;

Port RJ-45 pentru LAN (Ethernet 10/100 Mbit/s);

Wi-Fi 802.11n;

Bluetooth 4.1 (Bluetooth Low Eneergy – BLE);

4 x port USB 2.0;

40 x pini GPIO intrare / ieșire;

Slot card microSD, utilizat pentru instalarea sistemelor de operare;

Conectori dedicați pentru cameră video și afișaj.

3.1.2 Placa audio externă

Pentru implementarea proiectelor este nevoie de o intrare analogică și de o ieșire analogică. Raspberry Pi3 dispune doar de ieșire, îi lipsește însă intrarea. Problema se rezolvă folosind o placă audio externă care se conectează la Raspberry prin USB, aceasta deține atât intrare, cât și ieșire analogică. Am folosit astfel o placă audio de tip „USB Virtual 7.1 Channel Sound” care dispune de un port USB 2.0 și de o intrare și o ieșire analogică de tip jack 3.5mm.

Figura 3.2 Placa audio externă utilizată în acestă lucrare

Rolurile principale ale acestui dispozitiv sunt de convertor analog-digital pentru semnalul aplicat la intrare și convertor digital-analog pentru semnalul de la ieșire. Frecvența de eșantionare va fi limitată la 48000 de eșantioane/secundă, având o rezoluție de 16 biți/eșantion, ceea ce va face ca banda semnalelor generate si recepționate să fie cuprinsă în intervalul [0, 24kHz].

O observație importantă este că poate fi folosită și ieșirea analogică a lui Rasbperry Pi3, însă aceasta este de slabă calitate, fiind preferată cea a placii audio.

3.1.3 Echipamente

Pe lângă Raspberry Pi3 și placa audio externă vom mai avea nevoie și de alte echipamente precum: un laptop (sau orice alt calculator personal), instrumente de laborator, cabluri și adaptoare. În cele ce urmează, se va discuta despre fiecare componentă în parte.

Calculator personal

Este necesară folosirea unui calculator personal echipat cu MATLAB și Simulink, în cazul meu am folosit laptop-ul personal echipat cu MATLAB R2017b. Vom avea nevoie și de un suport denumit „Hardware Support Package” pentru Raspberry, dar despre acesta vom vorbi mai pe larg în subcapitolul 3.2.

Osciloscop

Osciloscopul va fi folosit în majoritatea aplicațiilor implementate, pentru observarea semnalelor rezultate în urma punerii în funcțiune a sistemelor.

Generator de semnal

În unele dintre aplicații va fi nevoie de generarea unui semnal din exterior pentru a realiza modulațiile sau pentru a testa comportamentul unor sisteme. În general, pentru aceste aplicații, vom aplica un semnal sinusoidal provenit de la un generator de semnal clasic.

Analizor spectral

Cu ajutorul analizorului spectral vom putea vizualiza spectrele anumitor semnale rezultate în urma implementării diferitelor proiecte.

Cablu micro USB

Funția cablului micro USB este de a alimenta placa Raspberry Pi3, realizând conexiunea dintre aceasta și un port USB al laptopului.

Cablu de rețea

Utilizat pentru conexiunea dintre portul de rețea al lui Raspberry Pi3 și portul de rețea al laptopui, făcând posibilă comunicarea dintre cele două.

Card microSD de cel puțin 4GB

Pe acest card va fi încărcat sistemul de operare al lui Raspberry.

2xCablu RCA – jack

Cablul RCA-jack va fi folosit pentru conectarea porturilor placii audio la aparatele de laborator. În unele proiecte vom avea nevoie chiar și de două cabluri.

2xAdaptor BNC-RCA

Aceste adaptoare vor fi folosite pentru a face posibilă legătura dintre cablurile RCA-jack și instrumentele de laborator.

Figura 3.3 Masa de lucru

Instrumentele (osciloscopul, analizorul spectral și generatorul de semnal) nu este nevoie să fie foarte performante, cele clasice, prezente în orice laborator fiind suficient de bune.

3.2 Software

3.2.1 Mediul de dezvoltare

Pentru realizarea proiectului va fi folosit extensia denumită Simulink a mediul de dezvoltare MATLAB, versiunea R2017b. MATLAB reprezintă de fapt un pachet de programe specific calculului numeric și reprezentărilor grafice, acesta permițând operații matematice fundamentale, analiza datelor, programare, reprezentări grafice 2D și 3D și multe altele având resurse de calcul bogate. Modul de construcție al MATLAB are ca fundament un nucleu de bază în jurul căruia sunt formate toolbox-urile. Un toolbox reprezintă o colecție extinsă de funcții având ca rol dezvoltarea mediului MATLAB de la o versiune la alta, rezolvând astfel probleme din diverse domenii.

Simulink reprezintă un mediu util pentru proiectare, analizare și simulare a unui număr mare de modele de sisteme dinamice proiectate în schemă bloc. Simulink oferă o bibliotecă ce conține o varietate largă de blocuri ce stău la dispoziția utilizatorilor, permițând modelarea sistemelor simplu și rapid. Un avantaj deosebit de important al acestui mediu de dezvoltare este posibilitatea urmăriri rezultatelor simulărilor chiar în timp ce aceasta se desfășoară, fiind de mare ajutor pentru utilizatori.

Pentru a face posibilă conectarea lui Raspberry Pi3 cu MATLAB și Simulink este nevoie de instalarea unui pachet denumit „Hardware Support Packages” pentru Raspberry Pi3. Instalarea se poate realiza direct din MATLAB, fiind nevoie insă de un cont Mathworks. Vor fi adăugate două pachete denumite: „Simulink Support Package for Raspberry Pi Hardware” și „MATLAB Support Package for Raspberry Pi Hardware”. Prin instalarea acestui suport, se extind bibliotecile MATLAB și respectiv Simulink, iar cu ajutorul sau va fi instalat sistemul de operare pentru Raspberry Pi3 pe cardul Micro SD fiind nevoie de un card cu memorie de cel puțin 4GB.

După instalarea sistemului de operare, și după realizarea conexiunilor hardware și software între Raspberry Pi3 și laptop, placa de dezvoltare este pregătită pentru interacțiunea cu MATLAB și SIMULINK. Există posibilitatea testării conexiunii intre cele două primind informații referitoare la aceasta prin tastarea în fereastra de comandă MATLAB a comenzii: „raspberrypi”.

Setările și documentele lui Raspberry pot fi accesate printr-o fereastră „Linux Shell” folosind următoarele comenzi:

”r=raspberrypi('ip');

r.openShell”

Această fereastră poate fi închisă tastând comanda: „exit”

3.2.2 Configurația placii audio

Despre rolul placii audio conectată prin USB la Raspberry Pi3 am discutat în subcapitolul 3.1, în acest subcapitol va fi prezentată modalitatea de configurare din software a acesteia.

În primul rând, trebuie deschisă fereastra „Linux Shell”, utilizând comenzile prezentate mai sus, pentru a putea accesa setările lui Raspberry Pi3. În al doilea rând, tastând în această fereastră comanda „aplay -l” vom vedea lista ieșirilor analogice de care dispune Raspberry în momentul de față. În figura 3.4 este prezentat rezultatul obținut prin tastarea comenzii respective.

Figura 3.4 Lista intrărilor analogice ale lui Raspberry Pi3

În mod normal primul dispozitiv din listă ar fi trebuit să fie cel ce corespundea ieșirii analogice a lui Raspberry, însă există posibilitatea de a modifica această ordine și chiar de a opri funționarea uneia dintre ieșiri, ceea ce va duce la dispariția temporară a respectivei ieșiri din lista aceasta, lucru care poate fi observat și în figura de mai sus. Valorile parametrilor „card” și „device” corespunzătoare ieșirii analogice a placii audio trebuie reținute deoarece ne vor trebui în momentul implementării aplicațiilor pentru a putea identifica acestă ieșire.

Tastând comanda „arecord -l” va apărea lista intrărilor corespunzătoare lui Raspberry. În figura următoare este prezentat rezultatul afișat în urma tastării acestei comenzi.

Figura 3.5 Lista ieșirilor analogice ale lui Raspberry Pi3

Se poate vedea că în momentul de față există o singură intrare analogică, cea a placii conectată prin USB. Ca și în cazul ieșirii, trebuie reținuți parametrii „card” și „device”.

Comanda „alsamixer” deschide fereastra de configurare a nivelului sonor, după cum putem vedea și în figura 3.6. De aici putem modifica nivelurile semnalelor de la ieșire sau de la intrare, este intuitiv faptul că „Speaker” se referă la semnalul de la ieșire, în timp ce „Mic” este corespunzător semnalului de intrare. De asemenea, există posibilitatea atenuării semnalelor sau a amplificării lor, în funcție de calitatea placii audio pe care o folosim; este bine ca nivelurile sa nu fie la valoarea maximă deoarece vor apărea distorsiuni.

Figura 3.6 Fereastra de configurare a nivelului sonor

3.2.3 Executarea proiectelor

3.2.3.1 Setări premergătoare executării

Pentru a putea implementa proiectele este necesar ca mediul de dezvoltare Simulink sa dețină informațiile necesare identificării lui Raspberry Pi3.

Figura 3.7 Tools – Run on Target Hardware – Options…

Din bara de unelte Simulink selectăm meniul „Tools”, iar din acest meniul selectăm „Run on Target Hardware/Options…”, cum se poate observa și în figura 3.7. Se va deschide o fereastră identică cu cea din figura 3.8 și din care vom selecta „Raspberry Pi” ca placă hardware.

Figura 3.8 Implementare Hardware

Tot din această fereastră, în meniul „Target hardware resources” vom seta parametrii pentru identificărea placii și anume adresa acesteia, numele și parola pentru a putea face posibilă conectarea dintre Simulink si Raspberry Pi3.

Figura 3.9 Configurarea parametrilor

Dacă aceste setări au fost făcute, după implementarea proiectului, îl putem compila și lansa în execuție pe Raspberry Pi3.

3.2.3.2 Metode de lansare în execuție

Există trei metode pentru a lansa executarea proiectelor din MATLAB:

1.Folosind „Deploy to Hardware”

Acestă metodă se poate realiza ușor selectând „Deploy to Hardware” din bara de unelte în Simulink după cum se poate observa în figura 3.10.

Figura 3.10 Lansarea proiectului în execuție prin „Deploy to Hardware”

După terminarea procedurii de lansare, proiectul va fi executat automat, de menționat faptul că acestă metodă salvează proiectul în cardul de memorie al lui Raspberry Pi3, fiind executat independent de Simulink și de conexiunea cu laptopul.

2. Folosind „External Mode”

Pentru a executa un proiect prin acestă metodă, trebuie realizate setările proiectului conform figurii 3.11, iar mai apoi trebuie apăsat butonul verde denumit „Run”.

Figura 3.11 Lansarea proiectului în execuție prin „External Mode”

Prin această metodă conexiunea dintre Simulink și Raspberry rămâne activă, proiectul nu va mai fi încărcat pe cardul MicroSD, existând posibilitatea modificării parametrilor și observării efectului în timp real. Pentru oprirea proiectelor trebuie apasat butonul „Stop” de lândă butonul „Run”.

3.Folosind fereastra de comandă din MATLAB

Punem lansa un proiect în execuție și prin fereastra de comandă MATLAB utilizând următoarele comenzi:

”r=raspberrypi('ip');

runModel(r,'nume proiect')”

Iar prin comanda „stopModel(r,'nume proiect')” execuția proiectului va fi oprită.

Este important de știut că, înainte ca proiectul să fie executat prin comandă, trebuie să fie încărcat pe cardul MicroSD conectat la Raspberry Pi3.

Capitolul 4: IMPLEMENTAREA PROIECTELOR

4.1 Raspberry Pi3 folosit ca generator de semnal

Scopul acestui subcapitol este de a ne familiariza cu realizarea și generarea executabilului unui proiect în Simulink și de asemenea cu lansarea acestuia în execuție pe o placă de dezvoltare Raspberry Pi3 Model B. Proiectul este simplu, vom folosi Raspberry Pi3 ca un generator de semnal sinusoidal, fiind conceput pentru a ne îndrepta atenția asupra pașilor de compilare și implementare.

4.1.1 Proiectul in Simulink

În acestă secțiune va fi prezentat și descris proiectul realizat în Simulink, care poate fi vazut în figura 4.1 de mai jos. După cum se poate observa, proiectul este format din trei blocuri mari, fiecare dintre acestea având la rândul său unul sau mai multe blocuri cu diferite funcții.

Figura 4.1 Generator de semnal sinusoidal în Simulink

Sine Wave

Conține un singur bloc, numit „Sine Wave” care genereaze semnalul sinusoidal eșantionat. În acest bloc putem configura caracteristicile semnalului cum ar fi amplitudinea, frecvența, perioada de eșantionare, ș.a.m.d.

Figura 4.2 Fereastra de configurare a blocului „Sine Wave”

Configurarea parametrilor:

Amplitudinea

Conform figurii de mai sus, amplitudinea semnalului este „215-1”. Am ales această valoare deoarece blocul „ALSA Audio Playback”, pe care îl vom descrie în paragrafele urmatoare, folosește formatul „int16”. Astfel gama dinamică a semnalului este limitată de reprezentarea pe 16 biți. Valoarea prezentă în acest câmp este chiar valoarea maximă ce poate fi reprezentată cu 15 biți + 1 bit de semn.

Frecvența

Frecvența poate fi setată în al doilea câmp al blocului, fiind reprezentată în Hz. Am ales ca valoarea frecvenței sa fie 8kHz. În al treilea câmp putem seta componenta continuă a fazei.

Perioada de eșantionare

Perioada de eșantionare este 1/48000 secunde. Aceasta poate fi setată în câmpul numit „Sample time”.

Scurtă descriere a celorlalte câmpuri:

Sample mode: valoarea implicita a acestui câmp este „Discrete”, ceea ce însemnă că vor fi generate eșantioane la momente discrete de timp.

Output complexity: setarea acestuia la modul „Real” duce la producerea unor valori reale la ieșirea blocului.

Computation method: de aici putem alege metoda de generare a semnalului sinusoidal.

Sample per frame: în acestă secțiune setăm lungimea unui cadru, fiecare cadru fiind format dintr-un grup de eșantioane ce vor fi transmise la fiecare pas.

Resetting states when re-enabled: acest câmp nu este important pentru proiectul de față. Valoare implicita este „Restart at time zero”.

Output

Functia acestui bloc este de a transforma semnalul de la intrare în formatul cerut de ieșirea placii Raspberry Pi3. Ieșirea este reprezentată de către blocul „ALSA Audio Playback”. Blocul curent este alcătuit din alte trei blocuri de sine stătătoare care vor fi descrise în continuare.

Data Type Conversion

Funcția sa este de a converti semnalul de la intrare în formatul cerut de blocul conectat la ieșirea.

Figura 4.3 Fereastra de configurare a blocului „Data Type Conversion”

Cum am specificat și mai sus, „ALSA Audio Playback” necesită date de intrare în formatul „int16”, astfel blocul curent, „Data Type Conversion” va realiza conversia semnalului emis de „Sine Wave”, care generează valori reale, în format „int16”. Datorită setării din câmpul ”Output data type” în „Inherit: Inherit via back propagation”, blocul va realiza automat conversia datelor conform cerințelor ieșirii sistemului.

Matrix Concatenate

Datorită faptului că blocul „ALSA Audio Playback” necesită la intrare un semnal stereo, vom folosi blocul „Matrix Concatenate” a cărui funcție este de a concatena mai multe semnale aplicate la intrarea sa într-un singur semnal la ieșire.

Figura 4.4 Fereastra de configurare a blocului „Matrix Concatenate”

Setând valoarea câmpului „Number of inputs” la doi, vom avea două intrări pe care vom aplica două semnale identice. Folosind blocul în modul „Multidimensional” și setând valoarea lui „Concatenate dimension” tot la doi va rezulta la ieșire un semnal stereo. Prin concatenarea celor doua semnale de la intrare, având cadre formate din 1024 de eșantioane, vom obține un semnal care va avea dimensiunea cadrelor 1024×2 și care va fi aplicat blocului „ALSA Audio Playback” conectat la ieșirea lui „Matrix Concatenate”.

ALSA Audio Playback

Blocul curent reprezintă ieșirea analogică a lui Raspberry Pi3, el realizând conversia semnalului digital în semnal analogic. Tot „ALSA Audio Playback” va trimite semnalul convertit către placa audio conectată prin USB la Raspberry Pi3 și administrată de către driver-ul audio al acesteia care administrează toate dispozitivele audio conectate.

Dimensiunea semnalului de la intrarea blocului trebuie să fie de forma „Nx2”, unde N reprezintă dimensiunea unui cadru (1024 de eșantioane), iar 2 reprezintă numărul de canale. Cum am explicat și in cadrul blocului „Matrix Concatenate”, „ALSA Audio Playback” folosește semnale stereo, iar datele de la intrare trebuie să fie în format „int16”. În câmpul „Device name” vom introduce datele de identificare ale plăcii audio, „plughw:0,0”, unde primul 0 reprezintă parametrul „card”, iar cel de-al doilea 0 reprezintă parametrul „device”. Acești doi parametrii se identifică din linia de comandă Linux pe care o putem deschide din MATLAB. În câmpul „Audio sampling frequency (Hz)” vom seta frecvența de eșantionare reprezentată în Hz și care, în proiectul de față, are valoarea 48kHz.

Figura 4.5 Fereastra de configurare a blocului „ALSA Audio Playback”

Control LED

Rolul acestui bloc este de a porni și de a opri intermitent led-ul verde al lui Raspberry Pi3. Acest lucru va fi realizat în timpul execuției programului pentru a ne asigura că funționează. Vom folosi acest bloc și în urmatoarele proiecte din același motiv.

Pulse Generator

Semnalul generat de blocul „Pulse Generator este folosit pentru a porni și opri led-ul verde al lui Raspberry Pi3.

Dintre parametrii acestui bloc, am modificat doar amplitudinea (Amplitude), pe care am setat-o la valoarea „215-1”, perioada de repetiție (Period) de 0.5 secunde și lațimea pulsului (Pulse Width) care reprezintă 10% din perioadă, toți ceilalți parametrii ai acestui bloc au rămas nemodificați.

Figura 4.6 Fereastra de configurare a blocului „Pulse Generator”

Data Type Conversion1

Setările acestui bloc sunt identice cu cele ale blocului „Data Type Conversion” și pot fi observate în figura 4.3. „Data Type Conversion1” va transforma semnalul provenit de la „Pulse Generator” într-un semnal boolean necesar blocului „LED”.

LED

Cu ajutorul blocului „LED” putem controla led-ul verde al plăcii Raspberry Pi3 dar și led-urile altor modele de plăci. Rolul acestui bloc este de a porni și opri led-ul în funcție de parametrii semnalului primit la intrare.

Figura 4.7 Fereastra de configurare a blocului „LED”

În câmpul „Board” putem selecta modelul de Raspberry Pi dorit, iar din câmpul „LED” putem alege led-ul pe care vrem sa îl folosim. Pentru modelul Raspberry Pi3 B singurul led disponibil este cel verde.

4.1.2 Echipamente necesare pentru acest proiect

Modul cum vor fi conectate echipamentele între ele poate fi observat în figura 4.8 de mai jos.

Figura 4.8 Modul de conectare al echipamentelor

Pentru a putea implementa acest proiect vom avea nevoie de următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– Cablu RCA – jack

– Adaptor BNC-RCA

– Laptop cu Simulink

– Osciloscop

4.1.3Rezultatele testării

În urma realizării proiectului în Simulink, implementării hardware a acestuia și executării sale, placa de dezvoltare Raspberry Pi3 se comportă ca un generator de semnal sinusoidal. Am afișat semnalul generat de Raspberry Pi3 pe ecranul osciloscopului care este conectat la ieșirea analogică a plăcii audio USB, iar rezultatul testului poate fi observat în figura 4.9. Conform acestei figuri, făcând un calcul rapid, frecvența semnalului este de 8kHz, fiind identică cu cea setată în blocul „Sine Wave” prezentat în secțiunea 4.1.1. Amplitudinea semnalului este de 1V, amplitudinea vârf la vârf fiind 2V. Trebuie specificat faptul că în fereastra Linux corespunzătoare lui Raspberry Pi3 am ales un căștig al ieșirii analogie de 0dB.

Figura 4.9 Rezultatul afișat de osciloscop în urma testării

4.2 Raspberry Pi3 folosit ca filtru digital

În acest subcapitol vom proiecta un filtru digital cu raspuns finit la impuls (FIR) în Simulink, care mai apoi va fi încărcat pe Raspberry Pi3. Raspberry Pi3 nu dispune de intrare analogică, putem realiza însă acest exemplu datorită faptului că folosim placa audio externă, aceasta având atât ieșire analogică cât si intrare analogică, care va face posibilă introducerea semnalului și mai apoi procesarea digitală a acestuia de către filtrul proiectat.

4.2.1 Proiectul in Simulink

Proiectul poate fi observat în figura 4.10 de mai jos. Acesta este format din patru blocuri mari, fiecare îndeplinind câte o funcție bine stabilită. Cele patru blocuri sunt: „Input”, „Digital Filter”, „Output”, „Control LED”. În secțiunile următoare vor fi descrise toate cele patru blocuri în detaliu.

Figura 4.10 Schema în Simulink a proiectului „Raspberry Pi3 folosit ca filtru digital”

Input

Blocul „Input” este format din doua elemente numite: „ALSA Audio Capture” și „Data Type Conversion1”. Intrarea analogică a sistemului este reprezentată de acest bloc, tot aici este realizată și conversia analogic-digital.

ALSA Audio Capture

„ALSA Audio Capture” reprezintă chiar intrarea lui Raspberry Pi3, fiind asociat cu intrarea analogică a placii audio externă. Acesta realizează conversia analogic-digital a semnalului provenit de la o sursă externă și trimite semnalul mai departe către „Data Type Conversion1”. Cum am spus și în cadrul proiectului anterior, blocul „ALSA Audio Capture” este administrat de către driver-ul audio al lui Raspberry Pi3 ca, de asemenea, toate dispozitivele audio conectate.

Ca și în cazul blocului „ALSA Audio Playback”, și acest bloc va genera un semnal având dimensiunea „Nx2”, unde N este dimensiunea unui cadru pe care o putem seta în câmpul „Frame size (N)” și care în cazul proiectului de față are valoarea 800, iar 2-ul reprezintă numarul de canale audio. Tipul de date folosit pentru semnalul la ieșire este, de asemenea, „int16” folosind 15 biți pentru reprezentarea numerică + un bit pentru semn.

În câmpul „Device name” introducem datele de identificare a plăcii audio externă a cărei intrare analogică este folosită. Se poate observa că în acest câmp este scris „plughw:0,0”, primul 0 reprezentând numarul de identificare a parametrului „card”, în timp ce cel de-al doilea 0 reprezintă numarul de identificare pentru parametrul „device”. Ambii parametrii sunt corespunzatori placii audio pe care dorim sa o folosim, în cazul nostru placa audio externă conectată prin USB. Câmpul „Audio Sampling frequency (Hz)” este destinat pentru setarea frecvenței de eșantionare reprezentată și aici în Hz. Am ales ca frecvența de eșantionare folosită în cadrul proiectului curent să fie 48kHz, aceasta fiind chiar frecvența maxima pe care o puteam utiliza.

Figura 4.11 Fereastra de configurare a blocului „ALSA Audio Capture”

Data Type Conversion1

Blocul „Data Type Conversion1” din cadrul acestui proiect este identic din punct de vedere al configurației cu cele doua blocuri din cadrul primului proiect („Data Type Conversion” și „Data Type Conversion1” din subcapitolul anterior). Acesta va realiza conversia semnalului din formatul „int16”, folosit de catre „ALSA Audio Capture”, în format „cu virgulă mobilă” necesar filtrului digital.

Digital Filter

Al doilea bloc este „Digital Filter” care reprezintă punctul de interes al exemplului, și anume filtrul digital. În interiorul acestui bloc găsim „Digital Filter Design”, având configurația prezentată în figura 4.12.

Figura 4.12 Fereastra de configurare a blocului „Digital Filter Design”

După cum se poate observa în figura de mai sus, am ales un filtru FIR (filtru cu raspuns finit la impuls) de tip trece bandă. Frecvența de eșantionare a filtrului este tot de 48kHz, fiind necesar ca această frecventă sa fie identică cu cea din cadrul blocului „ALSA Audio Capture”. Banda de trecere a filtrului este [6000,9500] Hz, iar banzile de tranziție sunt [5000,6000] Hz și [9500,10500] Hz. Atenuarea din afara [5000,10500] Hz este de 80dB. Trebuie avut în vedere ca în momentul generarii semnalului de la generatorul extern, să alegem o frecvență astfel încat să fie îndeplinită teorema eșantionarii: „ fS>2*fM ”, unde fs este frecvența de eșantionare (48kHz în cazul nostru), iar fM este frecvența maximă a semnalului.

Output

„Output” reprezintă blocul de ieșire al acestui proiect. El primește semnalul filtrat de către filtrul digital, îl convertește din digital în analogic pentru ca mai apoi, semnalul să poată fi observat pe un osciloscop conectat la ieșirea analogica a plăcii audio conectată prin USB. Blocul „Output este format din „Data Type Cinversion2” și „ALSA Audio Playback”. Diferența față de blocul de ieșire din proiectul „Raspberry Pi3 folosit ca generator de semnal” este absența blocului „Matrix Concatenate”. Nu mai este necesară prezența blocului respectiv deoarece semnalul trece deja prin „ALSA Audio Capture” care îl convertește în format stereo.

Data Type Conversion2

Am considerat ca nu mai este necesară folosirea unei poze pentru descrierea ferestrei de configurare a blocului „Data Type Conversion2” deoarece, ca și în cazul blocului „Data Type Conversion1”, configurația este identică cu cea a blocurilor de tip „Data Type Conversion” din cadrul primului proiect ( „Raspberry Pi3 folosit ca generator de semnal” ) care poate fi observată în figura 4.3.

Acest bloc convertește semnalul din format „cu virgulă mobila” în formatul „int16” folosit de către „ALSA Audio Playback”.

ALSA Audio Playback

Configurația blocului „ALSA Audio Playback” poate fi văzuta în figura 4.5 prezentă în primul proiect, fiind identică cu aceea. Acesta realizează conversia digital-analogic a semnalului primit de la „Data Type Conversion2” (semnal a cărui dimensiune este de forma „Nx2”, unde N reprezintă marimea unui cadru, iar 2-ul reprezintă numărul de canale al semnalului), trimițând semnalul convertit către ieșirea analogică a plăcii audio conectată prin USB la Raspberry Pi3.

Trebuie să fim atenți în momentul alegerii frecvenței de eșantionare, aceasta trebuie sa fie egală cu frecvețele de eșantionare alese în configurațiile blocurilor „ALSA Audio Capture” și „Digital Filter Design”, 48kHz în proiectul curent.

Control LED

Am descris blocul „Control LED” în subcapitolul anterior. Este format tot din trei elemente și anume: „Pulse Generator”, „Data Type Conversion3”, „LED”. Motivul folosirii acestui bloc este, ca și în cazul proiectului precedent, de a ne asigura că programul se află în execuție pe Raspberry Pi3. Descrierea celor trei blocuri componente ale lui „Control LED” poate fi vazută în cadrul proiectului anterior, în secțiunea denumită „Control LED”, tot acolo, în figurile 4.6, 4.3, 4.7 putem vedea și ferestrele de configurare ale acestora.

4.2.2 Echipamente necesare pentru acest proiect

După cum se poate observa în figura 4.13, vom genera semnal de la generator, semnal care va fi aplicat la intrarea analogică a plăcii audio conectată prin USB la Raspberry Pi3. Vom folosi un cablu RCA – Jack și o mufa RCA – BNC pentru a face legatură dintre generatorul de semnal și placa audio. Putem apoi observa semnalul filtrat de către filtrul digital pe un osciloscop conectat la ieșirea analogică, conexiunea fiind realizată tot cu ajutorul unu cablu RCA – Jack și a unei mufe RCA – BNC.

Figura 4.13 Modul de conectare al echipamentelor

Am folosit în implementarea acestui proiect următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 2 cabluri RCA – jack

– 2 adaptoare BNC-RCA

– Laptop cu Simulink

– Generator de semnal

– Osciloscop

4.2.3 Rezultatele testării

Pentru testarea acestui proiect am ales să aplic pe rând, la intrarea sistemului doua semnale provenite de la un generator de semnal, ambele sinusoidale, primul având frecvența de 8.75kHz, frecvență ce se află în banda de trecere a filtrului proiectat pe Raspberry Pi3, iar cel de-al doilea având o frecvență de 10kHz, aflandu-se în una dintre benzile de tranziție ale filtrului.

Primul semnalul folosit în testarea proiectului, cel de 8.75kHz, poate fi observat în figura 4.14, figură din care se poate deduce ușor frecvența sa; tot aici putem observa ca semnalul de la ieșirea sistemului are amplitudinea egală cu 1V ceea ce înseamnă că este neatenuat.

Al doilea semnal aplicat, cel cu frecveța de 10kHz, poate fi observat în figura 4.15. Deoarece frecveța acestuia se află în banda de tranziție a filtrului, este de așteptat sa fie atenuat, lucru care poate fi observat și în figură, amplitudinea sa scazând la o valoare în jur de 0.2V. În plus, în aceeași figură se mai poate observa faptul că semnalul este distorsionat.

Rezultatele obținute în urma aplicarii celor doua semnale sunt cele așteptate, diferența dintre ele fiind ușor de sesizat.

Figura 4.14 Semnalul de la ieșire afișat pe ecranul osciloscopului (8.75kHz)

Figura 4.15 Semnalul de la ieșire afișat pe ecranul osciloscopului (10kHz)

4.3 Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3

În subcapitolul curent vom implementa și vom încărca pe Raspberry Pi3 un transmițător digital ce folosește modulația impulsurilor în amplitudine. Ecuația semnalului PAM este următoarea:

În cazul modulației impulsurilor în amplitudine, fiecarui simbol îi va fi asociat un semnal . Simbolurile sunt formate dintr-un număr n de biți, numărul de biți fiind determinat de către relația:

M reprezentând „alfabetul de intrare în canal”, adică mulțimea simbolurilor folosite de către tipul curent de modulație.

În prima ecuație din acest capitol:

– reprezintă simbolul „k” al mulțimii M;

– funcția f(t) reprezintă forma de undă care va fi asociată fiecărui simbol;

– reprezintă perioada unui simbol.

În cele ce urmează vom realiza două tipuri de modulații PAM și anume: 2-PAM și 4-PAM.

4.3.1 2-PAM

În cazul modulației 2-PAM, mulțimea simbolurilor M va avea două elemente, fiecărui simbol îi va fi asociat un singur bit (0 sau 1). Astfel, pentru bitul „0” simbolul transmis va fi „-S”,iar pentru bitul „1” va fi transmis „S”.

Proiectul în Simulink

În figura 4.16 poate fi observat proiectul implementat în Simulink, acesta este format din 4 blocuri mari numite: „2-PAM”, „Automatic Gain Control”, „Output” și „Control LED” necesare pentru implementarea modulației 2-PAM pe Raspberry Pi3.

Blocurile „Output” și „Control LED” sunt identice cu blocurile „Output” și „Control LED” din primul proiect, și anume „Raspberry Pi3 folosit ca generator de semnal”. Ele au fost descrise în detaliu în subcapitolul precizat, astfel că, în subcapitolul curent vom descrie celelalte două blocuri: „2-PAM” și „Automatic Gain Control”.

„2-PAM” reprezintă blocul care generează semnalul modulat 2-PAM, toate blocurile necesare pentru realizarea modulației se află aici. Semnalul generat de acest bloc va fi aplicat la intrarea lui „Automatic Gain Control”, funcția acestui blocului este de a adapta gama dinamică a semnalului la un nivel optim pentru blocul de ieșire al lui Raspberry Pi.

Figura 4.16 2-PAM în Simulink

În următoarele paragrafe vom descrie în amănunt blocurile care se ocupă cu generarea semnalului modulat și cu adaptarea nivelului acestuia.

2-PAM

„2-PAM” generează semnalul modulat 2-PAM. Este format din 4 blocuri mai mici numite: „Bernoulli Binary Generator”, „M-PAM Modulator Baseband”, „Complex to Real-Imag” și „Raised Cosine Transmit Filter”, fiecare având câte o funcție extrem de importantă.

Bernoulli Binary Generator

După cum îi spune și numele, blocul „Bernoulli Binary Generator” reprezintă generatorul binar al proiectului curent. Secvența binară generată este aleatoare, biții „0” având probabilitatea de generare „p”, în timp probabilitatea biților „1” este „1-p”, conform statisticilor Bernoulli. Configurarea parametrilor blocului este cea din figura 4.17.

Primul parametru din fereastra de configurarea este „Probability of zero”, reprezentând probabilitatea de apariție a biților de zero. Valoarea parametrului este „0.5”, ceea ce înseamnă ca biții „0” și „1” vor avea probabilități de generare egale. „Sample time” reprezintă intervalul de timp dintre doi biți succesivi, unde reprezintă rata binară care se măsoară în biți/secundă. În cazul nostru parametrul „Sample time” are valorea „20/48000”, valoarea acestuia este dependentă de frecvența de eșantionare setată în blocul „ALSA Audio Playback”, de parametrul „Output samples per symbol” al blocului „Raised Cosine Transmit Filter”, care este descris în paragrafele următoare, și de numarul de biți „n” asociați unui simbol în funcție de modulția aleasă, conform relației următoare:

„Audio Sampling Frequency” este 48000 de Hz, „n” este 1 în cazul modulației 2-PAM, iar „Output samples per symbol” are valoarea 20.

Figura 4.17 Fereastra de configurarea a parametrilor blocului „Bernoulli Binary Generator”

Parametrul „Samples per Frame” reprezintă numarul de biți ai unu cadru, având valoarea 1000 în proiectul curent, iar ultimul parametru este „Output data type” reprezentând tipul de date al semnalului de la ieșire, acesta fiind setat implicit la „double”.

M-PAM Modulator Baseband

Rolul acestui bloc este de a coda secvența de biți generată de blocul anterior într-o secvență de simboluri corespunzătoare. În cazul modulației 2-PAM, pentru fiecare bit va fi generat un simbol la ieșire, asocierea fiind facută astfel: dacă la intrare avem un bit „0”, la ieșire va fi generat un simbol „-S”, iar dacă la intrare vom aveam un bit „1”, va fi generat la ieșire un simbol „S”. Configurarea parametrilor este prezentată în figura 4.18.

„M-ary number” reprezintă numarul simbolurilor din care este formată mulțimea „M”, în cazul modulației 2-PAM valoarea parametrului este „2”. „Input Type” indică tipul datelor de la intrare, blocul „Bernoulli Binary Generator” generând secvențe binare, vom seta acest parametru la valoarea „bit”.

Umătorul parametru din fereastră este „Constellation ordering”, de aici alegându-se corespondența dintre biți și simboluri, însă în cazul 2-PAM corespondența este independentă de valoarea din acest câmp. Cu ajutorul parametrului „Normalization Method” secvența de simboluri va fi normată la tipul ales în acest câmp, în cazul nostru „peak power”, adică va norma secvența de simboluri la valoarea de vârf a puterii. Puterea de vârf este raportată la 1 ohm, conform ultimului câmp din fereastră denumit „Peak power, referenced to 1 ohm (watts)”.

Făcând aceste setări ale parametrilor va rezultă că simbolurile de la ieșirea blocului vor fi „+1” și „-1”, de menționat însă că valorile generate de „M-PAM modulator Baseband” sunt valori complexe, fiind asociată fiecărui simbol o parte reală și o parte imaginară egală cu 0.

Figura 4.18 Fereastra de configurare a blocului „M-PAM Modulator Baseband”

Complex to Real-Imag

Cum am spus și în paragraful anterior, blocul „M-PAM Modulator Baseband” generează simboluri complexe. Este nevoie astfel de „Complex to Real-Imag” pentru a converti formatul complex al simboluri în format real, eliminând partea imaginară, deoarece ieșirea lui Raspberry Pi3 folosește date în formatul real. Singurul parametru al acestui bloc (după cum se poate vedea și în figura 4.19) este „Output” care este setat la „Real” ținând seamă de cele spuse în acest paragraf.

Figura 4.19 Fereastra de configurare a blocului „Complex to Real-Imag”

Raised Cosine Transmit Filter

Este blocul care generează semnalul modulat PAM, asociind fiecarui simbol generat de blocurile anterioare și aplicat la intrarea sa valoarea eșantionului formei de undă f(t), având perioada de eșantionare Tf. Parametrul „Output samles per symbol” se determină cu următoarea ecuație: , având condiția să fie număr întreg, în cazul proiectului nostru acesta are valoarea 20. Parametru depinde de frecvența de eșantionare a blocului „ALSA Audio Playback”, de numarul de biți „n” care este definit în funcție de modulația folosită și de banda „B” a semnalului PAM deoarece trebuie să se țină cont de teorema eșantionării. Astfel trebuie ca relația să fie îndeplinită.

Parametrul „Filter span in symbols” definește perioada lui f(t), acesta are valoarea 10.

În funcție de acești doi parametrii descriși pană în momentul de față, se determină numărul de eșantioane ale funcției f(t) generate pentru fiecare simbol de intrare.

Pentru câmpul „Filtre shape” există două variante posibile și anume: „Normal” (cum este în proiectul curent, ceea ce însemană ca f(t) va fi o formă de undă de tip cosinus ridicat) și „Square root”. „Rolloff factor” reprezintă factorul de rotunjire al filtrului, valoarea acestuia parametru influențează banda semnalului și spectrul acestuia. Pentru acest parametru poate fi aleasă o valoarea în intervalul [0,1]. Câștigul filtrului este dat de parametrul „Linear amplitude filter Gain”, în cazul acestui proiect având valoarea 1, ceea ce însemnă ca filtrul nu modifică amplitudinea semnalului.

Parametrul „Input processing” fiind setat la „Columns as channels (frame based)” impune filtrului sa lucreze în modul bazat pe cadre ca și blocurile precedente, iar setând câmpul „Rate options” la opțiunea „Enforce Single Rate Processing”, blocul curent va fi forțat să folosească o lungime a cadrului de la ieșire egală cu cea de la intrare, având astfel aceleași rate. Filtrul din cadrul acestui bloc este de tip FIR.

Figura 4.20 Fereastra de configurarea a parametrilor blocului „Raised cosine transmit filter”

Automatic Gain Control

Acest bloc este folosit deoarece „Output” care reprezintă ieșirea lui Raspberry Pi3 are nevoie de o adaptare a semnalului la intrarea sa, astfel „Automatic Gain Control” va adapta gama dinamică a semnalului provenit de la blocul anterior („2-PAM”) conform cerințelor blocului de ieșire a placii de dezvoltare.

Este format din trei elemente numite „Max”, „Divide” și „Gain”.

Operațiile efectuate de acest bloc sunt următoarele: va realiza o normare a fiecărui cadru aplicat la intrarea sa, divizând toate eșantioanele cadrelor cu valoarea maximă a acestora; multiplică apoi toate eșantioanele divizate cu valoarea setată în blocul „Gain” și anume , astfel că valoarea cea mai mare în fiecare cadru va fi

În blocul „MinMax” putem seta funcția pe care sa o îndeplinească acest bloc în câmpul „Function”, în cazul curent blocul trebuie să gasească valoarea maximă a eșantionelor. Cel de-al doilea parametru care poate fi modificat este „Number of input ports”, setând numarul intrărilor blocului.

Figura 4.21 Fereastra de configurare a lui „MinMax”

Blocul „Divide” va diviza fiecare valoarea aplicată la intrarea sa cu valoarea maximă a eșantioanelor fiecărui cadru provenită de la blocul „MinMax”

Figura 4.22 Fereastra de configurare a blocului „Divide”

Blocul „Gain” amplifică fiecare eșantion divizat în blocul precedent cu valoarea câmpului cu același nume, în cazul nostru valoarea este . Astfel, în urma proceselor, valoarea maximă a eșantioanelor din fiecare cadru va fi egală cu cea din câmpul „Gain”.

Figura 4.23 Fereastra de configurare a blocului „Gain”

Semnalul rezultat în urma proceselor efectuate de „Automatic Gain Control” va fi aplicat blocului denumit „Output”, bloc ce reprezintă ieșirea lui Raspberry Pi3. Atât „Output” cât și „Control LED” au fost descrise în detaliu în primul proiect prezentat.

4.3.2 4-PAM

În cazul modulației 4-PAM, mulțimea simbolurilor M va avea patru elemente, fiecărui simbol îi va fi asociat un grup de doi biți.

Proiectul în Simulink

În figura 4.24 poate fi observat proiectul implementat în Simulink, acesta este format din 4 blocuri numite: „4-PAM”, „Automatic Gain Control”, „Output”, „Control LED” necesare pentru implementarea modulației 4-PAM pe Raspberry Pi3. Ca și în cazul proiectului 2-PAM, blocurile „Output” și „Control LED” sunt identice cu blocurile „Output” și „Control LED” din primul proiect realizat, denumit „Raspberry Pi3 folosit ca generator de semnal” fiind descrise în detaliu în acel subcapitol, în timp ce asupra blocului „Automatic Gain Control” din proiectul curent nu au fost facute modificări, fiind identic cu cel prezentat în proiectul 2-PAM.

„4-PAM” reprezintă blocul care generează semnalul modulat 4-PAM, toate blocurile necesare pentru realizarea modulației se află aici. Semnalul generat de acest bloc va fi aplicat la intrarea lui „Automatic Gain Control”, pentru ca mai apoi, dupa optimizare, sa ajungă la blocul de ieșire al lui Raspberry Pi, denumit „Output”.

Figura 4.24 4-PAM în Simulink

Față de proiectul 2-PAM, au fost făcute modificări doar asupra blocului care generează semnalul modulat.

În următoarele paragrafe vom descrie în amănunt modificările efectuate asupra blocurilor din „4-PAM”.

Bernoulli Binary Generator

Cum am spus și în proiectul anterior, acest bloc reprezintă sursa binară a modulatorului, generând secvențe aleatoare de biți independeți conform statisticilor Bernoulli.

Figura 4.25 Fereastra de configurare a parametrilor blocului „Bernoulli Binary Generator”

Din figura 4.25 se poate observa că singurul parametru modificat a fost „Sample time”, noua valoare a acestuia fiind „20/(2*48000)”. După cum am spus, formula de calcul este următoarea:

Parametrii „Output samles per symbol” și „Audio Sampling Frequency” au aceleași valori (și , în schimb numarul de biți asociați unui simbol „n” este în acest caz 2, ceea ce va duce la o valoarea a lui „Sample Time” egală cu .

M-PAM Modulator Baseband

Funcția acestuia este de a converti secvența de biți de la intrare într-o secvență de simboluri. În cazul 4-PAM, fiecărui simbol îi va fi asociat un grup de doi biți. Corespondența folosită în acest proiect este cea din tabelul 4.1.

Tabelul 4.1 Codarea simbolurilor în cadrul modulației 4-PAM

Valorile S1 și S2 depind de setarea aleasă în cadrul parametrului „Normalization Method”, aceast parametru este identic cu cel din cadrul proiectului 2-PAM, alegându-se metoda „Peak Power”.

Figura 4.26 Fereastra de configurare a blocului „M-PAM Modulator Baseband”

Se poate observa în figura 4.26 că singura modificare a fost facută în cadrul câmpului „M-ary number”, setat la valoarea 4, ceea ce indică faptul că mulțimea „M” este formată din 4 elemente ce reprezintă simbolurile codării, caz corespunzător modulației 4-PAM. Astfel cele 4 simboluri vor lua următoarele valori: , , și

Toate celelalte blocuri din cadrul acestui exemplu au rămas nemodificate, fiind identice cu cele descrise în cadrul proiectului anterior, 2-PAM.

4.3.3 Echipamente necesare pentru implementarea celor două proiecte: 2-PAM și 4-PAM

Pentru a putea implementa aceste două proiecte vom avea nevoie de următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– Cablu RCA – jack

– Adaptor BNC-RCA

– Laptop cu Simulink

– Osciloscop

Nu există nicio diferență între cele doua proiecte, 2-PAM și 4-PAM, în ceea ce privește implementarea hardware.

Raspberry Pi3 va genera semnalele 2-PAM sau 4-PAM, în funcție de proiectul încărcat, iar aceste semnale vor putea fi vizualizate pe ecranul osciloscopului a cărui intrare va fi conectată la ieșirea analogică a placii externe de sunet.

Modul cum vor fi conectate echipamentele între ele poate fi observat în figura 4.27 aflată mai jos.

Figura 4.27 Modul de conectare al echipamentelor

4.3.4 Rezultatele testării

Semnalul afișat pe ecranul osciloscopului în urma implementarii conexiunilor prezentate mai sus pentru 2-PAM poate fi observat în figura 4.28.

Secvența binară modulată este aleatoare și se poate deduce ușor din semnalul afișat pe ecranul osciloscopului. Este ușor de văzut că avem un semnal 2-PAM observându-se doar doua niveluri de amplitudine prezente în figură.

Figura 4.29 reprezintă afișajul osciloscopului în urmă implementari modulatorului 4-PAM. Secvența binară este și în acest caz generată aleator, iar fiecărui grup de doi biți îi este asociat un simbol (un nivel de aplitudine). Din figură se poate observa că avem 4 niveluri de amplitudine posibilie, specific modulației 4-PAM.

Figura 4.28 Semnalul obținut în urma implementării proiectului 2-PAM

Figura 4.29 Semnalul obținut în urma implementării proiectului 4-PAM

Concluzia este că proiectele realizate în Simulink și implementate pe Raspberry Pi3 funcționează corect, indiferent că este vorba despre 2-PAM sau 4-PAM. Se pot observa însă anumite diferențe de nivel sau distorsiuni în cele doua figuri, acestea apar datorită faptului că placa audio externă folosită nu este de cea mai bună calitate.

4.4 Modulația cu salt de amplitudine (ASK) pe Raspberry Pi3

Modulația cu salt de amplitudine presupune ca la fiecare început de perioadă de simbol, amplitudinea semnalului purtător (în cazul nostru un semnal cosinusoidal) va fi modificată cu o valoare ce depinde de combinația biților de date care trebuie transmiși. Numarul de nivele de amplitudine posibile este dat de către simbolurile ce compun mulțimea „M”. Astfel în cazul modulației 2-ASK vom avea două niveluri posibile de amplitudine, în timp ce la modulația 4-ASK vom avea 4 niveluri. Ecuația semnalului ASK este:

unde:

– reprezintă simbolul „k” al mulțimii M;

– f(t) reprezintă funcția asociată fiecărui simbol;

– reprezintă perioada de simbol;

– reprezintă semnalul purtător cosinusoidal, având frecvența purtătoare „fp”.

Putem spune că semnalul modulat ASK este compus din semnalul informațional PAM și un semnal purtător cosinusoidal (sau sinusoidal). Deci putem rescrie ecuația astfel:

În cele ce urmează vom realiza doua proiecte: 2-ASK și 4-ASK. Vom avea nevoie de generatorul de semnal pentru a generat semnalul purtător, trebuie sa ținem cont de faptul că frecvența acestuia nu trebuie să depașească valoarea de 24kHz.

4.4.1 2-ASK

Conform precizărilor făcute într-unul dintre paragrafele anterioare, semnalul modulat ASK este compus dintr-un semnal modulator PAM și o purtătoare cosinusoidală, astfel în cazul 2-ASK mulțimea simbolurilor va avea 2 elemente, asocierea fiind făcută între un simbol si un singur bit. Biții de „0” vor genera simbolul cu valoarea egală cu „-1”, în timp ce biții de „1” vor genera simboluri cu valoarea „1”.

Proiectul în Simulink

Proiectul în Simulink este format din 6 blocuri denumite: „Input”, „2-PAM”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. Fiecare dintre acestea conține la rândul său cel puțin un element, în cele ce urmează vom vorbi în detaliu despre fiecare bloc nou în parte. În figura 4.30 poate fi observat proiectul implementat în Simulink.

Blocurile „Output” și „Control LED” au fost descrise în primul proiect („Raspberry Pi3 folosit ca generator de semnal”) configurațiile acestora fiind identice cu cele din subcapitolul respectiv, putând fi observate în figurile prezente acolo.

În cele ce urmează vom descrie celelate patru blocuri din componența proiectului.

Figura 4.30 2-ASK implementat în Simulink

Input

Este format din 3 blocuri mici numite: „ALSA Audio Capture”, „Multiport Selector” și „Data Type Conversion”. Semnalul purtător cosinusoidal provenit de la generatorul de semnal este întrodus în sistem prin acest bloc și adaptat la formatul folosit de către blocurile aflate în continuarea lui. Vom descrie în particular cele 3 elemente din componența lui „Input”.

ALSA Audio Capture

Reprezintă intrarea analogică a lui Raspberry Pi3, cu ajutorul acestui bloc este introdus în sistem semnalul purtător provenit de la generatorul de semnal. Cum bine știm, semnalul din acest bloc este un semnal stereo, care va fi prelucrat de către celelalte blocuri componente ale lui „Input”. Configurația lui „ALSA Audio Capture” utilizată în acest proiect este identică cu cea din cadrul proiectului „Raspberry Pi3 folosit ca filtru digital” fiind descrisă în detaliu în subcapitolul corespondent proiectului menționat.

Multiport Selector

„Multiport Selector” primește semnalul stereo de la „ALSA Audio Capture”, funcția acestui bloc fiind de a selecta unul dintre cele două canale ale semnalului, astfel va transmite mai departe un semnal mono. Configurația acestui bloc folosită în proiectul curent este cea din figura 4.31.

În câmpul „Select” a fost aleasă opțiunea „Columns”. Parametrul „Indices to output” indică canalul care se dorește a fi transmis către următorul bloc, în cazul acestui proiect am ales primul canal al semnalului.

Figura 4.31 Configurația blocului „Multiport Selector”

Data Type Converison

Pentru „Data Type Conversion” am adoptat aceeași configurație folosită și în proiectele precedente, putând fi vazută în csubapitolul aferent primului proiect. Cum am mai specificat, funcția sa este de a converti formatul semnalului aplicat la intrarea într-un format cerut de blocul imediat următor din schemă. Astfel va converti semnalul de tip int16 provenit de la „ALSA Audio Capture” în format double necesar lui „Product”.

2-PAM

Reprezintă blocul care generează semnalul 2-PAM; este format din 4 elemente numite: „Berboulli Binary Generator”, „M-PAM Modulator Baseband”, „Complex to Real-Imag” și „Raised Cosine Transmit Filter”, configurația acestui bloc este identică cu cea a blocului cu același nume din cadrul proiectului „2-PAM” și poate fi vazută în subcapitolul respectiv.

Mixer

Blocul „Mixer” este compus dintr-un singur element denumit „Product”. Funcția sa este de a produce semnalul modulat ASK, prin înmulțirea purtătorei provenit de la „Input” cu semnalul PAM provenit de la blocul „2-PAM”. Fereastra de configurare a blocului „Product” poată fi vazută în figura 4.32 aflată mai jos. Numărul de intrări ale acestui bloc este dat de parametrul „Number of inputs”, în cazul nostru acesta este 2, având nevoie doar de două canale. Semnalul modulat ASK, rezultat în urma prelucrărilor efectuate, va fi aplicat la intrare lui„Automatic Gain Control”.

Figura 4.32 Fereastra de configurare a lui „Product”

Automatic Gain Control

„Automatic Gain Control” conține 3 elemente numite „MinMax”, „Divide” și „Gain”, configurațiile acestora au fost prezentate în cadrul proiectului „2-PAM”. Funcția sa, ca și în proiectul procedent, este de a norma eșantioanele componente ale fiecărui cadru în parte la valoarea celui mai mare eșantion, pentru ca mai apoi sa le amplifice cu . Operațiile sunt necesare pentru a aduce semnalul la o formă cerută de către blocul „Output”, la intrare căruia acesta va fi aplicat.

După realizarea schemei și configurarea blocurilor, proiectul este gata de implementat pe Raspberry Pi3.

4.4.2 4-ASK

Exemplul referitor la modulația 4-ASK conține tot 6 blocuri numite: „Input”, „4-PAM”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. Singurele modificări facute față de proiectul 2-ASK sunt în cazul blocului care generează semnalul PAM. Acest bloc, denumit „4-PAM”, după cum îi spune și numele, va genera un semnal 4-PAM. Toate celelalte blocuri au rămas nemodificate. Schema în Simulink poate fi văzută în figura 4.33.

Vom discuta puțin, în cele ce urmează, despre modificările aduse în proiect. Cum am spus și mai sus, doar blocul „4-PAM” a fost modificat. Acesta este format din 4 elemente denumite: „Bernoulli Binary Generator”, „M-PAM Modulator Baseband”, „Complex to Real-Imag” și „Raised Cosine Transmit Filter”, fiind modificate doar primele doua, schimbările configurațiilor făcându-se conform proiectului care genera un semnal 4-PAM putând fi vazute în cadrul capitolului corespondent proiectul specificat.

Semanlul 4-PAM generat de blocul cu același nume va fi modulat cu semnalul provenit de la blocul „Input” (provenit de la generatorul de semnal) de către „Mixer”, iar după modificările aduse de către „Automatic Gain Control” acesta va ajunge la blocul de ieșire denumit „Output”.

Figura 4.33 Schema în Simulink a modulatorului 4-ASK

4.4.3 Echipamente necesare pentru implementarea proiectelor: 2-ASK și 4-ASK

Semnalul generat de către generatorul de semnal va fi aplicat la intrarea analogică a plăcii externe conectată prin USB la Raspberry Pi3, după prelucrarea semnalului, acesta poate fi observat pe ecranul unui osciloscop conectat la ieșirea analogică corespunzătoare plăcii.

Nu există nicio diferență între implementarea hardware a celor doua proiecte, echipamentele necesare pentru implementare sunt următoarele:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 2 cabluri RCA – jack

– 2 adaptoare BNC-RCA

– Laptop cu Simulink

– Generator de semnal

– Osciloscop

Acestea trebuie conectate conform figurii 4.34.

După cum am spus mai sus, acestă implementare hardware este specifică atât pentru 2-ASK cât și pentru 4-ASK, semnalul vizualizat pe osciloscop depinde de proiectul implementat pe Raspberry Pi3.

Figura 4.34 Conectarea echipamentelor în cazul proiectelor 2-ASK și 4-ASK

4.4.4 Rezultatele testării

După conectarea echipamentelor conform figurii 4.34 am încărcat pe rând, pe Raspberry Pi3 cele doua proiecte: 2-ASK și 4-ASK.

Am ales să generez de la generator un semnal sinusoidal cu frecvența de 12.5kHz, știind că placa audio externă permite doar semnale cu frecvența cuprinsă în intervalul [0; 24 kHz].

Cum am menționat și în descrierea proiectului, semnalele ASK se formează prin modulația semnalelor PAM cu o purtătoare sinusoidală sau cosinusoidală.

Încărcând proiectul 2-ASK pe Raspberry Pi3, am obținut pe ecranul osciloscopului semnalul din figura 4.35. Se deduce ușor faptul că este vorba despre un semnal 2-PAM modulat, dar și că frecvența purtătoarei este de 12.5kHz.

În figura 4.36 este prezentat rezultatul obținut după implementarea proiectului 4-ASK pe Raspberry. Este intuitiv faptul că secvențele de semnal au niveluri de amplitudine diferite, și de asemanea se poate deduce ușor frecvența de 12.5kHz a semnalului.

În concluzie, pot spune că rezultatele obținute în urma testării celor doua proiecte sunt cele așteptate, singura problema întâmpinată fiind limitarea frecvenței semnalului purtător impusă de placa audio externă.

Figura 4.35 Semnalul afișat pe ecranul osciloscopului pentru proiectul 2-ASK

Figura 4.36 Semnalul afișat pe ecranul osciloscopului pentru proiectul 4-ASK

4.5 Modulația cu salt de frecvență (FSK) pe Raspberry Pi3

Modulația cu salt de frecvență (FSK) presupune transmiterea informației digitale modulând frecvența semnalului purtător. Frecvențele folosite sunt dependente de simbolurile care trebuie transmise, simbolurile fiind formate din secvențe binare. Modulația M-FSK presupune M=2n valori posibile pentru frecvențele purtătoarei, acestea fiind asociate celor M combinații posibilile cu cei n biți.

Ecuația semnalului FSK este următoarea:

unde:

– A este amplitudinea purtătoarei;

– fc reprezintă frecvența purtătoare, iar reprezintă valoarea care se adună frecvenței purtătoare, fiind dependentă de combinația binară;

– Ts perioada de simbol;

– reprezintă faza semnalului și trebui aleasă astfel încât la sfârșitul perioadei se simbol să se asigure continuitatea fazei;

– este impulsul treaptă-unitate;

– dk dă dependența frecvenței purtătoare de combinația binară care trebuie transmisă.

În cadrul proiectului curent vom realiza un modulator B-FSK, aceasta presupune folosirea a două valori diferite ale frecvențelor, care vor fi utilizate astfel: pentru valoarea „1” a bitului se va transmite un semnal de frecvență „f1”, în timp ce, pentru valoarea „0” se va transmite un semnal cu frecvența „f2”.

Pentru B-FSK, dk are următoarea formulă:

4.5.1 Proiectul în Simulink

Pentru implementarea acestui proiect am folosit 4 blocuri denumite: „2-PAM”, „Mixer”, „Output” și „Control LED”.

Figura 4.37 Schema proiectului B-FSK în Simulink

Blocul „2-PAM” generează un semnal PAM binar dreptunghiular care este aplicat la intrearea blocului „Mixer”. În funcție de nivelul acestui semnal, „Mixer” va folosi una dintre cele două frecvențe posibile ale purtătoarei pentru a modula semnalul informațional. Semnalul rezultat în urma prelucrărilor efectuate de cele două blocuri menționate anterior va fi transmis blocului „Output”.

În continuare vom descrie blocurile componente ale proiectului.

2-PAM

„2-PAM” produce un semnal binar PAM dreptunghiular. Este format din 4 elemente denumit: „Bernoulli Binary Generator”, „M-PAM Modulator Baseband”, „Complex to Real-Imag” și „FIR Interpolation”.

Bernoulli Binary Generator

Despre acest bloc am tot discutat în capitolele precedente. Reprezintă sursa binară a proiectului, generând biții aletor, conform statisticilor Bernoulli. Fereastra de configurare a parametrilor acestui bloc este cea din figura 4.17 din subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”. Singurul parametru modificat față de configurația din acea figură este „Samples per frame”, care reprezintă numărul de eșantioane per cadru fiind egal cu 2000 în proiectul de față. Perioada de eșantionare este tot 20/48000.

M-PAM Modulator Baseband

Transformă semnalul binar într-un semnal 2-PAM compus din simbolurile „1” și „-1”. Semnalul generat este complex, va fi necesar astfel să folosim blocul „Complex to Real-Imag” pentru a elimina partea imaginară din componența sa.

Configurația lui „M-PAM Modulator Baseband” folosită în cadrul experimentului curent este identică cu cea din figura 4.18 corespondentă subcapitolului „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, iar a lui „Complex to Real-Imag” este identică cu cea din figura 4.19 din același subcapitol.

FIR Interpolation

Acest bloc reprezintă interpolatorul sistemului, generând pentru fiecare simbol de la intrare secvența eșantioanelor corespunzătoare formei de undă utilizată. Factorul de interpolare este 20, conform parametrului „Interpolation factor”, putem asocia acest parametru cu „Output samples per symbol” din cadrul blocului „Raised Cosine Transmit Filter” folosit în unele dintre proiectele anterioare.

În câmpul „FIR Filter coefficients” am scris „ones(1,20)”, însemnând că va genera un semnal dreptunghiular cu durata egală cu perioada unui simbol. Toate celelalte câmpuri au rămas nemodificate, având setările implicite. Fereastra de configurare poate fi văzută în figura 4.38 aflată mai jos.

Figura 4.38 Configurația blocului „FIR Interpolation”

Mixer

Acest bloc este format din 8 elemente denumite: „Saturation”, „Saturation1”, „Gain”, „Sine Wave”, „Sine Wave1”, „Product”, „Product1” și „Add”. Este cel mai important bloc al acestui proiect, funcția sa fiind de a realiza semnalul modulat B-FSK. Blocurile „Sine Wave” și „Sine Wave1” generează semnale sinusoidale, ambele având configurația din figura 4.39, singura diferență intre ele fiind că frecvența celui de-al doilea („Sine Wave1”) este 4.8kHz. Astfel cele două valori ale frecvențelor alese sunt f1=2.4kHz și f2=4.8kHz, din ecuația scrisă la începutul capitolului este 1.2kHz rezultând faptul că frecvența fc=3.6kHz. . Pentru ca faza semnalului B-FSK să fie constantă trebuie ca cele două frecvențe să fie divizori ai frecvenței de eșantionare (48kHz).

Blocurile „Saturation” și „Saturation1” au configurațiile din figurile 4.40a și 4.40b. Parametrii „Upper limit” și „Lower limit” reprezintă limitele semnalului de la ieșirea blocurilor. Adică, daca semnalul de la intrare depășește valoarea din câmpul „Upper Limit”, acesta va fi saturat la valoarea scrisă în câmp, același lucru se întâmplă și în cazul lui „Lower limit” cu specificația că vor fi saturate valoarile de la intrare mai mici decât acest parametru. Blocul „Saturation” are parametrii: „Upper Limit”=1, „Lower limit”=0; iar blocul „Saturation1”: „Upper Limit”=0, „Lower Limit”=-1.

„Gain” multiplică valoarea semnalului de la ieșirea lui „Saturation1” cu „-1”. „Product” și „Product1” realizează înmulțirea semnalelor de pe cele două ramuri cu cele două semnale provenite de la generatoarele sinusoidale, în timp ce blocul „Add” adună rezultatele înmulțirilor, generând semnalul final al acestui bloc, și anume semnalul modulat B-FSK.

Ca exemplu, daca la intrarea blocului „Mixer” avem un semnal cu amplitudinea „1”, semnalul B-FSK va avea frecvența 2.4kHz, în timp ce, daca amplitudinea semnalului de intrare este „-1”, frecvența semnalului B-FSK va fi 4.8kHz. Semnalul B-FSK reprezentând de fapt o succesiune de semnale ale căror frecvențe alternează între valorile 2.4kHz și 4.8kHz.

Figura 4.39 Fereastra blocului „Sine Wave”

Output

Reprezintă blocul de ieșire al sistemului, corespondent ieșirii lui Rapsberry Pi3. Este compus din elementele numite „Data Type Conversion”, „Matrix Concatenate” și „ALSA Audio Playback”, atât funcția celor trei cât și funcția blocului mare au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”.

Control LED

Este format din trei elemente: „Inpuls Generator”, „Data Type Conversion1” și „LED”. De asemenea, și acestea au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”, în cadrul proiectului curent adoptând aceleași setări.

a b

Figura 4.40 Ferestrele de configurare a blocurilor „Saturation” și „Saturation1”

4.5.2 Echipamente necesare pentru implementarea proiectului B-FSK

Pentru implementarea hardware a acestui proiect am folosit următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 1 cabluri RCA – jack

– 1 adaptoare BNC-RCA

– Laptop cu Simulink

– Osciloscop

Dupa conectarea echipamentelor conform figurii 4.41 vom putea observa pe osciloscopul conectat la ieșirea analogică a sistemului semnalul modulat B-FSK.

Figura 4.41 Conectarea echipamentelor în cazul proiectului B-FSK

4.5.3 Rezultatele testării

După conectarea echipamentelor conform figurii 4.41 am încărcat pe Raspberry Pi3 proiectul FSK realizat în Simulink. Rezultatul obținut pe osciloscop în urma punerii în funcțiune a sistemului este prezentat în figura 4.42. Se observă ușor cele două frecvențe corespunzătoare perioadelor de simbol.

Cum am spus în descrierea proiectului, f1=2.4kHz și f2=4.8kHz, știind faptul ca pentru simbolul „1” este transmis semnalul cu frecvența f1, iar pentru „-1” cel cu frecvența f2. În același timp, cunoaștem modul de codare al biților, biții „1” fiind codați cu simbolul „1”, iar biții „0” cu simbolul „-1”, astfel putem deduce ușor secvența binară transmisă în intervalul corespunzător figurii 4.42. Amplitudinea semnalului este de aproximativ 0.5V, fiind mai mică decât cea maximă pe care o poate genera ieșirea analogică a sistemului. Această amplitudine scăzută se datorează atenuării introduse de către placa audio externă.

Figura 4.42 Semnalul afișat pe ecranul osciloscopului pentru proiectul FSK

În concluzie, pot spune că, rezultatele obținute în cadrul proiectului FSK sunt cele așteptate, semnalul B-FSK obținut, după cum se poate vedea și în figura 4.42, nu este afectat de zgomot, nu este distorsionat, iar nivelul amplitudinilor este constant. Atenuarea care se datoreză placii audio conectată prin USB la Raspberry Pi3 a fost introdusă voit, pentru o vizualizare cat mai bună a semnalului.

4.6 Modulația cu salt de fază în cuadratură (QPSK) pe Raspberry Pi3

În cazul modulației QPSK, se asociază câte o fază fiecărui grup de doi biți generați, fiind transmiși doi biți în același interval de timp în care era transmis unul singur, dubându-se astfel rata de bit în condițiile în care rata de simbol și banda de frecvență rămân neschimbate. Fluxul binar este împărțit în două secțiuni: o secțiune formată din biții pari ai acestuia și o secțiune formată din biții impari. De asemenea, se vor folosi două purtătoare în cuadratură, defazate una față de cealaltă cu , modulându-se astfel simultan două semnale. Vom avea M=4 faze distincte, distribuite uniform pe cercul trigonometric, folosite pentru transmiterea celor patru combinații posibile ale grupurile de doi biți. Ecuația semnalului QPSK este următoarea:

– f(t) reprezintă funcția asociată fiecărui simbol;

– reprezintă perioada de eșantionare;

– și reprezintă purtătoarele în cuadratură, fp – frecvența purtătoare,- defazaj.

În cele ce urmează vor fi prezentate două proiecte QPSK, diferența dintre ele fiind dată de către tipul blocurilor folosite pentru filtrare.

4.6.1 Proiectul în Simulink pentru QPSK folosind „Raised Cosine Transmit Filter”

Proiectul este alcătuit din cinci blocuri denumite: „QPSK”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. În cele ce urmează vom vorbi în detaliu despre primele doua blocuri denumite „QPSK” și „Mixer”.

Figura 4.43 Schema proiectului QPSK în Simulink folosind „Raised Cosine Transmit Filter”

Blocul „QPSK” generează semnalele în fază și în cuadratură aplicându-le apoi blocului „Mixer” care le va modula cu cele două purtătoarea defazate cu producând apoi semnalalul QPSK cu banda centrată pe frecvența purtătoare. „Automatic Gain Control” produce adaptarea nivelului semnalului la cerințele impuse de Raspberry Pi3.

QPSK

Are în componența sa cinci elemente denumite: „Bernoulli Binary Generator”, „QPSK Modulator Baseband”, „Complex to Real-Imag” , „Raised Cosine Transmit Filter” și „Raised Cosine Transmit Filter1”. Acest bloc produce cele două semnale în fază și cuadratură.

Bernoulli Binary Generator

Funcția acestuia este de a genera semnalul binar informațional, biții fiind generați aleator, independeți unii față de alții, conform statisticilor Bernoulli. Configurația blocului este prezentată în figura 4.44.

Figura 4.44 Configurația blocului „Bernoulli Binary Generator”

QPSK Modulator Baseband

Blocul „QPSK Modulator Baseband” generează cele M=4 faze distincte, aflate pe cercul trigonometric la distanța de între ele (conform parametrului denumit „Phase offset). Generarea fazelor este dependentă de grupurile de doi biți aplicate la intrarea blocului. Parametrul „Input type” indică tipul datelor aplicate la intrarea, iar în câmpului „Constellation ordering” am ales codarea „Gray” . Fereastra de configurare poate fi văzută în figura 4.45, iar în figura 4.46 constelația QPSK.

Figura 4.45 Configurația blocului „QPSK Modulator Baseband”

Figura 4.46 Constelația QPSK

Complex To Real-Imag

Semnalul provenit de la blocul „QPSK” este complex, blocul „Complex To Real-Imag” separă partea reală și partea imaginară, iar mai apoi le trimite separat către cele două filtre făcând posibilă prelucrarea componentelor în fază și cuadratură. Fereastra de configurare a acestui bloc poate fi văzută în figura 4.19 din subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, cu specificația că în câmpul „Output” am ales parametrul „Real and Imag”.

Raised Cosine Transmit Filter

Blocurile „Raised Cosine Transmit Filter” și „Raised Cosine Transmit Filter1” adoptă configurația din figura 4.21 a subcapitolului „2-PAM” având funcții identice, singura diferență fiind ca unul prelucrează partea reală a semnalului, iar celălalt partea imaginară.

Mixer

Blocul „Mixer” reprezintă un modulator în cuadratură, modulând cele două semnale aplicate la intrarea sa folosind două purtătoare în cuadratură. Pentru partea reală este folosită o purtătoare de tip cosinus, iar pentru partea imaginară o purtătoare de tip sinus, generate de către blocurile „Cosine Wave” și „Sine Wave”. Cele două semnale vor fi însumate într-un singur semnal care va fi trimis mai departe către „Automatic Gain Control”.

În urma operațiilor efectuate în cadrul blocului „Mixer”, banda semnalului va fi centrată pe frecvența purtătoarelor, fp.

a b

Figura 4.47 Configurația blocurilor „Cosine Wave” și „Sine Wave”

În figurile 4.47.(a) și 4.47.(b) sunt reprezentate configurațiile parametrilor blocurilor „Cosine Wave” și „Sine Wave”. Diferența dintre cele două este dată de fază, pentru cosinus faza este , iar pentru sinus este . Toți ceilalți parametrii sunt identici: am ales amplitudinea egală cu 1, frecvența de 12.5kHz, perioada de eșationare 1/48000 și numărul de eșantioane pe cadru egal cu 2000.

Elementele „Product” și „Product1” realizează înmulțirea semnalelor ce conțin partea reală și imaginară cu cele două purtătoare, iar „Add” adună rezultatele înmulțirilor.

Automatic Gain Control

Blocul „Automatic Gain Control” a fost descris în subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, în subcapitolul curent adoptând aceeași configurație, fiind folosit din aceleași considerente pentru care a fost implementat și în respectivul proiect. Principală funcție a sa este adaptarea semnalului primit de la „Mixer” la gama de niveluri cerută de ieșirea lui Raspberry Pi3.

Output

Reprezintă blocul de ieșire al sistemului, corespondent ieșirii lui Rapsberry Pi3. Este compus din elementele numite „Data Type Conversion”, „Matrix Concatenate” și „ALSA Audio Playback”, atât funcția celor trei cât și funcția blocului mare au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”.

Control LED

Este format din trei elemente: „Inpuls Generator”, „Data Type Conversion1” și „LED”. De asemenea, și acestea au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”, în cadrul proiectului curent adoptând aceleași setări.

4.6.2 Proiectul în Simulink pentru QPSK folosind „FIR Interpolation”

Proiectul este format din aceleași cinci blocuri denumite „QPSK”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. După cum am mai spus, în cadrul acestui proiect am înlocuit blocurile de tip „Raised Cosine Transmit Filter” cu blocuri de tip „FIR Interpolation”. Toate celelalte elemente ale schemei au ramas nemodificate.

Scopul este de a implementa modulația QPSK folosind impulsuri dreptunghiulare, introduse în sistem de către ”FIR Interpolation” și „FIR Interpolation1” care aparțin blocului denumit „QPSK”. Schema noului sistem este cea din figura 4.48.

Figura 4.48 Schema în Simulink a proiectului QPSK folosint „FIR Interpolation”

În continuare vom discuta despre singurul bloc în cadrul căruia au fost facute modificări: „QPSK”.

QPSK

Despre „Bernoulli Binary Generator”, „QPSK Modulator Baseband” și „Complex to Real-Imag” am discutat în detaliu în primul experiment al subcapitolului curent. Acestea au ramas nemodificate, configurațiile lor pot fi vazute în paragrafele corespunzătoare experimentului menționat.

În ceea ce privește blocurile denumite „FIR Interpolation” și ”FIR Interpolation1”, am adoptat configurația prezentată în figura 4.38 a subcapitolului „Modulația cu salt de frecvență (FSK) pe Raspberry Pi3”.Vorbind la modul general despre tipul acesta de bloc, funcția sa este de interpolator al sistemului, generând pentru fiecare simbol de la intrare secvența eșantioanelor corespunzătoare formei de undă utilizată. Factorul de interpolare este 20, conform parametrului „Interpolation factor”, putem asocia acest parametru cu „Output samples per symbol” din cadrul blocului „Raised Cosine Transmit Filter”.

În câmpul „FIR Filter coefficients” am scris „ones(1,20)”, însemnând că va genera un semnal dreptunghiular cu durata egală cu perioada unui simbol. Toate celelalte câmpuri au rămas nemodificate, având setările implicite.

Rezultatele obținute în urma implementării modulatorului QPSK folosind un impuls dreptunghiular sunt descrise în secțiunea denumită „Rezultatele testării” corespunzătoare subcapitolului curent.

4.6.3 Echipamente necesare pentru implementarea proiectului QPSK

Am folosit în implementarea acestui proiect urmatoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 1 cabluri RCA – jack

– 2 adaptoare BNC-RCA

– Laptop cu Simulink

– Analizor Spectral

– Osciloscop

Dupa conectarea echipamentelor conform figurii 4.49 vom putea observa pe osciloscop semnalul modulat QPSK, iar cu ajutorul analizorului spectral putem vedea spectrul semnalului care va fi centrat pe frecvența purtătoare.

Figura 4.49 Conectarea echipamentelor în cazul proiectului QPSK

4.6.4 Rezultatele Testării

După conectarea echipamentelor conform figurii 4.49 am încărcat pe Raspberry Pi3 pe rând cele două proiecte realizate în cadrul acestui subcapitol în Simulink. În urma punerii în funcțiune pe rând a celor două sisteme am obținut rezultatele din figurile 4.50 și 4.51.

Se po observa în figura 4.50 salturile de fază efectuate la trecerea de la o perioadă de simbol la alta, însă nu cu o claritate foarte bună. Am ales implementarea proiectului cu „FIR Interpolation” (corespunzător figurii 4.51) pentru a putea observa mai bine aceste salturi de fază efectuate la trecerea dintre perioadele de simbol. Diferența dintre cele două proiecte este ușor de observat, în cadrul primului proiect, blocul „Raised Cosine Transmit Filter” asociază eșantioane provenite de la un semnal cosinusoidal fiecărui simbol, lucru dedus și din forma anvelopei semnalului, în timp ce, în cadrul celui de-al doilea semnal este folosită o purtătoare dreptunghiulară.

Figura 4.50 Semnalul afișat pe ecranul osciloscopului pentru QPSK folosind „Raised Cosine Transmit Filter”

Figura 4.51 Semnalul afișat pe ecranul osciloscopului pentru QPSK folosind „FIR Interpolation”

Figura 4.52 Spectrul Semnalului QPSK

Din figura 4.52 se poate observa că spectrul semnalului este centrat pe frecvența 12.5kHz, frecvență corespunzătoare celor două purtătoare provenite de la blocurile „Cosine Wave” și „Sine Wave”.

4.7 Modulația de amplitudine în cuadratură (QAM) pe Raspberry Pi3

În capitolul curent vom implementa și vom încărca pe Raspberry Pi3 un transmițător digital care folosește modulația amplitudinii în cuadratură.

Modulația 16-QAM presupune folosirea a 16 simboluri, fiecărui simbol îi va fi asociată una dintre cele 16 stări posibile.

Simbolurile sunt formate din grupuri de câte 4 biți, conform relației:

unde: M=16 și reprezintă mulțimea simbolurilor folosite de către modulația 16-QAM.

În cele ce urmează vor fi prezentate două proiecte 16-QAM, diferența dintre ele fiind dată de către tipul blocurilor folosite pentru filtrare.

4.7.1 Proiectul în Simulink pentru 16-QAM folosind „Raised Cosine Transmit Filter”

Schema proiectului este alcătuită din cinci blocuri denumite: „16-QAM”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. În paragrafele următoare vom vorbi mai în detaliu despre primele două blocuri, celelalte au fost descrise în cadrul experimentelor anterioare. În figura 4.53 este prezentată schema în Simulink a proiectului.

Blocul „16-QAM” generează semnalele în fază și în cuadratură aplicându-le apoi blocului „Mixer” care le va modula cu cele două purtătoarea defazate cu producând apoi semnalalul 16-QAM cu banda centrată pe frecvența purtătoare. „Automatic Gain Control” realizează adaptarea nivelului semnalului la cerințele impuse de „ALSA Audio Playback” care reprezintă ieșirea analogică a lui Raspberry Pi3.

Figura 4.53 Schema în Simulink a proiectului 16-QAM folosind „Raised Cosine Transmit Filter”

16-QAM

Are în componența sa cinci elemente denumite: „Bernoulli Binary Generator”, „Rectangular QAM Modulator Baseband”, „Complex to Real-Imag” , „Raised Cosine Transmit Filter” și „Raised Cosine Transmit Filter1”. Acest bloc produce semnalele în fază și cuadratură.

Bernoulli Binary Generator

Funcția acestuia este de a genera semnalul binar informațional, biții fiind generați aleator, independeți unii față de alții, conform statisticilor Bernoulli. Configurația parametrilor este cea din figura 4.54.

Figura 4.54 Configurația blocului „Bernoulli Binary Generator”

Perioada de eșantionare este 20/(4*48000), fiind dată de ralația prezentată în subcapitolul corespunzător proiectului „2-PAM”, iar numărul de eșantioane care alcătuiesc un cadru este 400.

Rectangular QAM Modulator Baseband

Configurația blocului este cea din figura 4.55 aflată mai jos.

Figura 4.55 Configurația blocului „Rectangular QAM Modulator Baseband”

Rolul acestui bloc este de a coda secvența de biți generată de blocul anterior într-o secvență de simboluri corespunzătoare. În cazul modulației 16-QAM, pentru fiecare grup de 4 biți de la intrare va fi generat un simbol la ieșire.

„M-ary number” reprezintă numarul simbolurilor din care este formată mulțimea „M”, modulația curentă presupune o valoare a parametrului egală cu „16”. „Input Type” indică tipul datelor de la intrare, blocul „Bernoulli Binary Generator” generând secvențe binare, vom seta acest parametru la valoarea „bit”. Umătorul parametru din fereastră este „Constellation ordering”, de aici alegându-se corespondența dintre biți si simboluri, în cazul nostru fiind aleasă codarea „Gray”. Constelația este prezentată în figura 4.56.

Figura 4.56 Constelația 16-QAM

Cu ajutorul parametrului „Normalization Method” secvența de simboluri va fi normată la tipul ales în acest câmp, în cazul nostru „peak power”, adică va norma secvența de simboluri la valoarea de vârf a puterii. Puterea de vârf este raportată la 1 ohm, conform ultimului câmp din fereastră denumit „Peak power, referenced to 1 ohm (watts)”. Valorile generate de „Rectangular QAM Modulator Baseband” sunt valori complexe, partea reală și cea imaginară vor fi separate de blocul imediat următorul denumit „Complex to Real-Imag”.

Complex to Real-Imag

Blocul „Complex To Real-Imag” separă partea reală și partea imaginară a semnalului complex provenit de la „Rectangular QAM Modulator Baseband”, iar mai apoi le trimite separat către cele două filtre făcând posibilă prelucrarea componentelor în fază și cuadratură. Fereastra de configurare a acestui bloc poate fi văzută în figura 4.19 din subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, cu specificația că în câmpul „Output” am ales parametrul „Real and Imag”.

Raised Cosine Transmit Filter

Blocurile „Raised Cosine Transmit Filter” și „Raised Cosine Transmit Filter1” adoptă configurația din figura 4.21 a subcapitolului „2-PAM” având funcții identice, singura diferență fiind ca unul prelucrează partea reală a semnalului, iar celălalt partea imaginară.

Mixer

Blocul „Mixer” reprezintă un modulator în cuadratură, modulând cele două semnale aplicate la intrarea sa folosind două purtătoare aflate în cuadratură. Pentru partea reală este folosită o purtătoare de tip cosinus, iar pentru partea imaginară o purtătoare de tip sinus, generate de către blocurile „Cosine Wave” și „Sine Wave”. Cele două semnale vor fi însumate într-un singur semnal care va fi trimis mai departe către „Automatic Gain Control”. Semnalul de la ieșirea lui „Mixer” va fi centrat pe frecvența purtătoare care are valoarea 12.5kHz.

Pentru blocurile „Cosine Wave” și „Sine Wave” am ales aceleași configurații folosite în cadrul proiectului „QPSK”, și pot fi vazute în figura 4.47.

Elementele „Product” și „Product1” realizează înmulțirea semnalelor ce conțin partea reală și imaginară cu cele două purtătoare, iar „Add” adună rezultatele înmulțirilor, obținând astfel semnal 16-QAM centrat pe frecvența purtătoare.

Automatic Gain Control

Blocul „Automatic Gain Control” a fost descris în subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, în subcapitolul curent adoptând aceeași configurație, fiind folosit din aceleași considerente pentru care a fost implementat și în subcapitolul respectiv. Principală funcție a sa este adaptarea semnalului primit de la „Mixer” la gama de niveluri cerută de ieșirea lui Raspberry Pi3.

Output

Reprezintă blocul de ieșire al sistemului, corespondent ieșirii lui Rapsberry Pi3. Este compus din elementele numite „Data Type Conversion”, „Matrix Concatenate” și „ALSA Audio Playback”, atât funcția celor trei cât și funcția blocului mare au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”.

Control LED

Este format din trei elemente: „Inpuls Generator”, „Data Type Conversion1” și „LED”. De asemenea, și acestea au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”, în cadrul proiectului curent adoptând aceleași setări.

4.7.2 Proiectul în Simulink pentru 16-QAM folosind „FIR Interpolation”

Proiectul este format din cinci blocuri denumite „16-QAM”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. După cum am mai spus, în cadrul acestui proiect am înlocuit blocurile de tip „Raised Cosine Transmit Filter” cu blocuri de tip „FIR Interpolation”. Toate celelalte elemente ale schemei au ramas nemodificate. Scopul este de a implementa modulația 16-QAM folosind impulsuri dreptunghiulare, introduse în sistem de către ”FIR Interpolation” și „FIR Interpolation1” care aparțin blocului denumit „16-QAM”.

Figura 4.57 Schema în Simulink a proiectului 16-QAM folosind „FIR Interpolation”

„FIR Interpolation” și ”FIR Interpolation1” au fost configurate folosind parametrii prezenți în figura 4.38 corespunzătoare subcapitolului „Modulația cu salt de frecvență (FSK) pe Raspberry Pi3”.

4.7.3 Echipamente necesare pentru implementarea proiectului 16-QAM

Pentru implementarea acestui proiect este nevoie de următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 1 cabluri RCA – jack

– 1 adaptoare BNC-RCA

– Laptop cu Simulink

– Osciloscop

După realizarea configurației din figura 4.58 și după încărcarea unuia dintre cele două proiecte prezentate în acest subcapitol pe Raspberry Pi3, vom putea observa cu ajutorul osciloscopului semnalul modulat 16-QAM

Figura 4.58 Conectarea echipamentelor pentru implementarea proiectului 16-QAM

4.7.4 Rezultatele testării

După conectarea echipamentelor conform figurii 4.58 am încărcat pe Raspberry Pi3 pe rând cele două proiecte realizate în Simulink în cadrul acestui subcapitol. În urma punerii în funcțiune pe rând a celor două sisteme am obținut rezultatele din figurile 4.59 și 4.60 pe ecranul osciloscopului.

Motivul implementării proiectului cu „FIR Interpolation” a fost pentru a putea observa mai bine trecerile de la un nivel de amplitudine la altul și salturile de fază.

În figura 4.59 se observă trei niveluri de amplitudine ale anvelopei semnalului cosinusoidal introdus în sistem de către blocul „Raised Cosine Transmit Filter”.

Figura 4.59 Semnalul afișat pe ecranul osciloscopului pentru 16-QAM folosind „Raised Cosine Transmit Filter”

Figura 4.60 Semnalul afișat pe ecranul osciloscopului pentru 16-QAM folosind „FIR Interpolation”

În cadrul celui de-al doilea proiect cel cu filtre de tipul „FIR Interpolation”, a fost folosit pentru modulație un semnal dreptunghiular, lucru observat și în figura 4.60. Sunt prezente în acestă figură trei niveluri de amplitudine diferite, iar trecerea de la un nivel la altul este ușor de sesizat. Cel mai mare nivel de amplitudine are valoarea 0.5V, următorul are valoarea 0.35V (70% din valoarea primului nivel), în timp ce, al treilea este 0.175V (35% din valoarea primului nivevl).

Concluzia este că, în urma implementării celor două proiecte rezultatele obținute sunt cele intuite. Amplitudinea semnalului nu este cea maximă deoarece am ales să atenuez semnalul de la placa audio externă pentru a micșora riscurile introducerii distorsiunilor în sistem, deși se observă anumite distorsiuni în figurile prezentate.

4.8 Modulația cu diviziune în frecvență ortogonală (OFDM) pe Rapsberry Pi3

Subcapitolul curent presupune implementarea unui transmițător bazat pe modulația cu diviziune în frecvență ortogonală în Simulink pe care mai apoi îl vom încărca pe Raspberry Pi3.

OFDM se bazează pe divizarea canalului în mai multe subcanale care au puterea concentrată în benzi mai înguste de frecvență, obținându-se prin subdivizarea fluxului de date aplicat la intrare în N fluxuri având debitul redus și fiind modulate independent folosind N subpurtătoare ortogonale. Experimentul acesta presupune folosirea a N=64 de subpurtătoare dintre care doar Nu=48 folosite pentru transmiterea datelor.

Ortogonalitatea frecvențelor subpurtătoare se realizează prin separarea acestora cu o distanță egală cu , ceea ce inseamnă ca vor avea următoarele valori:

Expresia semnalului în banda de bază OFDM este următoarea:

unde: I(t) reprezintă componenta în fază a semnalului, iar Q(t) componenta în cuadratură.

În continuare urmează prezentarea proiectului realizat în Simulink.

4.8.1 Proiectul în Simulink

Proiectul este alcătuit din șapte blocuri denumite: „2-PAM”, „OFDM”, „Interpolation”, „Mixer”, „Automatic Gain Control”, „Output” și „Control LED”. În figura 4.61 de mai jos este prezentată schema proiectului în Simulink.

Figura 4.61 Schema în Simulink a proiectului OFDM

Blocul „2-PAM” generează semnalul „2-PAM” având alfabetul format din două simboluri care vor fi folosite pentru a modula subpurtătoarele semnalului OFDM, semnal produs de blocul „OFDM”. Asupra semnalului vor fi aplicate două interpolari, prima cu factorul de interpolare 2, iar cea de-a două cu factorul 10, pentru ca mai apoi, blocul Mixer să-l împartă în cele două componente în fază și în cuadratură pe care le va modula cu cele două purtătoare defazate cu . „Automatic Gain Control” realizează adaptarea nivelului semnalului la cerințele impuse de „ALSA Audio Playback” care reprezintă ieșirea analogică a lui Raspberry Pi3.

2-PAM

Blocul 2-PAM este format din trei elemente: „Bernoulli Binary Generator”, „M-PAM Modulator Baseband” și „Complex to Real-Imag”. Funcția acestui bloc este cunoscută, el generează un semnal „2-PAM” folosind aflabetul format din simbolurile {-1,1}. „Bernoulli Binary Generator” are configurația din figura 4.62 de mai jos.

Figura 4.62 Fereastra de configurare a blocului „Bernoulli Binary Generator”

Funcția sa este de a genera informația binară, probabilitatea de apariție a biților 0 și 1 fiind egală. Perioada de eșantionare este de (20/48000)*64/48, formula acestui parametru fiind următoarea:

„Upsampling factor” este dat de blocul numit „Interpolation”, „n” reprezintă numarul de biți asociați unui simbol, „Audio Sampling Frecquency” reprezintă frecvența de eșantionare a blocului „ALSA Audio Playback”, „N” reprezintă numarul de subpurtătoare și „Nu” numarul de subpurtătoare utilizate pentru transmiterea datelor digitale.

Parametrul „Samples per frame” ne dă numărul de eșantioane care formează un cadru, acesta are valoarea 48, de menționat faptul că acest parametru trebuie sa coincidă cu „Nu” (numărul de eșantioane care formează un cadru).

Ca rezultat al alegerilor făcute în ceea ce privește acesti parametri, fiecare cadru va fi format din 48 de simboluri.

Celelalte două elemente ale blocului „2-PAM” au fost descrise în proiectul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3” adoptând configurațiile prezente în acel subcapitol.

OFDM

Generează un semnal în banda de bază corespondent unei modulații OFDM cu 64 de subpurtătoare dintre care doar 48 sunt folosite pentru transmiterea simbolurilor, celelalte 16 au asociate amplitudini nule (15 subpurtătoare virtuale și o subpurtătoare DC corespondentă frecvenței 0) Așezarea subpurtătoarelor este următoarea:

-8 subpurtătoare virtuale cu amplitudine 0, numerotate de la 1 la 8;

-24 supurtătoare utilizate pentru transmiterea simbolurilor 1 – 24, numerotate de la 9 la 32;

-subpurtătoarea DC tot cu amplitudine 0, numerotată 33;

-24 supurtătoare utilizate pentru transmiterea simbolurilor 25-48, numerotate de la 34 la 57;

-7 subpurtătoare virtuale cu amplitudine 0, numerotate de la 58 la 64.

Banda semnalului este cuprinsă în intervalul [ conform criteriului lui Nyquist, unde reprezintă frecvența de eșantionare, N reprezintă numărul de subpurtătoare, iar reprezintă distanța dintre oricare două subpurtătoare consecutive.

Blocul este format din șase elemente denumite: „Multiport Selector”, „Constant”, „Pad”, „Matrix Concatenate”, „IFFT” și „Frame Conversion”.

Multiport Selector

Funcția sa este de a diviza fiecare cadru de la intrare în două cadre egale, formate din 24 de simboluri pe care le va transmite la ieșire. Conform parametrului „Indices to output”, către prima ieșire vor fi trimise simbolurile numerotate de la 25 la 48, în timp ce, către a doua ieșire vor fi trimise simbolurile de la 1 la 24 din fiecare cadru. Prima ieșire este conectată la intrarea blocului „Pad” în timp ce, cea de-a doua ieșire este conectată la una dintre intrările blocului „Matrix Concatenate”.

Figura 4.63 Configurația blocului „Multiport Selector”

Pad

Acest bloc primește simbolurile numerotate de la 25 la 48 de la „Multiport Selector” și generează un vector cu 39 de elemente, conform parametrului „Column size”. Dintre cele 39 de elemente, primele 24 sunt reprezentate de simbolurile de la intrare, în timp ce următoarele 15 reprezintă subpurtătoarele virtuale. Vectorul va fi trimis la cea de-a două intrare a lui „Matrix Concatenate”. Configurația blocului este prezentă în figura 4.64.

Figura 4.64 Configurația blocului „Pad”

Matrix Concatenate

„Matrix Concatenate” are trei intrari și o singură ieșire realizând concatenarea celor trei semnale aplicate la intrarea sa și trimițând semnalul obținut catre blocul următor.

La prima intrare este conectat blocul „Constant” care introduce subpurtătoarea DC având frecvența 0. A doua intrare este conectată la ieșirea blocului „Pad” primind de la acesta simbolurile 25 – 48 urmate de cele 15 subpurtătoare virtuale. La cea de-a treia intrare este conectată cea de-a doua ieșire a blocului „Multiport Selector”, de aici provenind simbolurile numerotate de la 1 la 24. Semnalul de la ieșire va fi format prin concatenarea celor trei intrări respectând ordinea acestora. Astfel vom avea la ieșirea acestui bloc un singur cadru format din cele trei intrări care conțin simbolurile asociate subpurtătoarelor.

IFFT

„IFFT” generează semnalul OFDM în banda de bază folosind transformata Fourier discretă inversă. Astfel vor fi asociate simbolurilor de la intrare, în domeniul timp, subpurtătoarele ortogonale în domeniul frecvență. Configurația blocului este cea din figura 4.65.

Figura 4.65 Fereastra de configurație a blocului „IFFT”

Frame conversion

Funcția blocului „Frame conversion” este de a converti modul de eșantionare al semnalului de la ieșire. Conform parametrului „Sampling mode of output signal” se revine la modul bazat pe cadre necesar blocurilor următoare din proiect. Fereastra de configurare a acestui bloc poate fi văzută în figura 4.66.

Figura 4.66 Fereastra de configurație a blocului „Frame Conversion”

Interpolation

„Interpolation” este alcătuit din patru elemente, două dintre ele au rolul de a crește rata de eșantionare denumite „Upsample” și „Upsample1”, iar celelalte două fiind două filtre digitale amplasate după fiecare bloc de creștere a ratei, denumite „Digital Filter Design” și „Digital Filter Design1”.

Blocul de ieșire a lui Raspberry Pi3 necesită o frecvență de eșantionare de 48000 de eșantioane pe secundă ceea ce înseamnă că frecvența de eșantionare a semnalului aplicat la intrarea blocului „Output” trebuie să aibă această valoare. Semnalul generat de blocul „OFDM” are frecvența de eșantionare de 48000/20=2400 de eșantioane/secundă, iar rata de eșantionare configurată în blocul „Bernoulli Binary Generator” este (48000/20)*(48/64)=1800 eșantioane/secundă, acesta fiind crescută cu factorul 64/48 în interiorul blocului „OFDM” deoarece vor fi generate cadre care conțin 64 de elemente pentru fiecare cadru de 48 de elemente aplicat la intrare.

Pentru ca frecvența de eșantionare să aibă valoarea 48000 de eșantioane/secundă este necesară o creștere a acesteia de la valoarea 2400 eșantioane/secundă cu un factor egal cu 20, lucru realizat de către blocul „Interpolation”.

Primul bloc denumit „Upsample” multiplică frecvența cu un factor egal cu 2, în timp ce, blocul „Upsample1” crește rata cu un factor egal cu 10. Am ales realizarea procedurii în două etape pentru a reduce nivelul ridicat de calcule necesare.

„Upsample” introduce câte un „0” între două eșantioane, noua frecvență de eșantionare fiind 4800 eșantioane/secundă, iar filtrul „Digital Filter Design” va elimina unda dintre cele două repetiții periodice din spectrul semnalului.

Factorul de multiplicare al blocului „Upsample1” este 10, acesta va introduce nouă valori de „0” între două eșantioane consecutive, iar filtrul „Digital Filter Design1” va elimina nouă repetiții periodice din cele zece ale spectrului semnalului, noua frecvență de eșantionare va fi 48000 eșantioane/secundă. În figura 4.67 este prezentată configurația blocului „Upsample”. În cazul blocului „Upsample1”, singurul parametru modificat fiind „Upsample factor, L” având valoarea 10, după cum am explicat mai sus.

Figura 4.67 Configurația blocului „Upsample”

Primul filtru va avea frecvența Fs de 4800 Hz, iar cel de-al doilea de 48000 Hz. Parametrul „Fpass” reprezintă limita superioară a benzii care trebuie păstrată, iar în câmpul „Fstop” trebuie trecută valoarea frecvenței precedente de eșantionare scăzând din aceasta banda care trebuie păstrată. Astfel pentru filtrul „Digital Filter Design” „Fpass” va fi 1000, iar „Fstop” va fi 1400, în timp ce, pentru „Digital Filter Design1” „Fpass” este tot 1000, iar „Fstop” va avea valoarea 3800.

(a) Digital Filter Design (b) Digital Filter Design1

Figura 4.68 Configurația blocurilor „Digital Filter Design” și „Digital Filter Design1”

Mixer

Blocul „Mixer” este compus din șase elemente denumite: „Complex to Real-Imag1”, „Cosine Wave”, „Sine Wave”, „Product”, „Product1” și „Add”. Funcția generală a sa este de a modula semnalul, translatându-l din banda de bază în banda centrată pe frecvența semnalelor provenite de la blocurile „Cosine Wave” și „Sine Wave”.

Blocul „Complex to Real-Imag1” separă partea reală de cea imaginară și le trimite către blocurile „Product” și respectiv „Product1”. Primul bloc de multiplicare va produce componenta în fază prin înmulțirea părții reale cu semnalul provenit de la blocul „Cosine Wave”, iar cel de-al doilea bloc va produce componenta în cuadratură, înmulțind partea imaginară cu semnalul provenit de la blocul „Sive Wave”. Cele două componente vor fi însumate de către blocul „Add”.

Cu alte cuvinte, blocul „Mixer” este de fapt un modulator clasic în cuadratură. Mai multe detalii despre cum funcționează acest bloc putem găsi în cadrul subcapitolului „Modulația cu salt de fază în cuadratură (QPSK) pe Raspberry Pi3”. Pentru blocurile „Cosine Wave” și „Sine Wave” am ales configurațiile din figura 4.69.

(a)Cosine Wave (b)Sine Wave

Figura 4.69 Configurația blocurilor „Cosine Wave” și „Sine Wave”

Automatic Gain Control

Blocul „Automatic Gain Control” a fost descris în subcapitolul „Modulația impulsurilor în amplitudine (PAM) pe Raspberry Pi3”, în subcapitolul curent adoptând aceeași configurație, fiind folosit din aceleași considerente pentru care a mai fost implementat. Principală funcție a sa este adaptarea semnalului primit de la „Mixer” la gama de niveluri cerută de ieșirea lui Raspberry Pi3.

Output

Reprezintă blocul de ieșire al sistemului, corespondent ieșirii lui Rapsberry Pi3. Este compus din elementele numite „Data Type Conversion”, „Matrix Concatenate” și „ALSA Audio Playback”, atât funcția celor trei cât și funcția blocului mare au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”.

Control LED

Este format din trei elemente: „Inpuls Generator”, „Data Type Conversion1” și „LED”. De asemenea, și acestea au fost descrise în subcapitolul „Raspberry Pi3 folosit ca generator de semnal”, în cadrul proiectului curent adoptând aceleași setări.

4.8.2 Echipamente necesare pentru implementarea proiectului OFDM

Pentru implementarea acestui proiect vom avea nevoie de următoarele echipamente:

– Raspberry Pi3

– Micro SD card de cel puțin 4GB

– Cablu USB pentru alimentare

– Cablu de rețea

– Placă de sunet externă

– 1 cabluri RCA – jack

– 1 adaptoare BNC-RCA

– Laptop cu Simulink

– Analizor Spectral

Figura 4.70 Conectarea echipamentelor pentru implementarea proiectului OFDM

După realizarea configurației din figura 4.70 și după încărcarea proiectului pe Raspberry Pi3, vom putea vizualiza pe analizor spectrul semnalului OFDM rezultat în urma implementării proiectului.

4.8.3 Rezultatele testării

După conectarea echipamentelor conform figurii 4.70 am încărcat pe Raspberry Pi3 proiectul OFDM realizat în Simulink. În urma punerii în funcțiune a sistemului am obținut rezultatul din figura 4.71 cu ajutorul analizorului spectral.

Figura 4.71 Spectrul semnalului OFDM rezultat în urma implementării proiectului pe Raspberry Pi3

După cum am spus și în descrierea proiectului, spectrul semnalului este centrat pe frecvența purtătoarelor în cuadratură provenită de la cele două elemente „Cosine Wave” și „Sine Wave” ale blocului „Mixer”, și anume 12.5kHz. Sunt reprezentate cele 64 de subpurtătoare, dintre care doar 48 utilizate pentru transmiterea datelor digitale.

CONCLUZII

Învestiția în echipamentele radio definite prin software este esențială pentru dezvoltarea infrastructurii telecomunicațiilor, oferind o soluție multifuncțională, eficientă din punct de vedere al cosumului de energie, ușor de modernizat și care suportă o varietate largă de servicii și standarde. Obiectivul principal al proiectului a fost dezvoltarea unor platforme radio defint prin software ce presupun implementarea unor transmițătoare care folosec diferite tipuri de modulații digitale precum PAM, ASK, FSK, QPSK, QAM și OFDM, utilizând ca software mediul de dezvoltare Simulink și ca hardware un microcalculator Raspberry Pi3 model B. Am parcurs procesul complet necesar elaborării unui proiect SDR, de la proiectarea sistemelor și simularea lor, până la implementarea hardware, punerea în funcțiune pe Raspberry Pi3, măsurarea acestora și analiza rezultatelor.

Primul capitol prezintă informații generale despre SDR, avantaje și dezavantaje ale respectivelor sisteme, capitolul 2 conține descrierea teoretică a tipurilor de modulații folosite în implementarea transmițătoarelor, în timp ce, în capitolul 3 sunt descrise echipamentele, hardware și software utilizate pentru realizarea proiectelor, dar și configurația software necesară funcționării aplicațiilor și metodele de lansare în execuție ale acestora.

În ultimul capitol sunt prezentate proiectele dezvoltate, fiind detaliați pașii pentru implementarea lor, dar și descrierea în detaliu a fiecăruia în parte. În plus, sunt prezentate și rezultatele obținute în urma măsurătorilor alături de concluzii referitoare la acestea. Primele două aplicații folosesc Raspberry Pi3 pe post de generator de semnal și respectiv pe post de filtru digital, având ca scop familiarizarea cu Simulink, cu placa de dezvoltare și cu realizarea conexiunii dintre cele două. În toate celelalte aplicații am implementat pe Raspberry transmițătoare digitale ce se bazează pe tipurile de modulații descrise.

Rezultatele obținute în urma realizării acestei lucrări arată că pot fi implementate software diferite sisteme radio mai mult sau mai puțin complexe folosind ca suport hardware doar un microcalculator de uz general cu preț accesibil. Comportamentul echipamentelor utilizate a fost aproape ireproșabil, rezultatele fiind cele sperate. Am întâmpinat însă și probleme în special cu placa audio externă, având o calitate mai modestă, de multe ori semnalul fiind afectat din acest motiv, iar în cazul aplicațiilor care presupuneau introducerea în sistem a unui semnal provenit de la generator, uneori, placa nu reușea să proceseze ambele semnale simultan. O altă complicație întâmpinată a fost în momentul lansării în execuție a unora dintre proiecte folosind „External Mode”, uneori neputând fi stabilită conexiunea dintre mediul de dezvoltare și Raspberry Pi3. De aceea am ales lansarea aplicațiilor în execuție prin „Deploy to Hardware”.

Consider că rezultatele acestei lucrări reprezintă un prim pas important pentru dezvoltarea unor echipamente radio definite prin software, caracterizate de o arhitectură flexibilă, permițând în anumite situații configurarea în timp real pentru adaptarea la diferite standarde, forme de undă, benzi de frecvență și chiar moduri de funcționare.

În ceea ce privește direcțiile viitoare de cercetare legate de tema abordată pot fi dezvoltate transmițătoare mult mai complexe, bazate pe tipuri de modulație cu ordin superior precum 8-PSK, 8-FSK, 32-QAM, și altele. O altă posibilă direcție de cercetare este implementarea sistemelor de recepție pentru fiecare transmițător proiectat în cadrul acestei lucrări.

Similar Posts