Pachet de Programe Java Pentru Proiectarea Si Simularea Blocurilor de Filtre

Capitolul 1

Considerații tactico-tehnice

Nevoia de acces rapid la informație, indiferent de domeniul de interes, a dus la dezvoltarea explozivă a Internetului. Amploarea pe care acesta a luat-o în ultimii ani este deja o realitate. În momentul de față Internetul reprezintă o imensă bază de date care poate fi accesată și utilizată de oricine, dar totodată poate fi și îmbogățită.

În general o pagină de Web are ca scop prezentarea unui obiect, a unei activități sau a unei probleme. Modul în care tema site-ului este abordată este foarte important. Cele mai multe site-uri se bazează pe text și poze, care în cele mai multe cazuri sunt suficiente, dar pentru a se putea crea pagini de Web mai complexe, care să conțină mai mult decât text și poze, era necesar un limbaj de programare capabil să creeze aplicații care să poată fi rulate de către un browser de Web. Java este limbajul care s-a impus în acest sens.

Astfel și în domeniul comunicațiilor și mai ales al prelucrării semnalelor s-au creat o multitudine de site-uri de Web. Folosind un motor de căutare pe Web se poate găsi un mare număr de site-uri dedicate domeniului. O astfel de pagină Web, poate conține documentație despre o anumită temă și rezultate obținute în urma simulării cu diverse programe dedicate, dar el devine mult mai interesant și mai elocvent atunci când conține și aplicații care pot fi rulate „online” de către vizitatorul site-ului, mai ales dacă acestea sunt și interactive .

Utilitatea unor astfel de pagini Web este majoră, în special în scop didactic. Un astfel de site poate funcționa foarte bine ca un „laborator online” al unei instituții de învățământ, permițând învățarea de la distanță.

Conținutul unui astfel de „laborator online” poate fi complex. El va fi structurat ca o platformă de laborator. În primul rând site-ul va conține un breviar teoretic care va prezenta problema tratată alături de câteva exemple de rezultate obținute, pentru ca în final să ofere utilizatorului posibilitatea de a obține singur rezultatele simulării prin intermediul aplicației existente. Pentru a putea fi cât mai elocventă, aplicația trebuie să ofere utilizatorului un meniu de modificare a parametrilor sistemului cât mai bogat pentru a asigura un cât mai bun control asupra simulării, proprietate pe care limbajul Java o permite. Având la dispoziție o interfață ușor de utilizat, dar totuși complexă, utilizatorul va putea folosi aplicația pentru o bună înțelegere a problemei tratate.

Un alt aspect avantajos al acestor „laboratoare Online”, îl constituie faptul că pot fi folosite link-uri către alte site-uri similare. Astfel se pot face trimiteri către anumite pagini de Web, indiferent de locația acestora, pentru explicarea detaliată a anumitor aspecte care sunt folosite în problema tratată, însă nu fac obiectul studiului și deci nu vor fi tratate explicit.

Având la dispoziție un astfel de site se poate asigura foarte ușor „învățarea de la distanță”, lucru ce poate fi util într-un mediu studențesc cu acces la Internet, cum este cel al Instituției noastre. Astfel s-ar putea crea un site al catedrei, unde să existe diverse aplicații legate de problemele studiate la cursuri, aplicații pe care studenții le-ar putea folosi pentru o mai bună înțelegere a temelor tratate, chiar și din cămin.

Pentru a demonstra cele spuse mai sus, am realizat un astfel de site de Web care tratează problema blocurilor de filtre folosite în descompunerea unui semnal în subbenzi și apoi refacerea sa. Site-ul are o structură bazată pe cele prezentate anterior. El conține o prezentare teoretică a blocurilor de filtre și a metodei de proiectare folosite alături de aplicația Java realizată pentru simularea blocului de filtre.

Problema tratată a fost aleasă deoarece domeniul prelucrării multirată a semnalelor are o importanță crescândă în dezvoltarea comunicațiilor numerice. Acest domeniu are ca principiu de bază prelucrarea semnalelor la rate de eșantionare diferite, realizabil cu ajutorul proceselor de decimare (frecvența de eșantionare scade prin considerarea unui număr mai mic de eșantioane ale semnalului, cu respectarea criteriului lui Nyquist de eșantionare) și interpolare (frecvența de eșantionare crește prin inserarea unor eșantioane între două eșantioane ale semnalului).

Sistemele multirată bazate pe blocuri de filtre sunt folosite frecvent în următoarele domenii:

sisteme de comunicații;

sisteme audio digitale;

codarea de subbandă a semnalelor vocale și a semnalelor imagine;

codarea progresivă a semnalelor imagine;

sisteme de asigurare a confidențialității semnalelor vocale;

filtre multirată adaptive;

analiză spectrală;

identificarea sistemelor variabile în timp;

descompunerea timp-frecvență etc.

În cadrul sistemelor de comunicații blocurile de filtre multirată M-bandă sunt folosite în scopul transmiterii cât mai eficiente a semnalelor. Pentru realizarea acestui scop semnalul care trebuie transmis se împarte într-un număr de semnale subbandă (în funcție de numărul de canale avute la dispoziție). În funcție de criteriul de descompunere optimă subbenzile pot fi de lărgimi egale sau nu, iar la nivelul semnalelor subbandă pot avea loc operații de codare. Cel mai frecvent utilizat criteriu de descompunere îl reprezintă cel al repartizării uniforme a energiei semnalului în subbenzi, criteriu numit și compactarea energiei. Astfel, repartiția uniformă a energiei semnalului în subbenzi crește rezistența la perturbațiile de tip aditiv ce se manifestă în canalele de comunicații.

Structura lucrării

Lucrarea realizată are o structură ce urmărește în primele capitole prezentarea aspectelor teoretice privind problema tratată, pentru ca apoi să demonstreze eficiența metodei de proiectare folosite prin rezultatele obținute, totodată evidențiind și avantajele limbajului de programare Java, folosit pentru realizarea aplicației.

Astfel, în Capitolul 2, sunt analizate conceptele fundamentale ale prelucrării multirată, decimarea și interpolarea în perspectiva folosirii lor în aplicația realizată. Capitolul 3 prezintă problematica blocurilor de filtre digitale uniforme din punct de vedere al structurii și proprietăților lor.

Aceste prime două capitolele, prin structură și conținut, constituie un fundament unitar, teoretic pentru Capitolul 4, care este dedicat metodei de proiectare a blocurilor de filtre modulate pe baza unui filtru prototip în cosinus ridicat, conținând și implementarea soft a algoritmului de proiectare.

Metodele de măsurare a performanțelor blocurilor de filtre sunt prezentate în Capitolul 5, pentru ca apoi în Capitolul 6 să fie evaluate efectele zgomotului aditiv asupra reconstrucției semnalului descompus în subbenzi, evaluarea făcându-se tocmai pe baza uneia din metodele de măsurare a performanțelor prezentate în capitolul precedent.

Pentru prezentarea concepției de proiectare, Capitolul 7 descrie schema bloc folosită la realizarea blocului de filtre folosit în descompunerea unui semnal în 2, 4 sau 6 subbenzi și refacerea lui la recepție.

Capitolul 8 este dedicat prezentării limbajului Java folosit pentru realizarea aplicației, în vederea sublinierii avantajelor acestuia ca instrument în aplicațiile de Web. Proiectarea programelor de simulare este descrisă în cadrul Capitolului 9, alături de rezultatele obținute.

Lucrarea se încheie cu un capitol de Concluzii, urmat de 3 Anexe care prezintă rezultate grafice obținute pentru mai multe cazuri tratate și pentru mai multe tipuri de semnale.

Capitolul 2

Sisteme multirată

Sistemele în care procesul de prelucrare implică și conversia (modificarea) ratei (frecvenței) de eșantionare se numesc sisteme multirată.

În multe aplicații practice ale procesării semnalelor digitale apare problema schimbării frecvenței de eșantionare a semnalului prin creșterea sau scăderea acesteia.

De exemplu în domeniul audio digital apare problema filtrării trece-jos a semnalului audio analogic pentru limitarea superioară a spectrului la frecvența fM, în vederea digitizării. Filtrul analogic ar trebui să aibă o bandă de tranziție foarte mică, ceea ce este mai greu de realizat. Ca alternativă se poate proceda astfel: se folosește in filtru trece-jos cu bandă de tranziție mai mare care este mai ușor de realizat; se supraeșantionează semnalul filtrat și se elimină suprapunerea (alierea) spectrală; semnalul digital obținut este trecut printr-un filtru digital trece-jos cu fază liniară, după care se realizează o reducere a frecvenței de eșantionare (adică o subeșantionare) cu același factor cu care a fost realizată supraeșantionarea.

Operațiile elementare în procesarea digitală multirată a semnalului sunt decimarea și interpolarea.

2.1 Decimarea

Constă în reducerea ratei de eșantionare a unui semnal, iar blocul corespunzător se numește decimator.

Un decimator de factor M la intrarea căruia se aplică un semnal x(n) va produce la ieșirea sa un semnal

xD(n)=x(Mn) (M fiind întreg), (2.1)

adică doar eșantioanele lui x(n) care apar la intervale de timp multiple de M sunt reținuți de decimator.

Fig. 2.1 . Decimator cu factor de decimare M

Fig. 2.2. Demonstrația decimării cu M=2 (eșantioanele indicate prin săgeți sunt cele reținute)

Dacă semnalul de intrare x[n] cu spectrul de bază limitat la Fx/2 este caracterizat de frecvența de eșantionare Fx=1/Tx, iar semnalul de ieșire de frecvența de eșantionare Fy=1/Ty, unde Tx și Ty sunt perioadele de eșantionare corespunzătoare. Reducând rata de eșantionare, adică selectând simplu fiecare a M-a valoare a lui x[n], semnalul rezultat are o funcție de densitate spectrală obținută prin repetarea periodică a lui X(ejω) cu o frecvență de repetiție Fx/M (mai mică decât cea inițială) ceea ce poate conduce la efecte de aliere.

Făcând o analiză în frecvență a decimatorului se observă că:

(2.2)

adică,

Se extinde de M ori spectrul X(ejω) astfel încât să se obțină X(ejω/M);

Se creează M-1 versiuni noi ale spectrului X(ejω/M) prin deplasarea succesivă cu 2π a acestuia;

Spectrul astfel creat se atenuează de M ori.

Se remarcă posibilitatea suprapunerii spectrului X(ejω/M) peste imaginile sale translatate, obținându-se efectul de aliere.

Fig. 2.3 Subeșantionarea semnalului x[n] cu M=3:

spectrul semnalului eșantionat în funcție de frecvența normată

spectrul semnalului subeșantionat cu M=3

Pentru a elimina suprapunerea spectrală trebuie redusă banda de frecvențe a lui x[n] la Fmax= Fx/2M, sau echivalent ωmax=π/M. Secvența de intrare x[n] este trecută printr-un filtru trece-jos, care are funcția pondere h[n] și răspunsul în frecvență HD(ejω) ce în mod ideal satisface condiția:

