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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!