25.08.2013 Views

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

FACULTATEA DE ELECTRONICA, TELECOMUNICATII SI TEHNOLOGIA INFORMATIEI<br />

Ing. Irina DORNEAN<br />

<strong>Rezumat</strong><br />

Contributii la proiectarea <strong>si</strong> implementarea algoritmilor<br />

adaptivi folo<strong>si</strong>nd procesare multirata <strong>de</strong> semnal pe arii<br />

logice programabile<br />

COMISIA DE EVALUARE:<br />

PRESEDINTE: -Prof.dr.ing. Gabriel OLTEAN – secretar stiintific, <strong>Facultatea</strong> <strong>de</strong><br />

<strong>Electronica</strong>, <strong>Telecomunicatii</strong> <strong>si</strong> Tehnologia Informatiei,<br />

Univer<strong>si</strong>tatea Tehnica din Cluj-Napoca;<br />

CONDUCATOR STIINTIFIC: -Prof.dr.ing. Marina Dana ŢOPA – <strong>de</strong>can, <strong>Facultatea</strong> <strong>de</strong><br />

<strong>Electronica</strong>, <strong>Telecomunicatii</strong> <strong>si</strong> Tehnologia Informatiei,<br />

Univer<strong>si</strong>tatea Tehnica din Cluj-Napoca;<br />

MEMBRI: -Prof.dr.ing. Alexandru ISAR –<strong>Facultatea</strong> <strong>de</strong> <strong>Electronica</strong> <strong>si</strong><br />

<strong>Telecomunicatii</strong>, Univer<strong>si</strong>tatea “Politehnica” din Timisoara<br />

-Prof.dr.ing. Florin SANDU – <strong>Facultatea</strong> <strong>de</strong> Inginerie Electrica<br />

<strong>si</strong> Stiinta Calculatoarelor, Univer<strong>si</strong>tatea "Tran<strong>si</strong>lvania" din<br />

Brasov<br />

-Prof.dr.ing. Sorin HINTEA - <strong>Facultatea</strong> <strong>de</strong> <strong>Electronica</strong>,<br />

<strong>Telecomunicatii</strong> <strong>si</strong> Tehnologia Informatiei, Univer<strong>si</strong>tatea Tehnica<br />

din Cluj-Napoca;


Capitolul 1<br />

1. Introducere<br />

1.1. Motivatie<br />

1.2. Stadiul actual al cercetarii<br />

1.3. FPGA vs. DSP<br />

1.4. Procesarea multirata a semnalelor digitale<br />

1.5. Algoritmi optimizati <strong>de</strong> <strong>de</strong>zvoltare<br />

1.6. Obiective <strong>si</strong> organizarea tezei<br />

Capitolul 2<br />

2. Filtre adaptive<br />

2.1. Introducere<br />

2.2. Aplicatii ale filtrelor adaptive<br />

2.2.1. I<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut<br />

2.2.2. Egalizare <strong>de</strong> canal<br />

2.2.3. Anularea ecoului<br />

2.2.4. Predictie <strong>de</strong> semnal<br />

2.3. Structuri ale filtrelor FIR<br />

2.3.1. Structura transversala<br />

2.3.2. Structura <strong>si</strong>metrica transversala<br />

2.3.3. Structura laticiala<br />

2.4. Algoritmi <strong>de</strong> filtrare adaptiva<br />

2.4.1. Algoritmul celor mai mici medii patratice (LMS)<br />

2.4.2. Algoritmul normalizat LMS<br />

2.4.3. Algoritmi cu semn<br />

2.4.4. Algoritmul RLS<br />

2.5. Rezultate experimentale <strong>si</strong> contributii<br />

2.5.1. Aplicatia <strong>de</strong> anulare a zgomotului<br />

2.5.2. Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem<br />

2.5.3. Aplicatia <strong>de</strong> predictie <strong>de</strong> semnal<br />

Capitolul 3<br />

3. Implementari digitale<br />

3.1. Introducere<br />

3.2. Limbaje <strong>de</strong> <strong>de</strong>scriere hardware


3.3. Solutii Xilinx DSP<br />

3.3.1. Spartan 3E<br />

3.3.2. ML501-Virtex 5<br />

3.4. Rezultate experimentale <strong>si</strong> contributii<br />

3.4.1. Implementarea hardware a algoritmului LMS<br />

3.4.2. Implementarea hardware a algoritmului NLMS<br />

3.4.3. Reverberatoare<br />

3.5. Concluzii<br />

Capitolul 4<br />

3.4.3.1.Reverberatorul Schroe<strong>de</strong>r<br />

3.4.3.2. Reverberatorul Schroe<strong>de</strong>r (II)<br />

3.4.3.3. Reverberatorul Moorer<br />

3.4.3.4. Reverberatorul Gardner<br />

3.4.3.5. Reverberatorul Dattorro<br />

4. Procesarea multirata a semnalelor digitale<br />

4.1. Introducere<br />

4.2. Implementarea filtrelor FIR utilizand functii <strong>de</strong> tip ‘fereastra'<br />

4.2.1. Fereastra Kaiser<br />

4.2.2. Fereastra Blackman<br />

4.2.3. Fereastra Bartlett<br />

4.2.4. Fereastra Hamming<br />

4.3. Decimare <strong>si</strong> interpolare<br />

4.4. Bancuri <strong>de</strong> filtre – analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong><br />

4.5. Codare pe subbenzi<br />

4.6. Rezultate experimentale <strong>si</strong> contributii<br />

4.6.1. Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe subbenzi – implementare<br />

MATLAB/Simulink<br />

4.6.2. Algoritmi optimizati <strong>de</strong> <strong>de</strong>zvoltare<br />

4.7. Concluzii<br />

Capitolul 5<br />

4.6.2.1.Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe banda intreaga<br />

4.6.2.2 Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe doua subbenzi<br />

4.6.2.3.Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe patru subbenzi<br />

5. Concluzii <strong>si</strong> contributii


1. Introducere<br />

Motivatie<br />

Tehnica procesarii <strong>de</strong> semnal reprezinta un instrument important ce priveste diferite<br />

campuri in domeniul stiintei <strong>si</strong> ingineriei. In mod normal, caracteristicile unui <strong>si</strong>stem sunt ori<br />

necunoscute, ori variabile in timp datorita multor motive, <strong>de</strong> obicei nedorite. Asadar, abordarile<br />

acestui tip <strong>de</strong> procesare trebuie sa se adapteze acestor insu<strong>si</strong>ri necunoscute, adica sa extraga<br />

informatii vali<strong>de</strong> intr-un scenariu in continua schimbare. Din acest motiv algoritmii adaptivi<br />

trebuie sa fie <strong>si</strong>mpli, eficienti din punct <strong>de</strong> ve<strong>de</strong>re computational, implementabili pe platformele<br />

hardware existente (procesoare <strong>de</strong> semnal digital sau blocuri configurabile) <strong>si</strong> fezabili ca <strong>si</strong> cost<br />

pentru utilizarea comerciala. Orice procesare in timp real trebuie sa fie adaptiva, iar cele mai<br />

comune aplicatii ale acesteia sunt: compre<strong>si</strong>e <strong>si</strong> codare, controlul activ al zgomotului <strong>si</strong> vibratiei,<br />

aplicatii in domeniul comunicatiilor, precum egalizarea canalului, eliminarea ecoului acustic <strong>si</strong><br />

procesarea adaptiva a semnalelor medicale.<br />

Algoritmii <strong>de</strong> procesare multirata sunt instrumente <strong>si</strong> structuri mo<strong>de</strong>rne cu putere <strong>de</strong><br />

procesare crescuta, ce ofera po<strong>si</strong>bilitatea implementarii economice a acestor aplicatii. Structurile<br />

tipice ale <strong>si</strong>stemelor multirata reprezinta mo<strong>de</strong>le pentru implementarea <strong>de</strong> arhitecturi eficiente<br />

pentru circuite microelectronice. Evolutia procesarii multirata a semnalelor este <strong>de</strong>terminata <strong>de</strong><br />

aparitia <strong>de</strong> noi aplicatii precum codarea vorbirii pe subbenzi, transmi<strong>si</strong>i <strong>de</strong> date, transformari<br />

rapi<strong>de</strong> folo<strong>si</strong>nd bancuri <strong>de</strong> filtre digitale <strong>si</strong> analiza wavelet a semnalelor.<br />

Tendinta pe piata echipamentelor electronice este <strong>de</strong> a implementa aceste structuri<br />

folo<strong>si</strong>nd arhitecturile bazate pe arii logice programabile atat pentru dispozitivele electronice cat<br />

<strong>si</strong> pentru instrumentatia <strong>de</strong> test. Acest tip <strong>de</strong> structuri programabile au cunoscut o crestere<br />

drastica a numarului <strong>de</strong> celule <strong>si</strong> a functionalitatii, corelata cu o sca<strong>de</strong>re a costului pe tranzistor.<br />

Comerciantii incep <strong>de</strong> asemenea sa integreze FPGA-urile cu procesoare <strong>si</strong> convertoare <strong>de</strong> date<br />

pentru a oferi performante crescute <strong>si</strong> programabilitate cat mai aproape <strong>de</strong> pinii I/O. FPGA-urile<br />

sunt in mod obisnuit programate folo<strong>si</strong>nd limbaje <strong>de</strong> programare hardware precum VHDL <strong>si</strong><br />

Verilog. Aceste meto<strong>de</strong> <strong>de</strong> implementare a functiilor <strong>de</strong> procesare in logica configurabila sunt<br />

inca preferate <strong>de</strong> multi ingineri. Tehnicile <strong>de</strong> programare au avansat <strong>si</strong> includ <strong>de</strong>schi<strong>de</strong>ri catre<br />

platforme precum MATLAB® <strong>si</strong> MATLAB®/Simulink®, care sunt mai comune inginerilor <strong>de</strong><br />

<strong>si</strong>stem, inginerilor ce <strong>de</strong>zvolta algoritmi pentru implementari DSP sau programatorilor.


System De<strong>si</strong>gn & Mo<strong>de</strong>ling Algorithm Development<br />

Control Circuits<br />

Platform Studio<br />

(EDK)<br />

H/W<br />

in the loop<br />

Signal Flow<br />

Simulink<br />

De<strong>si</strong>gn Verification & Debug HDL Generation & Simulation<br />

Figura 1.1. Accesarea FPGA-urilor folo<strong>si</strong>nd System Generator pentru DSP<br />

Figura 1.1 ofera viziunea celor <strong>de</strong> la Xilinx privind modul in care instrumente multiple<br />

pentru <strong>de</strong>zvoltarea <strong>si</strong>stemelor pot interfata <strong>si</strong> modul in care inginerii pot sa lucreze in limbajele<br />

cu care sunt cel mai mult obisnuiti. Diagrama arata ca <strong>si</strong>stemele <strong>de</strong> procesare a semnalelor bazate<br />

pe FPGA pot fi construite folo<strong>si</strong>nd combinatii <strong>de</strong> mo<strong>de</strong>le MATLAB®/Simulink® , cod Matlab,<br />

cod HDL sau C. Cu asemenea instrumente, <strong>de</strong>zvoltatorii pot manipula resursele FPGA <strong>si</strong> chiar<br />

programa aceste structuri din platforme precum MATLAB®/Simulink® <strong>si</strong> MATLAB®.<br />

Procesarea semnalelor digitale este arta analizei, manipularii <strong>si</strong> interpretarii semnalelor<br />

folo<strong>si</strong>nd calculatoare digitale. Aceasta contine un spectru larg <strong>de</strong> scopuri: reducerea zgomotului,<br />

cla<strong>si</strong>ficarea, compre<strong>si</strong>a, filtrarea <strong>si</strong> multe altele. DSP a revolutionat nu numai aplicatiile industriale<br />