(2.3)

Pentru a evita alierea spectrală în schema de decimare se va introduce un filtru de antialiere spectrală ca în figura:

Fig. 2.4 Schema de decimare cu filtru antialiere

Conform acestei scheme blocul de decimare conține două etaje, un filtru de antialiere spectrală și blocul de subeșantionare cu un factor M.

Secvența de ieșire din filtru v[n] este:

(2.4)

Aceasta este subeșantionată cu factorul M pentru a produce xD[n]. Astfel se poate scrie:

(2.5)

Spectrul acestui semnal împreună cu funcția în frecvență a filtrului antialiere sunt prezentate în continuare:

Fig. 2.5. a) Subeșantionarea semnalului x[n] cu M=3:funcția în frecvență a filtrului de reducere a efectelor de aliere;

Fig. 2.5. b) Subeșantionarea semnalului x[n] cu M=3: spectrul semnalului filtrat

În urma filtrării cu filtrul antialiere spectrul semnalului subeșantionat va arăta astfel:

Fig. 2.6. Spectrul semnalului subeșantionat

Deoarece rata corespunzătoare de eșantionare a lui xD[n] este Fy=1/Ty, frecvența normată este notată cu ωy, astfel:

(2.6)

unde F este frecvența normată. Dar:

(2.7)

și

(2.8)

este frecvența normată corespunzătoare semnalului eșantionat cu perioada Tx. Rezultă:

ωy=Mωx. perioada Tx. Rezultă:

ωy=Mωx. (2.9)

Astfel domeniul de frecvență este inclus în domeniul de frecvență corespunzător , prin procesul de decimare.

2.2 Interpolarea

Reprezintă creșterea ratei de eșantionare a semnalului și constă în supraeșantionarea (upsampling) cu un factor întreg U.

Interpolatorul (expandorul) este dispozitivul care având la intrare semnalul x[n] va genera la ieșire secvența:

(2.10)

Fig. 2.7 Interpolator cu factor de interpolare U

Fig. 2.8. Demonstrația expandării cu U=2

O creștere a frecvenței de eșantionare cu un factor întreg U poate fi realizată interpolând U-1 eșantioane noi între valorile succesive ale semnalului. Secvența yE[m] are o rată de eșantionare Fy=UFx, care se obține din x[n], adăugând U-1 zerouri între valorile succesive ale lui x[n].

Schema completă pentru expandare conține pe lângă interpolator și un filtru anti-imagine:

Fig. 2.9. Schema de expandare cu filtru anti-imagine

Secvența v[n] va fi de forma:

(2.11)

Spectrul secvenței v[n] se obține evaluând transformată Z pe cercul de rază unitate din planul z.

Transformata z a secvenței va fi:

(2.12)

Iar spectrul său va fi de forma:

(2.13)

unde ωy semnifică frecvența normată cu noua rată de eșantionare Fy, adică

(2.14)

Acum relația între frecvențele de eșantionare este Fy=UFx și frecvențele normate ωx și ωy sunt legate prin relația:

(2.15)

Spectrele și sunt reprezentate în figura de mai jos:

Fig. 2.10. a) Expandare cu U=4: spectrul semnalului eșantionat

Fig. 2.10. b) Expandare cu U=4: spectrul semnalului expandat

Deoarece frecvențele de bază ale lui x[n] sunt situate toate în domeniul , secvența v[n] poate fi trecută printr-un filtru trece jos ideal cu răspunsul în frecvență , definit astfel:

(2.16)

Deci spectrul de ieșire este:

(2.17)

În domeniul frecvență, se observă că spectrul secvenței de la ieșirea sistemului reprezintă versiunea de U ori comprimată a spectrului X(ejω).

În continuare sunt prezentate reprezentările funcției de transfer a filtrului anti-imagine și spectrul semnalului interpolat după filtrare;

Fig. 2.11. a) Expandare cu U=4: funcția filtrului anti-imagine

Fig. 2.11. b) Expandare cu U=4: spectrul semnalului expandat după filtrare

Capitolul 3

Blocuri de filtre digitale

Un bloc de filtre este un set de filtre “trece-bandă” care, fie au o intrare comună, fie au ieșirile însumate, fiind folosite pentru descompunerea semnalelor în subbenzi și pentru refacerea semnalelor descompuse (fig. 3.1).

Blocurile de filtre uniforme constau în filtre trece-jos, trece-sus și trece-bandă care partiționează spectrul semnalului în benzi adiacente de lățimi egale pentru ca apoi să recombine aceste benzi de frecvențe.

3.1. Filtre M-bandă

Structura din figura 3.1 a) se numește bloc de filtre M-bandă pentru analiză și este realizată cu filtrele de subbandă Hk(z) – filtre de analiză. Aceste filtre sunt folosite pentru descompunerea semnalului într-un set de M semnale subbandă , fiecare semnal subbandă ocupând o porțiune din banda de frecvențe originală (semnalul este “analizat” prin separarea într-un set de benzi spectrale înguste).

Fig. 3.1 Bloc de filtre de analiză (a) și bloc de filtre de sinteză (b)

În figura 3.1.b) este prezentată o structură care are rolul de a combina un set de semnale subbandă într-un singur semnal . Această structură poartă numele de bloc de filtre de sinteză, fiecare filtru Gk(z) numindu-se filtru de sinteză.

Filtrele din compunerea blocurilor de filtre sunt caracterizate de funcția răspuns la impuls:

(3.1)

Astfel, coeficientul de ordinul zero este o constantă, iar toți ceilalți coeficienți corespunzători indicilor care sunt multipli de sunt egali cu zero.

Componenta polifazică de ordinul zero pentru H(z) este definită de relația :

(3.2)

care, pentru un filtru M-bandă, devine:

(3.3)

De asemenea, are loc egalitatea:

(3.4)

în care:

(3.5)

Din (3.3) și (3.4) rezultă că este satisfăcută egalitatea:

(3.6)

Evaluată pe cercul unitate, expresia de mai sus devine:

(3.7)

Egalitatea (3.7) arată că pentru orice suma răspunsurilor în frecvență în punctele, , … , este egală cu unitatea. În cazul în care este un filtru M-bandă de tip trece-jos, observația anterioară permite o interpretare suplimentară. Considerând, de exemplu, =2, vom obține un filtru jumătate-de-bandă. Din ecuația (3.7) rezultă că:

(3.8)

În particular, egalitatea (3.8) implică simetria față de punctul :

(3.9)

condiția de mai sus fiind prezentată în figura 3.2:

Fig. 3.2 Răspunsul în frecvență al unui filtru jumătate-de-bandă

Pentru un caz mai general al filtrelor M-bandă, acest tip de simetrie a FTJ poate fi garantată dacă se generează un FTJ cu frecvența de tăiere care să satisfacă ecuația (3.1). Se știe că răspunsul la impuls al unui FTJ ideal cu frecvența de tăiere este :

(3.10)

Se observă că relația de mai sus satisface cerințele din (3.1). Aplicând L’Hospital avem , iar . Pentru a obține un filtru FIR aplicăm o fereastră de durată limitată :

(3.11)

Alegerea ferestrei va determina “ascuțimea” caracteristicii de transfer în zona frecvenței de tăiere și valorile riplului în benzile de trecere și de blocare.

Folosirea filtrelor jumătate–de-bandă în blocurile de analiză simplifică efortul de calcul, jumătate din coeficienții filtrelor fiind zero. Filtrele M-bandă sunt de asemenea deosebit de folositoare în analiză deoarece permit o reconstrucție simplă la ieșirea filtrelor de analiză pentru un bloc de filtre oarecare. Pentru a demonstra acest lucru considerăm un filtru M-bandă , iar celelalte filtre de analiză sunt date de:

(3.12)

Se va furniza astfel o acoperire a benzii de frecvențe cu FTB de bandă . Din egalitatea (3.6) avem:

Dar este de fapt , astfel că:

(3.13)

Considerăm intrarea comună a filtrelor de analiză. Astfel, dacă ieșirea celui de-al i-lea filtru este rezultă:

(3.14)

Așadar, semnalul original poate fi reconstruit simplu prin însumarea ieșirilor filtrelor de analiză. Aceasta implică faptul că filtrele de sinteză trebuie să fie în armonie cu filtrele de analiză.

Filtrele M-bandă sunt foarte folosite ca filtre de interpolare. Interpolarea constă în doi pași: întâi se expandează semnalul prin umplere cu zerouri, apoi se filtrează trece-jos pentru eliminarea imaginilor benzii de bază între și . Semnalul interpolat este dat de:

(3.15)

unde este răspunsul la impuls al filtrului de interpolare.

Blocul de filtre de analiză

Un bloc de filtre de analiză (figura 3.3) este constituit din M filtre egal distanțate în frecvență având aceeași lățime de bandă. Spectrul semnalului de intrare X(z) poate fi inclus în domeniul . Blocul de filtre descompune acest spectru într-un set de subbenzi adiacente, fiecare având lățimea de bandă /M (considerăm toate semnalele și răspunsurile la impuls ca fiind reale).

Deoarece lățimea benzii semnalelor filtrate este aproximativ /M, rata de eșantionare după filtrare poate fi redusă cu un factor M.

(3.16)

Subeșantionarea realizează o translatare a semnalelor subbandă în banda de bază. Ecuația de mai sus poate fi scrisă în formă matriceală , astfel:

(3.17)

unde: vectorul semnalelor subbandă este dat de:

, (3.18)

matricea de modulare a blocului de filtre de analiză este:

, (3.19)

iar vectorul modulator al semnalului de intrare este dat de relația:

(3.20)

Dacă factorul de decimare M este egal cu numărul de canale se poate folosi termenul de bloc de filtre cu eșantionare critică. În acest caz, numărul total de eșantioane pe unitatea de timp pentru toate semnalele subbandă luate împreună are aceeași valoare cu numărul de eșantioane pe unitatea de timp ale semnalului de intrare X(z).

Fig. 3.3 Bloc de filtre de analiză cu M canale

Blocul de filtre de sinteză

Complementarul blocului de filtre M-bandă de analiză este blocul de filtre M-bandă de sinteză (figura 3.4). Filtrele Gl(z) ale acestui bloc au aceleași caracteristici de bază ca filtrele de analiză Hi(z).

Interpolând semnalele subbandă Xl(z) vor rezulta semnalele Xl(zM), l=0, 1, … M-1. Aceste semnale sunt filtrate de Gl(z) și apoi însumate pentru a obține semnalul de ieșire:

(3.21)

Această ecuație mai poate fi scrisă:

(3.22)

în care:

(3.23)

iar x(z) este dat de relația (3.18).

Fig. 3.4 Bloc de filtre de sinteză cu M canale

Blocuri de filtre cu codare de subbandă și factor de decimare maxim

