Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...
Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...
Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...
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.