precum radarul, receptoarele <strong>de</strong> comunicatii sau imagistica medicala, dar <strong>si</strong> viata <strong>de</strong> zi cu zi.<br />

Astazi, calcule avansate sunt efectuate ca <strong>si</strong> rutina in telefoanele mobile, in aplicatii recreative<br />

precum CD/DVD/MP3-playere, in televiziunea <strong>de</strong> inalta <strong>de</strong>finitie (HDTV), in <strong>si</strong>stemele <strong>de</strong><br />

<strong>si</strong>guranta a automobilelor <strong>si</strong> asa mai <strong>de</strong>parte.<br />

Xilinx<br />

System Generator for DSP<br />

ChipScope Pro<br />

MATLAB<br />

ISE<br />

AccelChip<br />

HDL<br />

co-<strong>si</strong>mulation<br />

Mo<strong>de</strong>lSim


Procesarea multirata a semalelor digitale<br />

Procesarea multirata se ocupa cu procesarea semnalelor digitale ce contin conver<strong>si</strong>e a<br />

ratei <strong>de</strong> esantionare. Aceste tehnici mo<strong>de</strong>rne sunt necesare pentru <strong>si</strong>steme cu rate <strong>de</strong> esantionare<br />

diferite pentru intrare <strong>si</strong> ie<strong>si</strong>re, dar pot fi folo<strong>si</strong>te <strong>si</strong> pentru <strong>si</strong>steme cu rate egale.<br />

Contributii ale multor cercetatori au rezultat intr-o teorie matura a <strong>si</strong>stemelor multirata. S-<br />

a studiat mo<strong>de</strong>larea <strong>si</strong> i<strong>de</strong>ntificarea problemelor in cazul <strong>si</strong>stemelor multirata cu intrari multiple<br />

cu zgomot colorat. In lucrarea sa, mo<strong>de</strong>lele <strong>de</strong> stare-spatiu sunt <strong>de</strong>rivate pentru <strong>si</strong>steme cu<br />

perioa<strong>de</strong> <strong>de</strong> intrare diferite <strong>si</strong> mai <strong>de</strong>parte sunt obtinute functiile <strong>de</strong> transfer corespunzatoare.<br />

Pentru a rezolva dificultatea <strong>de</strong> a i<strong>de</strong>ntifica mo<strong>de</strong>le cu termeni zgomoto<strong>si</strong> nemasurabili,<br />

algoritmul iterativ bazat pe medii patratice este prezentat prin inlocuirea variabilelor<br />

nemasurabile cu estimarile lor iterative. In final, rezultatele <strong>si</strong>mularilor indica faptul ca<br />

algoritmul iterativ propus are avantaje fata <strong>de</strong> algoritmii recur<strong>si</strong>vi.<br />

Discutii au fost purtate <strong>de</strong>spre abordarea in domeniul frecventei a mo<strong>de</strong>larii <strong>si</strong>stemelor<br />

multirata SISO (o <strong>si</strong>ngura intrare <strong>si</strong> o <strong>si</strong>ngura ie<strong>si</strong>re) ce faciliteaza implementarea controller-elor<br />

liniare invariante in timp ce opereaza la rate mari. Pentru a ilustra aceasta abordare, ei con<strong>si</strong><strong>de</strong>ra<br />

un <strong>si</strong>stem cu rata duala cu masuratori incetinite ale ie<strong>si</strong>rii <strong>si</strong> actiuni <strong>de</strong> control rapi<strong>de</strong>.<br />

Conceptul adaptarii proportionate este extins la filtrele adaptive pe subbenzi normalizate<br />

fiind stabilite patru filtre adaptive proportionate. Rezultatele <strong>si</strong>mularilor arata performante<br />

crescute ale algoritmilor propu<strong>si</strong>.<br />

Cercetatori au abordat aspecte diferite ale <strong>si</strong>stemelor multirata, rezultand in crestera<br />

ma<strong>si</strong>va a activitatii in aria procesarii multirata <strong>de</strong> semnale. Procesarea multirata gaseste aplicatii<br />

in compre<strong>si</strong>a imaginilor <strong>si</strong> a vorbirii, in industria audio digitala, procesare <strong>de</strong> semnal statistica <strong>si</strong><br />

adaptiva, solutii numerice a ecuatiilor diferentiale <strong>si</strong> in multe alte domenii.<br />

Algoritmi optimizati <strong>de</strong> implementare<br />

Multe aplicatii <strong>de</strong> procesare a semnalului <strong>si</strong> imaginii nece<strong>si</strong>ta procesari complexe pentru a<br />

rezolva probleme in mod optim. Acest lucru implica tehnici <strong>de</strong> procesare variabile in timp, ce<br />

implica timp <strong>de</strong> procesare <strong>si</strong> nece<strong>si</strong>tati in ceea ce priveste memoria, ce pot fluctua con<strong>si</strong><strong>de</strong>rabil pe<br />

durata executiei. Ariile logice programabile, suportand reconfigurabilitatea <strong>si</strong> paralelismul, au<br />

intrat pe piata, <strong>de</strong>venind candidatul i<strong>de</strong>al pentru algoritmi foarte complec<strong>si</strong>.<br />

Structurile programabile ofera multe avantaje fata <strong>de</strong> cele nereconfigurabile precum<br />

microprocesoarele cu scopuri generale <strong>si</strong> procesoarele DSP. Din acest motiv, o metodologie <strong>de</strong><br />

co-<strong>si</strong>mulare Hardware-Software (HW-SW) bazata pe FPGA este adoptata <strong>si</strong> promite acuratete <strong>si</strong>


apiditate alaturi <strong>de</strong> timpi <strong>de</strong> <strong>si</strong>mulare rapizi pentru <strong>si</strong>steme heterogene, asa cum este aratat in<br />

Figura 1.2.<br />

Figura 1.2. Mediu <strong>de</strong> co-<strong>si</strong>mulare Hardware-Software (HW-SW) bazat pe FPGA<br />

Xilinx System Generator reprezinta instrumentul <strong>de</strong> varf al industriei pentru <strong>de</strong>zvoltarea<br />

<strong>si</strong>stemelor DSP <strong>de</strong> inalta performanta folo<strong>si</strong>nd FPGA-uri. Apropierea cu mediul software<br />

MATLAB®/Simulink® face ca implementarea unor concepte hardware complexe sa <strong>de</strong>vina o<br />

munca mai usoara pentru ingineri. Experienta anterioara cu Xilinx FPGA-uri sau metodologii <strong>de</strong><br />

mo<strong>de</strong>lare la nivel <strong>de</strong> registrii nu este ceruta atunci cand este folo<strong>si</strong>t System Generator. Schemele<br />

sunt <strong>de</strong>zvoltate in mediul <strong>de</strong> mo<strong>de</strong>lare MATLAB®/Simulink® folo<strong>si</strong>nd un blockset specific<br />

Xilinx. Toti pa<strong>si</strong>i <strong>de</strong> implementare FPGA, incluzand <strong>si</strong>n<strong>teza</strong>, plasarea <strong>si</strong> rutarea sunt automat<br />

parcur<strong>si</strong> pentru a genera fi<strong>si</strong>erul <strong>de</strong> <strong>de</strong>scarcare.<br />

Obiectivele <strong>si</strong> organizarea tezei<br />

Obiectivul acestei teze este <strong>de</strong> a optimiza costurile <strong>de</strong> <strong>de</strong>zvoltare <strong>si</strong> implementare ale<br />

aplicatiilor ce folosesc filtre adaptive pentru i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut, prin folo<strong>si</strong>rea<br />

unor instrumente <strong>de</strong> <strong>de</strong>zvoltare mo<strong>de</strong>rne.<br />

Schema <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem se aplica in mod real in i<strong>de</strong>ntificarea caii acustice in<br />

anularea ecoului, <strong>si</strong>stemele <strong>de</strong> control, exploratii seismice <strong>si</strong> canale <strong>de</strong> comunicatie cu cai<br />

multiple. Mediul acustic a fost ales pemtru aceasta aplicatie, prin procesarea <strong>de</strong> semnale vocale <strong>si</strong><br />

audio. Sistemul necunoscut a fost mo<strong>de</strong>lat printr-un reverberator artificial, iar structura <strong>de</strong>


adaptare a fost <strong>de</strong>zvoltata cu ajutorul procesarii multirata. Au fost facute implementari digitale<br />

ale blocurilor, folo<strong>si</strong>nd limbaje <strong>de</strong> <strong>de</strong>scriere hardware <strong>si</strong> instrumentul <strong>de</strong> <strong>de</strong>zvoltare Xilinx<br />

System Generator pentru DSP. Sistemul a fost mapat pe placa <strong>de</strong> <strong>de</strong>zvoltare ce contine<br />

componenta FPGA Spartan 3.<br />

Teza este organizata in cinci capitole, fiecare abordand parti importante ale cercetarii.<br />

Primul capitol introduce concepte relevante folo<strong>si</strong>te pentru a materializa aplicatia. De<br />

asemenea sustine motivatia efortului <strong>de</strong> studiu, stadiul actual al subiectului ales <strong>si</strong> tendintele in<br />

domeniu.<br />

Capitolul al doilea se preocupa cu aspecte ale <strong>de</strong>zvoltarii filtrelor adaptive. Sunt<br />

prezentate principalele lor aplicatii, precum i<strong>de</strong>ntificarea <strong>de</strong> <strong>si</strong>stem necunoscut, egalizare <strong>de</strong><br />

canal, anularea ecoului <strong>si</strong> predictia <strong>de</strong> semnal. De asemenea, este facuta o <strong>de</strong>scriere a structurilor<br />

filtrelor FIR digitale.<br />

Algoritmii adaptivi <strong>de</strong> filtrare sunt <strong>de</strong>scri<strong>si</strong> in <strong>de</strong>taliu. Mo<strong>de</strong>le MATLAB®/Simulink®<br />

au fost <strong>de</strong>zvoltate pentru trei aplicatii caracteristice ale acestora. Patru algoritmi au fost testati in<br />

paralel cu acelea<strong>si</strong> date <strong>de</strong> intrare <strong>si</strong> statistic s-a confirmat ca varianta normalizata a structurii<br />

LMS este cea mai rapida <strong>si</strong> cea mai stabila dintre toate.<br />

Capitolul al treilea este <strong>de</strong>dicat implementarilor digitale ale algoritmilor adaptivi LMS,<br />

NLMS <strong>si</strong> a reverberatoarelor artificiale. Punctari ale celor mai folo<strong>si</strong>te functii in implementarile<br />

FPGA au fost facute <strong>si</strong> sunt <strong>de</strong>scrise limbaje <strong>de</strong> programare hardware. Solutiile Xilinx pentru<br />

aplicatii ale procesarii <strong>de</strong> semnale digitale sunt propuse prin cele doua placi <strong>de</strong> <strong>de</strong>zvoltare ce<br />

contin componente FPGA, Spartan 3 <strong>si</strong> Virtex 5 LX (ML501 Evaluation Platform). Sunt<br />

prezentate <strong>de</strong>zvoltari software <strong>si</strong> dupa etapele <strong>de</strong> verificare, rezultatele <strong>de</strong>monstreaza<br />

fezabilitatea implementarilor digitale. Acest lucru se datoreaza faptul ca efectele implementarilor<br />

Verilog sunt comparabile cu cele din MATLAB®/Simulink® , <strong>de</strong> asemenea facute <strong>si</strong> care au fost<br />

folo<strong>si</strong>te ca <strong>si</strong> referinta.<br />

Aspecte ale procesarii multirata a semnalelor digitale sunt studiate in Capitolul al<br />

patrulea. Este prezentata implementarea filtrelor FIR cu ajutorul functiilor <strong>de</strong> tip ‚fereastra’<br />

(Kaiser, Blackman, Bartlett <strong>si</strong> Hamming) <strong>si</strong> sunt subliniate trasaturi ale <strong>de</strong>cimarii <strong>si</strong> interpolarii,<br />