Prin combinarea unui bloc de filtre de analiză (figura 3.3) cu un bloc de filtre de sinteză (figura 3.4) se obține un bloc de filtre cu codare de subbandă (BFCS) cu M canale (figura 3.5). Blocul de filtre de analiză împarte semnalul de intrare de bandă largă X(z) în M semnale subbandă, X0(z), X1(z) … XM-1(z) de benzi egale. Acestea pot fi codate, stocate sau transmise. În final este folosit blocul de filtre de sinteză pentru a reconstrui un semnal de ieșire , care trebuie să aproximeze cât mai bine semnalul original.

Semnalul de intrare are o lățime de bandă , iar semnalele subbandă au o lățime de bandă nominală /M. Când rata de eșantionare a semnalelor subbandă se reduce printr-un factor M, toate aceste semnale sunt eșantionate la cea mai mică rată posibilă. Un astfel de BFCS se numește cu eșantionare critică sau cu factor de decimare maxim. .

Fig. 3.5 Bloc de filtre cu codare de subbandă cu M canale

Analizând BFCS, cu blocul de filtre de sinteză descris de ecuația (3.18), versiunea modulată a semnalului de ieșire

(3.24)

poate fi reprezentată de vectorul modulator al semnalului de ieșire:

(3.25)

Din ecuația (3.24) avem:

(3.26)

în care

(3.27)

este matricea de modulare a blocului de filtre de sinteză. Blocul de filtre de analiză este descris de ecuația (3.17). Înlocuind vectorul semnalelor subbandă x(z) din relația (3.17) în (3.26) obținem relația dintre semnalele de intrare și ieșire ale BFCS:

(3.28)

Matricea de transfer F(z) este egală cu produsul dintre matricea de modulare a blocului de filtre de sinteză și transpusa matricii de modulare a blocului de filtre de analiză.

Blocul de filtre considerat nu are componente de aliere la ieșire dacă și numai dacă matricea F(z) are următoarea formă diagonală:

(3.29)

Dacă, în plus, F(z) este o funcție de tip trece-tot, atunci blocul de filtre nu introduce nici distorsiuni de amplitudine, iar dacă este cu fază liniară nu există distorsiuni de fază sau de timp de întârziere de grup. Dacă

(3.30)

unde este un număr real, avem un BFCS cu reconstrucție perfectă.

Funcția de distorsiuni și funcția de aliere

Matricea de transfer F(z) furnizează relația dintre vectorii modulatori la ieșirea blocului de filtre, și la intrare. Prima linie din matrice furnizează semnalul de ieșire :

(3.31)

Semnalul de ieșire depinde de semnalul de intrare original, adică cu =0 și de componentele sale de aliere , unde =1, 2, 3 … M-1. Pentru = 0 relația de mai sus definește funcția de transfer a blocului de filtre. Când se dorește reconstrucția perfectă această funcție de transfer descrie distorsiunile liniare ale blocului de filtre și se numește funcție de distorsiuni:

(3.32)

Alierea va fi descrisă de o funcție de aliere. Componentele de aliere ale semnalului de intrare, unde l=1, 2, 3 … M-1, nu se anulează între ele. Așadar, funcțiile de transfer ar trebui considerate separat. Totuși, în practică este necesară o funcție unică cu rolul de a descrie toată alierea în blocul de filtre și se definește funcția de aliere:

(3.33)

care însumează toate componentele de aliere necorelate.

Capitolul 4

Blocuri de filtre în cosinus ridicat modulate

Blocurile de filtre modulate sunt blocuri uniforme de filtre M-bandă care se obțin prin modularea unui filtru trece-jos , denumit filtru prototip. Un exemplu de filtru des folosit ca prototip este filtrul în cosinus ridicat, iar blocul de filtre obținut se numește bloc de filtre în cosinus ridicate modulate.

Structura blocului de filtre

Principiile care stau la baza proiectării blocurilor de filtre în cosinus ridicat modulate sunt următoarele:

Canalele blocului de filtre sunt formate dintr-o serie de deplasări echidistante în domeniul frecvență ale prototipului;

Funcțiile de transfer ale canalelor adiacente trebuie să fie aproximativ complementare între frecvențele centrale ale filtrelor;

Sunt compensate numai spectrele de aliere dintre două canale adiacente, celelalte spectre de aliere fiind suprimate printr-o atenuare suficient de mare în banda de blocare a filtrului prototip.

Deplasarea echidistantă în frecvență în blocurile de filtre se realizează cu modulația complexă. În general, reconstrucția nu este perfectă, datorită alierii și distorsiunilor lineare, dar erorile sunt destul de mici. Așadar, ne vom referi la reconstrucție “aproape perfectă”.

Cele M filtre de analiză … ale BFCS din figura 3.5 pot fi derivate dintr-un prototip trece-jos prin deplasarea repetată în frecvență a funcției de transfer . Dacă răspunsul la impuls este multiplicat printr-un factor , atunci răspunsul în frecvență al prototipului este deplasat spre dreapta cu :

(4.1)

Această deplasare este ilustrată în figura 4.1.

Fig. 4.1 Deplasarea în frecvență: filtrul prototip (a)

și răspunsul său în frecvență deplasat (b)

Obținem astfel din coeficienții reali ai răspunsului la impuls coeficienți complecși trece-bandă în răspunsul la impuls . Frecvența = este o excepție de la această regulă, deoarece și se obține un filtru trece-sus dintr-un filtru trece-jos .

Blocurile de filtre în cosinus ridicat modulate au la bază următoarele principii:

în ambele blocuri, de analiză și de sinteză, sunt folosite filtre complex modulate;

lățimea de bandă a prototipului este;

filtrele de canal sunt derivate din prototip prin modulare complexă la frecvențele ;

filtrele de canal sunt perechi, răspunsurile lor la impuls fiind complex conjugate.

Figura 4.2 ilustrează cele spuse mai sus.

Fig. 4.2 Schema în frecvență a blocului de filtre în cosinus ridicat modulate:

filtrul prototip (a) și subfiltrele complex modulate (b)

Din răspunsul la impuls al prototipului pot fi obținute următoarele două filtre, prin deplasări de frecvență cu și :

(4.2)

și

(4.3)

Acestea pot fi combinate pentru a obține filtrul real:

(4.4)

Toate celelalte filtre se formează în același mod, folosind o deplasare de frecvență de :

(4.5)

Rezultatul este un BFCS cu M filtre reale, fiecare dintre ele având banda .

Compensarea componentelor de aliere

Subeșantionarea în blocul de filtre de analiză mărește componentele de aliere pentru fiecare subfiltru complex modulat. Aceste componente de aliere apar la intervale de . Când filtrul prototip are banda limitată la , aceste componente nu se suprapun (figura 4.3).

Fig. 4.3 Componentele de aliere ale subfiltrului complex modulat

Totuși, componentele de aliere se suprapun cu răspunsurile în frecvență complex conjugate. De asemenea, componentele de aliere ale frecvențelor complex conjugate se suprapun cu răspunsurile originale. Acest fenomen este prezentat în figura 4.4.a).

Ecuația (4.4) va fi extinsă prin ponderarea filtrelor complex conjugate cu factori complecși. Pentru filtrul de analiză avem:

(4.6)

iar pentru blocul de filtre de sinteză

(4.7)

Considerăm, de exemplu, componentele spectrale ale semnalului de intrare din intervalul . În cel de-al treilea canal acestea pot ajunge la ieșire prin componenta de aliere a blocului de filtre de analiză și prin termenul al filtrului de sinteză . Această suprapunere este indicată de aria hașurată din figura 4.4.a). Aceleași componente spectrale pot ajunge la ieșire în al doilea canal, prin componenta de aliere și termenul al filtrului de sinteză (aria hașurată din figura 4.4.b)).

Fig. 4.4 Suprapunerea componentelor de aliere ale răspunsului în frecvență cu răspunsurile în frecvență complex conjugate asociate

O proprietate fundamentală a blocurilor de filtre în cosinus ridicat modulate este compensarea mutuală a două componente spectrale la ieșirea blocului de filtre. Aceasta se realizează prin alegerea corectă a coeficienților și . Când banda prototipului este limitată la , compensarea componentelor de aliere se petrece independent în toate intervalele dintre două frecvențe centrale adiacente.

Dacă factorii și sunt aleși corect, alături de compensarea tuturor componentelor de aliere vom avea și o funcție de distorsiuni cu fază lineară. Distorsiunile care apar din suprapunerea funcțiilor de transfer complex conjugate la și pot fi de asemenea evitate. Se obțin astfel toate răspunsurile la impuls ale blocului de filtre de analiză

(4.8)

și ale blocului de filtre de sinteză

(4.9)

unde . este numărul de canale, iar este numărul coeficienților răspunsului la impuls al filtrului prototip.

Modulul de program care calculează coeficienții filtrelor de analiză și de sinteză, pe baza relațiilor (4.8) și (4.9) este prezentat mai jos (cazul blocului cu 6 ramuri).

Calculul coeficienților filtrelor de analiză și de sinteză:

double[] coeff =coeficienti(); //coeficientii filtrului prototip