bancuri <strong>de</strong> filtre (analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong>) <strong>si</strong> codare pe subbenzi. In aplicatiile ce implica controlul<br />

adaptiv al zgomotului, filtrarea adaptiva cu algoritmi avand ordine foarte mari sufera <strong>de</strong><br />

convergenta incetinita <strong>si</strong> complexitate computationala ridicata, din cauza resurselor utilizate.<br />

Filtrarea adaptiva pe subbenzi a fost propusa pentru a evita aceste neajunsuri. I<strong>de</strong>ea <strong>de</strong> baza in<br />

<strong>de</strong>scompunerea subbenzilor este cresterea vitezei <strong>de</strong> convergenta in comparatie cu structura pe<br />

banda intreaga. Instrumente <strong>de</strong> varf ale industriei pentru implemntarea <strong>si</strong>stemelor DSP <strong>de</strong> inalta<br />

performanta au fost folo<strong>si</strong>te pentru a <strong>de</strong>zvolta aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut.<br />

Concluzii <strong>si</strong> contributii personale sunt prezentate in Capitolul al cincilea, sustinand i<strong>de</strong>ea <strong>de</strong>


optimizare a timpului <strong>si</strong> efortului <strong>de</strong> implementare a intregii aplicatii prin folo<strong>si</strong>rea celor mai noi<br />

unelte din zona <strong>de</strong> cercetare.<br />

2. Filtre adaptive<br />

Introducere<br />

Filtrele adaptive sunt filtre digitale capabile <strong>de</strong> auto-ajustare. Cele care au pas <strong>de</strong><br />

convergenta variabil i<strong>si</strong> imbunatatesc dinamic performantele, ca <strong>si</strong> raspuns la conditiile <strong>de</strong><br />

intrare. Acest tip <strong>de</strong> filtre se pot modifica in concordanta cu semnalele <strong>de</strong> intrare <strong>si</strong> sunt utilizate<br />

in aplicatii ce implica insu<strong>si</strong>ri diferite ale filtrului ca raspuns al mediului variabil. Aceste<br />

structuri sunt folo<strong>si</strong>te tipic atunci cand zgomotul apare in aceea<strong>si</strong> banda cu semnalul sau atunci<br />

cand banda <strong>de</strong> zgomot este necunoscuta sau variaza in timp.<br />

Caracteristica primara a unui filtru adaptiv este <strong>de</strong> a-<strong>si</strong> actualiza coeficientii. Coeficientii<br />

noi sunt trimi<strong>si</strong> filtrului <strong>de</strong> catre un generator <strong>de</strong> coeficienti. Acesta este un algoritm adaptiv ce<br />

modifica coeficientii in functie <strong>de</strong> un semnal <strong>de</strong> intrare. In majoritatea aplicatiilor scopul lui este<br />

sa ajusteze coeficientii filtrului astfel incat filtrul adaptiv sa minimizeze zgomotul din semnal.<br />

Din moment ce zgomotul se modifica, coeficientii trebuie sa se modifice pentru a se potrivi, <strong>de</strong><br />

un<strong>de</strong> <strong>si</strong> numele ‚filtru adaptiv’.<br />

Numero<strong>si</strong> algoritmi eficienti din punct <strong>de</strong> ve<strong>de</strong>re computational pentru acest tip <strong>de</strong> filtrare<br />

au fost <strong>de</strong>zvoltati in ultimii douazeci <strong>de</strong> ani. Acestia se bazeaza ori pe abordari statistice, precum<br />

algoritmii cu cele mai mici medii patratice (LMS), ori pe abordari <strong>de</strong>terministice, ca <strong>si</strong> in cazul<br />

algoritmului mediilor patratice recur<strong>si</strong>ve (RLS). Avantajul major al LMS este <strong>si</strong>mplitatea<br />

computationala. Algoritmul RLS, dimpotriva, ofera convergenta mai rapida, dar <strong>si</strong> un grad inalt<br />

al complexitatii <strong>de</strong> calcul.<br />

In filtrele digitale FIR <strong>si</strong> IIR conventionale se presupune ca parametrii procesului ce<br />

<strong>de</strong>termina caracteristicile filtrului sunt cunoscute. Ei pot varia in timp, insa natura variatiei se<br />

presupune cunoscuta. In multe probleme practice, poate fi o mare incertitudine in cazul<br />

parametrilor, a caror modificare nu e previzibila. In aceste cazuri se doreste ca filtrele sa fie auto-<br />

invatare, pentru a se putea adapta <strong>si</strong>tuatiei in cauza.<br />

Acest capitol se ocupa cu aspecte legate <strong>de</strong> mo<strong>de</strong>larea filtrelor adaptive. Sunt prezentate<br />

principalele lor aplicatii, precum i<strong>de</strong>ntificarea <strong>de</strong> <strong>si</strong>stem necunoscut, egalizarea canalului,<br />

anularea ecoului <strong>si</strong> predictia <strong>de</strong> semnal. Generalitati legate <strong>de</strong> structurile FIR digitale sunt <strong>de</strong><br />

asemenea prezentate.


Algoritmii <strong>de</strong> filtrare adaptiva sunt <strong>de</strong>scri<strong>si</strong> in <strong>de</strong>taliu:<br />

• Metoda celor mai mici medii patratice, ce incorporeaza o procedura iterativa<br />

ce face corectii succe<strong>si</strong>ve vectorului <strong>de</strong> pon<strong>de</strong>ri <strong>si</strong> conduce in cele din urma la<br />

minimizarea erorii;<br />

• Algoritmul LMS normalizat, folo<strong>si</strong>t frecvent in aplicatii datorita convergentei<br />

rapi<strong>de</strong> <strong>si</strong> stabilitatii;<br />

• Algoritmii cu semn ce tind sa <strong>si</strong>mplifice cerintele <strong>de</strong> calcul ale LMS prin<br />

reducerea numarului <strong>de</strong> multiplicari;<br />

• Algoritmul celor mai mici patrate recur<strong>si</strong>v ce foloseste informatiile<br />

esantioanelor <strong>de</strong> intrare anterioare pentru a estima matricea <strong>de</strong> autocorelatie a<br />

vectorului <strong>de</strong> intrare.<br />

Pentru a urmari abilitatile acestor tipuri <strong>de</strong> filtre, mo<strong>de</strong>le MATLAB®/Simulink® au fost<br />

<strong>de</strong>zvoltate pentru trei aplicatii sugestive ale algoritmilor adaptivi: anularea zgomotului,<br />

i<strong>de</strong>ntificarea <strong>de</strong> <strong>si</strong>stem necunoscut <strong>si</strong> predictie <strong>de</strong> semnal. Patru tipuri <strong>de</strong> algoritmi adaptivi au<br />

fost testati in paralel avand acelea<strong>si</strong> conditii <strong>de</strong> intrare <strong>si</strong> statistic s-a dovedit ca algoritmul<br />

NLMS este cel mai stabil dintre toate. Fiecare implica folo<strong>si</strong>rea schemei bloc schitata in teorie,<br />

diferenta constand in faptul ca in loc <strong>de</strong> un <strong>si</strong>ngur proces <strong>de</strong> adaptare, patru procese paralele au<br />

fost rulate: LMS, NLMS, SE-LMS <strong>si</strong> SS-LMS. Toate au po<strong>si</strong>bilitatea sa fie schimbate intre doua<br />

tipuri <strong>de</strong> convergenta, avand rata normala (valoarea pasului <strong>de</strong> convergenta fiind 0.014) sau rata<br />

incetinita (valoarea pasului <strong>de</strong> convergenta fiind 0.0025).<br />

Mediul MATLAB®/Simulink® a fost ales datorita preciziei <strong>de</strong> calcul <strong>si</strong> complexitatii;<br />

un alt motiv a constat in usurinta implementarii operatiilor cu virgula mobila.<br />

Abilitatile filtrelor adaptive sunt con<strong>si</strong><strong>de</strong>rate din punct <strong>de</strong> ve<strong>de</strong>re al ajustarii coeficientilor<br />

<strong>si</strong> a convergentei erorii. Ferestrele Waterfall tridimen<strong>si</strong>onale arata comportamentul favorabil al<br />

algoritmului NLMS, fiind cel mai stabil <strong>si</strong> robust dintre toate. Ca <strong>si</strong> continuare, bazat pe<br />

statisticile facute, algoritmul cel mai eficient a fost ales pentru implementare digitala in mediul<br />

hardware Verilog.<br />

3. Implementari digitale<br />

Datorita progresului in tehnologia semiconductorilor, a<strong>si</strong>stam la algoritmi DSP tot mai<br />

complec<strong>si</strong>, protocoale <strong>si</strong> aplicatiile teoretice <strong>de</strong>venind realizabile. Consecinta acestui fapt consta<br />

in cresterea complexitatii acestor <strong>si</strong>steme <strong>si</strong> produse. Pe masura ce acest lucru <strong>de</strong> intampla,<br />

fiabilitatea <strong>si</strong>stemelor nu mai este exclu<strong>si</strong>v <strong>de</strong>finita <strong>de</strong> platformele hardware. In ziua <strong>de</strong> astazi, ea


este tot mai mult <strong>de</strong>terminata <strong>de</strong> arhitecturile hardware <strong>si</strong> software, procesele <strong>de</strong> <strong>de</strong>zvoltare <strong>si</strong><br />

verificare <strong>si</strong> nivelul mentenantei <strong>de</strong><strong>si</strong>gn-ului.<br />

Una dintre problemele fundamentale ale arhitecturilor este reprezentata <strong>de</strong> tipul<br />

platformei DSP. Functiile procesarii digitale <strong>de</strong> semnal sunt in mod obisnuit implementate pe<br />

doua tipuri <strong>de</strong> platforme programabile: procesoare digitale <strong>de</strong> semnal <strong>si</strong> arii logice programabile<br />

(FPGA). Procesoarele digitale <strong>de</strong> semnal sunt o forma specializata <strong>de</strong> microprocesoare, in timp<br />

ce FPGA-urile reprezinta o forma <strong>de</strong> inalta configurabilitate hardware. In trecut, utilizarea<br />

procesoarelor <strong>de</strong> semnal era aproape omniprezenta, dar odata cu nevoile numeroaselor aplicatii<br />

ce <strong>de</strong>pasesc capacitatilor acestora, folo<strong>si</strong>rea FPGA-urilor a <strong>de</strong>venit larg raspandita.<br />

Procesarea digitala <strong>de</strong> semnal bazata pe FPGA are ca suport logica hardware <strong>si</strong> nu sufera<br />

<strong>de</strong> problemele <strong>de</strong> performanta precum in cazul procesoarelor software. Aceste structuri permit<br />

aplicatiilor sa ruleze in paralel.<br />

Implementarea hardware a algoritmului adaptiv LMS<br />

Schema bloc a algoritmului LMS contine doua parti functionale principale:<br />

• Filtrul FIR ;<br />

• Algoritmul LMS .<br />

Filtrul FIR este implementat serial folo<strong>si</strong>nd un multiplicator <strong>si</strong> un sumator cu reactie asa<br />

cum este prezentat in schema din Figura 3.1. Rezultatul filtrului FIR este normalizat pentru a<br />

minimiza saturatia.<br />

Figura 3.1. Implementare FIR<br />

Algoritmul LMS actualizeaza iterativ coeficientii <strong>si</strong> ii pune la dispozitie filtrului FIR.<br />

Acesta din urma foloseste coeficientii c(n) pe parcursul semnalului <strong>de</strong> intrare x(n) pentru a<br />

genera ie<strong>si</strong>rea y(n). Semnalul y(n) este scazut apoi din semnalul dorit d(n) pentru a genera un<br />

semnal <strong>de</strong> eroare, folo<strong>si</strong>t mai <strong>de</strong>parte pentru calcului urmatorului set <strong>de</strong> coeficienti.<br />

Algoritmul LMS este implementat conform schemei bloc din Figura 3.2. Coeficientii sunt<br />

calculati conform ecuatiilor specifice. Intarzierea este necesara in <strong>de</strong><strong>si</strong>gn pentru a separa


coeficientii curenti <strong>de</strong> urmatorul set <strong>de</strong> coeficienti. Durata intarzierii este aproximativ egala cu<br />

dimen<strong>si</strong>unea tap-ului.<br />

Figura 3.2 Implementarea algoritmului LMS<br />

Implementarea schemei bloc prezentata mai sus a fost facuta folo<strong>si</strong>nd limbajul <strong>de</strong><br />

programare hardware Verilog, pentru a transfera infomatiile legate <strong>de</strong> algoritmul adaptiv LMS pe<br />

placa <strong>de</strong> <strong>de</strong>zvoltare ce contine o componenta FPGA Spartan 3.<br />

Toate calculele au fost abordate sa implementeze exact formulele specifice algoritmului.<br />

Amintim ecuatiile specifice:<br />

w(n + 1) = w(n) + µ*u(n) *e(n) (ec. 3.1)<br />

e(n) = d(n) – y(n) (ec. 3.2)<br />

x(n) <strong>si</strong> d(n), cele doua semnale <strong>de</strong> intrare, au fost puse la dispozitie <strong>de</strong> mediul Matlab, un<strong>de</strong>, cu<br />

ajutorul unui <strong>si</strong>stem special conceput, datele ce caracterizeaza semnalele la fiecare tact au fost<br />

transformate in fi<strong>si</strong>ere binare; acestea au fost incarcate apoi in codul Verilog.<br />

Motivul pentru care s-au introdus acela<strong>si</strong> tip <strong>de</strong> date ca <strong>si</strong> in <strong>de</strong>zvoltarea Matlab a fost<br />

compararea celor doua tipuri <strong>de</strong> implementari.<br />

Interfata modulului LMS este prezentata in Figura 3.3 <strong>si</strong> contine urmatoarele semnale:<br />

• clk- semnal <strong>de</strong> tact;<br />

• rstn- semnal <strong>de</strong> reset (activ pe frontul negativ);<br />

• in_<strong>si</strong>gnal- semnal <strong>de</strong> intrare, disponibil pe 16 biti;<br />

• <strong>de</strong>s_<strong>si</strong>gnal- semnal dorit, disponibil pe 16 biti;<br />

• out_<strong>si</strong>gnal- semnal <strong>de</strong> ie<strong>si</strong>re, disponibil pe 24 biti;<br />

• err_<strong>si</strong>gnal- semnal <strong>de</strong> eroare, disponibil pe 24 biti.


Figure 3. 3.3. Interfata modulului LMS<br />

Ordinul filtrului a fost setat ca <strong>si</strong> parametru, pentru a putea fi modificat cu usurinta.<br />

Implementarea hardware a algoritmului adaptiv NLMS<br />

Algoritmul adaptiv NLMS combina un filtru FIR cu un algoritm <strong>de</strong> adaptare. adaptare Intr-un<br />

filtru FIR transversal <strong>de</strong> ordin N, la fiecare a n-a iteratie, esantionul <strong>de</strong> ie<strong>si</strong>re y[n] este calculat<br />

ca suma pon<strong>de</strong>rata a esantioanelor <strong>de</strong> intrare curente <strong>si</strong> intarziate.<br />

y ( n ) = c ( n ) ⋅ x ( n − k )<br />

un<strong>de</strong> ck ( n ) reprezinta coeficientii filtrului. Figura<br />

fltru FIR digital <strong>de</strong> ordin 4:<br />

Figura 3.4. Schema bloc a unui filtru tranversal <strong>de</strong> ordinul 4<br />

Diagrama rama <strong>de</strong> implementare a algoritmului NLMS este prezentata in Figura 3.5. Ajustarea<br />

coeficientilor in acest algoritm nece<strong>si</strong>ta utilizarea operat operatiei iei <strong>de</strong> impartire. Asadar, NLMS are<br />

complexitate <strong>de</strong> calcul crescuta fata <strong>de</strong> LMS. Aceasta operatie in general ofera raza dinamica<br />

scazuta, cu toate ca nece<strong>si</strong>ta un numar mare <strong>de</strong> porti. Pentru a evita utilizarea suplimentara a<br />

resurselor <strong>de</strong> porti in cazul operatiei <strong>de</strong> impartire, <strong>de</strong>cizia alternativa este <strong>de</strong> a fol folo<strong>si</strong> fol operatia <strong>de</strong><br />

shiftare in loc.<br />

LMS block<br />

> clk<br />

> rstn out <strong>si</strong>gnal ><br />

> in_<strong>si</strong>gnal err_<strong>si</strong>gnal ><br />

> <strong>de</strong>s_<strong>si</strong>gnal<br />

N −1<br />

∑<br />

k = 0<br />

k<br />

(ec. 3.3)<br />

coeficientii filtrului. Figura 3.4 <strong>de</strong>scrie implementarea schemei bloc a unui


Schema bloc din Figura 3. 3.5 arata modul <strong>de</strong> implementare al algoritmului, urmarind strict<br />

ecuatiile <strong>de</strong> adaptare. Aceasta implica doua multiplicatoare <strong>si</strong> doua sumatoare pentru ajustarea<br />

coeficientilor. Pentru a alcula norma semnalului <strong>de</strong> intrare, ss-a<br />

a implementat ecuatia (3.4).<br />

Figura 3. 3.5. Schema bloc a algoritmului NLMS<br />

Dezvoltarea hardware, facuta in Verilog, a folo<strong>si</strong>t pentru datele <strong>de</strong> intrare semnale pe 16<br />

biti (semnalul <strong>de</strong> intrare x(n) <strong>si</strong> semnalul dorit d(n)), iar pentru ie<strong>si</strong>re, semnalul y(n) pe 24 biti. In<br />

ceea ce e priveste semnalul <strong>de</strong> eroare, este foarte importanta alegerea intervalului corect pentru<br />

pasul <strong>de</strong> convergenta; daca valoarea este prea mica, algoritmul poate avea un proces <strong>de</strong> adaptare<br />

prelungit <strong>si</strong> eroarea o convergenta lenta. Totu<strong>si</strong>, u<strong>si</strong>, daca valoarea este prea mare, poate duce la o<br />

convergenta forte zgomotoasa <strong>si</strong> instabila sau chiar oscilatie.<br />

In Figura 3.6 doua semnale <strong>de</strong> convergenta sunt comparate. Acestea caracterizeaza doua<br />

tipuri <strong>de</strong> algoritmi adaptivi (LMS <strong>si</strong> NLMS), testati pentru acela<strong>si</strong> ordin (N=4) <strong>si</strong> pentru acelea<strong>si</strong><br />

date <strong>de</strong> intrare (zgomot). In cazul algoritmului LMS pasul <strong>de</strong> convergenta a fost ales constant <strong>si</strong><br />

egal cu 0.011, insa pentru NLMS pasul <strong>de</strong> convergenta implica variabilitate, <strong>de</strong>pinzand <strong>de</strong><br />

semnalul <strong>de</strong> intrare.<br />

x( n) =∑ x( n)<br />

Figura 3.1. Eroarea <strong>de</strong> convergenta in cazul LMS <strong>si</strong> NLMS<br />

2<br />

(ec. 3.4)


Aceste rezultate experimentale <strong>de</strong>monstreaza garantia stabilitatii <strong>si</strong> convergentei mai<br />

putin zgomotoase in cazul variantei normalizate a algoritmului LMS. De asemenea, vi<strong>teza</strong> <strong>de</strong><br />

convergenta este con<strong>si</strong><strong>de</strong>rabil crescuta, confirmand statisticile facute in aplicatiile<br />

MATLAB®/Simulink® .<br />

Implementarea digitala a reverberatoarelor<br />

Implementarea digitalǎ a reverberatorului Schroe<strong>de</strong>r a presupus proiectarea filtrelor <strong>de</strong> tip<br />

trece tot şi pieptene cu toate componentele specifice, la nivel <strong>de</strong> registrii.<br />

Reverberatorul Schroe<strong>de</strong>r insumeazǎ patru filtre <strong>de</strong> tip pieptene, la care se aplica aceea<strong>si</strong> intrare<br />

(impuls) şi doua filtre trece-tot, ie<strong>si</strong>rea fiind preluatǎ <strong>de</strong> la ie<strong>si</strong>rea celui <strong>de</strong>-al doilea.<br />

Interfata unui filtru <strong>de</strong> tip pieptene presupune trei semnale <strong>de</strong> intrare <strong>si</strong> unul <strong>de</strong> ie<strong>si</strong>re (Figura<br />

3.7), dintre care:<br />

- semnal <strong>de</strong> tact global, clk, con<strong>si</strong><strong>de</strong>rat <strong>de</strong> frecventa 50MHz;<br />

- semnal <strong>de</strong> reset, care permite initierea semnalelor cu valorile dorite;<br />

- semnalul <strong>de</strong> intrare, in_pulse, reprezentat printr-un impuls;<br />

- semnalul <strong>de</strong> ieşire, out_filter.<br />

Figura 3.7. Interfata modulului reverberatorului Schroe<strong>de</strong>r<br />

Interfata unui filtru <strong>de</strong> tip trece-tot presupune trei semnale <strong>de</strong> intrare <strong>si</strong> unul <strong>de</strong> ie<strong>si</strong>re, dintre care:<br />

- semnal <strong>de</strong> tact global, clk, con<strong>si</strong><strong>de</strong>rat <strong>de</strong> frecventǎ 50MHz;<br />

- semnal <strong>de</strong> reset, care permite initierea semnalelor cu valorile dorite;<br />

- semnalul <strong>de</strong> intrare, in_<strong>si</strong>gnal, reprezentat prin semnalul <strong>de</strong> ieşire al însumǎrii filtrelor<br />

pieptene sau prin ie<strong>si</strong>rea primului filtru trece- tot;<br />

- semnalul <strong>de</strong> ie<strong>si</strong>re, out_<strong>si</strong>gnal.<br />

Schroe<strong>de</strong>r reverberator<br />

> clk<br />

> rstn<br />

> in_pulse<br />

out filter ><br />

Trebuie precizat cǎ semnalul <strong>de</strong> intrare este mo<strong>de</strong>lat în mediul MATLAB®/Simulink® , dupǎ<br />

care este prelucrat pentru a lua forma binarǎ şi a fi folo<strong>si</strong>t în implementarea digitalǎ Verilog.<br />

Motivul pentru care a fost fǎcut acest lucru este folo<strong>si</strong>rea aceluiaşi set <strong>de</strong> date atât în


implementarea software (MATLAB®/Simulink® ), cât şi in cea hardware (Verilog), dorind a fi<br />

comparate ulterior.<br />

Implementarea în mediul Verilog s-a fǎcut cu ajutorul editorului EditPlus, iar verificarea tuturor<br />

fişierelor a fost facutǎ în programul Mo<strong>de</strong>lSim.<br />

Fiecare bloc a fost implementat într-un fişier separat, pentru a putea fi verificat mai usor.<br />

A fost creat un fişier <strong>de</strong> test, test_bench ce a<strong>si</strong>gurǎ semnalul <strong>de</strong> intrare şi un fi<strong>si</strong>er top_level, ce<br />

instanţiazǎ toate modulele create separat, pentru a putea <strong>si</strong>ncroniza verificarea şi <strong>si</strong>mularea lor.<br />

Dupǎ ce întregul <strong>de</strong><strong>si</strong>gn a fost implementat şi testat, pentru o mai bunǎ vizualizare a<br />

rezultatului, semnalul <strong>de</strong> ieşire a fost încǎrcat într-un script Matlab special creat, ce permite<br />