for(int i=0;i<N;i++){

intermed1[i]=2*Math.cos((1/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed2[i]=2*Math.cos((3/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed3[i]=2*Math.cos((5/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed4[i]=2*Math.cos((7/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed5[i]=2*Math.cos((9/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed6[i]=2*Math.cos((11/2)*(i-(N-1)/2)*Math.PI/M+Math.PI/4);

intermed1m[i]=2*Math.cos((1/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

intermed2m[i]=2*Math.cos((3/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

intermed3m[i]=2*Math.cos((5/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

intermed4m[i]=2*Math.cos((7/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

intermed5m[i]=2*Math.cos((9/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

intermed6m[i]=2*Math.cos((11/2)*(i-(N-1)/2)*Math.PI/M-Math.PI/4);

coeff_a1[i]=coeff[i]*intermed1[i];

coeff_a2[i]=coeff[i]*intermed2m[i];

coeff_a3[i]=coeff[i]*intermed3[i];

coeff_a4[i]=coeff[i]*intermed4m[i];

coeff_a5[i]=coeff[i]*intermed5[i];

coeff_a6[i]=coeff[i]*intermed6m[i];

coeff_s1[i]=coeff[i]*intermed1m[i];

coeff_s2[i]=coeff[i]*intermed2[i];

coeff_s3[i]=coeff[i]*intermed3m[i];

coeff_s4[i]=coeff[i]*intermed4[i];

coeff_s5[i]=coeff[i]*intermed5m[i];

coeff_s6[i]=coeff[i]*intermed6[i];

}

4.3. Filtrul în cosinus ridicat

Un filtru în cosinus ridicat are funcția de transfer : (4.10)

în care este lățimea de bandă absolută, iar parametrii și sunt dați de relațiile:

(4.11)

(4.12)

În relațiile de mai sus reprezintă lățimea de bandă la –6dB a filtrului în cosinus ridicat. Factorul de înclinare este definit de relația:

(4.13)

Caracteristica de transfer a filtrului este ilustrată în figura 4.5, iar răspunsul la impuls este dat de relația [Cch] :

(4.14) Fig. 4.5. Caracteristica filtrului în cosinus ridicat

În figura 4.6. sunt prezentate răspunsurile la impuls și caracteristicile de transfer pentru factorii de înclinare , și . Caracteristica de transfer pentru are lățimea de bandă minimă (), iar răspunsul la impuls are forma . Se observă că pe măsură ce banda absolută se mărește, caracteristica filtrului este mai ușor de realizat.

Fig. 4.6. Răspunsul în frecvență și timp pentru diferiți factori de înclinare

Conform principiilor de proiectare a blocurilor de filtre modulate în cosinus ridicat expuse la paragraful 3.1, vom avea:

(4.15.)

și înlocuind (din relația (6)) și (din relația (4)) în relația (5) obținem:

(4.16)

În relația (4.16) se observă că în punctul avem o nedeterminare de tipul . Calculând cu ajutorul regulii lui L’Hospital obținem:

(4.17)

Din relațiile (4.16) și (4.17) rezultă răspunsul la impuls al filtrului în cosinus ridicat:

(4.18)

Filtrul în cosinus ridicat este folosit ca filtru prototip în proiectarea blocurilor de filtre modulate în cosinus ridicat.

Secțiunea de program pentru calculul coeficienților unui filtru prototip în cosinus ridicat este prezentată mai jos.

Coeficienții filtrului sunt calculați pe baza relației (4.18). Ca date de intrare avem numărul de coeficienți ai filtrului, , numărul de benzi ale blocului pentru care se proiectează filtrul, și factorul de înclinare .

Asupra coeficienților filtrului acționează și o fereastră Hamming pentru a corecta riplul în benzile de trecere și de blocare (variabila ”win”).

Metoda de calcul a coeficienților filtrului prototip (cod Java):

double[] coeficienti(){

k=(N-1)/2;

for (int n=-k;n<0;n++) {

double temp=(4*r*n*Math.cos(Math.PI*n*(1+r)/(2*M))+

2*M*Math.sin(Math.PI*n*(1-r)/(2*M)))/((1-(2*r*n/M)*

(2*r*n/M))*r*2*n*M);

int i=k+n;

h[i]=temp;

}

double temp2=(1/(2*M))+(r/(2*M))*(4/Math.PI-1);

h[k]=temp2;

for (int n=1;n<k+1;n++){

double temp=(4*r*n*Math.cos(Math.PI*n*(1+r)/(2*M))+

2*M*Math.sin(Math.PI*n*(1-r)/(2*M)))/((1-(2*r*n/M)*

(2*r*n/M))*r*2*n*M);

int i=n+k;

h[i]=temp;

}

for (int n=-k;n<k+1;n++){

double w=0.54-0.46*Math.cos(2*Math.PI*n/(N-1));

double[] win=new double[N];

int i=n+k;

win[i]=w;

h1[i]=h[i]*win[i];

}

return h1;

}

Capitolul 5

Metode de măsurare a performanțelor blocurilor de filtre

Pentru măsurarea performanțelor unui bloc de filtre multirată se folosesc: câștigul de compactare (se determină uniformitatea repartiției energetice), matricea de energie (evaluarea componentelor de aliere și a componentelor semnalului în subbenzile blocului de filtre) și raportul semnal/zgomot de reconstrucție (verificarea proprietății de reconstrucție perfectă și evaluarea cantitativă a distorsiunilor introduse de blocul de filtre).

Câștigul de compactare

Câștigul de compactare () poate fi un criteriu de alegere a unei anumite structuri de bloc de filtre multirată din mulțimea soluțiilor posibile, această teorie fiind propusă în [TzA95] și [AkH92]. Se obține astfel o măsură a distribuției energiei în fiecare subbandă a sistemului.

Datorită zgomotelor existente în canalele aferente fiecărei subbenzi și datorită distribuției neuniforme a energiei în cele subbenzi ale sistemului, subbenzile cu energie mică vor fi afectate mai puternic de zgomote, rezultând astfel distorsiuni ale semnalului. Alegând o structură cu o distribuție cât mai uniformă a energiei aceste distorsiuni vor fi reduse. Pentru o distribuție uniformă trebuie ca să fie minim.

Expresia de calcul a câștigului de compactare pentru o structură cu subbenzi este:

(5.1)

unde este varianța semnalului de la intrare iar este varianța semnalului de pe ramura .

Matricea de energie

Matricea de energie realizează o analiză a distribuției energiei semnalului în sistemele multirată cu reconstrucție perfectă și evaluează efectele alierii. Vom analiza componentele de aliere și nonaliere la ieșirea ramurii a unui bloc de filtre (figura 5.1).

Fig. 5.1 Ramura a unui bloc de filtre multirată

Densitatea de putere la ieșirea interpolatorului este:

(5.2)

La ieșirile filtrelor vom avea:

(5.3)

(5.4)

Din relațiile (5.2), (5.3) și (5.4) rezultă:

(5.5)

relație ce poate fi scrisă astfel:

(5.6)

în care:

(5.7)

și

(5.8)

Din relațiile de mai sus se observă că reprezintă componenta folositoare (de nonaliere), iar este constituită din componente de aliere datorate decimării și interpolării. În final, pentru un semnal de intrare cu medie nulă, vom avea energia pe ramura :

(5.9)

în care:

(5.10)

(5.11)

Deci, se poate separa energia de la ieșirea ramurii în componentele sale de aliere și de nonaliere. Avantajul acestei metode de analiză pentru un bloc de filtre M-bandă este abilitatea ei de a descompune energia semnalului într-un plan timp-frecvență. Putem exprima energia semnalului descompus în ramuri sau subbenzi sub forma unei matrice de energie, definită de Akansu și Calgar în 1992:

(5.12)

Fiecare linie din matricea reprezintă una din benzile (canalele) blocului de filtre, iar coloanele corespund distribuției de energie în subbenzile de frecvență.

Raportul semnal/zgomot de reconstrucție

Raportul semnal/zgomot de reconstrucție (RSZ) este principala metodă de măsură a performanțelor unui bloc de filtre multirată și a proprietății de reconstrucție

perfectă. Schema după care se măsoară RSZ la intrarea și la ieșirea blocului de filtre, precum și eroarea de reconstrucție este prezentată în figura 5.4

Semnalul de la ieșirea blocului de filtre este defazat față de semnalul de la intrare cu eșantioane (gradul filtrelor) și trebuie amplificat pentru a compensa pierderile suferite ca urmare a prelucrării în blocul de filtre.

Fig. 5.4 Schema de calcul pentru și eroarea de reconstrucție

Pentru o apreciere cantitativă a la intrarea blocului de filtre, semnalul este însumat cu un zgomot cu o repartiție normală. Formula de calcul pentru de la intrarea blocului de filtre este următoarea:

(5.13)

iar la ieșire vom avea:

(5.14)

Pentru calculul erorii de reconstrucție se folosește formula:

(5.15)

În relațiile de mai sus reprezintă numărul de eșantioane în care sunt considerate semnalele și trebuie să se țină seama de defazarea și amplificarea semnalului .

În cadrul aplicației realizate, pentru evaluarea reconstrucției semnalului am folosit ultimul criteriu prezentat, calculând eroarea de reconstrucție.

Secțiunea de program pentru calculul erorii de reconstrucție este prezentată mai jos. Modalitatea de calcul a erorii a constat în realizarea unui bloc de evaluare a erorii de reconstrucție, bloc ce este introdus în schema de simulare înaintea recepției. Calculul erorii se bazează pe păstrarea valorilor eșantioanelor semnalului de intrare și ale celui recepționat în doi vectori și apoi realizarea diferenței între acestea .

public class bloc_eroare extends ET3.labAlive.awc.OnConditionStartableSystem {

public static float eroare;

public static double erdb;

float[] in=new float[100];

float[] out=new float[100];

float[] err=new float[100];

public bloc_eroare(String id) {

super(id,1,1,0);//(id,In,Out,t0)

}

public void startstep()

{

float signal = ((AnalogSignal)(((TerminationInPort)input[0]).getSignal())).ana;

out[0]=signal;

for (int i=out.length-1;i>0;i–){

out[i]=out[i-1];

}

float input;

if(bloc_start.alege.getSelectedIndex()==1){

input=SineSource.val;

}

else if ( bloc_start.alege.getSelectedIndex()==2)

{input=SinArmonicSource2.val;}

else

{input=SinArmonicSource3.val; }

in[0]=input;

for (int i=in.length-1;i>0;i–){

in[i]=in[i-1];

}

eroare=0;

for (int i=0;i<100;i++){

err[i]=Math.abs(in[i]-out[i]);

eroare=eroare+err[i];

int s=Math.round(eroare*100);

eroare=(float)(s)/100;

}

eroare=eroare/100;

erdb=20*Math.log(eroare);

long s2=Math.round(eroare*1000);

erdb=(double)(s2)/1000;

output[0].step(new AnalogSignal(signal));

}

Capitolul 6

Efectele zgomotului aditiv asupra reconstrucției

semnalelor descompuse în subbenzi

Pe orice canal de transmisiuni există în permanență o undă perturbatoare, care produce un zgomot ce se suprapune peste semnalul util. Valoarea efectivă a tensiunii undei purtătoare se numește tensiune de zgomot, iar puterea sa puterea zgomotului.

Unda perturbatoare obișnuită pe căile de transmisiune are un spectru de frecvență complex. În cazul particular, când în domeniul de frecvență care ne interesează, spectrul acestei unde este uniform, adică puterea zgomotului este proporțională cu lățimea benzii, se zice că avem un zgomot alb, prin comparație cu lumina albă.

Energia undei perturbatoare are diferite surse (cauze)., care pot fi situate fie în însăși calea telefonică (echipamentul sau linia ), fie în afara căii. Primele pot fi denumite zgomote interne, iar celelalte, zgomote externe.

6.1 Caracteristicile zgomotului alb

Zgomotul termic îndeosebi, și în mare măsură celelalte zgomote obișnuite din circuitele telefonice (zgomotul de intermodulație, zgomotul atmosferic, zgomotul de diafonie), au în banda de frecvență a unei căi telefonice un spectru practic uniform, adică sunt zgomote albe.

Un astfel de zgomot dintr-o cale telefonică poate fi considerat în mod aproximativ ca fiind format dintr-un număr foarte mare de componente, și deci exprimat de o relație de forma:

(6.1)

amplitudinile Ui și fazele i având valori aleatoare, independente între ele.

Valoarea tensiunii efective este dată de relația:

(6.2)

Dacă se integrează u2(t) de-a lungul unei perioade de timp suficient de mare, avem cu suficientă exactitate:

(6.3)

Puterea medie a tensiunii de zgomot pe o perioadă T suficient de mare, în cazul când ea se aplică pe o rezistență R, este dată de relația:

. (6.4)

Ca urmare a faptului că avem un număr mare de componente cu amplitudini și faze aleatoare, timpul t poate fi luat foarte mic. Mai exact, această problemă poate fi studiată cu ajutorul teoriei statistice, așa cum se va arăta în continuare.

Valorile momentane ale tensiunii de zgomot variază aleator în timp. În anumite momente, de exemplu când din întâmplare un număr foarte mare de componente au valoarea lor maximă, valoarea momentană a tensiunii de zgomot poate fi mult mai mare decât valoarea efectivă. Aceste momente sunt însă foarte rare. Datorită caracterului componentelor arătat mai sus, densitatea probabilității valorilor momentane ale tensiunii este dată de legea normală de repartiție. Legea normală de distribuție a densității de probabilitate a tensiunilor de zgomot va fi:

. (6.5)

Dacă se ia un interval de tensiuni, cuprins între valorile u și u+du, probabilitatea ca valoarea tensiunii să fie cuprinsă în acest interval este:

. (6.6)

Constanta , denumită abatere pătratică medie, este dată de relația:

, (6.7)

și se vede că 2 este egală cu valoarea medie a variabilei aleatorii u2, deci cu U2 sau că este egală cu tensiunea efectivă.

Cu ajutorul relației p du se deduce funcția

(6.8)

denumită funcția erorilor, care ne dă posibilitatea ca valoarea momentană a lui u să fie cuprinsă între –u0 și u0.

Se verifică ușor că această funcție, pentru u0=, este egală cu unitatea.

Funcția

ne dă deci probabilitatea ca valoarea absolută momentană a tensiunii să depășească valoarea u0.

Dacă se ia u0=k, se deduce din relația de mai sus, funcția w(k), care ne dă probabilitatea ca valoarea absolută momentană a tensiunii să depășească de k ori valoarea efectivă . Această funcție este reprezentată în figura și se vede, de exemplu că probabilitatea ca valoarea momentană să depășească valoarea efectivă este de 32%, ca să o depășească de două ori este de 5%, iar de trei ori de 0.3%. Acest rezultat se interpretează și în sensul că, de exemplu, valoarea momentană absolută a tensiunii depășește de trei ori valoarea efectivă , timp de numai 0.3% din perioada T considerată (luată suficient de mare). Relația 5.4 se interpretează în sensul că puterea medie a zgomotului pe un interval T suficient de mare este egală cu suma puterilor diferitelor componente sinusoidale.

În cazul în care avem mai multe grupe de componente sinusoidale, puterea unei grupe fiind notată cu Pi , puterea totală a zgomotului este dată de suma puterilor Pi , adică

. (6.9)

În cazul unui spectru uniform (al unui zgomot alb), considerând în mod teoretic (simplificat) că acesta este format din componente de egală amplitudine, distanțate la intervale de frecvență egale, rezultă că puterea zgomotului este proporțională cu numărul componentelor, deci cu banda de frecvență considerată f, adică

sau (6.10)

Această relație caracterizează zgomotul uniform ( alb ).

Relația 6.10 folosește pentru calculul zgomotului care se acumulează din diferite surse, în aceeași porțiune de cale sau de-a lungul căii. Această relație nu se aplică în cazul unor componente ale zgomotului de intermodulație, care se adună în fază (ca tensiune) pe diferite secțiuni de amplificare.

6.2. Efectul zgomotului aditiv asupra reconstrucției

Principala condiție în proiectarea blocurilor de filtre M-bandă este respectarea proprietății de reconstrucție perfectă. Pentru blocul de filtre din figura 3.2, în condițiile unui canal ideal, reconstrucția perfectă este definită prin relația:

(6.11)

Această egalitate poate fi îndeplinită doar în cazul unui bloc de filtre compus din filtre ideale, care împarte banda de frecvențe ca în figura 6.1. Pentru un bloc de filtre modulate în cosinus ridicat (figura 6.2), componentele de aliere care apar între două canale adiacente sunt eliminate conform celor demonstrate în paragraful 3.2, celelalte componente fiind eliminate printr-o atenuare suficient de mare în banda de blocare.

.

Fig. 6.1 Bloc ideal de filtre M-bandă

Fig. 6.2 Bloc de M filtre modulate în cosinus ridicat

Datorită faptului că filtrele nu sunt ideale, ci au un număr limitat de coeficienți, apar distorsiuni care, pentru un bloc de filtre modulate în cosinus ridicat se pot calcula cu ajutorul funcției de distorsiuni, (3.32).

Aceste distorsiuni ale blocului de filtre vor produce distorsiuni ale semnalului care se situează la nivelul zecimilor de decibel, care pot fi neglijate și, în condițiile unui canal ideal, putem vorbi de reconstrucție aproape perfectă.

În condițiile unui canal cu zgomot aditiv proprietatea de reconstrucție perfectă este afectată. Pentru a observa influența zgomotului canalului asupra reconstrucției folosind blocul de eroare realizat conform programului „bloc_eroare.class” se calculează raportul semnal/zgomot la recepție și eroare de reconstrucție corespunzătoare cazului când canalele nu sunt afectate de zgomot și respectiv cazului când unul dintre canale este de afectat de zgomot alb. Un set de rezultate astfel obținute sunt prezentate în tabelul de mai jos (s-a considerat nivelul zgomotului pe canal de 0.1V):

Tabelul 6.1 Rezultatele obținute în urma măririi puterii zgomotului pe un canal

Se observă că eroarea de reconstrucție a semnalului crește (scade RSZ la ieșire) odată cu creșterea numărului de ramuri al blocului de filtre. De asemenea se observă că pentru același număr de ramuri ale blocului de filtre, RSZ la ieșirea blocului scade pentru semnale mai bogate în armonici, eroare de reconstrucție fiind mai mare.

Efectul zgomotului este mult mai important în cazul blocurilor cu 2 ramuri decât în cazul celor cu 4 sau 6 ramuri, datorită faptului că în acest caz zgomotul afectează jumătate din banda semnalului, în timp ce pentru blocul cu 4 filtre este afectată de zgomot doar 1/4 din banda semnalului, iar pentru blocul cu 6 ramuri 1/6 din bandă.

Efectul zgomotului asupra reconstrucției poate fi evidențiat și prin reprezentările semnalului în timp și frecvență. Pentru exemplificare în continuare sunt prezentate semnalul transmis și cel reconstruit afectat de zgomot în cazul blocului cu două ramuri.

Fig. 6.3 Efectul zgomotului aditiv asupra reconstrucției

În prezență zgomotului aditiv pe canal se observă alterarea formei semnalului, lucru evidențiat atât de reprezentarea acestuia, cât și de valorile parametrilor săi afișați în figura de mai sus.

Făcând analiza în domeniul frecvență a efectului zgomotului aditiv asupra reconstrucției se remarcă de asemenea modificarea spectrului semnalului reconstruit datorată zgomotului de pe canal.

Fig. 6.4. Spectrul semnalului transmis

Fig. 6.5. Spectrul semnalului reconstruit afectat de zgomot

Capitolul 7

Proiectarea schemei bloc

7.1 Etapele proiectării

Pentru realizarea simulării refacerii unui semnal descompus în subbenzi am realizat proiectarea unui bloc de filtre uniform conform următoarei scheme.

Fig. 7.1. Schema unui bloc de filtre uniform cu M ramuri

În cadrul aplicației se realizează câte o structură conformă cu figura 7.1 pentru cazul blocurilor de filtre uniforme cu 2, 4 respectiv 6 ramuri.

Algoritmul de proiectare se poate structura în următoarele etape:

Proiectarea filtrului prototip

Proiectarea blocului de filtre de analiză

Proiectarea blocului de filtre de sinteză

Realizarea blocului de evaluare a erorii de reconstrucție

Realizarea schemei bloc de simulare a reconstrucției semnalului descompus în subbenzi

Pornirea simulării, care constă în introducerea unui semnal la intrarea blocului de filtre

Verificarea proprietății de „reconstrucție perfectă”

Evaluarea efectului zgomotului aditiv asupra reconstrucției.

Primul pas în proiectarea schemei bloc îl constituie proiectarea unui filtru prototip în cosinus ridicat cu frecvența de tăiere . Pentru calculul coeficienților acestui filtru am folosit relația (4.18), pe care am implementat-o în metoda „coeficienți()”, prezentată în capitolul 4.3.

După obținerea coeficienților filtrului prototip, folosind relațiile (4.8) și (4.9) se calculează coeficienții filtrelor de analiză și sinteză. Structura de program folosită în calculul coeficienților filtrelor de analiză și sinteză (pentru cazul blocului de filtre cu 6 ramuri) a fost prezentată în capitolul 4.2.

Având blocul de filtre de analiză și cel de sinteză proiectat se poate realiza schema de simulare. Aceasta va conține pe fiecare ramură a blocului de filtre câte un decimator după filtrul de analiză, un generator de zgomot alb care se va însuma semnalului pentru a simula efectul zgomotului și un interpolator înaintea filtrului de sinteză.

Cu ajutorul blocului de filtre de analiză astfel proiectat se descompune semnalul în subbenzi pentru ca apoi, la reconstrucție, să se folosească blocul filtrelor de sinteză.

Ultimul pas este verificarea proprietății de reconstrucție perfectă, cu ajutorul blocului de eroare care va estima eroarea de reconstrucție, conform relației (5.15).

Concepția proiectării schemei blocului de filtre folosită în programul de simulare este redată în schema logică din figura (7.2):

Fig. 7.2. Organigrama programului de simulare

Capitolul 8

Limbajul de programare Java și avantajele lui

8.1 Scurt istoric

Limbajul Java împreună cu mediul său de dezvoltare și execuție au fost proiectate pentru a rezolva o parte dintre problemele actuale ale programării. Proiectul Java a pornit cu scopul declarat de a dezvolta un software performant pentru aparatele electronice de larg consum. Aceste echipamente se definesc ca: mici, portabile, distribuite și lucrând în timp real. De la aceste aparate, ne-am obișnuit să cerem fiabilitate și ușurință în exploatare.

Limbajul luat inițial în considerare a fost C++. Din păcate, atunci când s-a încercat crearea unui mediu de execuție care să respecte toate aceste condiții s-a observat că o serie de trăsături ale C++ sunt incompatibile cu necesitățile declarate. În principal, problema vine din faptul că C++ este prea complicat, folosește mult prea multe convenții și are încă prea multe elemente de definiție lăsate la latitudinea celor care scriu compilatoare pentru o platformă sau alta.

În aceste condiții, firma Sun a pornit proiectarea unui nou limbaj de programare asemănător cu C++ dar mult mai flexibil, mai simplu și mai portabil. Așa s-a născut Java. Părintele noului limbaj a fost James Gostling care este poate cunoscut ca autor al editorului emacs și al sistemului de ferestre grafice NeWS. Proiectul a început încă din 1990 dar Sun a făcut publică specificația noului limbaj abia în 1995 la SunWorld în San Francisco.

Numele inițial al limbajului a fost Oak, numele unui copac care crește în fața biroului lui James Gostling. Ulterior, s-a descoperit că numele fusese deja folosit în trecut pentru un alt limbaj de programare așa că a fost abandonat și înlocuit cu Java, spre deliciul programatorilor care iubesc cafenelele și aromele exotice.

8.2 Prezentare generală

În primul rând, Java încearcă să rămână un limbaj simplu de folosit chiar și de către programatorii neprofesioniști, programatori care doresc să se concentreze asupra aplicațiilor în principal și abia apoi asupra tehnicilor de implementare a acestora. Această trăsătură poate fi considerată ca o reacție directă la complexitatea considerabilă a limbajului C++.

Au fost îndepărtate din Java aspectele cele mai derutante din C++ precum supraîncărcarea operatorilor și moștenirea multiplă. A fost introdus un colector automat de gunoaie care să rezolve problema dealocării memoriei în mod uniform, fără intervenția programatorului. Colectorul de gunoaie nu este o trăsătură nouă, dar implementarea acestuia în Java este făcută inteligent și eficient folosind un fir separat de execuție, pentru că Java are încorporate facilități de execuție pe mai multe fire de execuție. Astfel, colectarea gunoaielor se face de obicei în timp ce un alt fir așteaptă o operație de intrare-ieșire sau pe un semafor.

Limbajul Java este independent de arhitectura calculatorului pe care lucrează și foarte portabil. În loc să genereze cod nativ pentru o platformă sau alta, compilatorul Java generează o secvență de instrucțiuni ale unei mașini virtuale Java. Execuția aplicațiilor Java este interpretată. Singura parte din mediul de execuție Java care trebuie portată de pe o arhitectură pe alta este mediul de execuție cuprinzând interpretorul și o parte din bibliotecile standard care depind de sistem. În acest fel, aplicații Java compilate pe o arhitectură SPARC de exemplu, pot fi rulate fără recompilare pe un sistem bazat pe procesoare Intel.

Una dintre principalele probleme ale limbajelor interpretate este viteza de execuție, considerabil scăzută față de cea a limbajelor compilate. Dacă nu vă mulțumește viteza de execuție a unei astfel de aplicații, puteți cere mediului de execuție Java să genereze automat, plecând de la codul mașinii virtuale, codul specific mașinii pe care lucrați, obținându-se astfel un executabil nativ care poate rula la viteză maximă. De obicei însă, în Java se compilează doar acele părți ale programului mari consumatoare de timp, restul rămânând interpretate pentru a nu se pierde flexibilitatea. Mediul de execuție însuși este scris în C respectând standardele POSIX, ceea ce îl face extrem de portabil.

Interpretorul Java este gândit să lucreze pe mașini mici, precum ar fi procesoarele cu care sunt dotate aparatele casnice. Interpretorul plus bibliotecile standard cu legare dinamică nu depășesc 300 Kocteți. Chiar împreună cu interfața grafică totul rămâne mult sub 1 Moctet.

Limbajul Java este orientat pe obiect. Cu el se pot crea clase de obiecte și instanțe ale acestora, se pot încapsula informațiile, se pot moșteni variabilele și metodele de la o clasă la alta, etc. Singura trăsătură specifică limbajelor orientate obiect care lipsește este moștenirea multiplă, dar pentru a suplini această lipsă, Java oferă o facilitate mai simplă, numită interfață, care permite definirea unui anumit comportament pentru o clasă de obiecte, altul decât cel definit de clasa de bază. În Java orice element este un obiect, în afară de datele primare. Din Java lipsesc funcțiile și variabilele globale. Rămân desigur metodele și variabilele statice ale claselor.

Java este distribuit, având implementate biblioteci pentru lucrul în rețea care ne oferă TCP/IP, URL și încărcarea resurselor din rețea. Aplicațiile Java pot accesa foarte ușor rețeaua, folosindu-se de apelurile către un set standard de clase.

Java este robust. În Java legarea funcțiilor se face în timpul execuției și informațiile de compilare sunt disponibile până în momentul rulării aplicației. Acest mod de lucru face ca sistemul să poată determina în orice moment neconcordanța dintre tipul referit la compilare și cel referit în timpul execuției evitându-se astfel posibile intruziuni răuvoitoare în sistem prin intermediul unor referințe falsificate. În același timp, Java detectează referințele nule dacă acestea sunt folosite în operații de acces. Indicii în tablourile Java sunt verificați permanent în timpul execuției și tablourile nu se pot parcurge prin intermediul unor pointeri așa cum se întâmplă în C/C++. De altfel, pointerii lipsesc complet din limbajul Java, împreună cu întreaga lor aritmetică, eliminându-se astfel una din principalele surse de erori. În plus, eliberarea memoriei ocupate de obiecte și tablouri se face automat, prin mecanismul de colectare de gunoaie, evitându-se astfel încercările de eliberare multiplă a unei zone de memorie.

Java este un limbaj cu securitate ridicată. El verifică la fiecare încărcare codul prin mecanisme de CRC și prin verificarea operațiilor disponibile pentru fiecare set de obiecte. Robustețea este și ea o trăsătură de securitate. La un al doilea nivel, Java are incorporate facilități de protecție a obiectelor din sistem la scriere și/sau citire. Variabilele protejate într-un obiect Java nu pot fi accesate fără a avea drepturile necesare, verificarea fiind făcută în timpul execuției. În plus, mediul de execuție Java poate fi configurat pentru a proteja rețeaua locală, fișierele și celelalte resurse ale calculatorului pe care rulează o aplicație Java.

Limbajul Java are inclus suportul nativ pentru aplicații care lucrează cu mai multe fire de execuție, inclusiv primitive de sincronizare între firele de execuție. Acest suport este independent de sistemul de operare, dar poate fi conectat, pentru o performanță mai bună, la facilitățile sistemului dacă acestea există.

Java este dinamic. Bibliotecile de clase în Java pot fi reutilizate cu foarte mare ușurință. Cunoscuta problemă a fragilității superclasei este rezolvată mai bine decât în C++. Acolo, dacă o superclasă este modificată, trebuie recompilate toate subclasele acesteia pentru că obiectele au o altă structură în memorie. În Java această problemă este rezolvată prin legarea târzie a variabilelor, doar la execuție. Regăsirea variabilelor se face prin nume și nu printr-un deplasament fix. Dacă superclasa nu a șters o parte dintre vechile variabile și metode, ea va putea fi refolosită fără să fie necesară recompilarea subclaselor acesteia. Se elimină astfel necesitatea actualizării aplicațiilor, generată de apariția unei noi versiuni de bibliotecă așa cum se întâmplă, de exemplu, cu MFC-ul Microsoft (și toate celelalte ierarhii C++).

8.3 Java în aplicațiile de Web

Cea mai importantă aplicație a limbajului Java o reprezintă folosirea lui ca limbaj de programare pentru paginile de Web.

Dată fiind necesitatea accesului rapid la informație amploarea ce a căpătat-o în ultimul timp Internetul este justificată. Acesta a devenit o imensă bază de date în continuă dezvoltare care poate fi accesată și utilizată de oricine. Astăzi, pe Internet se poate găsi o pagină de Web pentru orice domeniu, activitate, persoană sau obiect și cu fiecare zi apar noi și noi site-uri.

În multe domenii, o pagină Web are caracter informativ și se bazează pe text și poze, care au ca scop prezentarea anumitor probleme. Dar în anumite domenii cum este și cel al comunicațiilor și prelucrării semnalelor se impune crearea unor site-uri care să conțină mai mult decât text și poze și anume aplicații demonstrative. Pentru a realiza astfel de pagini de Web dinamice era necesar un limbaj care să permită crearea unor aplicații care să poată fi rulate de către un browser de Web. Java este limbajul care s-a impus în acest sens.

Cu ajutorul unui motor de căutare pe Web se poate găsi un mare număr de site-uri dedicate domeniului. Un astfel de site, poate conține documentație despre anumite teme și rezultate obținute în urma simulării cu diverse programe dedicate, dar el devine mult mai interesant și mai elocvent atunci când conține și aplicații care pot fi rulate „online” de către vizitatorul site-ului, mai ales dacă acestea sunt și interactive .

Utilitatea unor astfel de pagini Web este majoră, în special în scop didactic. Un astfel de site poate funcționa foarte bine ca un „laborator online” al unei instituții de învățământ.

Conținutul unui astfel de „laborator online” poate fi complex. El va fi structurat ca o platformă de laborator. În primul rând site-ul va conține un breviar teoretic care va prezenta problema tratată alături de câteva exemple de rezultate obținute, pentru ca în final să ofere utilizatorului posibilitatea de a obține singur rezultatele simulării prin intermediul aplicației existente. Pentru a putea fi cât mai elocventă, aplicația trebuie să ofere utilizatorului un meniu de modificare a parametrilor sistemului cât mai bogat pentru a asigura un cât mai bun control al acestuia asupra simulării, lucru pe care limbajul Java îl asigură. Având la dispoziție o interfață ușor de utilizat, dar totuși bogată, utilizatorul va putea folosi aplicația pentru o bună înțelegere a problemei tratate.

Un alt aspect avantajos al acestor „laboratoare Online”, îl constituie faptul că pot fi folosite link-uri către alte site-uri similare. Astfel se pot face trimiteri către anumite pagini de Web, indiferent de locația acestora, pentru explicarea anumitor aspecte care sunt folosite în problema tratată, însă nu fac obiectul studiului.

Având la dispoziție un astfel de site se poate asigura foarte ușor „învățarea de la distanță”, lucru ce poate fi util într-un mediu studențesc cu acces la Internet, cum este căminul Academiei. Astfel s-ar putea crea un site al catedrei, unde să existe diverse aplicații legate de problemele studiate la cursuri, aplicații pe care studenții le-ar putea folosi pentru o mai bună înțelegere a temelor tratate.

Pentru a demonstra cele spuse mai sus, am realizat un astfel de site de Web care tratează problema blocurilor de filtre folosite în descompunerea unui semnal în subbenzi și apoi refacerea sa. Site-ul are o structură bazată pe cele prezentate anterior. El conține o prezentare teoretică a blocurilor de filtre și a metodei de proiectare folosite, alături de aplicația Java realizată pentru simularea blocului de filtre. Site-ul realizat se află publicat și poate fi accesat „online”, la adresa:

www20.brinkster.com/mariusmmi sau www.mariusmmi.htmlplanet.com

Fig. 8.1. Pagină din site

În figura de mai sus este reprezentată una din paginile site-ului pentru a exemplifica modul de organizare al acestuia. Se observă posibilitatea trecerii de la o pagină la alta cu ajutorul butoanelor de legătură existente pe partea de sus a paginii. Acest meniu de selecție va fi activ pe orice altă pagina a site-ului, permițând utilizatorului vizualizarea oricărei pagini a site-ului sau a altui site la care se face trimitere, printr-un singur click de mouse.

8.4. Pachetul de programe LabAlive

Aplicația realizată are la bază un pachet de programe Java incluse în toolbox-ul LabAlive, creat de un grup de studenți germani conduși de Erwin Riederer . Acest toolbox permite dezvoltarea unor simulări interactive și animate ale sistemelor de comunicații.

Conceptul pachetului de programe LabAlive constă în două părți :

O parte abstractă formată din class-uri de reprezentare formală a sistemelor sub formă de blocuri și a firelor de conexiune între blocuri;

O a doua parte dedicată implementării acestor blocuri în sisteme și simulării acestora.

Pachetul oferă următoarele opțiuni:

un layout dedicat construirii sistemelor, prin intermediul class-ului „WiringLayout”, alături de mediul de simulare furnizat de class-ul „Wiring”;

un set de blocuri–standard , de exemplu generator de semnal, sursă de zgomot ;

ferestre de tip osciloscop pentru vizualizarea semnalelor;

Simularea este realizată la momente discrete de timp. Sursa de semnal generează valorile eșantioanelor care sunt preluate de firul de legătură cu blocul următor. Firul este responsabil de activarea ferestrelor de tip osciloscop pentru reprezentarea semnalelor. Fiecare bloc preia valorile eșantioanelor și le modifică în conformitate cu funcția pe care o îndeplinește.

Ierarhia class-urilor create, cu evidențierea proprietăților de moștenire este prezentată în cele ce urmează:

class java.lang.Object

class ET3.labAlive.awc.AutoWire =realizează conexiunile între blocuri

class java.awt.Component (implements java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable)

class java.awt.Canvas

class ET3.labAlive.canvas.SystemCanvas =desenarea simbolurilor blocurilor

class ET3.labAlive.canvas.WireCanvas =desenarea simbolurilor firelor

Toate obiectele create extind „java.lng.Object”. Componentele grafice , respectiv simbolurile blocurilor, ale conexiunilor, moștenesc metodele oferite de „java.awt.Component”. Pentru desenarea formelor specifice fiecărui obiect grafic s-a extins „java.awt.Canvas”.

class java.awt.Container

class java.awt.Window

class java.awt.Dialog

class ET3.labAlive.window.PropertyWindow (implements java.awt.event.ActionListener, java.awt.event.AdjustmentListener) =afișarea parametrilor corespunzători unui bloc

class ET3.labAlive.window.XYWindow

class ET3.labAlive.window.GridDisplay

class ET3.labAlive.window.SpektDisplay

class ET3.labAlive.window.Osci

class ET3.labAlive.window.AnalogOsci

class ET3.labAlive.window.AnalogMeasureOsci

Prin extinderea class-ului “java.awt.Container” s-au creat obiecte de tip fereastră pentru reprezentările grafice ale semnalelor și pentru modificarea parametrilor anumitor blocuri.

class java.awt.GridBagLayout (implements java.awt.LayoutManager2, java.io.Serializable)

class ET3.labAlive.WiringLayout

Se extinde „java.awt.GridBagLayout”, pentru crearea unui layout adaptat necesităților de reprezentare a sistemelor de simulare.

class java.awt.event.MouseAdapter (implements java.awt.event.MouseListener)

class ET3.labAlive.awc.WiringComponent

java.awt.event.ActionListener, java.awt.event.ItemListener)

class ET3.labAlive.awc.System =definește obiectul de tip sistem, folosit pentru crearea tuturor blocurilor funcționale

class ET3.labAlive.awc.Wire =definește firul de conexiune între blocuri

Pentru tratarea acțiunilor Mouse-ului, folosit ca instrument de interactivitate, s-a extins class-ul ”java.awt.event.MouseAdapter”.

class ET3.labAlive.window.OsciIdentifier (implements java.lang.Cloneable) =definește parametrii asociați unui fir de legătură(wire)

class ET3.labAlive.window.OsciIdent

Obiecte pentru controlul firelor de legătură dintre blocuri și al ferestrelor de vizualizarea semnalelor, sunt realizate prin extensii ale class-ului „OsciIdentifier”.

class ET3.labAlive.port.Port

class ET3.labAlive.port.InPort

class ET3.labAlive.port.TerminationInPort (implements ET3.labAlive.awc.Termination)

class ET3.labAlive.port.OutPort

Aceste class-uri creează obiecte ce definesc porturile de intrare și de ieșire ale fiecărui bloc din cadrul sistemului.

class ET3.labAlive.SigMess (implements java.lang.Cloneable)

class ET3.labAlive.Signal

Class-uri ce definesc conceptul de „semnal” folosit în simulare.

interface ET3.labAlive.awc.StartableSystem

interface ET3.labAlive.awc.Termination

class java.lang.Thread (implements java.lang.Runnable)

class ET3.labAlive.thread.TimerThread

class ET3.labAlive.thread.WaveThread

interface ET3.labAlive.thread.ThreadStepListener

Se creează „fire de execuție”(thread) folosite pentru simulare. Conferă animația reprezentărilor semnalelor.

class ET3.labAlive.UIAdaptor (implements java.awt.event.ActionListener, ET3.labAlive.thread.ThreadStepListener)

Obiect ce implementează interfața „java.awt.event.ActionListener”, cu rolul de a controla interactivitatea aplicației.

class java.awt.event.WindowAdapter (implements java.awt.event.WindowListener)

class ET3.WebLab.window.enableCloseWindow

interface ET3.labAlive.Wiring

class ET3.labAlive.WiringAdministrator

Pornind de la această structură, folosind proprietățile de moștenire oferite de limbajul Java, se pot crea o serie de blocuri funcționale extinzând obiectul „System”, astfel putând fi realizate simulări pentru orice tip de sistem.

Capitolul 9

Proiectarea programelor de simulare. Rezultate obținute

9.1.Proiectarea unui bloc uniform de filtre modulate în cosinus ridicat

9.1.1.Proiectarea filtrului prototip

Proiectarea filtrului prototip se face conform secțiunii de program prezentate în paragraful 4.3. Pentru început se alege un filtru prototip (tipul cosinus ridicat) de lungime 97, cu un factor rolloff de mărime 0.541 și frecvența de tăiere π/M. În figura 9.1 este prezentată funcția de transfer a acestui filtru pentru cazul blocului cu 2 ramuri, iar în figura 9.2 răspunsul său la impuls.

Fig. 9.1 Funcția de transfer a filtrului prototip

Fig. 9.2 Răspunsul la impuls al filtrului prototip

Funcțiile de transfer ale filtrelor prototip pentru cazul blocurilor cu 4 și respectiv 6 ramuri se obțin similar, iar reprezentările lor grafice se găsesc în Anexa B.

9.1.2.Proiectarea blocului de filtre modulate

Pentru calculul filtrelor de analiză și de sinteză se folosește secțiunea de program prezentată în paragraful 4.2, secțiune ce implementează formulele (4.8) și (4.9).

În figura 9.3 sunt prezentate funcțiile de transfer ale filtrelor de analiză, iar în figura 9.4 funcțiile de transfer ale filtrelor de sinteză (pentru blocul cu 2 ramuri).

După cum se poate observa din figurile 9.3 și 9.4 filtrele de analiză și filtrele de sinteză au modulele funcțiilor de transfer identice, caracteristicile lor de fază fiind însă diferite, cerință observabilă în relațiile (4.8) și (4.9). Filtrele de analiză și sinteză de pe aceeași ramură a blocului de filtre sunt defazate cu și se compensează reciproc.

Fig. 9.3 Funcțiile de transfer ale filtrelor de analiză pentru M=2

Fig. 9.4 Funcțiile de transfer ale filtrelor de sinteză pentru M=2

Funcțiile de transfer ale filtrelor de analiză și sinteză pentru cazul blocurilor cu 4 și respectiv 6 ramuri se obțin similar, iar reprezentările lor grafice se găsesc în Anexa B.

Realizarea schemei de simulare a descompunerii semnalului în subbenzi și a refacerii acestuia

Folosind blocul da filtre de analiză și blocul de filtre de sinteză, proiectate conform celor prezentate anterior, am realizat programul „bloc2.java”, care realizează schema de simulare a unui bloc de filtre pentru descompunerea unui semnal în două subbenzi și refacerea acestuia. Sursa programului poate fi urmărită în Anexa A. Schema bloc realizată va arăta ca în figura de mai jos (schemele bloc pentru celelalte cazuri sunt prezentate în Anexa D):

Fig.9.5. Schema blocului de filtre cu 2 ramuri

Programul realizează întregul proces de descompunere a unui semnal în două subbenzi, astfel:

Semnalul generat de sursa de semnal, reprezentată prin blocul „Sursa” este transmis prin cele două ramuri ale schemei;

Primul bloc al fiecărei ramuri îl reprezintă un filtru de analiză , pe prima ramură fiind un FTJ, iar pe cea de-a doua un FTS, care au scopul filtrării primei, respectiv celei de-a doua, jumătăți de bandă a semnalului transmis;

Filtrele sunt urmate de decimatoare de frecvență cu factorul de decimare 2, reprezentate prin blocurile „D:2” ;

Pentru a simula efectul zgomotului aditiv pe canal, pe fiecare ramură a schemei se introduce un generator de zgomot alb, reprezentat de blocul „Zgomot”;

La partea de recepție semnalul este expandat prin blocul de expandare, „I:2”;

Ultima operație ce are loc asupra semnalului de subbandă este cea realizată de filtrul de sinteză, „F.S.1”(„F.S.2”);

În final cele două semnale subbandă sunt însumate pentru refacerea semnalului inițial și în urma amplificării realizate de blocul „AMP”, se obține semnalul reconstruit;

Schema realizată permite interactivitatea cu utilizatorul, în sensul că acesta poate vizualiza semnalele după fiecare bloc prin simpla executare a unui mouse-click pe firul de legătură dintre două blocuri vecine. Astfel se poate urmări efectul fiecărui bloc asupra semnalului. Reprezentarea semnalelor poate fi vizualizată atât în timp cât și în frecvență.

Reprezentarea semnalului în domeniul timp se va face într-o fereastră ca cea din figura (9.6.). Se observă că fereastra conține nu doar reprezentarea grafică a semnalului ci și valorile parametrilor acestuia (amplitudinea, frecvența și faza) care se vor modifica în timp, astfel încât valorile afișate sunt în permanența conforme cu semnalul reprezentat.

Fig. 9.6.Fereastră de reprezentare a semnalului în domeniul timp

Reprezentarea semnalului în timp este mult mai relevantă dacă se poate asocia reprezentării semnalului în domeniul frecvență.

De aceea aplicația realizată permite și afișarea reprezentării semnalului în domeniul frecvență.

Fig.9.7. Fereastră de reprezentare a semnalului în domeniul frecvență

Pentru analiza semnalului în domeniul frecvență se folosește mouse-click dreapta pe fir, execuție ce afișează o fereastră de selecție a domeniului de reprezentare a semnalului (timp sau frecvență). Fereastra de afișare a spectrului semnalului este reprezentată în figura (9.7.) .

De asemenea , aplicația permite modificarea unor parametrii de interes ai anumitor blocuri. Acestea sunt:

sursa de semnal, căreia i se pot modifica amplitudinea, frecvența și faza;

generatorul de zgomot, căruia i se poate modifica puterea zgomotului ;

amplificatorul, căruia i se poate modifica factorul de amplificare;

Pentru modificarea acestor parametrii se activează ferestre corespunzătoare fiecărui bloc prin execuția unui mouse-click pe blocul respectiv, lucru ce va determina apariția unor casete ca în figura de mai jos.

Fig. 9.8. Schema bloc cu ferestrele de modificare a parametrilor diverselor blocuri

Parametrii blocurilor amintite anterior pot fi modificați de utilizator prin introducerea valorilor de la tastatură sau cu ajutorul potențiometrelor corespunzătoare.

După cum reiese din figura (9.8) aplicația permite de asemenea deschiderea unei ferestre care afișează valoarea erorii de reconstrucție și a raportului semnal/zgomot la ieșirea sistemului, fereastră ce corespunde blocului „Eroare”, parametri care vor caracteriza proprietatea de reconstrucție a blocului de filtre.

Verificarea proprietății de reconstrucție perfectă

Pentru verificarea proprietății de reconstrucție perfectă a blocului de filtre construit se pot face două analize:

una grafică, ce presupune vizualizarea semnalului la intrare și a celui reconstruit la recepție, vizualizare care se va face atât în domeniul timp cât și în frecvență

una valorică bazată pe evaluarea erorii de reconstrucție, eroare ce se calculează conform programului „bloc_eroare.class”, prezentat în capitolul 5.

Pentru exemplificarea metodei grafice de verificare a reconstrucției semnalului în continuare sunt prezentate reprezentările semnalului de intrare și ale celui reconstruit în cazul blocului de filtre cu 2 ramuri. Ca semnal de intrare s-a folosit un semnal cu 3 armonici (sumă de 3 sinusoide).

Pe ferestrele de reprezentare a semnalului în timp sunt afișate și valorile parametrilor semnalului, amplitudine, frecvență și fază care reflectă și ei reconstrucția semnalului.

Fig.9.9. Reprezentarea semnalului de intrare și a celui reconstruit în domeniul timp, pentru cazul blocului de filtre uniform cu 2 ramuri

Se observă ca reconstrucția este „aproape perfectă” singura diferență dintre cele două semnale fiind întârzierea.

Reconstrucția se poate evidenția și mai bine în cazul reprezentării celor două semnale în domeniul frecvență, unde se pot observa toate cele 3 armonici ale semnalului de intrare, reconstituite „perfect” la recepție.

Fig. 9.10 Reprezentarea spectrului semnalului de intrare

Fig. 9.11 Reprezentarea spectrului semnalului reconstituit

Rezultate grafice pentru alte tipuri de semnale și pentru blocurile de filtre cu 4 și 6 ramuri se găsesc în Anexa C.

Pentru verificarea proprietății de reconstrucție în mod analitic am folosit de un bloc de calcul al raportului semnal/zgomot la ieșirea blocului de filtre, precum și a erorii de reconstrucție.

În tabelul 9.1 sunt prezentate rezultatele obținute în urma rulării programului pentru mai multe tipuri de semnale . S-a considerat proiectarea filtrelor cu 97, respectiv 49 coeficienți.

Tabelul 9.1 Verificarea proprietății de reconstrucție perfectă

pentru filtre prototip cu 97 și 49 coeficienți

Se observă, așadar, că precizia proiectării filtrului prototip (numărul de coeficienți folosiți) este importantă în asigurarea proprietății de reconstrucție perfectă.

În concluzie, aplicația realizată, prin intermediul interfeței bogate și ușor de utilizat, se constituie ca un foarte bun instrument pentru studiul reconstrucției unui semnal descompus în subbenzi prin blocuri de filtre.

Concluzii

În domeniul sistemelor de comunicații, utilizarea echipamentelor dezvoltate pe baza prelucrării multirată a semnalului a permis obținerea unei creșteri semnificative a flexibilității și eficienței.

Abordarea numerică (digitală) a modificării ratei de eșantionare constituie soluția, teoretică și practică, de reconstrucție cu distorsiuni minime a semnalului prelucrat. Realizarea blocurilor de filtre pentru descompunerea semnalelor în subbenzi reprezintă una dintre cele mai importante aplicații ale prelucrării multirată.

Aplicația realizată demonstrează următoarele avantaje conferite de utilizarea descompunerii în subbenzi a semnalelor de comunicații cu ajutorul blocurilor de filtre uniforme:

Utilizarea unor canale cu bandă redusă;

Creșterea stabilității la perturbațiile de tip aditiv;

Ușurința implementării (proiectarea blocului de filtre pe baza coeficienților unui singur filtru prototip)

Metoda de proiectare propusă este foarte versatilă și deci implementarea este ușor de realizat cu ajutorul unui procesor numeric de semnal, deoarece:

În memoria procesorului pot fi implementate metodele de calcul pentru un număr variabil de canale avute la dispoziție;

Coeficienții filtrului prototip sunt ușor de calculat cu ajutorul unei expresii căruia i se schimbă doar parametrii de intrare în funcție de numărul canalelor avute la dispoziție;

Filtrele de analiză/sinteză sunt derivate dintr-un singur filtru prototip, coeficienții acestora fiind calculați pe baza unei singure expresii;

Programul realizat pentru simularea descompunerii semnalului în subbenzi cu ajutorul blocurilor de filtre uniforme, este de tip expert având următoarele caracteristici:

permite utilizatorului un bun control asupra datelor de proiectare prin intermediul unui meniu complex pentru modificarea anumitor parametri de simulare;

oferă posibilitatea studierii amănunțite a problemei tratate prin vizualizarea grafică a semnalului în orice punct al sistemului;

calculează parametrii de recepție(RSZ) și de estimare a erorii de reconstrucție, oferind astfel un criteriu de verificare a refacerii semnalului din subbenzile sale;

fiind realizată cu ajutorul limbajului de programare Java, această aplicație prezintă marele avantaj de a putea fi rulată online, pe Internet;

nu necesită instalarea nici unui soft cu licență pentru rulare și nici nu necesită computere performante;

poate rula și ca aplicație independentă (fișier executabil);

este încadrat pe o pagină a unui site de Web, alături de informații teoretice privind problema tratată, permițând astfel folosirea lui ca laborator pentru studiul descompunerii semnalelor în subbenzi.

Site-ul astfel creat reprezintă un exemplu al noilor preocupări de dezvoltare a conceptului de „învățare la distanță”. O serie de mari firme producătoare de soft dedicat simulărilor în domeniul comunicațiilor, ca de exemplu MathTools, au creat astfel de pagini de Web în scop didactic, pagini care permit vizitatorilor să studieze prin intermediul unor aplicații Java diverse prelucrări ale semnalelor de comunicații. Aceste noi preocupări vin odată cu ascensiunea fulminantă a Internetului din ultimii ani, fapt ce a dus la preocuparea multora de a dezvolta astfel de „site-uri laborator”.

Exemple de astfel de pagini de Web laborator, pot fi găsite la următoarele adrese de Web: www.mathtools.net/Java

www.eas.asu.edu/~midle/jdsp/

www.ifi.uio.no/~sverre/Java/Java-DSP.html

Bibliografie

Similar Posts

  • Proiectarea Tehnologiei de Asamblare Prin Sudare a Unei Cisterne Pentru Transportul Produselor Petroliere

    Introducere Recipientele pentru stocarea gazelor lichefiate sunt structuri în construcție sudată funcționând în general în condiții de presiune interioară crescută și în particular în condiții de mediu cu caracter coroziv mai mult sau mai puțin accentuat. Funcționarea în condiții de presiune ridicată presupune măsuri specifice privind proiectarea, execuția, montarea, instalarea, exploatarea, repararea și verificarea acestor…

  • Modernizarea Drumurilor de Interes Local In Comuna Runcu, Judetul Gorj

    CUPRINS: Capitolul I INTRODUCERE 1.1.Tema si importanta lucrarii………………………………………………………………….8 1.2.Necesitatea si oportunitatea acesteia…………………………………………………………8 1.3.Date generale………………………………………………………………………………….9 Capitolul II NOTIUNI TEORETICE PRIVIND DRUMURILE 2.1.Generalitati…………………………………………………………………………………10 Capitolul III PREZENTAREA CADRULUI NATURAL 3.1.Studii topografice…………………………………………………………………………..15 3.2.Hidrografica…………………………………………………………………………………………………………15 3.3.Clima si fenomenele specific zonei………………………………………………………….15 3.4.Seismicitatea………………………………………………………………………………..16 3.5.Studii geologice…………………………………………………………………………………………………….16 Concluzii si recomandari Capitolul IV LUCRARI PROPUSE SI DIMENSIONAREA LOR 4.1.Trasarea lucrarilor………………………………………………………………………….18 4.2.Dimensionarea lucrarilor propuse…………………………………………………………19 4.3.Sursele de apa,energie…

  • Turbine Eoliene Marine

    C U P R I N S CAPITOLUL 1 ENERGIA EOLIANĂ Introducere 1.2 Potențialul eolian 1.3 Tehnologia producerii energiei eoliene 1.4 Avantajele și dezavantajele utilizării energiei eoliene CAPITOLUL 2 ELEMENTELE TURBINEI EOLIENE CLASIFICAREA TURBINELOR EOLIENE 2.1 Dupa puterea electrică furnizată 2.2 După direcția de orientare a axei 2.3 După modul de amplasare a paletelor 2.4…

  • Radioactivitatea Cosmogenica In Rezervoarele Geosferei

    INTRODUCERE Atmosfera Pamantului, invelisul gazos al acestuia, este un sistem deschis ce schimba caldura si substanta atat cu suprafata Pamantului, cat si cu spatiul interplanetar. Din punct de vedere al studiului izotopilor radioactivi produsi de interactia radiatiilor cosmice cu moleculele de aer, este importanta numai patrunderea in atmosfera a radiatiei corpusculare. Radiatia corpusculara incidenta la…

  • Sisteme Moderne de Detectie Si Semnalizare a Incendiilor la Cladiri Inalte

    CUPRINS INTRODUCERE ……………………………………………………………………………………………………………….. 6 CAPITOLUL I. Performanțe specifice privind protecția la foc a clădirilor înalte …………………………8 Considerații generale …………………………………………………………………………………………..8 Riscul de incendiu și cauzele specifice de incendiu la clădirile înalte ………………………..8 Factorii care favorizează propagarea rapidă a incendiilor la clădirile înalte ………………..9 Conceptul de prevenire a incendiilor în Romania la clădirile înalte …………………………10 CAPITOLUL II….