afişarea lui sub forma unui grafic, aşa cum este aratat in Fig.19.<br />

Figura 3.2. Raspunsul reverberatorului Schroe<strong>de</strong>r implementat in mediul: a)<br />

MATLAB®/Simulink® b)Verilog<br />

Este prezentata implementarea digitalǎ a patru tipuri <strong>de</strong> reverberatoare cunoscute<br />

(Schroe<strong>de</strong>r, Gardner, Moorer <strong>si</strong> Dattorro), fiecare dintre ele având variante specifice pentru<br />

diferite aplicatii. De<strong>si</strong>gn-ul fiecǎruia a fost fǎcut în mediul <strong>de</strong> implementare hardware Verilog,<br />

iar partea <strong>de</strong> verificare (compilare şi <strong>si</strong>mulare) a fost facutǎ cu ajutorul programului Mo<strong>de</strong>lSim<br />

PE 6.3 Stu<strong>de</strong>nt Edition.<br />

Iniţial s-a fǎcut o implementare în mediul Matlab-MATLAB®/Simulink® , aceasta fiind<br />

con<strong>si</strong><strong>de</strong>ratǎ ca şi referintǎ pentru <strong>de</strong><strong>si</strong>gn-ul digital. Semnalul <strong>de</strong> intrare a fost acelaşi pentru<br />

ambele tipuri <strong>de</strong> implementǎri, fiind mo<strong>de</strong>lat în Matlab sub forma unui impuls. S-au preluat<br />

datele <strong>de</strong> intrare (digitalizate) în programarea Verilog a reverberatoarelor, iar rezultatele au fost<br />

afisate cu ajutorul unui script software special creat, pentru o mai buna vizualizare. Asa cum<br />

dove<strong>de</strong>sc formele <strong>de</strong> undǎ ce reprezintǎ semnalele <strong>de</strong> ieşire în cazul fiecarui tip <strong>de</strong> reverberator,


cele douǎ implementǎri (MATLAB®/Simulink® şi Verilog) prezintǎ efecte <strong>si</strong>milare,<br />

comparabile ca forma şi comportament, scopul propus fiind atins.<br />

Avantajul principal al implementǎrii digitale a acestor tipuri <strong>de</strong> reverberatoare constǎ în<br />

faptul cǎ pot fi folo<strong>si</strong>te pentru prelucrarea semnalului acustic şi <strong>de</strong>scǎrcate pe plǎci <strong>de</strong> <strong>de</strong>zvoltare<br />

ce conţin componente FPGA. Ariile logice programabile oferǎ o vitezǎ <strong>de</strong> procesare mai ridicatǎ<br />

faţǎ <strong>de</strong> meto<strong>de</strong>le uzuale ce utilizeazǎ procesoare digitale <strong>de</strong> semnal.<br />

Implementǎri ulterioare implicǎ folo<strong>si</strong>rea datelor <strong>de</strong> tip virgula mobila în procesarea<br />

semnalelor pentru o acurateţe ridicatǎ a rezultatelor.<br />

4. Procesarea multirata a <strong>si</strong>stemelor digitale<br />

Procesarea semnalelor digitale a fost o ramura bine stabilita a ingineriei electronice<br />

pentru mai multi ani. In ultima perioada, aceasta a fost stimulata mai <strong>de</strong>parte <strong>de</strong> progresul<br />

tehnicilor multirata.<br />

Caracteristica <strong>de</strong> baza a algoritmilor multirata este eficienta lor ridicata <strong>de</strong> calcul. In<br />

multe <strong>si</strong>tuatii, acesti algoritmi sunt motivul principal datorita caruia o aplicatie poate fi<br />

implementata economic folo<strong>si</strong>nd procesoare digitale mo<strong>de</strong>rne <strong>de</strong> semnal. In acela<strong>si</strong> timp,<br />

structurile tipice ale <strong>si</strong>stemelor multirata reprezinta mo<strong>de</strong>le pentru <strong>de</strong>zvoltarea <strong>de</strong> arhitecturi<br />

eficiente pentru circuite microelectronice.<br />

Filtrarea adaptiva reprezinta un concept important in domeniul procesarii <strong>de</strong> semnal <strong>si</strong> a<br />

comunicatiilor. Exemple ale procesarii vocii includ inten<strong>si</strong>ficarea vorbirii, anularea ecoului <strong>si</strong> a<br />

interferentelor <strong>si</strong> codarea vorbirii. Aplicatia vizata este i<strong>de</strong>ntificarea <strong>de</strong> <strong>si</strong>stem necunoscut,<br />

folo<strong>si</strong>nd algoritmul adaptiv NLMS. Figura 4.1 <strong>de</strong>scrie ver<strong>si</strong>unea pe banda intreaga a acestei<br />

aplicatii <strong>si</strong> a fost discutata anterior. Scopul este compararea acestui tip <strong>de</strong> implementare cu cea<br />

care implica codarea pe subbenzi, pentru a analiza performantele ambelor tipuri <strong>de</strong> abordari.<br />

Atat <strong>si</strong>stemul necunoscut cat <strong>si</strong> filtrul adaptiv sunt legate la aceea<strong>si</strong> intrare, iar coeficientii<br />

filtrului adaptiv sunt ajustati astfel incat semnalul <strong>de</strong> ie<strong>si</strong>re sa recompuna semnalul <strong>de</strong> la ie<strong>si</strong>rea<br />

<strong>si</strong>stemului necunoscut, filtrul adaptiv fiind utilizat pentru a aproxima acest <strong>si</strong>stem necunoscut.


Figura 4.1. I<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe banda intraga<br />

I<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem - codare pe subbenzi MATLAB®/Simulink®<br />

I<strong>de</strong>ea <strong>de</strong> baza a abordarii <strong>de</strong>scompunerii pe subbenzi este cresterea vitezei <strong>de</strong> convergenta<br />

in comparatie cu solutia pe banda intreaga. Acest lucru se datoreaza intervalului redus al<br />

magnitudinii spectrale, filtrarea pe subbenzi avand efect <strong>de</strong>corelant <strong>de</strong>oarece semnalele <strong>de</strong> intrare<br />

sunt <strong>de</strong>scompuse in subbenzi cu sub-spectre.<br />

Figura 4.2 <strong>de</strong>scrie procesul filtrarii adaptive pe subbenzi (SAF). Folo<strong>si</strong>nd bancuri <strong>de</strong> filtre<br />

<strong>de</strong> analiza P(z), semnalul original este <strong>de</strong>scompus prin divizarea spectrelor acestuia in intervale<br />

mai mici (x0(n), x1(n), … ). Filtrarea adaptiva este executata pe fiecare subbanda <strong>de</strong> catre un set<br />

<strong>de</strong> filtre in<strong>de</strong>pen<strong>de</strong>nte (h0(n), h1(n),…). Ie<strong>si</strong>rile acestor filtre sunt ulterior combinate folo<strong>si</strong>nd un<br />

banc <strong>de</strong> filtru <strong>de</strong> <strong>si</strong>n<strong>teza</strong> Q(z) pentru a reconstrui ie<strong>si</strong>rea pe banda intreaga.<br />

Latimea <strong>de</strong> banda pe fiecare subbanda este redusa. De<strong>si</strong> frecventa <strong>de</strong> esantionare pentru<br />

fiecare filtru al subbenzii poate fi micsorata. Ca <strong>si</strong> consecinta, filtrele adaptive nece<strong>si</strong>ta mai<br />

putine resurse incomparatie cu solutia pe banda intreaga pentru a acoperi acela<strong>si</strong> interval <strong>si</strong> sunt<br />

actualizate la o rata mai scazuta. Acest lucru duce la o reducere semnificativa a complexitatii <strong>de</strong><br />

calcul.<br />

Deoarece calitatea separarii subbenzilor este foarte importanta pentru rata <strong>de</strong> <strong>de</strong>cimare<br />

obtinuta <strong>si</strong> pentru comportamentul convergentei filtrelor adaptive in subbenzi, implementarea<br />

bancurilor <strong>de</strong> filtre <strong>de</strong> analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong> este un factor <strong>de</strong>terminant in ceea ce priveste calitatea <strong>si</strong><br />

eficienta intregului <strong>si</strong>stem.<br />

Pentru aceste tipuri <strong>de</strong> bancuri <strong>de</strong> filtre pot fi folo<strong>si</strong>te doar filtre nerecur<strong>si</strong>ve, din moment<br />

ce filtrarea adaptiva pe subbenzi nece<strong>si</strong>ta intarzieri <strong>de</strong> grup liniare.


Figura 4.2. Descompunerea pe subbenzi a aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem<br />

In comparatie cu metoda i<strong>de</strong>ntificari pe banda intreaga, metoda bazata pe <strong>de</strong>scompunerea<br />

in subbenzi are urmatoarele avantaje:<br />

• Nece<strong>si</strong>ta cost computational scazut. Acest fapt se datoreaza ratei scazute a<br />

semnalului pe fiecare subbanda <strong>si</strong> fiecare mo<strong>de</strong>l implica dimen<strong>si</strong>unea tap-urilor<br />

mai mica. Aceste caracteristici sunt partial echilibrate <strong>de</strong> calculele in plus ce apar<br />

la formarea subbenzilor. Dar prin alegerea atenta a parametrilor <strong>de</strong> implementare<br />

(incluzand numarul <strong>de</strong> subbenzi, bancurile <strong>de</strong> filtre <strong>si</strong> mo<strong>de</strong>lele <strong>de</strong> subbenzi), pot<br />

fi facute optimizari ale resurselor folo<strong>si</strong>nd i<strong>de</strong>ntificarea <strong>de</strong> <strong>si</strong>stem pe subbenzi.<br />

• Ofera proprietati numerice mai bune <strong>si</strong> mai stabile. Mai precis, se prefera<br />

utilizarea algoritmilor rapizi pentru estimari recur<strong>si</strong>ve.<br />

Algoritmi optimizati <strong>de</strong> implementare<br />

Natura multor aplicatii ce implica procesare digitala <strong>de</strong> semnal nece<strong>si</strong>ta reprezentari ale<br />

datelor in format cu virgula mobila. In timp ce acest format este usor <strong>de</strong> implementat pe <strong>si</strong>steme<br />

<strong>de</strong> calculatoare pe care ruleaza programe <strong>de</strong> mo<strong>de</strong>lare <strong>de</strong> inalt nivel precum<br />

MATLAB®/Simulink® , este o mai mare provocare in lumea hardware datorita complexitatii<br />

implementarii aritmetice cu virgula mobila. Aceste provocari cresc odata cu <strong>si</strong>stemele DSP<br />

portabile ce implica aplicarea unor constrangeri mai restrictive intregului <strong>si</strong>stem. Din acest motiv<br />

Xilinx System Generator foloseste formatul cu virgula fixa pentru a reprezenta toate valorile


numerice din <strong>si</strong>stem. XSG pune la dispozitie o serie <strong>de</strong> blocuri ce transforma datele din partea <strong>de</strong><br />

mediu software (MATLAB®/Simulink® ) catre partea hardware (blocurile System Generator).<br />

Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem pe banda intreaga<br />

Aplicatia <strong>de</strong> i<strong>de</strong>ntificare a unui <strong>si</strong>stem necunoscut este implementata cu ajutorul XSG in<br />

platforma MATLAB®/Simulink® , asa cum este prezentat in Figura 4.3. In afara portilor <strong>de</strong><br />

intrare/ie<strong>si</strong>re este mo<strong>de</strong>lat un mediu acustic.<br />

Figura 4.3. Implementarea XSG pe banda intreaga<br />

Portile <strong>de</strong> intrare sunt folo<strong>si</strong>te la intrarea <strong>si</strong>stemului XSG pentru a converti datele din format cu<br />

virgula mobila in format cu virgula fixa. Proprietatile acestora sunt specifice <strong>de</strong>taliilor formatului<br />

cu virgula fixa. Trei dintre ele sunt:<br />

Tipul ie<strong>si</strong>rii: trei valori pot fi atribuite acestei proprietati: boolean, ce implica<br />

reprezentare pe un <strong>si</strong>ngur bit, reprezentare in complement fata <strong>de</strong> 2 <strong>si</strong> reprezentare<br />

fara semn.<br />

Numarul <strong>de</strong> biti: numarul <strong>de</strong> biti pe care se reprezinta datele. Cu cat numarul <strong>de</strong> biti<br />

este mai mare, cu atat rezolutia <strong>si</strong>stemului este mai mare.<br />

Punct binar: aceasta este pozitia punctului binar in formatul cu virgula fixa.<br />

Portile <strong>de</strong> ie<strong>si</strong>re sunt folo<strong>si</strong>te pentru a transforma datele generate <strong>de</strong> catre System Generator in<br />

format cu virgula fixa, din format cu virgula mobila cerut <strong>de</strong> MATLAB®/Simulink®. Acestea<br />

<strong>de</strong>tecteaza automat formatul cu virgula fixa din ie<strong>si</strong>rea <strong>si</strong>stemului <strong>si</strong> nu nece<strong>si</strong>ta nici o<br />

modificare.


Pentru implementarea filtrului adaptiv exista doua po<strong>si</strong>bilitati: implementarea cu blocuri oferite<br />

<strong>de</strong> toolbox-ul Xilinx din mediul MATLAB®/Simulink® sau inserarea <strong>de</strong> cod HDL intr-o<br />

structura <strong>de</strong> tip ‚black-box’.<br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

0 0.5 1 1.5 2 2.5 3<br />

1<br />

0.5<br />

0<br />

-0.5<br />

Original <strong>si</strong>gnal<br />

-1<br />

0 0.5 1 1.5 2 2.5 3<br />

1<br />

0.5<br />

0<br />

-0.5<br />

Estimated <strong>si</strong>gnal<br />

Absolute error<br />

-1<br />

0 0.5 1 1.5<br />

Time (s)<br />

2 2.5 3<br />

Figura 4.4. Semnalele aplicatiei pe banda intreaga<br />

Procesul <strong>de</strong> adaptare estimeaza ie<strong>si</strong>rea filtrului in timp, pentru a minimiza eroarea<br />

absoluta. Figura 4.4 arata semnalul original, semnalul rezultat la ie<strong>si</strong>rea filtrului adaptiv <strong>si</strong><br />

eroarea <strong>de</strong> convergenta. Cel din urma dove<strong>de</strong>ste performanta <strong>si</strong>stemului <strong>de</strong>zvoltat, prin atingerea<br />

unor valori apropiate <strong>de</strong> zero. Acest lucru confirma faptul ca pon<strong>de</strong>rile filtrului sunt ajustate<br />

astfel incat sa se apropie cat <strong>de</strong> mult <strong>de</strong> coeficientii functiei <strong>de</strong> transfer ai <strong>si</strong>stemului necunoscut.<br />

Un avantaj con<strong>si</strong><strong>de</strong>rabil al utilizarii instrumentului Xilinx System Generator este po<strong>si</strong>bilitatea<br />

verificarii <strong>si</strong>stemului implementat in diferite moduri. Co-<strong>si</strong>mularea hardware pune la dispozitie<br />

<strong>si</strong>mulare accelerata. Principiul <strong>de</strong> baza este acela ca XSG creaza automat o componenta pentru<br />

un <strong>de</strong><strong>si</strong>gn capturat in blockset-ul Xilinx DSP, ce poate rula pe una dintre cele 20 <strong>de</strong> platforme ce<br />

le are la dispozitie. Se creaza un fi<strong>si</strong>er <strong>de</strong> <strong>de</strong>scarcare ‚bitstream’ ce este asociat unui bloc, asa<br />

cum este exemplificat in Figura 4.5 pentru cazul i<strong>de</strong>ntificarii adaptive. Atunci cand <strong>si</strong>stemul este<br />

<strong>si</strong>mulat in MATLAB®/Simulink®, rezultatele pentru portiunea compilata sunt calculate folo<strong>si</strong>nd


hardware-ul. Acest lucru permite partilor compilate sa fie testate efectiv folo<strong>si</strong>nd hardware-ul,<br />

timpul <strong>si</strong>mularii crescand dramatic. Fi<strong>si</strong>erul <strong>de</strong> <strong>de</strong>scarcare contine hardware-ul asociat mo<strong>de</strong>lului,<br />

precum <strong>si</strong> logica <strong>de</strong> interfatare ce permite System Generator sa comunice cu <strong>de</strong><strong>si</strong>gn-ul, folo<strong>si</strong>nd o<br />

interfata fizica intre platforma <strong>si</strong> PC. Aceasta logica inclu<strong>de</strong> o interfata a hartii <strong>de</strong> memorie din<br />

care SG poate sa citeasca <strong>si</strong> sa scrie valori la porturile <strong>de</strong> intrare <strong>si</strong> ie<strong>si</strong>re ale mo<strong>de</strong>lului. Contine<br />

<strong>de</strong> asemenea orice circuit specific necesar platformei FPGA tinta, pentru a functiona corect.<br />

Blocurile <strong>de</strong> co-<strong>si</strong>mulare hardware sunt folo<strong>si</strong>te in implementarea MATLAB®/Simulink® in<br />

acela<strong>si</strong> mod in care sunt folo<strong>si</strong>te <strong>si</strong> restul. In timpul <strong>si</strong>mularii, un bloc <strong>de</strong> co-<strong>si</strong>mulare hardware<br />

interactioneaza cu platforma FPGA subliniata, automatizand sarcini precum configuratia<br />

dispozitivului, transferul <strong>de</strong> date <strong>si</strong> tact. Un bloc <strong>de</strong> co-<strong>si</strong>mulare hardware are la intare <strong>si</strong> la ie<strong>si</strong>re<br />

acela<strong>si</strong> tip <strong>de</strong> semnale ca <strong>si</strong> cele folo<strong>si</strong>te <strong>de</strong> blocurile utilizate in <strong>si</strong>mulare folo<strong>si</strong>nd SG.<br />

Co-<strong>si</strong>mulation<br />

Figura 4.5. Conceptul <strong>de</strong> co-<strong>si</strong>mulare


Pentru aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem, placa <strong>de</strong> <strong>de</strong>zvoltare utilizata a fost Spartan 3E <strong>de</strong> la<br />

Digilent, prezentata in Figura 4.6. Aceasta contine resurse specifice implementarilor DSP.<br />

Figura 4.5. Placa <strong>de</strong> <strong>de</strong>zvoltare Spartan-3E folo<strong>si</strong>ta in co-<strong>si</strong>mulare<br />

Un alt instrument pus la dispozitie <strong>de</strong> XSG este capabil sa estimeze resursele hardware<br />

FPGA necesare implementarii aplicatiei. Acesta inclu<strong>de</strong> numarul <strong>de</strong> slice-uri, LUT-uri,<br />

multiplexoare, blocuri <strong>de</strong> memorie, multiplicatoare, blocuri I/O.<br />

Figura 4.6. Estimarea resurselor – aplicatia pe banda intreaga


Aceste estimari permit <strong>de</strong>terminarea mai usoara a modului in care <strong>de</strong>ciziile luate in cadrul<br />

<strong>de</strong><strong>si</strong>gn-ului influenteaza nece<strong>si</strong>tatile hardware. Figura 4.6 prezinta numarul <strong>de</strong> structuri folo<strong>si</strong>te<br />

in cazul aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut, varianta pe banda intreaga.<br />

Codarea pe doua subbenzi a aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut<br />

Descompunerea semnalului este facuta <strong>de</strong> bancurile <strong>de</strong> filtre <strong>de</strong> analiza, asa cum este<br />

prezentat in Figura 4.7. Filtre FIR <strong>de</strong> tip fereastra Kaiser sunt folo<strong>si</strong>te pentru mo<strong>de</strong>lare, datorita<br />

comportamentului lor favorabil, studiat anterior <strong>si</strong> <strong>de</strong>monstrat statistic.<br />

Figura 4.7. Implementarea XSG a <strong>de</strong>scompunerii pe doua subbenzi<br />

Bancul <strong>de</strong> filtre <strong>de</strong> <strong>si</strong>n<strong>teza</strong> reconstituie semnalul din subbenzile <strong>de</strong> frecventa inalta <strong>si</strong><br />

joasa, fiecare cu jumatate <strong>de</strong> banda <strong>si</strong> jumatate din rata <strong>de</strong> esantionare a semnalului original.<br />

Acest bloc interpoleaza subbenzile cu 2, apoi filtreaza rezultatul cu o serie <strong>de</strong> filtre FIR trece-sus<br />

<strong>si</strong> trece-jos. Dupa interpolare sub-semnalele <strong>si</strong> filtrul trece-jos elimina parti substantiale din<br />

spectrul <strong>de</strong> imagine al semnalului trece-jos in intervalul π/2 ≤ Ω ≤ π. Filtrul trece-sus, pe <strong>de</strong> alta<br />

parte, elimina mare parte din spectrul <strong>de</strong> imagine al semnalului trece-sus in intervalul 0 ≤ Ω ≤<br />

π/2. Deoarece raspunsul in frecventa al celor doua semnale se suprapune, spectrul <strong>de</strong> imagine nu<br />

este complet eliminat.


Magnitu<strong>de</strong> (dB)<br />

10<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

-70<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9<br />

Normalized Frequency (×π rad/sample)<br />

Figura 4.8. Filtrele <strong>de</strong> analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong><br />

Filtrele FIR <strong>de</strong> analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong> <strong>de</strong>finite sunt aratate in Figura 4.8. Structurile trece-sus <strong>si</strong> trece-<br />

jos sunt oferite pentru fiecare proces.<br />

Magnitu<strong>de</strong> Response (dB)<br />

Hlp Low pass Decimator<br />

Hhp Highpass Decimator<br />

Glp Low pass Interpolator<br />

Ghp Highpass Interpolator<br />

O conditie ce trebuie in<strong>de</strong>plinita in aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>si</strong>stem este aceea ca ordinul filtrelor<br />

sa fie suficient <strong>de</strong> mare pentru a putea aproxima <strong>si</strong>stemul necunoscut. Un exemplu cu ceea ce se<br />

intampla daca aceasta clauza nu este in<strong>de</strong>plinita este prezentata in Figura 4.9. Pentru acela<strong>si</strong><br />

semnal original, o implementare pe banda intreaga ce contine un filtru NLMS <strong>de</strong> ordin 8 nu este<br />

capabil a ajusteze coeficientii in ve<strong>de</strong>rea convergentei erorii, in timp ce o implementare pe doua<br />

subbenzi ce contine doua filtre adaptive cu acela<strong>si</strong> ordin reusesc sa estimeze semnalul <strong>de</strong> ie<strong>si</strong>re<br />

din procesul <strong>de</strong> adaptare. Rezultatul consta in dovada comportamentului semnalului <strong>de</strong> eroare.


Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

1<br />

0<br />

-1<br />

0<br />

1<br />

0.5 1 1.5 2<br />

Full band coding - estimated <strong>si</strong>gnal<br />

2.5 3<br />

0<br />

Figura 4.9. Semnalele aplicatiei pe doua subbenzi<br />

Asa cum a fost prezentat anterior, instrumentul <strong>de</strong> estimare a resurselor a fost folo<strong>si</strong>t in calculul<br />

necesarului <strong>de</strong> fonduri pentru maparea FPGA, pus la dispozitie <strong>de</strong> catre Figura 4.10.<br />

.<br />

Original <strong>si</strong>gnal<br />

-1<br />

0<br />

1<br />

0.5 1 1.5<br />

Full band coding - error<br />

2 2.5 3<br />

0<br />

-1<br />

0<br />

1<br />

0.5 1 1.5 2<br />

Two subbands coding - estimated <strong>si</strong>gnal<br />

2.5 3<br />

0<br />

-1<br />

0<br />

1<br />

0.5 1 1.5<br />

Two subbands coding - error<br />

2 2.5 3<br />

0<br />

-1<br />

0 0.5 1 1.5<br />

Time(s)<br />

2 2.5 3<br />

Figura 4.10. Estimarea resurselor – aplicatia pe doua subbenzi


Codarea pe patru subbenzi a aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut<br />

Pentru a <strong>de</strong>monstra comportamentul aplicatiei in <strong>de</strong>scompunerea pe subbenzi, <strong>de</strong> asemenea<br />

varianta cu patru blocuri a fost studiata. Avand acelea<strong>si</strong> conditii <strong>de</strong> intrare ca <strong>si</strong> mo<strong>de</strong>lele<br />

anterioare, schema bloc XSG este prezentata in Figura 4.11.<br />

Figura 4.11. Implementarea XSG a <strong>de</strong>scompunerii pe patru subbenzi<br />

Filtrele <strong>de</strong> analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong> mo<strong>de</strong>late sunt prezentate in Figura 4.12 <strong>si</strong> Figura 4.13.<br />

Corelate cu <strong>de</strong>cimatoare <strong>si</strong> interpolatoare, acestea formeaza bancurile <strong>de</strong> filtre ale <strong>si</strong>stemului<br />

mutirata.


Magnitu<strong>de</strong> (dB)<br />

Magnitu<strong>de</strong> (dB)<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

-70<br />

-80<br />

-90<br />

-100<br />

10<br />

0<br />

-10<br />

-20<br />

-30<br />

-40<br />

-50<br />

-60<br />

-70<br />

-80<br />

-90<br />

Magnitu<strong>de</strong> Response (dB)<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9<br />

Normalized Frequency (×π rad/sample)<br />

Figura 4.12. Filtrele <strong>de</strong> analiza<br />

Magnitu<strong>de</strong> Response (dB)<br />

Figura 4.13. Filtrele <strong>de</strong> <strong>si</strong>n<strong>teza</strong><br />

Hlp Low pass Decimator<br />

Hhp Highpass Decimator<br />

Hlp Low pass Decimator Subband 1<br />

Hhp Highpass Decimator Subband 2<br />

Hlp Low pass Decimator Subband 3<br />

Hhp Highpass Decimator Subband 4<br />

Glp Low pass Interpolator<br />

Ghp Highpass Interpolator<br />

Glp Low pass Interpolator Subband 1<br />

Ghp Highpass Interpolator Subband 2<br />

Glp Low pass Interpolator Subband 3<br />

Ghp Highpass Interpolator Subband 4<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9<br />

Normalized Frequency (×π rad/sample)


Mediul acustic este mo<strong>de</strong>lat aici <strong>de</strong> un semnal zgomotos, dar in locul acestuia poate fi<br />

folo<strong>si</strong>t un reverberator pentru a <strong>si</strong>mula caracteristile acustice ale unei incaperi. Aceasta structura<br />

poate sta la baza imbunatatirii unei incaperi din punct <strong>de</strong> ve<strong>de</strong>re acustic. Avantajele oferite <strong>de</strong><br />

catre Xilinx System Generator <strong>de</strong> generare automata <strong>de</strong> cod, importare <strong>de</strong> cod HDL <strong>si</strong> co-<br />

<strong>si</strong>mulare hardware pot fi sursa implementarii unui <strong>si</strong>stem complex. Figura 4.14 <strong>de</strong>scrie semnalele<br />

<strong>de</strong> implementare ale aplicatiei <strong>de</strong> i<strong>de</strong>ntificare adaptiva cu <strong>de</strong>scompunere pe patru subbenzi. Chiar<br />

daca pe fiecare subbanda calculele sunt <strong>si</strong>mplificate, calitatea semnalului este afectata <strong>de</strong> efectele<br />

<strong>de</strong> alias. Acesta este principalul <strong>de</strong>zavantaj ce caracterizeaza bancurile <strong>de</strong> filtre <strong>si</strong> din acest motiv<br />

trebuie facute conce<strong>si</strong>i pentru a echilibra calitatea semnalului <strong>si</strong> costurile computationale.<br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

Amplitu<strong>de</strong><br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

0 0.5 1 1.5 2 2.5 3<br />

1<br />

0.5<br />

0<br />

-0.5<br />

Figura 4.14 Semnalele aplicatiei pe patru subbenzi<br />

In cazul implementarii cu patru subbenzi, estimarea resurselor pentru placa <strong>de</strong> <strong>de</strong>zvoltare<br />

Digilent Spartan-3E este prezentata in Figura 4.15.<br />

Original <strong>si</strong>gnal<br />

Four subbands coding - estimated <strong>si</strong>gnal<br />

-1<br />

0 0.5 1 1.5 2 2.5 3<br />

1<br />

0.5<br />

0<br />

-0.5<br />

Four subbands coding - error<br />

-1<br />

0 0.5 1 1.5<br />

Time (s)<br />

2 2.5 3


Figura 4.15. Estimarea resurselor – aplicatia pe doua subbenzi<br />

5. Concluzii <strong>si</strong> contributii<br />

Teza abor<strong>de</strong>aza domeniul procesarii adaptive <strong>de</strong> semnal, urmarind pas cu pas noi meto<strong>de</strong><br />

<strong>de</strong> <strong>de</strong>zvoltare ale aplicatiilor specifice. Masura performantei este reprezentata <strong>de</strong> optimizarea<br />

costurilor <strong>de</strong> <strong>de</strong>zvoltare <strong>si</strong> implementare ale <strong>si</strong>stemului. Gradual, sunt parcurse:<br />

• Detectia performantei algoritmilor adaptivi;<br />

• Imbunatatirea implementarilor digitale ale filtrelor adaptive <strong>si</strong> a<br />

unui numar <strong>de</strong> reverberatoare;<br />

• Optimizarea timpului <strong>de</strong> executie a algoritmilor adaptivi prin<br />

utilizarea procedurii <strong>de</strong> procesare cu <strong>si</strong>steme multirata;<br />

• Minimizarea costurilor <strong>de</strong> <strong>de</strong>zvoltare prin folo<strong>si</strong>rea generarii<br />

automate <strong>de</strong> cod;<br />

• Verificarea aplicatiilor implementate prin utilizarea unor<br />

instrumente mo<strong>de</strong>rne <strong>de</strong> testare.<br />

Sunt studiate aspecte generale ale filtrelor adaptive, prin <strong>de</strong>zvoltarea software a<br />

principalelor aplicatii, precum i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut, egalizarea canalului, anularea


ecoului pentru transmi<strong>si</strong>e <strong>de</strong> date in banda <strong>de</strong> vorbire <strong>si</strong> predictie <strong>de</strong> semnal. Este facuta o trecere<br />

in revista asupra structurilor filtrelor FIR digitale.<br />

Algoritmii <strong>de</strong> filtrare adaptiva sunt studiati in <strong>de</strong>taliu: metoda celor mai mici medii<br />

patratice (LMS), ce face corectii succe<strong>si</strong>ve vectorului pon<strong>de</strong>re <strong>si</strong> conduce la o eroare medie<br />

patratica minima; algoritmul LMS normalizat, <strong>de</strong>s folo<strong>si</strong>t in aplicatii datorita convergentei sale<br />

rapi<strong>de</strong> <strong>si</strong> stabilitatii; algoritmii LMS cu semn, ce incearca sa <strong>si</strong>mplifice nece<strong>si</strong>tatile <strong>de</strong> calcul ale<br />

LMS prin reducerea numarului <strong>de</strong> multiplicari; algoritmul celor mai mici patrate recur<strong>si</strong>ve(RLS),<br />

care foloseste informatii legate <strong>de</strong> esantioanele <strong>de</strong> intrare anterioare pentru a estima matricea <strong>de</strong><br />

autocorelatie a vectorului <strong>de</strong> intrare.<br />

Pentru a <strong>de</strong>termina performantele acestor tipuri <strong>de</strong> filtre, autorul a parcurs etapele:<br />

• A <strong>de</strong>zvoltat mo<strong>de</strong>le MATLAB®/Simulink® pentru aplicatii<br />

sugestive ale algoritmilor adaptivi: eliminarea zgomotului, i<strong>de</strong>ntificarea<br />

<strong>si</strong>stemului necunoscut <strong>si</strong> predictie <strong>de</strong> semnal.<br />

o A testat in paralel patru tipuri <strong>de</strong> algoritmi avand aceea<strong>si</strong><br />

intrare <strong>si</strong> a confirmat varianta NLMS ca fiind cea mai rapida <strong>si</strong> mai stabila<br />

dintre toate: LMS, NLMS, SE-LMS, SS-LMS. Mediul <strong>de</strong> <strong>de</strong>zvoltare<br />

MATLAB®/Simulink® a fost ales datorita preciziei sale <strong>de</strong> calcul <strong>si</strong> a<br />

complexitatii; un alt motiv a fost faptul ca gestioneaza foarte usor<br />

operatile in virgula mobila.<br />

• A facut statistici privind performanta algoritmilor adaptivi. Dovada<br />

superioritatii algoritmului NLMS a fost calculata din punctul <strong>de</strong> ve<strong>de</strong>re al<br />

aproximarii coeficientilor <strong>si</strong> a convergentei erorii. A fost testat in diferite conditii<br />

initiale, comparat in paralel cu alte tipuri <strong>de</strong> filtre adaptive.<br />

Datorita faptului ca structurile configurabile au <strong>de</strong>venit foarte populare, se <strong>de</strong>zvolta<br />

nece<strong>si</strong>tatea <strong>de</strong>scrierii operatiilor circuitului, a <strong>de</strong>zvoltarii <strong>si</strong> a organizarii acestuia, a testarii<br />

acestora prin prisma limbajelor <strong>de</strong> <strong>de</strong>scriere hardware. Implementari ale structurilor filtrelor<br />

adaptive (LMS <strong>si</strong> NLMS) <strong>si</strong> ale reverberatoarelor (Schroe<strong>de</strong>r, Gardner, Moorer <strong>si</strong> Dattorro)<br />

folo<strong>si</strong>nd codare HDL sunt prezentate in <strong>de</strong>taliu in aceasta <strong>teza</strong>. Au fost facute comparatii intre<br />

algoritmii <strong>si</strong>mulati digital <strong>si</strong> mo<strong>de</strong>lele <strong>de</strong>zvoltate in MATLAB®/Simulink® .<br />

Aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem necunoscut a fost studiata in amanunt <strong>de</strong> catre autor,<br />

urmand etapele:<br />

• In primul rand a creat un mo<strong>de</strong>l MATLAB®/Simulink® ce a<br />

a<strong>si</strong>gurat semnalele <strong>de</strong> intrare atat pentru implementarea software, cat <strong>si</strong> pentru cea<br />

hardware, pentru a compara rezultatele lor in acelea<strong>si</strong> conditii. Din rezultatele


MATLAB®/Simulink® este evi<strong>de</strong>nt ca pe masura ce eroarea converge catre o<br />

valoare minima, semnalul <strong>de</strong> ie<strong>si</strong>re ia valori asemanatoare cu cele ale semnalului<br />

dorit.<br />

Privind implementarea hardware:<br />

• A codat filtrul adaptiv LMS in limbajul <strong>de</strong> <strong>de</strong>scriere hardware<br />

Verilog-HDL. In acela<strong>si</strong> timp, a scris un fi<strong>si</strong>er <strong>de</strong>taliat <strong>de</strong> testare pentru a verifica<br />

partea centrala a algoritmului adaptiv LMS. Fi<strong>si</strong>erele <strong>de</strong> test impreuna cu<br />

<strong>de</strong>scrierea algoritmului au fost instantiate intr-un fi<strong>si</strong>er (‚top-level’) pentru a fi<br />

<strong>si</strong>mulate in acela<strong>si</strong> timp. Rezultatele dove<strong>de</strong>sc acela<strong>si</strong> lucru ca <strong>si</strong> cele din<br />

<strong>de</strong>zvoltarea MATLAB®/Simulink®, ca in timp, coeficientii se adapteaza <strong>si</strong><br />

eroarea converge. Rezultatele hardware au fost testate pe placa <strong>de</strong> <strong>de</strong>zvoltare<br />

Nexys <strong>de</strong> la Digilent, o platforma bazata pe componenta FPGA Xilinx Spartan 3.<br />

• De asemenea din punct <strong>de</strong> ve<strong>de</strong>re hardware a studiat <strong>si</strong> algoritmul<br />

NLMS. A realizat o implementare HDL a aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem<br />

necunoscut avand la baza acest tip <strong>de</strong> algoritm. Fiecare componenta individuala a<br />

fost creata folo<strong>si</strong>nd arhitecturi comportamentale ale limbajului <strong>de</strong> <strong>de</strong>scriere<br />

hardware Verilog. Semnalele <strong>de</strong> intrare au fost puse la dispozitie <strong>de</strong><br />

MATLAB ® /Simulink ® , un<strong>de</strong> a fost mo<strong>de</strong>lat <strong>si</strong>stemul necunoscut. Aceste semnale<br />

au fost transformate in fi<strong>si</strong>ere <strong>de</strong> date in format binar, ce le caracterizeaza la<br />

fiecare tact <strong>de</strong> ceas. Pentru a verifica implementarea, fi<strong>si</strong>erul <strong>de</strong> <strong>de</strong>zvoltare<br />

impreuna cu fi<strong>si</strong>erele <strong>de</strong> test au fost compilate <strong>si</strong> <strong>si</strong>mulate folo<strong>si</strong>nd mediul<br />

Mo<strong>de</strong>lSim. Figuri privind convergenta erorii pentru ambele tipuri <strong>de</strong> algoritmi<br />

(LMS <strong>si</strong> NLMS) au fost a<strong>si</strong>gurate folo<strong>si</strong>nd un modul special <strong>de</strong>zvoltat ce<br />

transforma datele din Mo<strong>de</strong>lSim in reprezentari MATLAB ® .<br />

Concluzionand rezultatele experimentale, statisticile facute in MATLAB ® /Simulink ®<br />

sunt confirmate. Algoritmul NLMS este mai bun <strong>de</strong>cat algoritmul adaptiv LMS conventional,<br />

<strong>de</strong>monstrand o mai buna stabilitate <strong>si</strong> fiind mai putin zgomotos; <strong>de</strong> asemenea vi<strong>teza</strong> <strong>de</strong><br />

convergenta este crescuta con<strong>si</strong><strong>de</strong>rabil. Datorita acestor avantaje, se dove<strong>de</strong>ste fezabila<br />

implementarea algoritmilor adaptivi cu pas <strong>de</strong> convergenta variabili in domeniul digital.<br />

Contributiile se interpreteaza in optimizarea codului prin imbunatatirea vitezei <strong>de</strong><br />

convergenta a erorii medii patratice. Pentru o mai buna precizie implementarea hardware ar<br />

trebui sa faca operatiile in virgula mobila. Acest cod poate fi con<strong>si</strong><strong>de</strong>rat sursa programarii unui<br />

numar mare <strong>de</strong> dispozitive FPGA datorita faptului ca chip-urile mo<strong>de</strong>rne contin resurse ce<br />

suporta aplicatii DSP <strong>si</strong> sunt optimizate pentru inalta performanta <strong>si</strong> putere consumata scazuta.


Mediul acustic al aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem poate fi mo<strong>de</strong>lat <strong>de</strong> catre<br />

reverberatoarele artificiale. Reverberatoarele reprezinta elemente cheie in reproductiile audio<br />

spatiale tridimen<strong>si</strong>onale. Bogatia <strong>si</strong> spatiozitatea sunetului reprodus poate fi inten<strong>si</strong>ficat <strong>de</strong> catre<br />

aceste structuri. O alegere nepotrivita a parametrilor filtrului rezulta a<strong>de</strong>sea in sunete metalice.<br />

Autorul a contribuit prin:<br />

• Implementari digitale Verilog a patru tipuri <strong>de</strong> reverberatoare<br />

(Schroe<strong>de</strong>r, Gardner, Moorer <strong>si</strong> Dattorro), fiecare avand ver<strong>si</strong>uni specifice pentru<br />

diferite categorii <strong>de</strong> aplicatii. Parametrii acustici au fost studiati <strong>si</strong> s-au luat in<br />

con<strong>si</strong><strong>de</strong>rare principiile fenomenului <strong>de</strong> reverberatie. S-a facut <strong>de</strong>scrierea<br />

blocurilor in mediul MATLAB ® /Simulink ® , rezultatele obtinute fiind con<strong>si</strong><strong>de</strong>rate<br />

ca <strong>si</strong> referinta pentru pasul urmator. Principalul avantaj al implementarii digitale a<br />

acestor tipuri <strong>de</strong> reverberatoare este ca pot fi folo<strong>si</strong>te in procesarea <strong>de</strong> semnale<br />

acustice <strong>si</strong> <strong>de</strong>scarcate pe placi <strong>de</strong> <strong>de</strong>zvoltare ce contin componente FPGA. Ariile<br />

logice programabile ofera vi<strong>teza</strong> <strong>de</strong> procesare foarte inalta fata <strong>de</strong> meto<strong>de</strong>le<br />

obisnuite ce implica procesoare digitale <strong>de</strong> semnal.<br />

Optimizarea timpului <strong>de</strong> executie a aplicatiei filtrelor adaptive <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem<br />

necunoscut in mediu acustic este urmarita prin abordarea procesarii digitale <strong>de</strong> semnal multirata.<br />

In aplicatiile complexe, structurile filtrelor cu ordine mari sufera <strong>de</strong> <strong>de</strong>scresterea vitezei <strong>de</strong><br />

convergenta <strong>si</strong> complexitate <strong>de</strong> calcul ridicata. Tehnica filtrarii adaptive pe subbenzi pare sa<br />

elimine aceste <strong>de</strong>zavantaje. Instrumente mo<strong>de</strong>rne au fost utilizate pentru a <strong>de</strong>zvolta <strong>si</strong>steme <strong>de</strong><br />

inalta performanta folo<strong>si</strong>nd arhitecturi FPGA.<br />

Autorul a studiat comportamentul <strong>si</strong>stemelor multirata in aplicatia <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong><br />

<strong>si</strong>stem necunoscut, luand in con<strong>si</strong><strong>de</strong>rare urmatorii pa<strong>si</strong>:<br />

• A <strong>de</strong>scris un numar <strong>de</strong> mo<strong>de</strong>le MATLAB®/Simulink® continand<br />

in structura lor diferite tipuri <strong>de</strong> filtre FIR, o serie <strong>de</strong> categorii <strong>de</strong> subbenzi (2, 4 <strong>si</strong><br />

8) <strong>si</strong> valori variate pentru parametrii filtrului adaptiv. Informatia <strong>de</strong> intrare este<br />

reprezentata <strong>de</strong> un semnal vocal. Toate datele sunt reprezentate in tabele <strong>si</strong><br />

<strong>de</strong>scrieri figurative.<br />

• A selectat pentru studiu in <strong>de</strong>taliu exemplul i<strong>de</strong>ntificarii <strong>de</strong> <strong>si</strong>stem<br />

ce foloseste filtre FIR <strong>de</strong> tip fereastra Blackman <strong>de</strong> ordin patru pentru analiza <strong>si</strong><br />

<strong>si</strong>n<strong>teza</strong> <strong>si</strong> <strong>de</strong>scompunere in patru subbenzi a semnalului <strong>de</strong> intrare. A folo<strong>si</strong>t<br />

ver<strong>si</strong>unea normalizata a filtrului adaptiv LMS, datorita robustetii <strong>si</strong> stabilitatii<br />

dovedite. Asa cum a fost asteptat, dupa procesarea multirata, comportamentul<br />

<strong>si</strong>stemului se modifica in functie <strong>de</strong> numarul <strong>de</strong> subbenzi utilizate. Motivul este


numarul redus <strong>de</strong> calcule pe fiecare subbanda. Apare din pacate nedoritul efect<br />

‚alias’, minimizand calitatea semnalului.<br />

ERLE <strong>de</strong>fineste masura performantei, ca raportul dintre puterea semnalului dorit <strong>si</strong><br />

puterea semnalului rezidual.<br />

Exemplul aplicatiei <strong>de</strong> i<strong>de</strong>ntificare <strong>de</strong> <strong>si</strong>stem folo<strong>si</strong>nd <strong>de</strong>scompunerea in subbenzi a<br />

semnalului <strong>de</strong> intrare a fost implementata <strong>de</strong> asemenea folo<strong>si</strong>nd un concept special <strong>si</strong> mo<strong>de</strong>rn,<br />

numit Xilinx System Generator. Acesta reprezinta o exten<strong>si</strong>e a mediului MATLAB®/Simulink®<br />

pusa la dispozitie <strong>de</strong> catre Xilinx <strong>si</strong> consta intr-o librarie numita Xilinx Blockset ce poate fi<br />

mapata direct in componentele hardware FPGA. Placa <strong>de</strong> <strong>de</strong>zvoltare folo<strong>si</strong>ta este Digilent<br />

Spartan-3E, datorita facilitatilor specifice in ceea ce priveste procesarea digitala <strong>de</strong> semnal.<br />

iau forma:<br />

Reprezentand un concept nou, contributiile aduse in <strong>de</strong>zvoltarea <strong>si</strong>stemelor complexe<br />

<strong>de</strong> structuri:<br />

• Pentru aplicatia <strong>de</strong> i<strong>de</strong>ntificare adaptiva, au fost propuse trei tipuri<br />

o Un <strong>si</strong>stem pe banda intreaga,<br />

o Un <strong>si</strong>stem cu <strong>de</strong>scompunerea in doua subbenzi a<br />

semnalului <strong>de</strong> intrare,<br />

o Un <strong>si</strong>stem cu <strong>de</strong>scompunerea in patru subbenzi a<br />

semnalului <strong>de</strong> intrare .<br />

Filtrele <strong>de</strong> tip trece-jos <strong>si</strong> trece-sus au fost <strong>de</strong>scrise <strong>de</strong> functii <strong>de</strong> tip<br />

fereastra, <strong>de</strong>terminarea coeficientilor filtrelor <strong>de</strong> analiza <strong>si</strong> <strong>si</strong>n<strong>teza</strong> fiind un<br />

aspect important in eliminarea efectului ‚alias’ introdus <strong>de</strong> <strong>si</strong>stemele<br />

multirata. Simulari au fost facute con<strong>si</strong><strong>de</strong>rand semnalele specifice,<br />

confirmand performanta <strong>si</strong>stemelor implementate.<br />

• In ceea ce priveste pasul <strong>de</strong> verificare, a fost realizata co-<strong>si</strong>mulare<br />

hardware. Rezultatele dove<strong>de</strong>sc comportamentul <strong>si</strong>stemelor <strong>de</strong>zvoltate in privinta<br />

convergentei erorii prin intermediul ajustarii coeficientilor.<br />

• Estimarea resurselor FPGA necesare este facuta pentru fiecare caz<br />

in parte, XSG fiind un instrument ce pune la dispozitie informatii pentru<br />

<strong>de</strong>zvoltatori avand diferite abilitati, permitand <strong>de</strong>zvoltarea <strong>de</strong> aplicatii complexe.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!