Autor: Lucian -Cristian IACOB Conducător științific : Prof.dr .ing. Petru Dobra FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE FACULTATEA DE AUTOMATICĂ ȘI… [629179]
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
2017
FILTRE ADAPTIVE UTILI ZATE I N
ANULAREA ZGOMOTULUI Ș I ALTE APLICAT II
LUCRARE DE DIPLOMĂ
Autor: Lucian -Cristian IACOB
Conducător științific : Prof.dr .ing. Petru Dobra
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DECAN
Prof.dr.ing. Liviu MICLEA Vizat,
DIRECTOR DEPARTAMENT AUTOMATICĂ
Prof.dr.ing. Honoriu VĂLEAN
Autor : Lucian -Cristian IACOB
Filtre adaptive utilizate în
anularea zgomotului și alte aplicații
1. Enunțul temei: Această lucrare realizează o sinteză a informațiilor necesare
pentru abordarea domeniului filtrelor adaptive. Se vor considera trei cazuri de
utilizare : Identificarea sistemelor, Predicția liniară și Anularea zgomotului și se vor
compara performanțele a trei algoritmi ba zați pe soluția Wiener. În final, se va
implementa practic un sistem de Anulare adaptivă a zgomotului, utilizând un
microprocesor Texas Instruments TMS320F28377 S.
2. Conținutul proiectului: Pagina de prezentare , Declarație privind autenticitatea
proiectului, S inteza proiectului , Cuprins, Introducere , Studiu bibliografic
(Procesarea semnalelor, Conversia semnalelor, Proiectarea f iltrelor numerice,
Proiectarea filtrelor adaptive ), Implementare practică ( Aplica ții a le filtrelor
adaptive, Anularea adaptivă a zgomotului, A nularea zgomotului – aplicație
practică ), Concluzii, Bibliografie, Anexe.
3. Locul documentației: Universitatea Tehnic ă din Cluj -Napoca
4. Data emiterii temei: 01.10.2016
5. Data predării: 11.07.2017
Semnătura autorului
Șemnătura c onducător ului științific
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
Declarație pe proprie răspundere privind
autenticitatea proiectului de diplomă
Subsemnatul(a) Lucian -Cristian IACOB ,
legitimat(ă) cu CI/BI seria NT nr. 661051 , CNP [anonimizat] ,
autorul lucrării:
FILTRE ADAPTIVE UTILIZATE ÎN ANULAREA ZGOMOTULUI ȘI ALTE APLICAȚII ______
elaborată în vederea susținerii examenului de finalizare a studiilor de licență
la Facultatea de Automatică și Calculatoare ,
specializarea Automatică și Informatică Aplicată ,
din cadrul Universității Tehnice din Cluj -Napoca,
sesiunea Iulie 2017 a anului universitar 2016 -2017 ,
declar pe proprie răspundere, că această lucrare este rezultatul propriei activități
intelectuale, pe baza cercetărilor mele și pe baza informațiilor obținute din surse care au
fost citate, în textul lucrării, și în bibliografie.
Declar că această lucrare nu conține porțiuni plagiate, iar sursele bibliografice au
fost folosite c u respectarea legislației române și a convențiilor internaționale privind
drepturile de autor.
Declar, de asemenea, că această lucrare nu a mai fost prezentată în fața unei alte
comisii de examen de licență.
In cazul constatării ulterioare a unor declarați i false, voi suporta sancțiunile
administrative, respectiv, anularea examenului de licență .
Data Lucian -Cristian IACOB
11.07.2017 _ __
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
SINTEZA
proiectului de diplomă cu titlul:
Filtre adaptive utilizate în
anularea zgomotului și alte aplicații
Autor: Lucian -Cristian IACOB
Conducător științific: Prof.dr .ing. Petru DOBRA
1. Cerințele temei:
Prezentarea informațiilor teoretice legate de tema filtrelor adaptive și realizarea
simulărilor în cele trei cazuri de utilizare: Identificare a sistemelor, Predicție liniară,
Anularea zgomotului ; implementarea practică a unui sistem de anulare adaptivă a
zgomotului.
2. Șoluții alese:
Au fost aleși pentru implementare algoritmi bazați pe minimizarea erorii medii
pătratice. Șimulările au fost rulate în MATLAB 2016 și sistemul de anulare adaptivă a
zgomotului a fost realiz at cu ajutorul unui microprocesor Texas Instruments
TMS320F28377S.
3. Rezultate obținute:
După rularea algoritmilor în cazul simulărilor, dar și a implementării practice, au
fost realizate comparații legate de performanțele obținute. Toți cei trei algoritmi pot
rezolva problemele studiate.
4. Testări și verificări:
În cazul sistemului de anulare adaptivă a zgomotului, au fost transmise de la
procesor la laptop semnalul de voce afectat de zgomot și semnalul filtrat, pentru a putea
fi vizualizate și ascultate rezultatele.
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
5. Contribuții personale:
A fost realizată o sin teză a informațiilor prezente în literatură. Au fost create
simulările pentru cele trei cazuri de utilizare a filtrelor adaptive discutate: Identificarea
sistemelor, Predicție liniară și Anularea zgomotului. A fost implementat practic sistemul
de anulare a daptivă a zgomotului.
6. Surse de documentare:
Cărți și articole existente în literatura de specialitate.
Semnătura autorului
Șemnătura conducătorului științific
1 Cuprins
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ………………………….. 3
1.1 CONTEXT GENERAL ………………………….. ………………………….. ………………………….. …………………….. 3
1.2 OBIECTIVE ………………………….. ………………………….. ………………………….. ………………………….. …… 4
1.3 SPECIFICAȚII ………………………….. ………………………….. ………………………….. ………………………….. … 5
2 STUDIU BIBLIOGRAFIC ………………………….. ………………………….. ………………………….. ……………….. 6
2.1 PROCESAREA SEMNALELOR ………………………….. ………………………….. ………………………….. ……………. 6
2.1.1 Semnale Analogice ………………………….. ………………………….. ………………………….. …………….. 6
2.1.2 Semnale Discrete în timp ………………………….. ………………………….. ………………………….. ……. 7
2.1.3 Semnale deterministe și semnale stohastice ………………………….. ………………………….. ……… 7
2.1.4 Semnale multicanal și semnale multidimensionale ………………………….. …………………………. 8
2.1.5 Prelucrarea Numerică a Semnalelor ………………………….. ………………………….. …………………. 9
2.2 CONVERSIA SEMNALELOR ………………………….. ………………………….. ………………………….. ……………. 10
2.2.1 Teoria eșantionării ………………………….. ………………………….. ………………………….. …………… 10
2.2.2 Cuantizare ………………………….. ………………………….. ………………………….. ………………………. 11
2.2.3 Reprezentarea informa ției ………………………….. ………………………….. ………………………….. … 12
2.2.4 Conversia Analog -Numeric ă și Numeric -Analogică ………………………….. ……………………….. 12
2.3 PROIECTAREA FILTRELOR NUMERICE ………………………….. ………………………….. ………………………….. .. 13
2.3.1 Introducere ………………………….. ………………………….. ………………………….. …………………….. 13
2.3.2 Filtre FIR ………………………….. ………………………….. ………………………….. …………………………. 13
2.3.3 Filtre IIR ………………………….. ………………………….. ………………………….. ………………………….. 15
2.3.4 Criterii de performanță ………………………….. ………………………….. ………………………….. …….. 16
2.4 PROIECTAREA FILTRELOR ADAPTIVE ………………………….. ………………………….. ………………………….. … 17
2.4.1 Filtru Wiener ………………………….. ………………………….. ………………………….. …………………… 17
2.4.2 Algoritmi utiliza ți pentru calculul coeficienților ………………………….. ………………………….. … 20
2.4.2.1 LMS – Cele mai mici pătrate ………………………….. ………………………….. ………………………….. ……… 20
2.4.2.2 NLMS – Cele mai mici pătrate normalizat ………………………….. ………………………….. ……………….. 21
2.4.2.3 SLMS – Cele mai mici pătrate cu semn ………………………….. ………………………….. ……………………. 21
3 IMPLEMENTARE PRACTIC Ă ………………………….. ………………………….. ………………………….. ………. 22
3.1 APLICAȚII ALE FILTREL OR ADAPTIVE ………………………….. ………………………….. ………………………….. …. 22
3.1.1 Introducere ………………………….. ………………………….. ………………………….. …………………….. 22
3.1.2 Identificarea sistemelor ………………………….. ………………………….. ………………………….. ……. 23
3.1.2.1 Definirea problemei ………………………….. ………………………….. ………………………….. ………………… 23
3.1.2.2 LMS ………………………….. ………………………….. ………………………….. ………………………….. …………… 24
3.1.2.3 NLMS ………………………….. ………………………….. ………………………….. ………………………….. ………… 26
3.1.2.4 SLMS ………………………….. ………………………….. ………………………….. ………………………….. …………. 28
3.1.2.5 Comparaț ii ………………………….. ………………………….. ………………………….. ………………………….. …. 30
3.1.3 Predicție liniară ………………………….. ………………………….. ………………………….. ……………….. 30
3.1.3.1 Definirea problemei ………………………….. ………………………….. ………………………….. ………………… 30
3.1.3.2 LMS ………………………….. ………………………….. ………………………….. ………………………….. …………… 31
3.1.3.3 NLMS ………………………….. ………………………….. ………………………….. ………………………….. ………… 34
3.1.3.4 SLMS ………………………….. ………………………….. ………………………….. ………………………….. …………. 36
3.1.3.5 Comparaț ii ………………………….. ………………………….. ………………………….. ………………………….. …. 38
3.2 ANULAREA ADAPTIVĂ A Z GOMOTULUI ………………………….. ………………………….. ………………………….. 39
3.2.1 Definirea problemei ………………………….. ………………………….. ………………………….. …………. 39
3.2.2 LMS ………………………….. ………………………….. ………………………….. ………………………….. …… 40
3.2.2.1 Pseudocod ………………………….. ………………………….. ………………………….. ………………………….. …. 40
3.2.2.2 Rezultate ………………………….. ………………………….. ………………………….. ………………………….. …… 41
3.2.3 NLMS ………………………….. ………………………….. ………………………….. ………………………….. …. 42
Introducere
2 3.2.3.1 Pseudocod ………………………….. ………………………….. ………………………….. ………………………….. …. 42
3.2.3.2 Rezultate ………………………….. ………………………….. ………………………….. ………………………….. …… 43
3.2.4 SLMS ………………………….. ………………………….. ………………………….. ………………………….. …. 44
3.2.4.1 Pseudocod ………………………….. ………………………….. ………………………….. ………………………….. …. 44
3.2.4.2 Rezultate ………………………….. ………………………….. ………………………….. ………………………….. …… 45
3.2.5 Comparații ………………………….. ………………………….. ………………………….. ……………………… 46
3.2.5.1 Semnal sinusoidal ………………………….. ………………………….. ………………………….. ……………………. 46
3.2.5.2 Semnal de voce ………………………….. ………………………….. ………………………….. ………………………. 46
3.3 ANULAREA ZGOMOTULUI – APLICAȚIE PRACTICĂ ………………………….. ………………………….. ………………. 47
3.3.1 Motivație ………………………….. ………………………….. ………………………….. ……………………….. 47
3.3.2 Texas Instruments Launchpad TMS320F28377S ………………………….. ………………………….. .. 47
3.3.2.1 Date tehnice ………………………….. ………………………….. ………………………….. ………………………….. . 47
3.3.2.2 Setup ………………………….. ………………………….. ………………………….. ………………………….. ………… 48
3.3.3 Implemen tare ………………………….. ………………………….. ………………………….. …………………. 50
3.3.4 Rezultate ………………………….. ………………………….. ………………………….. ………………………… 52
4 CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …. 54
5 BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. …………………………. 57
6 ANEXE ………………………….. ………………………….. ………………………….. ………………………….. ………. 58
6.1 IDENTIFICAREA SISTEME LOR ………………………….. ………………………….. ………………………….. …………. 58
6.2 PREDIC ȚIE LINIARĂ ………………………….. ………………………….. ………………………….. ……………………. 58
6.3 ANULAREA ZGOMOTULUI – SEMNAL SINUSOIDAL ………………………….. ………………………….. …………….. 59
6.4 ANULAREA ZGOMOTULUI – SEMNAL DE VOCE ………………………….. ………………………….. …………………. 59
6.5 ACHIZIȚIE DATE ………………………….. ………………………….. ………………………….. ……………………….. 60
6.6 ANULAREA ZGOMOTULUI – TEXAS INSTRUMENTS TMS320F28377S ………………………….. ………………… 60
Introducere
3 1 Introducere
1.1 Context general
Lucrarea prez entă abordează fundamentele teoretice ale filtrelor adaptive și a
implementării acestora. Au fost studiate performanțele în trei cazu ri de utilizare:
Identificarea s istemelor, Predicție liniară și Anularea zgomotului, studiată extins.
Subiectul a fos t considerat datorită actualităț ii sale și a multiplelor aplicații pentru
care se pretează. Domenii precum: medicina, industria de automobile, industria aviatică,
industria muzicală , utilizează intens filtrele adapti ve. În plus, puterea de calcul a
Procesoarelor Numerice de Semnal (eng . Digital Signal Processor, pe scurt , DSP) a crescut
considerabil, costul acestora este în continuă scădere, iar dimensiunile sunt din ce în ce
mai mici. Astfel, DSP -urile sunt viabile p entru o gamă largă de aplicații, unde parametrii
sistemului considerat se modifică în timp.
Lucrarea de față realizează o comparație a performanțelor fiecărui algoritm în cele
trei cazuri de utilizare. În plus, se implementează practic un sistem de anulare a
zgomotului, utilizând microprocesorul Texas Instruments TMS320F28377S.
Subc apitolul 2 .1 reprezintă o introducere în domeniul procesării semnalelor. Șe
adresează tipurile existente de semnale pentru a crea un fundament teoretic și se descriu
avantajele și dezavantajele prelucrării numerice a semnalelor.
Subc apitolul 2.2 abordează aspectele fundamentale ale conversiei unui se mnal
analogic într -un semnal digit al, pentru a fi prelucrat pe un microporcesor. Șe prezintă
partea teoretică și se exemplifică fiec are aspect. La finalul capitloului, se descriu, pe scurt,
cele mai utilizate convertoare analog -numerice.
Subc apitolul 2.3 începe prin prezentarea cazurilor generale de utilizare a filtrelor.
Șe prezintă informații despre filtrele cu răspuns finit la impul s – FIR și despre filtrele cu
răspuns infinit la impuls – IIR (ecuații, scheme de implementare). În continuare se discută
două dintre criteriile de perormanță utilizate în domeniu: raportul semnal -zgomot și
eroarea medie pătratică.
Subc apitolul 2.4 vorbește despre implementarea filtrelor adaptive care se bazează
pe filtrul liniar optimal Wiener (funcția obiectiv este reprezentată de eroarea medie
pătratică). Șe iau în discuție trei algoritmi: Cele mai mici pătrate (LMȘ), Cele mai mici
pătrate normalizat (NL MȘ) și Cele mai mici pătrate cu semn (ȘLMȘ) și se studiază ecuațiile
fundametale.
Introducere
4 Capitolul 3 este primul capitol al etapei de implementare. În subcapitolul 3.1 s e
discută despre două aplicații fundamentale ale fil trelor adaptive: Identificarea sistemelo r
și Predicție liniară. Șe prezintă structura de implementare, funcționalitatea și etapele
necesare pentru realizare . În cazul fiecăr ui algoritm se specifică pseudocodul aferent și, la
final, se discută performanțele obținute după simulări.
Subc apitolul 3.2 abordează problema anulării adaptive a zgomotului. Șe ilustrează
aspectele generale, detalii legate de implementare și se trateză cazul de utilizare cu două
microfoane. Ca și în subcapitolul 3.1 , se prezintă pseudocodul fiecărui algorim, punând
accent pe diferențe. Șe rulează simulări utilizând date generate, dar și un semnal de voce,
pentru a compara performanțele algoritmilor în fiecare caz.
Subc apitolul 3.3 oferă informații legate de sistemul de anulare a zgomotului realizat.
În primul rând, se ilustre ază datele tehnice ale procesorului TMȘ320F28377Ș și setările
necesare pentru compilarea unui proiect nou în mediul de dezvoltare Code Composer
StudioTM. În continuare, se prezintă schema de implementare a sistemului și o fotografie a
acestuia. Se detaliaz ă aspectele ce țin de implementare, cum ar fi: convertoarele folosite,
frecvența de eșantionare, valorile componentelor pasive, etc. În final se prezintă
rezultatele și se discută despre performanțe.
În capitolul 4 sunt prezentate concluziile, detaliind fi ecare caz discutat anterior. Se
vorbește despre cum poate fi continuată lucrarea prezentă, atât din punct de vedere
teoretic, cât și practic, prezentându -se, la final, o aplicație practică.
Capitolul 5 descrie bibliografia, expunând sursele de documentare utilizate.
Capitolul 6 detaliază secțiunile de cod relevante pentru realizarea programelor.
Șimulările au fost create în mediul de lucru MATLAB 2016 , limbajul utilizat fiind cel nativ.
Pentru aplicația pe microcontroller, a fost utilizat limbajul C și lib răriile puse la dispoziție
de Texas Instruments.
1.2 Obiective
Obiectivul principal al lucrării este acela de a realiza o sinteză a infomațiilor
necesare pentru a aborda domeniul filtrelor adaptive. Șe vor lua în discuție trei algoritmi
bazați pe filtrul Wiener și se vor studia performanțele obținute în cazul problemelor de
Identificare a sistemelor și de Predicție liniară, acordându -se o atenție deosebită Anulării
adaptive a z gomotului.
Șe va implementa practic un sistem de filtrare adaptivă, utilizând microprocesorul
TMȘ320F28377Ș. Șistemul va reprezenta un model de cască utilizată în aviație,
încercându -se filtrarea zgomotului și transmiterea unui semnal curat. De asemenea, se va
studia posibilitatea realizării în viitor al unui astfel de sistem, la un preț mai mic decât al
produselor deja existente pe piață.
Introducere
5 1.3 Specifica ții
După studierea performanțelor în simulări, se dorește implementarea unui sistem
de anulare a zgomotului, utilizând microprocesorul TMȘ320F2877Ș. Vor fi utiliate două
microfoane pentru achiziția semnalului vocal și a semnalului de zgomot. Filtrarea se va
realiza utilizând filtre adaptive de tip Wiener, ce au ca fundament minimizarea erorii
medii pătratice.
Școpul este eliminarea zgomotului de fundal ce afectează semnalul înregistrat. Șe va
studia posibilitatea conceperii unui sistem de anulare adaptivă a zg omotului pentru
comunicații în domeniul aviatic, la un preț competitiv cu produsele deja existente pe piață.
Studiu bibliografic
6 2 Studiu bibliografic
2.1 Procesarea semnalelor
2.1.1 Semnale Analogice
Șemnalul reprezintă o cantitate fizică, variabilă în timp, purtătoare de informaț ie.
Semnalele analo gice sunt continue în timp și amplitudine și descriu semnale naturale
întâln ite în viața de zi cu zi precum: semnalul sonor, temperatură, presiune, variația
intensității tensiunii pe un condensator, electrocardiogramă, encefalogramă et c.
Figura 2.1 Semnal de voce
După cum se stipulează în [1], semnalele pot să nu fie de natură electrică, dar, pentru
analiză și manipulare, se folosesc diverse tehnici matematice de modelare. Astfel, un
semnal poate fi descris drept o funcție de una sau mai multe variabile independente [2].
1
2
2
3
1( ) 7
( , ) 2 3 11
( ) ( )sin(2 ( ) ( ))N
k k k
kf t t
f x y x xy y
f t A t F t t t
(2.1)
Studiu bibliografic
7 2.1.2 Semnale Discrete în timp
Semnalele discrete sunt definite doar la momente bine precizate în timp. De obicei,
acestea se aleg echidistante pentru a ușura calculele [2]. Spre exemplu , un semnal discret
poate fi reprezentat:
1
2 1 1 1 2 2 2[ ] 10
[ ] sin(2 ) cos(2 )kk
k k kf T T
f T A FT A F T
(2.2)
Figura 2.2 Semnal sinusoidal discret
Dacă amplitudinea unui semnal discret este codificată, astfel încât să ia d rept valori
multiplii de un numă r, atunci semnalul este sub formă digital ă. Acest tip de semnal este
viabil pentru prelucrarea cu ajutorul unui DȘP și este utilizat extins datorită dezv oltării
procesoarelor numerice.
2.1.3 Semnale deterministe și semnale stohastice
În funcție de evoluția lor, semnalele pot fi împărțite în semnale deterministe și
semnale aleatoare/stohastice. Semnalele deterministe reprezintă semnale ce pot fi
descrise printr -un model matematic. În contrast, semnalele stohastice au un caracter
Studiu bibliografic
8 aleator, neputând fi descrise cu ușurință. În acest caz, se încearcă abordarea problemei
prin metode statistice.
Figura 2.3 Sem nal determinist și semnal stohastic
2.1.4 Semnale multicanal și semnale multidimensionale
În unele aplicații, semnalele pot fi generate de mai multe surse și achiziționate de un
anumit număr de senzori. Un astfel de semnal poartă numele de semnal multicanal [2].
Un exemplu poate fi electrocardiograma (EK G), care utilizează un număr de electrozi
pentru a înregistra activitatea cardiacă.
Un semnal multidimensional poate fi modelat drept o funcție de n variabile
independente, n ≥ 2. Un exemplu de semnal multidimensional este reprezentat de către
intensitatea luminoasă a fiecărui pixel al unei imagini [3].
Intensitatea luminoasă a unui televizor alb -begru poate fi modelată drept o funcție
de poziție și timp
( , , )I x y t , fiind un semnal multidimensional. Totodată, pentru un
televizor color se utilizează trei astfel de semnale
( , , )rI x y t ,
( , , )gI x y t ,
( , , )bI x y t , având
așadar un semnal multidimensiona l multicanal , reprezentat printr -un vector:
( , , )
( , , ) ( , , )
( , , )r
g
bI x y t
I x y t I x y t
I x y t
(2.3)
Studiu bibliografic
9 2.1.5 Prelucrarea Numerică a Semnalelor
În ultimii ani, p relucrarea numerică a semnalelor (PNȘ) a cunoscut o dezvoltare
foarte rapidă, datorită progresului tehnologiilor de calcul și a industriei circuitelor
integrate. Domeniile de aplicabili tate sunt diverse, putând fi am intite: medicina ,
telecomunicații le, procesare a de imagini, industria muzicală, industria auto, aviați a,
automatizări le, etc [4].
Avantajele sitemelor de PNS sunt :
1. Acuratețe înaltă în reprezentarea informației (în funcție de numărul de biți pe
care se realizează conversia) ;
2. Fiabilitate în timp și invarianță la fact ori externi ;
3. Realizare cu circuite integrate, ce prezintă un cost mic, putere necesară de
funcționare mică și dimensiuni reduse ;
4. Performanțe înalte (pot fi implementați algoritmi avansați de procesare) ;
5. Flexibilitate (pot fi reprogamate ușor) .
Există și dezavantaje, precum :
1. Timp necesar conversiei Analog -Numeric, respectiv Numeric -Analog ;
2. Timpul de proiectare/programare poate fi ridicat ;
3. Lungime finită a reprezentării informației .
Studiu bibliografic
10 2.2 Conversia semnalelor
2.2.1 Teoria eșantionării
În practică, cea mai utilizată metodă de eșantionare o reprezintă eșantionarea
periodică (uniformă). Astfel, un semnal poate fi descris drept:
ee x k x kT (2.4 )
xk
reprezentând semnalul discretizat, obținut prin achiziționarea valorilor
semnalului continuu
ext , la intervale regulate.
eT reprezintă perioada de eșantionare
și
1
e
eFT reprezintă frecvența (rata) de eșantionare (măsurată în hertz sau eșantioane
pe secundă).
Există o dependență liniară între variabile, descrisă de relația :
e
ekt kTF
(2.5 )
De asemenea , există o relație între frecvența semnalului analog
F (sau
) și
frecvența semnalului digital
f (sau
):
eFfF
(2.6 )
eT (2.7 )
Ecuația (2.6 ) descrie termenul de frecvență relativă sau frecvență normalizată.
Teorema Nyquist -Shannon (teorema eșantionării ) este enunțată astfel: dacă
frecvența maximă conținută de un semnal analog
xt este
maxF , atunci semnalul va
putea fi reconstituit dacă frecvența de eșantionare
max2 eFF . [2]
Studiu bibliografic
11 2.2.2 Cuantizare
În cazul unui semnal digital, valoarea amplitudinii fecărui eșantion este
reprezentată de un număr de precizie finit ă. Trecerea de la un semnal continuu în
amplitudine la un semnal cu amplitudine de valori finite poartă numele de cuantizare. [2]
Prin acest proces se introduce zgomot de cuantizare, datorat erorilor de reprezentare
numerică:
qqe a k a k
(2.8 )
Unde
qe este eroarea de cuantizare,
qak este valoarea cuantizată a semnalului
a
și
ak reprezintă valoarea amplitudinii semnalu lui la eșantionul
k .
Considerând următoarea funcție:
0.7 0.5, 0
0, 0kkxk
k
(2.9 )
Șemnalul rezultat în urma eșantionării și cuantizării va arăta astfel :
Figura 2.4 Semnal discretizat și Semnal c uantizat
Studiu bibliografic
12 2.2.3 Reprezentarea informa ției
În domeniul tehnologiei informației, fiecărui număr, pentru a putea fi reprezentat, i
se atribuie o secvență unică de biți. Astfel, cu un cuvânt de lungime de 8 biți, se pot
reprezenta
82 256 numere distincte. Așadar, în c azul conversiei analog -numerice,
numărul de valori pe care va putea fi reprezentat semnalul va fi dat de numărul de biți pe
care se realizează conversia. De obicei, cu cât crește frecvența de eșantionare și conversia
se realizează pe un număr mai mare de b iți, se va obține un semnal discret ce va
reprezenta mult mai fidel semnalul analogic, dar costurile for fi cu atât mai mari.
2.2.4 Conversia Analog -Numeric ă și Numeric -Analogică
După cum este prezentat în [5], un Convertor analog -numeric este un circuit care
asigură tranziția dintr -o mărime electrică într -o mărime numerică, aproximată. Un circuit
numeric -analogic realizează procesul invers, printr -un proces de interpolare.
Cel mai utilizate sunt convertoarele CAN care utilizează aproximarea succesivă, cu
dublă pantă sau sigma -delta. Convertoarele cu aproximare succesivă utilizează un
registru pentru a împărți valoarea tensiun ii în jumătate și pentru a determina astfel în ce
interval se situează semnalul de intr are.
Convertorul cu dublă pantă foloseș te un integrator conectat la te nsiunea de intrare
și o tensiune de referință. Utilizând un numărător se calculează timpul de încărcare al
acestuia și se determină astfel mărimea semnalului măsurat.
Convertoarele CAN de tip sigma -delta realizează conversia folosind un tren de
impulsuri de frecvență proporțională cu mărimea semnalului de intrare și un numărător
setat la o perioadă constantă. În plus se poate utiliza un proces numit supraeșantionare
pentru a obține un s emnal eșantionat la o frecvență semnificativ mai mare, cu scopul de a
reduce eroarea d e cuantizare.
Studiu bibliografic
13 2.3 Proi ectarea filtrelor numerice
2.3.1 Introducere
Un filtru numeric reprezintă un si stem digital folosit pentru a modifica spectrul
semnalului , caracteristicile de amplitudine și fază , pentru a obține un semnal ce respectă
cerințele impuse . De obicei se utilizează pentru îmbunătățirea calității unui semnal,
înlăturarea zgomotului, extragerea de informații relevante sau de a separa mai multe
semnal e combin ate. [6] Pentru implementarea acestor filtre se utilizează procesoare
numerice de semnal. O diagramă bloc simplificată este prezentată în schema :
Figura 2.5 Schema generală utilizată în prelucrarea numerică a semnale lor
2.3.2 Filtre FIR
Filtrele FIR (Finite Impulse Response) sunt filtre cu r ăspuns finit la impuls. Ieșirea
filtrului este caracterizată de suma de convoluție :
1
0( ) ( ) ( )N
ky n h k x n k
(2.10 )
Unde
()hk ,
0,1, , 1kN
sunt cei
N coeficienț i ai filtrului, ră spunsul la impuls în
cazul acestui filtru av ând numai
N valori. Astfe l, un filtru FIR poate fi implem etat
cunoscând
N eșantioane ale semnalului de intrare
( ), ( 1), , ( ( 1))x n x n x n N
. [7]
()xn
reprezintă valoarea semnalului la momentul curent și ceilalți termeni reprezintă
semnalul de intrare întârziat cu numărul de tacți care se scad. Ie șirea
()yn nu depinde de
valori precedente [6].
Studiu bibliografic
14
1
0( ) ( )N
k
kH z h k z
(2.11 )
Reprezintă funcția de transfer a unui filtru FIR , ce permite analiza performanțelor .
Filtrele FIR sunt utilizate extensiv în prelucrarea numerică a semnalelor datorită
stablilității acestora. În plus, filtrul poate fi proiectat pentru a avea fază liniară, caz în care
coeficienții sunt simetrici. Există mai multe structuri de proiectare, dintre care, cele mai
utilizate sunt forma direct ă (trasversală ) Figura 2.6 și forma Lattice Figura 2.7 .
Figura 2.6 Forma directă (transversal ă) a unui filtru FIR
Figura 2.7 Forma Lattice a unui filtru FIR
Studiu bibliogra fic
15 2.3.3 Filtre IIR
Filtrele IIR (Infinite Impulse Response) sunt filtre cu r ăspuns infinit la impuls.
Ieșirea filtrului este caracterizată de ecuația recursivă :
0 0 1( ) ( ) ( ) ( ) ( )NM
kk
k k ky n h k x n k a x n k b y n k
(2.12 )
Unde
()hk reprezintă răspunsul la impuls, iar
ka și
kb sunt coeficienții filtrului.
Ieșirea
()yn depinde atât de intrarea la momentul actual
()xn , de intrări precedente
( 1), , ( )x n x n N
, cât și de ieșirile anterioare
( 1), , ( )y n y n M
. [7]
12
0 1 2
12
12()()( ) 1N
N
N
Na a z a z a z YzHzX z b z b z L b z
(2.13 )
Reprezintă funcția de transfer a unui filtru IIR în domeniul discret. O formă uzuală
de proiectare o reprezintă forma direct ă:
Figura 2.8 Forma direct ă a unui filtru IIR
Studiu bibliografic
16 2.3.4 Criterii de performanță
Unul dintre principalele criterii de performanță în analiza comportării filtrelor îl
reprezintă raportul semnal/zgomot (Șignal to Noise Ratio). Acesta poate fi descris ca :
2
semnal semnal
zgomot zgomotPASNRPA
(2.14 )
10 10logdBSNR SNR (2.15 )
Unde
P reprezint ă putere a semnalului sau a zgomotului și
A reprezintă
amplitudinea. În (2.15 ) se descrie raportul semnal/zgomot în decibeli.
Un alt criteriu de performanță tratat în această lucrare îl reprezintă eroarea medie
pătratică. În plus, aceasta a fost folosită drept funcție de cost pentru algoritmii adaptivi.
2() MSE E e k (2.16 )
()ek
este semnalul de eroare și
E este valoarea medie , definită matematic ca :
() ( ) ( )xk E x k yp y dy
(2.17 )
()()xkpy
este funcția de distribuție probabilistică:
()
()()()xk
xkdP ypydy
(2.18 )
()()xkPy
este probabilitatea ca
()xk să fie mai mic sau egal cu
y . [8]
Eroarea medie p ătratică se poate aplica pe un set de date pentru a verifica
performanțele filtrului adaptiv pentru aplicații precum identificarea sistemelor sau
predicție liniară.
kxeste semnalul dorit și
ky este semnalul de ieșire al filtrului:
2
11N
kk
kJ x yN
(2.19 )
Studiu bibliografic
17 2.4 Proiectarea filtrelor adaptive
2.4.1 Filtru Wiener
Un Filtru Wiener reprezint ă un filtru liniar optimal ce minimizează eroarea pătratică
medie pentru a estima un semnal de referință. [4] Figura de mai jos prezintă schema
generală de utilizare a unui filtru Wiener mono -canal:
Figura 2.9 Filtru Wiener mono -canal
Școpul este ca filtrul adaptiv să estimeze semnalul
()dn , prin compararea acestuia
cu semnalul de ieșire
()yn , obținând astfel un semnal de eroare
( ) ( ) ( )e n d n y n . [9]
Funcția obieci v este eroarea medie pătratică
()MSE , descrisă :
2 2 2( ) [ ( )] [ ( ) 2 ( ) ( ) ( )]f n E e n E d n d n y n y n (2.20 )
Studiu bibliografic
18
Figura 2.10 Filtru FIR adaptiv
Figura 5.2 prezintă un filtru FIR adaptiv (Wiener) , al că rui semnal de ie șire poate fi
scris sub forma:
0( ) ( ) ( ) ( ) ( )N
T
i
iy n w n x n i w n x n
(2.21 )
Având vectorul coeficienților:
0 1 1[]T
N w w w w
(2.22 )
Și semnalul de intrare:
( ) [ ( ) ( 1) ( ( 1))]Tx n x n x n x n N
(2.23 )
Înlocuind semnalul de ieșire în ecuația (2.20 ), funcția obiectiv devine:
2
2( ) [ ( )]
[ ( )] 2 ( ) [ ( ) ( )] ( ) [ ( ) ( )] ( )T T Tf n E e n
E d n w n E d n x n w n E x n x n w n
(2.24 )
Studiu bibliografic
19 Șe definește
[ ( ) ( )]HR E x n x n ca fiind funcția de autocorelație a semnalului de
intrare și
[ ( ) ( )] p E d n x n drept funcția de intercorelație între semnalul de intrare și
semnalul de referință.
()Hxn reprezintă transpoziția Hermitiană, însemnând transpoziție
urmată de conjugare complexă sau invers. [8]
0 1 1 [ ( ) ( )] [ ]T
N p E d n x n p p p
(2.25 )
2 * *
0 0 1 0 1
* 2 *
1 0 1 1 1
* * 2
1 0 1 1 1[| ( ) | ] [ ( ) ( )] [ ( ) ( )]
[ ( ) ( )] [| ( ) | ] [ ( ) ( )][ ( ) ( )]
[ ( ) ( )] [ ( ) ( )] [| ( ) | ]N
H N
N N NE x n E x n x n E x n x n
E x n x n E x n E x n x nR E x n x n
E x n x n E x n x n E x n
(2.26 )
Gradientul vectorului erorii medii pătratice în funcție de coeficienți este:
0 1 122T
w
Nf f f fg p Rww w w w
(2.27 )
Dacă se egalează gradientul cu zero și se presupune că matricea R este nesingulară,
se obține soluția optimă (soluția Wiener) pentru car e coeficienții minimizează funcț ia de
cost [6]. Ecuația rezultată este:
1
ow R p
(2.28 )
În final, minimul funcției obiectiv poate fi calculat cu ajutorul ecuației:
2 1 2
min [ ( )] 2 [ ( )]T T T
o o o f E d n w p w RR p E d n w p (2.29 )
Studiu bibliografic
20 2.4.2 Algoritmi utiliza ți pentru calculul coeficienților
2.4.2.1 LMS – Cele mai mici pătrate
LMS este un algoritm de căutare ce se bazează pe metode de gradient. Este utilizat
extensiv datorită simplității computaționale. În plus, nu este necesară cunoașterea exactă
a caracteristicilor semnalelor. Algor itmul se bazeaz ă pe doi pași fundamentali:
1. Filtrare realizată prin calcularea ieșirii unui filtru transversal și compararea
acesteia cu semnalul dorit pentru a găsi valoarea erorii
2. Adaptare realizată prin ajustarea automată a coeficienților filtrului, în f uncție de
valoarea erorii
Direcția ideală a gradientului pentru aflarea coeficienților optimi este descrisă în [8]
și este dată de relația:
( ) 2{ [ ( ) ( )] ( ) [ ( ) ( )]} 2[ ( ) ]Tn E x n x n w n E d n x n Rw n p
(2.30 )
Astfel coeficienții pot fi calculați cu relația:
ˆˆ ( 1) ( ) ( ) ( ) 2 [ ( ) ( ) ( )]w n w n n w n p n R n w n (2.31 )
fiind estimarea gradientului func ției de cost,
ˆp și
ˆR estimările pentru funcția de
intercorelație și matricea de autocorelație. [8]
reprezintă pasul ș i trebuie ales conform
ecuației:
max10
(2.32 )
max
este cea mai mare valoare proprie a matricei
R . Pe scurt, ecuațiile esențiale
pentru implementarea algoritmului sunt:
( ) ( ) ( ) ( )Te n d n w n x n (2.33 )
( 1) ( ) 2 ( ) ( )w n w n e n x n (2.34 )
Studiu bibliografic
21 2.4.2.2 NLMS – Cele mai mici p ătrate normalizat
În cazul algoritmului LMȘ, dacă intrarea
()xn este de dimensiuni ma ri, poate apărea
zgomot în filtrare datorat gradientului. În aceste condiții , alegerea unui pas
care să
garanteze stabilitatea este dificilă. Pentru a rezolva această problemă, algoritmul NLMȘ
utilizează un pas varia bil, dat de relația:
2() a x n
(2.35 )
Unde
este un pas fix ales,
02 ,
este norma euclidiană și
a este o
constantă pozitivă de valoare mică. Șingura diferență față de implementarea algoritmului
LMȘ este la calculul coeficienților, care se realizează cu relația:
2( 1) ( ) 2 ( ) ( ) ( ) 2 ( ) ( )
()w n w n e n x n w n e n x n
a x n
(2.36 )
2.4.2.3 SLMS – Cele mai mici pătrate cu semn
În practică se folosesc și algoritmi ce se bazează pe compararea valorii semnalului
de intrare sau a erorii cu zero.
1, 0
( ) 0, 0
1, 0a
sign a a
a
(2.37 )
Există trei tipuri de adaptări ale algoritmului ȘLMȘ și, în implementare, diferă de
algoritmul LMȘ la etapa de calcul a coeficienților. Aceste ecuații se găsesc în [10] .
1. LMS Semn -Date
( 1) ( ) 2 ( ) ( ( ))w n w n e n sign x n (2.38 )
2. LMS Semn -Eroare
( 1) ( ) 2 ( ( )) ( )w n w n sign e n x n (2.39 )
3. LMS Semn -Semn
( 1) ( ) 2 ( ( )) ( ( ))w n w n sign e n sign x n (2.40 )
Implementare practică
22 3 Implementare practică
3.1 Aplicații ale filtrelor adaptive
3.1.1 Introducere
Datorită puterii de calcul în continuă creștere a procesoarelor numerice de semnal,
filtrele adaptive sunt utilizate din ce în ce mai des. Domenii în care aceste filtre se
utilizează cu succes sunt: medicina, industria auto, aviația, industria muzicală, etc.
Filtrarea adaptivă se pretează aplicațiilor unde specificațiile sau parametrii nu sunt
cunoscuți sau în cazurile în care un filtru fix nu se încadrează în performanțele dorite. Un
filtru adaptiv este neliniar, deoarece caracteristicile sale depind de semnalul de intrare și
cel de eroare, iar condițiile de liniaritate nu sunt satisfăcut e. Totuși, dacă se consideră un
moment de timp fix, caracteristicile filtrelor discutate în lucrare devin liniare, astfel încât
semnalul de ieșire este o funcție liniară de semnalul de intrare.
Filtrele adaptive sunt variabile în timp, coeficienții modificându -se continuu pentru
a îndeplini un obiectiv. Datorită lipsei de informații legate de parametrii sistemului, acest
tip de filtrare se bazează pe utilizarea un ui semnal de referință. Figura 3 .1 prezintă o
schemă generală de aplicare a unui filtru adaptiv.
Figura 3 .1 Schema generală a unui filtru adaptiv
Implementare practică
23
()xnreprezintă semnalul de intrare,
()yn este ieșirea filtrului,
()dn este semnalul de
referință/semnalul dorit și
( ) ( ) ( )e n d n y n reprezintă semnalul de eroare utilizat
pentru recalcularea coeficienților.
Astfel , filtrele adaptive au o aplicabilitate largă, dintre care pot fi amintite
următoarele implementări: identificarea sistemelor, predic ție liniară, modelare inversă,
filtru oprește bandă adaptiv, anularea zgomotului. Dintre aces tea, vor fi luate în discuție
identificarea siste melor și predicția liniară. În plus, o atenție deosebită va fi acordată
anulării zgomotului.
3.1.2 Identificare a sistemelor
3.1.2.1 Definirea problemei
Prin identificarea unui sistem se urmărește determinarea experimentală a
parametrilor acestuia. Șchema de implementare în cazul utilizării filtrelor adapti ve este
prezentată în Figura 3.2 .
Figura 3.2 Identificarea sistemului utilizând un fil tru adaptiv
În cazul acestei implementări, sistemul necunoscut
H este cone ctat în paralel cu
filtrul adaptiv
()wn și primesc același semnal de intrare
()xn (de regulă
()xn reprezintă
zgomot alb).
()dn reprezintă ieșirea sistemului necunoscut la stimulul aplicat pe intrare.
Astfel, filtrul iși modifică coeficienții pentru a minimiza diferența intre
()dn și propria
Implementare practică
24 ieșire
()yn . Pentru a simula mai bine cazul real, a fost adăugat zgomotul de linie
()mn ce
afectează ieșirea sistemului,
()dn .
În cazul experimentului,
H a fost ales aleator drept un sistem de dimensiuni
(1,10)
și
()xn a fost generat drept zgomot alb cu distribuție normală. În plus, zgomotul
()mn a
fost ales drept un semnal cu distribuție normală în jurul lui zer o și amplitudinea maximă
de 0.02. Toți algoritmii au fost aplicați pentru același sistem și aceleași date de intrare.
3.1.2.2 LMS
După cum a fost p rezentat anterior în secțiunea 2.4 .2.1, algoritmul LMȘ se bazează
pe minimizarea erorii medii pătratice între ieșire a sistemului necunoscut
()dn și ieșirea
filtrului adaptiv
()yn . Mai jos este prezentat pseudocodul:
Tabel 3 .1 Pseudocod pentru algoritmul LMS în cazul Identificării
Inițializare
[0,0,…,0]Tw
N
= dimensiunea sistemului
H
(2.32)
Pas 1 Filtrare
( ) ( ) ( )Ty n w n x n
Pas 2 Calculul erorii
( ) ( ) ( ) ( )e n d n m n y n
Pas 3 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )w n w n e n x n
Pașii 1 -3 vor fi rulați ciclic în funcție de numărul de iterații, în cazul filtrării pe date
achiziționate anterior sau continuu, în cazul execuției în timp real. La finalul rulării,
coeficienții
w ai filtrului adaptiv vor coincide cu coeficienții sistemul ui
H . Valoarea
parametrulu i
a fost aleasă ca fiind 0.03 .
Rezultatele obținute în urma simulării sunt următoarele:
Implementare practică
25
Figura 3 .3 Suprapunerea semnalelor și evoluția erorii (LMS – Identificare)
Figura 3 .4 Evoluția ero rii medi i pătratic e (LMS – Identificare)
Implementare practică
26 Figura 3 .3 prezint ă semnalul dorit
()dn afectat de zgomotul de linie
()mn și ieșirea
filtrului adaptiv
()yn . Șe observă că
y( )n converge la semnalul provenit de la sistemul
necunoscut în aproximativ 70 de iterații. Acest lucru este mai ușor de observat în
reprezentarea erorii, care converge la valoarea vari abilă a zgomotului de linie
()mn . În
Figura 3.4 se poate observa evoluția erorii medii pătratice . Aceasta converge la valoarea
de -40 dB în jurul căreia osci lează.
3.1.2.3 NLMS
Fiind o adaptare a algoritmului LMS, implementarea utilizand algoritmul NLMS este
asemănătoare, bazându -se tot pe minimizarea erorii medii pătratice. Diferența constă în
calcularea la fiecare iterație a unui noi pas
, lucru detaliat în secțiunea 2.4 .2.2.
Pseudocodul este prezentat mai jos:
Tabel 3 .2 Pseudocod pentru algoritmul NLMS în cazul Identificării
Inițializare
[0,0,…,0]Tw
N
= dimensiunea sistemului
H
,
a
Pas 1 Filtrare
( ) ( ) ( )Ty n w n x n
Pas 2 Calculul erorii
( ) ( ) ( ) ( )e n d n m n y n
Pas 3 Recalcularea pasului
2(2.35)
() a x n
Pas 4 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )w n w n e n x n
Pașii 1 -4 se rulează ciclic în funcție de numărul de iterații sau continuu, depinzând
de natura implementării.
a fost ales 0.2,
a = 0.05 . Rezultatele sunt prezen tate mai jos:
Implementa re practică
27
Figura 3 .5 Suprapunerea semnalelor și evoluția erorii ( NLMS – Identificare)
Figura 3.6 Evoluția erorii medii p ătratice ( NLMS – Identificare)
Implementare practică
28 Prima figur ă prezintă semnalul dorit
()dn afectat de zgomotul de linie
()mn și ieșirea
filtrului adaptiv
()yn .
()yn converge la semnalul provenit de la sistemul necunoscut în
aproximativ 80 de iterații , având un interval mic de adaptare la schimbarea bruscă a
semnalului . Acest lucru este observabil și în reprezentarea erorii, care converge la
valoarea
()mn . În Figura 3.6 se poate observa evoluția erorii medii pătratice. Aceasta
converge la valoarea de -40 dB în jurul căreia oscilează.
3.1.2.4 SLMS
Algoritmii de tip ȘLMȘ sunt o variație a LMȘ, singura diferență în implementare
apărând la etapa de recalculare a coeficienților. Algoritmii de tip ȘLMȘ compară valoarea
erorii sau a semnalului de intrare cu zero pentru a stabili formula de calcul. Pseudocodul
este același cu ce l pentru algoritmul LMS (Tabel 3 .1), cu mențiunea că pentru pasul 3
(adaptarea coeficienților) se va utiliza una dintre ecuațiile:
Tabel 3 .3 Ecuații pentru algoritmul SLMS în cazul Identificării
LMS Semn -Date
( 1) ( ) 2 ( ) ( ( ))w n w n e n sign x n
LMS Semn -Eroare
( 1) ( ) 2 ( ( )) ( )w n w n sign e n x n
LMS Semn -Semn
( 1) ( ) 2 ( ( )) ( ( ))w n w n sign e n sign x n
În simulări, cea mai performantă variantă a fost ȘLMȘ Șemn -Date, cu un pas
ales
egal cu 0.07. Rezultatele sunt prezentate mai jos .
În prima figură se observă semnal ul
()dn afectat de zgomotul
()mn și suprapunerea
cu ieși rea filtrului adaptiv, semnalul
()yn , care converge la valoarea dorită în aproximativ
65 de iterații. Viteza mare de convergență este reprezentată și în evoluția erorii. Figura
3.8 prezintă modificarea valorii medii pătratice și convergența la valoarea de -35 dB, în
jurul căreia oscilează.
Implementare practică
29
Figura 3 .7 Suprapunerea semnalelor și evoluția erorii
(SLMS Semn -Date – Identificare)
Figura 3.8 Evoluția erorii medii p ătratice (SLMS Semn -Date – Identificare)
Implementare practică
30 3.1.2.5 Comparații
Pentru a compara performanțele algoritmilor adaptivi în problema identificării unui
sistem necunoscut au fost luate în considerare următoarele mărimi: eroarea medie
pătratică, calculată cu formula 2.19 , raportul semnal/zgomot în decibeli și numărul de
iterații după care algoritmul converge la eroarea minimă. Rezultatele sunt prezentate în
tabel ul de mai jos:
Tabel 3 .4 Comparație algoritmi în cazul problemei de Identificare
J (MSE) SNR dB Itera ții
LMS 0.2005 36.4260 70
NLMS 0.1823 36.3862 80
SLMS Semn -Date 0.2703 36.6719 65
Șe pot trage următoarele concluzii:
– algoritmul LMȘ se situează la mijlocul nivelului de performanță, având valori
intermediare ale MȘE și ale raportului semnal/zgomot;
– algoritm ul NLMS reproduce cel mai fidel ieșire a sistemului, având cea mai mică
valoare a MȘE, dar are cea mai mică valoare a raportului semnal/zgomot;
– algoritmul SLMS Semn -Date converge cel mai rapid, dar poate fi ușor lăsat în urmă
de schimbări bruște în semnalul de intrare și are cea mai mare valoare a MȘE. În schimb,
oferă cel mai bun raport semnal/zgomot.
Datorită faptului că toți algoritmii sunt bazați pe implementarea de tip LMȘ,
performanțele obținute sunt similare. Totuși, în cazul implementărilor particulare, se pot
avea în vedere punctele forte ale fiecărui algoritm pentru a selecta cea mai bună opțiune.
3.1.3 Predicție liniară
3.1.3.1 Definirea problemei
Predicția liniară presupune estimarea valorilor viitoare ale unui semnal necunoscut.
Este utilizată extins în aplicații ce includ procesarea semnalului vocal, codificare, predicția
zgomotului senzorilor, a traiectoriei obiectelor în cazul procesării video, etc. Filtrele
adaptive reprezintă o soluție pentru această problemă. Astfel, filtrul converge către un
model al semnalului de intrare. Figura de mai jos prezintă forma standard de
implementare:
Implementare practică
31
Figura 3.9 Predicție liniară utilizând un filtru adaptiv
Semnalul
()xnreprezintă semnalul necunoscut al cărui model se dorește să fie
identificat. Pentru a evita c onfuzia, în calculul erorii acesta este rescris drept
()dn .
()dxn
este semnalul necunoscut întâ rziat și este utilizat drept semnal de intrare pentru filtrul
adaptiv. Pentru a simula mai bine cazul real, a fost adăugat zgomotul de linie
()mn ce
afectează ieșirea sistemu lui,
()dn .
()en reprezintă semnalul de eroare între semnalul
dorit
()dn afectat de zgomot ș i ieșirea filtrului adaptiv
()yn .
În ca zul experimentului,
()xn a fost ales drept o sumă de sinus și cosinus și s-a
utilizat un filtru de ordin 10. În plus, zgomotul
()mn a fost ales drept un semnal cu
distribuție normală în jurul lui zero și amplitudinea maximă de 0.02. De asemenea ,
valoarea lui
a fost aleasă ca fiind egală cu 25. De menționat este faptul că, datorită
utilizării semnalului întârziat, va apărea un timp mort în ieșirea filtrului. Inițial, pentru un
număr de
iterații, ieșirea filtrului va fi egală cu zero.
3.1.3.2 LMS
În cazul predicției liniare, eroarea medie pătratică este calculată pentru semnalul
necunoscut
()xn și ieșirea filtrului adaptiv,
()yn . În plus, este necesară utilizarea unui
semnal
()dxn , obținut prin întârzierea semnalului
()xn . În continuare este prezentat
pseudocodul aferent implementării acestui algoritm :
Implementare practică
32 Tabel 3.5 Pseudocod pentru algor itmul LMS în cazul Predicției
Inițializare
[0,0,…,0]Tw
N
= dimensiunea filtrului
(2.32)
Pas 1 Calculul semnalului înârziat
( ) ( )dx n x n z
Pas 2 Filtrare
( ) ( ) ( )T
d y n w n x n
Pas 3 Calculul erorii
( ) ( ) ( ) ( )e n d n m n y n
Pas 4 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )d w n w n e n x n
Pașii 1 -4 se rulează ciclic în funcție de numărul de iterații, în cazul filtrării pe date
achiziționate anterior sau continuu, în cazul execuției în timp real. La finalul rulării, filtrul
converge către un model al semnalului de intrare. Valoarea parametru lui
a fost aleasă
ca fiind 0.02.
Rezultatele obținute în urma simulării s unt prezentate mai jos. Figura 3 .10 prezintă
semnalul necunoscut
()xn afectat de zgomotul
()mn .
()yn converge la semnalul dorit în
aproximativ 250 de iterații. Acest lucru este observabil și în reprezentarea erorii, care
converge la valoarea variabilă a zgomotului
()mn . În Figura 3 .11 se poate observa evoluția
erorii medii pătratice. Ace asta converge la valoarea de -35 dB.
Implementare practică
33
Figura 3 .10 Suprapunerea semnalelor și evoluția erorii (LMS – Predicție )
Figura 3 .11 Evoluția erorii medii p ătratice (LMS – Predicție)
Implementare practică
34 3.1.3.3 NLMS
Asemeni problemei de identificare, și în cazul predicției algoritmul NLMȘ seamănă
mult în implementare cu algoritmul LMȘ. Diferența apare în calculul pasului variabil
.
Psedudocodul este p rezentat în tabelul de mai jos:
Tabel 3 .6 Pseudocod pentru algoritmul NLMS în cazul Predicției
Inițializare
[0,0,…,0]Tw
N
= dimensiunea filtrului
,
a,
Pas 1 Calculul semnalului înârziat
( ) ( )dx n x n z
Pas 2 Filtrare
( ) ( ) ( )T
d y n w n x n
Pas 3 Calculul erorii
( ) ( ) ( ) ( )e n d n m n y n
Pas 4 Recalcularea pasului
2(2.35)
() a x n
Pas 5 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )d w n w n e n x n
Pașii 1 -5 se vor rula ciclic în funcție de numărul de iterații, în cazul filtrării pe date
achiziționate anterior sau continuu, în cazul execuției în timp real. Filtrul adaptiv va
converge către un model al semnalului de intrare. Valoarea parametrului
a fost aleasă
ca fiind 0.5 și
a egal cu 0.05.
Rezultatele obținute în urma simulării sunt prezentate în continuare . Figura 3.12
prezintă semnalul necunoscut
()xn afectat de zgomotul
()mn .
y( )n converge la semnalul
dorit în aproximativ 100 de iterații. Acest lucru este observabil și în reprezentarea erorii,
care converge la valoarea variabilă a zgomotului
()mn . În Figura 3.13 se observă evoluția
erorii medii pătratice. Aceasta converge la valoarea de -35 dB.
Implementare practică
35
Figura 3.12 Suprapunerea semnalelor și evoluția erorii (NLMS – Predicție)
Figura 3.13 Evoluția erorii medii p ătratice ( NLMS – Predicție)
Implementare practică
36 3.1.3.4 SLMS
În cazul predicției se utilizează și algoritmi de tip ȘLMȘ. Aceștia au fost detaliați în
secțiunea 2.4 .2.3, iar implementarea este similară cu cea a algoritmului LMȘ. Diferența va
apărea la etapa de recalculare a coeficienților.
Tabel 3 .7 Ecuații pentru algoritmul SLMS în cazul Identificării
LMS Semn -Date
( 1) ( ) 2 ( ) ( ( ))d w n w n e n sign x n
LMS Semn -Eroare
( 1) ( ) 2 ( ( )) ( )d w n w n sign e n x n
LMS Semn -Semn
( 1) ( ) 2 ( ( )) ( ( ))d w n w n sign e n sign x n
Datorită performanțelor mai bune față de celelalte implementări ale algoritmului
SLMS, vor fi discutate rezultatele algoritmul SLMS de tip Semn -Date. Pentru experimente,
valoarea pasului mu a fost aleasă 0.02. Rezultatele sunt prezentate mai jos .
În prima figură se observă semnalul necunoscut
()xn afectat de zgomotul de linie
()mn
și semnalul
y( )n care converge la valoarea variabilă a zgomotului de linie în
aproximativ 200 de iterații. Acest lucru este vizibil și în evoluția erorii.
Figura 3.15 prezintă modificarea valorii medii pătratice și convergența la valoarea
de -25 dB .
Implementare practică
37
Figura 3.14 Suprapunerea semnalelor și evoluția erorii
(SLMS Semn -Date – Predicție)
Figura 3.15 Evoluția ero rii medii p ătratice (SLMS Semn -Date – Predicție)
Implementare practică
38 3.1.3.5 Comparații
În compararea performanțelor celor trei algoritmi implementați, au fost utilizate
aceleași mărimi ca și în cazul problemei de identificare: eroarea medie pătr atică, calculată
cu formula 2.19 , raportul semnal/zgomot în decibeli și numărul de iterații după care
algoritmul converge la eroarea minimă. Rezultatele sunt prezentate în tabelul de mai jos:
Tabel 3.8 Comparație algoritmi în cazul problemei de Identificare
J (MSE) SNR dB Itera ții
LMS 0.1969 30.6759 250
NLMS 0.1648 30.9473 100
SLMS Semn -Date 0.1968 30.6997 200
Șe trag următoarele concluzii:
– Algoritmii LMȘ și ȘLMȘ Șemn -Date au rezultate foarte asemănătoare din punct
de vedere al erorii medii pătratice și al raportului semnal/zgomot. Totuși,
algoritmul SLMS Semn -Date prezintă o convergență mai rapidă ;
– Algoritmul NLMS este cel mai performant, având cele mai bune valori pentru
toate mărimile luate în discuție. În plus, algoritmul are o viteză de convergență
mult superioară celorlalte dou ă implementări.
Pentru rezolvarea problemei de predicție liniară, se poate concluziona că toți
algoritmii implementați asigură convergența către semnalul necunoscut, dar algoritmul
NLMȘ are cele mai bune preformanțe.
Implementare practică
39 3.2 Anularea adaptivă a zgomotului
3.2.1 Definirea problemei
Echipamentele de anulare a zgomotului au rolul de a elimina zgomotul de fundal în
aplicații care necesită precizie și care pot fi ușor distorsionate, afectând rezultatele. Ș unt
utilizate extins în si steme de comunicații sau medicină. Există mai multe abordări de
implementare, cea mai des utilizată fiind prezentată mai jos:
Figura 3.16 Anularea zgomotului utilizând filtre adaptive
În cazul aplicațiilor de telecomunicații, această abordare se bazează pe existența a
două microfoane. Ș e pleacă de la premisa că nu există corelație între semnalul util și
zgomot. Astfel, o intrare va fi utilizată pentru măsurarea zgomotului
1()nn, iar cealaltă
pentru achiziția semnalului dorit
()sn , care este afectat de un zgomot
0()nn , corelat cu
zgomotul
1()nn .
()yn reprezintă ieșirea filtrului adaptiv,
()en reprezintă eroarea, care
este de fapt ieșirea sistemulu i de anulare a zgomotului . În plus ,
()en ar trebui să modeleze
semnalul
()sn . Funcția de cost este prezentată în ecuația 3 .1.
2 2 2
0 min [ ( ) ] [ ( ) ] min [( ( ) ( ) )]E e n E s n E n n y n (3.1)
Pentru a evalua performanțele algoritmilor, au fost realizate două simul ări. Prima
presupune un semnal
()sn de tip sinusoidal, iar cea de -a doua presupune utilizarea unui
Implementare practică
40 semnal de voce achiziționat anterior . În ambele cazuri zgomotul adăugat este o sumă de
sinusuri și cosinus . Corelația între
1n și
0n a fost simulată prin relația
010.9nn . Filtrul
adaptiv a fost ales de dimensiune
32N .
3.2.2 LMS
3.2.2.1 Pseudocod
Pentru problema de anulare a zgomotului, eroarea medie pătratică este calculată
între semnalul
0 ( ) ( )s n n n (în pseudocod notat
()dn ) și semnalul de ieșire al filtrului,
()yn
. Semnalul de zgomot a fost notat cu
()xn . Pasul
a fost ales egal cu 0.01.
Pseudocodul aferent implementării este asemănător cu cel utilizat în cazul problemei de
identificare.
Tabel 3.9 Pseudocod pentru algoritmul LMS în cazul Anulării zgomotu lui
Inițializare
[0,0,…,0]Tw
N
= dimensiunea filtrului
(2.32)
Pas 1 Filtrare
( ) ( ) ( )Ty n w n x n
Pas 2 Calculul erorii
( ) ( ) ( )e n d n y n
Pas 3 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )w n w n e n x n
Algoritmul se rulează ciclic, pentru un număr de iterații sau continuu , în cazul
implementării în timp real. În continuare sunt prezentate rezultatele simulărilor în cazul
utilizării unui semnal sinusoidal sau a unui semnal de voce.
Implementare practică
41 3.2.2.2 Rezultate
Figura 3.17 Rezultatele pentru un semnal sinusoidal (LMS – Anulare zgomot)
Figura 3.18 Rezultatele pentru un semnal de voce (LMS – Anulare zgomot)
Implementare practică
42 Figura 3.17 prezintă cazul utilizării unui semnal sinusoidal. Șe poate observa faptul
că semnalul de eroare
()en converge după ap roximativ 5 0 iterații la semnalul dorit,
()sn .
Eroarea medie pătratică a semnalelor
()sn și
()en evoluează către -30 dB, având oscilații .
Figura 3.18 tratează cazul implementării algoritmului pentru a f iltra zgomotul ce
afectează un semnal de voce. Șunt vizibile performanțele algoritmului, semnalul
()en
covergând către semnalul
()sn . Eroarea medie pătratică ajunge în zona valorii de -30 db,
în jurul căreia osci lează.
3.2.3 NLMS
3.2.3.1 Pseudocod
Algoritmul NLMȘ este o variație a algoritmului LMȘ, având, în contrast, un pas
variabil.
a fost ales 0.1 pentru cazul cu semnal sinusoidal și 0.1 5 pentru cazul cu semnal
de voce. Parametrul
a a fost ales 0.1. Pseudocodul este prezentat mai jos:
Tabel 3.10 Pseudocod pentru algoritmul LMS în cazul Anulării zgomotului
Inițializare
[0,0,…,0]Tw
N
= dimensiunea filtrului
,
a
Pas 1 Filtrare
( ) ( ) ( )Ty n w n x n
Pas 2 Calculul erorii
( ) ( ) ( ) ( )e n d n m n y n
Pas 3 Recalcularea pasului
2(2.35)
() a x n
Pas 4 Adaptarea coeficienților
( 1) ( ) 2 ( ) ( )w n w n e n x n
Algoritmul se rulează pentru un număr de iterații sau continuu, în funcție de natura
implementării. Rezultatele obținute sunt prezentate mai jos.
Implementare practică
43 3.2.3.2 Rezultate
Figura 3.19 Rezultatele pentru un semn al sinusoidal (NLMS – Anulare zgomot)
Figura 3.20 Rezultatele pentru un semnal de voce (NLMS – Anulare zgomot)
Implementare practică
44 Figura 3.19 prezintă rezultatele obținute în cazul utilizării unui semnal sinusoidal.
Algoritmul NLMȘ adaptează coeficienții astfel încât semnalul de eroare
()en converge la
semnalul dorit în aproximativ 40 de iterații. Eroarea medie pătratică a re o evoluție
descendentă către valoarea de -30 dB.
Figura 3.20 ilustrează perfomanțele algoritmului NLMȘ în cazul unui semnal de
voce. Șe observă o îmbunățire clară a semnalului. Datorită vitezei relativ mari de
convergență, algoritmul se poate adapta la schimbări bruște ale valorii semnalului de
intrare. Eroarea medie pătratică evoluează spre valoarea de -25 de dB în jurul căreia
oscilează.
3.2.4 SLMS
3.2.4.1 Pseudocod
Algoritmul de tip SLMS diferă de algoritmul LMȘ prin pasul de adaptare al
coeficienților filtrului în funcție de semnul erorii sau al zgomotului. Ecuațiile necesare
implementării pasului de adaptare al coeficienților pentru algoritmul ȘLMȘ sunt
prezentate mai jos:
Tabel 3.11 Ecuații pentru algoritmul SLMS în cazul Anulării zgomotului
LMS Semn -Date
( 1) ( ) 2 ( ) ( ( ))w n w n e n sign x n
LMS Semn -Eroare
( 1) ( ) 2 ( ( )) ( )w n w n sign e n x n
LMS Semn -Semn
( 1) ( ) 2 ( ( )) ( ( ))w n w n sign e n sign x n
Cele mai bune rezultate în simulări au fost obținute cu varianta Semn -Date a
algoritmului și aceste rezultate vor fi tratate. Valoarea lui
a fost aleasă 0.01.
Figura 3.21 prezintă rezultatele algoritmului ȘLMȘ Șemn -Date în cazul unui semnal
de tip sinusoidal. Semnalul
()en converge rapid către semnalul
()sn , în aproximativ 50 de
iterații, având însă o suprapunere slabă în zona staționară. Eroarea medie pătratică
ajunge în jurul valorii de -20 dB, având oscilații puternice către valori mai mici în zone le
de suprapunere mai bună.
În figura 3.22 se observă performanțele algoritmului ȘLMȘ Șemn -Date în cazul
utilizării unui semnal de voce. Algoritmul asigură o convergență rapidă a erorii
()en la
semnalu l dorit
()sn și o suprapunere bună în zonele de fluctuație mică. Eroarea medie
pătratică are fluctuații mari, dar se poate considera că valoar ea centrală este aproximativ
-35 dB.
Implementare practică
45 3.2.4.2 Rezultate
Figura 3.21 Rezultatele pentru un semnal sinusoidal
(SLMS Semn -Date – Anulare zgomot)
Figura 3.22 Rezultatele pentru un semnal de voce
(SLMS Semn -Date – Anulare zgomot)
Implementare practică
46 3.2.5 Comp arații
Pentru a compara performanțele celor trei algoritmi, au fost utilizate următoarele
mărimi: eroarea medie pătr atică, calculată cu formula 2.19 , și numărul de iterații după
care algoritmul converge la eroarea minimă. Rezultatele sunt prezentate de ma i jos:
3.2.5.1 Semnal sinusoidal
Tabel 3.12 Comparație – Anularea zgomotului pentru un semnal sinusoidal
LMS NLMS SLMS Semn -Date
J (MSE) 0.1706 0.1211 0.2213
Itera ții 50 40 50
Șe poate concluziona că, în cazul anulării zgomotului pentru semnale periodice,
algoritmul de tip NLMȘ este cel mai performant, având cea mai mare viteză de
convergență și asigurând cea mai mică eroare pătratică. Algoritmii LMȘ și ȘLMȘ Șemn –
Date au aceeași viteză de convergență, dar rezultatele algoritmului LMS sunt mai bune ,
deoarece eroarea medie pătratică este m ai mică.
3.2.5.2 Semnal de voce
Tabel 3.13 Comparație – Anularea zgomotului pentru un semnal de voce
LMS NLMS SLMS Semn -Date
J (MSE) 0.1645 0.1638 0.1973
Din cauza lipsei periodicității semnalului de voce , numărul de iterații nu este
relevant pentru comparație. Astfel, datorită complexității asemănătoare a algoritmilor , nu
vor exista diferențe semnificative în timpul de execuție. Totuși, din punctul de vedere al
erorii pătratice, cele mai bune rezultate sun t obținute cu ajutorul algoritmilor NLMȘ și
LMȘ (erori pătratice aproximativ egale, cea a NLMȘ fiind mai mică). Și algoritmul ȘLMȘ
Semn -Date este o soluție fezabilă, dar performanțele sunt mai slabe.
Șe poate concluziona că cei trei algoritmi discutați sun t capabili să rezolve problema
anulării zgomotului, cu diferite grade de performanță. Totuși, cele mai bune rezultate au
fost obținute cu algoritmul NLMȘ.
Implementare practică
47 3.3 Anularea zgomotului – aplicație practică
3.3.1 Motivație
Pentru implementarea prac tică, dintre aplicațiile prezentate ale filtrelor adaptive, a
fost aleasă problema anulării zgomotului. Motivul a fost actualitatea acesteia și multiplele
domenii în care este întâlnită . Astfel, industria de automobile utilizează acest procedeu
pentru elimi narea din habitaclu a zgomotului provenit de la motor sau roți. În medicină,
în cazul unei electrocardiograme , se elimină zgomotul provenit de la rețea sau se separă
semnalele provenite de la mamă și făt. În telecomunicații, anularea adaptivă a zgomotului
este utilizată pentru a transmite un semnal lipsit de zgomotul de fundal.
Aplicația considerată a fost cea a utilizării unor căști pentru comunicație cu sistem
de anulare adaptivă a zgomotului , pentru a transmite un semnal curat. A fost de asemenea
considerată posibilitatea dezvoltării unui astfel de sistem la un preț redus.
3.3.2 Texas Instruments Launchpad TMS320 F28377S
3.3.2.1 Date tehnice
Placa de dezvoltare Tex as Instruments Launchpad TMS320F28377 Ș a fost aleasă
pentru implementarea practică , datorită performanțelor superioare. În plus, fiind o placă
de dezvoltare, accesul la pinii necesari este facil, iar producătorul pune la dispoziție
materiale și demo -uri pentru a familiariza utilizatorul cu produsul și a reduce timpul
necesar învățării.
Datele te hnice sunt prezentate pe site -ul producătorului și cele de interes pentru
proiectul de față sunt urătoarele:
– Procesor pe 32 de biți ;
– Ceas tactat la 200 MHz ;
– IEEE 754 Unitate de calcul în virgulă flotantă în simplă precizie (FPU) ;
– Pini de ieșire de 3.3V ;
– Port de comunicație prin UȘB 2.0 ;
– Convertor analog numeric unipolar pe 12 biți ;
– Convertor numeric analogic pe 12 biți ;
– Program ator de tip xds100v2 de standar d JTAG (IEEE1149.1) pe placă .
Implementare practică
48 În plus, mirocontroller -ul are la dispoziție și converto are analog -numeric e
diferențial e pe 16 biți, dar producătorul nu asigură performanțele în cazul plăcii de
dezvoltare.
Mai jos este prezentată o imagine a plăcii de dezvoltare, disponibilă pe site -ul
producătorului1 :
Figura 3.23 Texas Instruments Launchpad TMS320F28377S C2000 Delfino
3.3.2.2 Setup
Texas Instruments pune la dispoziție bibliotecile necesare pentru utilizarea facilă a
plăcii de dezvoltare, acestea fiind incluse în aplicația controlSUITETM Software Suite:
Essential Software and Development Tools for C2000TM Microcontrollers . Versiunea
utilizată este 3.4.5. În plus, mediul de devoltare Code Composer StudioTM – Integrated
Development Environment oferă unel te performante pentru depanarea progr amului , de
vizualizare grafică a datelor, de măsurare al timpului de execuție, etc. Versiunea folosită
este 6.2.0.
Pentru a confi gura co rect un proiect , trebuie parcurși următorii pași:
– Șe creează un proiect nou de tip CCȘ, se alege placa de dezvoltare
TMS320F28377Ș și versiunea de programator xds100v2 ;
– În subramura Include Options se vor adăuga următoarele căi de căutare:
…\device_support \F2837xS \v210 \F2837xS_headers \include
…\device_support \F2837xS \v210 \F2837xS_common \include (Figura 3.24) ;
– În subramura Predefined Symbols se introduce si mbolul _LAUNCHXL_F28377S ;
– În subramura File Search Path se introduc următoarele căi (Figura 3.25) :
…\device_support \F2837xS \v210 \F2837xS_headers \cmd
…\device_support \F2837xS \v210 \F2837xS_common \cmd și bibl iotecile:
rts2800_fpu32.lib, F2837xS_Headers_nonBIOS.cmd, 2837xS_Generic_RAM_lnk.cmd
1 http://www.ti.com/tool/LAUNCHXL -F28377S
Implementare pra ctică
49
Figura 3 .24 Setări pentru includerea fișierelor
Figura 3.25 Setări pentru alegerea bibliotecilor
Implementare practică
50 3.3.3 Implementare
Mai jos sunt prezenta te schema de principiu și implementarea efectivă a proiectului:
Figura 3.26 Schema de principiu
Figura 3.27 Prezentarea proiectului
Implementare practică
51 Șemnalele au fost preluate cu două microfoane de tip electret, cu tranzistori cu efect
de câ mp. Pentru amplificarea ac estor semnale, au fost utilizate două circuite de tip
MAX9812 , cu amplificare fixă de 20 dB. Acestea au fost alese deoarece oferă un raport
calitate preț bun și se pot alimenta direct de la microcontroller ( în schem ă nu a fost
realizată această conexiune p entru a simplifica desenul ). Totuși, datorită faptului că
achiziția se realizează în regim unipolar, a fos t necesară adăugarea a câte o rezistență de
50 kΩ (R3 și R4) . Acestea au fost legate la tensiunea de alimentare și la intrarea în
microcontroller . Astfel, s -a obținut translatarea semnalelor de intrare, acestea oscilând
acum în jurul valorii de 1.65 V.
Pentru achiz iția datelor s -au utilizat ADCA3 (pin 67) și ADCB3 (pin 68).
Sinc ronizarea conversiei s -a realizat cu ajutorul unui timer. De asemenea , ADCA3 și
ADCB3 nu au rezistențe de pull -dow n interne (precum convertoare le ADC0 și ADC1 ),
așadar s -a adăugat câte o rezistență de 50 kΩ pe fiecare intrare (R1 și R2) . Eșantionarea a
fost realizată la o frecvență de 44.1 kHz, respec tând teorema Nyquist -Shanno n. ADCA3
achiziționează semnalul de v oce afectat de zgomot, iar ADCB3 preia zgomotul. Calculele
efective au fost realizate în rutina de întrerupere a timer -ului. S-a utilizat ar itmetica în
virgulă flotantă, realizându -se în prealabil conversia din domeniul de valori 0 – 4095.
Practic, pentru calcule în virgulă flotantă a fost utilizat domeniul [ -1,1] și, pentru
conversie, cu scopul de a elimina saturațiile , s-a folosit domeniul [500, 3500].
Pentru a transmite rezultatele, au fost utilizate convertoarele D ACA (pin 27) și DACB
(pin 29). Pe convertorul DACA a fost transmis semnalul de eroare (ieșirea sistemului de
anulare adaptivă a zgomotului), iar pe DACB s -a transmis semnalul afectat de zgomot,
pentru comparație. Referința de 3.3 V a fost dată de la pinul 1 pe pinul 28. Aceste semnale
sunt filtrate cu ajutorul unor filtre trece -jos RC pasive. În cazul gamei de frecvență a
semnalelor utilizate în experiment (voce + sunet elicopter), au fost obținute rezult ate
bune cu component e având următoarele valori: R = 1 kΩ, C = 1μ F.
După aceea, semnalele filtrare au fost achiziționate pe laptop cu ajutorul a două plăci
de sunet pentru a le putea înregistra simultan. Rezultatele în cazul aplicării celor trei
algoritmi sunt prezentate în figurile de mai jos:
Implementare practică
52 3.3.4 Rezultat e
Figura 3.28 Rezultate practice LMS
Figura 3.29 Rezultate practice NLMS
Implementare practică
53
Figura 3.30 Rezultate practice SLMS Semn -Date
Pentru a simula cu acuratețe mediul dintr -un elicopter, s -a utilizat un zgomot cu
volum mult mai ridicat decât vocea. În conse cință, semnalul de voce afectat de zgomtot a
fost saturat de către driver -ul intern al plăcii de sunet.
Dintre algoritmii testați, c ea mai bună eliminare a zgomotului este realizată de către
algoritmul NLMȘ, dar prezintă și ușoare distorsiuni ale semnalul ui original. Algoritmul
SLMS Semn -Date oferă o anulare mare a zgomotului, fără a distorsiona semnalul original.
Deși algoritmul LMȘ realizează anularea zgomotului într -o măsură utilizabilă pentru un
caz real, este inferior ca performanțe. Rezultatele obțin ute dovedesc faptul că, precum în
cazul simulărilor, acești algoritmi pot rezolva cu succes problema anulării adaptive a
zgomotului, cu grade diferite de performanță. Totuși , este necesară studierea și a altor
clase de algoritmi pentru a alege cea mai bună implementare pentru o aplicație dată.
Concluzii
54 4 Concluzii
Șubiectul lucrării a fost ales datorită aplicațiilor extinse în multiple domenii de
interes: medicina, aviația, industria de automobile, industria muzicală, etc. Totodată,
abordarea acestei teme a presupus dobândirea de cunoștințe atât teoretice cât și practice
în domeniul procesării semnalelor , fiind un bun prilej de învățare.
Obiectivul principal al lucrării a fost acela de a studia filtrele adaptive și de a verifica
aplicabilitatea acestora în pr obleme de identificare, predicție liniară și, în mod special, în
anularea zgomotului. De asemena , s-a verificat posibilitatea de a crea un sistem de anulare
adaptivă a zgomotului la un preț redus față de cel al producătorilor. Astfel, dacă se ia în
calcul doar partea electronică (de calitate medie) , se poate ajunge la un cost al
componentelor sub 50 de dolari (la momentul redactării ). În funcție de segmentul de piață
vizat, se va considera costul elementelor fizice (bureți, elemente de fixare , etc.) și se va lua
în discuție necesitatea utilizării unor componente electronice mai performante. În final,
se poate concluziona că este posibilă obținerea unui produs competitiv, dar deciziile
legate de proiectare trebuie bazate pe un studiu de piață riguros, realiza t în prealabil.
Au fost studiați algoritmi bazați pe soluția Wiener, aceștia fiind: c ele mai mici
pătrare (LMȘ), cele mai mici pătrate normalizat (NLMȘ) și cele mai mici pătrate cu semn
(SLMS). S -a dovedit faptul că toți algoritmii pot rezolva problemele s tudiate, cu
performanțe diferite. În cazul identificării, rezultatele au fost asemănătoare, fiind nevoie
să se considere un caz practic și criteriile de performantță impuse de acesta pentru a alege
o implementare. Pentru problema de predicție, rezultatele algoritmului NLMS, în
simlulările realiz ate, au fost net superioare (eroare pătratică mică, raport semnal zgomot
mare, convergență rapidă). În cazul anulării zgomotului , în simulări, algoritmul NLMS
rămâne cel mai performant, asigurând o eroare pătratică redusă și viteză mare de
convergență . Aplicația practică a dovedit faptul că algoritmul NLMȘ reduce cel mai mult
zgomotul de fundal , distorsionând într -o mică măsur ă semnalul de voce, în timp ce
algoritmul SLMS Semn -Date elimină zgomotul cu performanțe ase mănătoare , neafectând
semnalul original.
Există descriși în literatura de specialitate și alte tipuri de algoritmi utilizați în
domeniul filtrelor adaptive. De interes este algoritmul Cele mai mici pătrate recursiv
(RLS) , deoarece a fost verificat faptul c ă are o viteză de convergență mult superioară
algoritmilor de tip LMS. Ca și aspecte negative, are o complexitate crescută și este sensibil
la zgomotul de cuantiz are, cauzat de rezoluți a finită. Totuși, datorită avansului tehnologic
din domeniul procesoarelor numerice de semnal, se pot realiza conversii avâ nd rezoluții
mari, viteză de calcul ridicată și consum de energie scăzut.
Astfel, din punct de vedere al teoriei ce fundamentează aceste aspecte și al
simulărilor necesare, se dorește, în continuare, studierea algoritmului RLȘ și ale altor
clase de algoritmi utilizați în domeniul filtrelor adaptive, în vederea testării
performanțelor și implementării ulterioare în aplicații practice.
Concluzii
55 Ca prim pas, continuarea lucrării de față presupune îmbunătăți rea rezultatelor
obținute, prin ajustare a parametrilor și implementarea utilizând componente cu standard
de calitate mai ridicat. Ulterior, se dorește realizarea unui prototip de căști cu funcția de
anulare adaptivă a zgomotului, la un preț scăzut. Mai jos este prezentată o schemă
simplificată:
Figura 4 .1 Schemă simplificată a prototipului
Modelul considerat în lucrare este acela al anulării zgomotului de fun dal prezent
în cabina unui el icopter pentru a transmite un semnal de voce curat. În implementa rea
prototipului va fi luată în calcul și eliminarea zgomotului în cască, aplic ând principiul
expus în F igura 4 .2.
Figura 4 .2 Anularea zgomotului prin sumare
Concluzii
56 În cazul în care nu se alege proiectarea unei soluții complete, s e va porni de la un
set de că ști deja existent, cu microfon pentru voce, dar fără sistem de anulare a
zgomotului. Se va monta microfonul secundar, semnalul putând fi folosit pentru
reducerea zgomotului atât în semnal ul transmis cât și în cască. Astfel, va fi n evoie d e un
amplificator pentru semnalul transmis în căști si un preamplificator pentru semnalul
provenit de la microfonul secundar (presupunând că există deja un preamplificator
pentru microfonul primar).
Datorită eficienței, pentru procesare poate fi al es un microcontroller Texas
Instruments din seria CC26XX, cu modul Bluetooth incorporat. În funcție de spațiu, se va
alege un acumulator pentru a asigura autonomia nece sară. În cazul în care se optează
pentru varianta pe fir, microcontroller -ul ales în ac eastă lucrare, TMȘ320F28377Ș , este o
alegere bună.
În concluzie, continuarea lucrării presupune realizarea prototipului discutat mai
sus, dar și extinderea fundamentelor teoretice și a cunoștințelor de implementar e a
filtrelor adaptive în alte domenii de i nteres. Spre exemplu, se poate lua drept studiu de
caz anularea zgomotului indus de rețeaua de alimentare într -o electrocardiogramă sau
extragerea semnalelor cardiace ale fătului și mamei. Vor fi studiați, de asemena, și
algoritmii evolutivi pentru a le ve rifica aplicabilitatea și performanțele în domeniul
filtrării adaptive.
Bibliografie
57 5 Bibliografie
[1] Y. M. C.A.A. Meza, in Implementation of the LMS Algorithm for Noise
Cancellation on Speech Using the ARM LPC2378 Processor. , Master 's thesis,
Växjö, Växjö University, 2009.
[2] D. J.G.Proakis, in Digital Signal Processing , New Jersey, Prentice -Hall
International, Inc, 1996, pp. 1 -40.
[4] D. Tărniceriu, in Bazele prelucrării numerice a semnalelor , Iași, Ed.
Politehnium, 2008.
[5] F. M. Tufescu, in Dispozitive și circuite electronice , Iași, Editura
Universității "Alexandru Ioan Cuza", 2002, pp. 167 -210.
[6] R. M. A. Falcão, in Adaptive filtering algorithms for noise cancellation ,
Master's t hesis, Porto, Universidade do Porto, 2012.
[7] R. Chassaing, in DSP Applications Using C and the TMS320C6x DSK , John
Wiley & Sons, Inc., 2002, pp. 102 -181.
[8] P. Diniz, in Adaptive Filtering Algorithms and Practical Implementation
Second Edition , Rio de Janeiro, Springer, 2008, pp. 1 -130.
[9] B. Widrow and J. Glover, "Adaptive Noise Cancelling: Principles and
Applications," Proceedings of the IEEE, Vol. 63, No. 12, December 1975.
[10] I. Tudosa and N. Adochiei, "LMS Algorithm Derivatives used in Real -Time
Filtering of ECG Signals: A Study Case on Performance Evaluation," in
International Conference and Exposition on Electrical and Power Engineering ,
Iași, 2012.
Anexe
58 6 Anexe
Șunt prezentate secțiunile relevante de cod pentru fiecare caz de utilizare. CD -ul ce
însoțește lucrarea conține codurile sursă complete și librăriile necesare rulării
proiectului. Șecțiunile de la 6.1 până la 6.5 au fost implementate în MATLAB 2016a și
secțiunea 6.6 este aferentă micro procesorului Texas Instrumen t TMS320F28377S .
6.1 Identificarea sistemelor
%% Initializare
I = 500; % nr. iteratii
H = rand(1,10); % sistem necunoscut
x_in = randn(1,I); % semnal de intrare
m = 0.02*randn(1,I); % semnal de zgomot
N = length(H); % dimensiunea filtrului
%% Algoritm ad aptiv
for i = 1:I
x = [x_in(i) x(1:N -1)];
d(i)= H*x' + m(i);
y(i) = w*x';
e(i) = d(i) – y(i);
% mu = mu_b / (a + norm(x)^2); % pas variabil NLMS
w = w + 2*mu*e(i)*x; % LMS
% w = w + 2*mu*e(i)*sign(x); % SLMS Semn -Date
% w = w + 2*mu*sign(e(i))*X; % SLMS Semn -Eroare
% w = w + 2*mu*sign(e(i))*sign(X); % SLMS Semn -Semn
MSE(i) = norm(e(i)^2);
end
6.2 Predic ție liniară
%% Initializare
N = 10; % dimensiunea filtrului
I = 500; % nr. de iteratii
t = (1:I) -1;
delta = 25;
x_in = sin(2*pi*0.02.*t)+0.2*cos(2*pi*0.18.*t); % semnal necunoscut
delay = zeros(1,delta);
x_d = [delay x_in(1:(I -delta))]; % semnal intarziat
m = 0.02*randn(1,I); % semnal de zgomot
%% Algoritm adaptiv
for i = 1:I
x = [x_d(i) x(1:N -1)];
y(i) = w*x';
Anexe
59 e(i) = x_in(i) + m(i) – y(i);
% mu = mu_b / (a + norm(x)^2); % pas variabil NLMS
w = w + 2*mu*e(i)*x; % LMS
% w = w + 2*mu*e(i)*sign(x); % SLMS Semn -Date
% w = w + 2*mu*sign(e(i))*X; % SLMS Semn -Eroare
% w = w + 2*mu*sign(e(i))*sign(X); % SLMS Semn -Semn
MSE(i) = norm(e(i)^2);
End
6.3 Anularea zgomotului – semnal sinusoidal
%% Initializare
N = 32; % dimensiunea filtrului
I = 300; % nr. de iteratii
f = 1000; % frecventa
Ts = 1/(25*f); % perioada de esantionare
t = (0:I-1)*Ts;
s = sin(2*pi*f.*t); % semnal generat
%% Algoritm adaptiv
for i = 1:I
x(1) =
0.5*(sin(2*pi*10000*t(i))+sin(2*pi*6000*t(i))+cos(2*pi*5000*t(i)));
x = [x(1) x(1:N -1)];
d(i) = s(i) + 0.9*x(1);
y(i) = w*x';
e(i) = d(i) – y(i);
% mu = mu_b / (a + norm(x)^2); % pas variabil NLMS
w = w + 2*mu*e(i)*x; % LMS
% w = w + 2*mu*e(i)*sign(x); % SLMS Semn -Date
% w = w + 2*mu*sign(e(i))*x; % SLMS Semn -Eroare
% w = w + 2*mu*sign(e(i))*sign(x); % SLM S Semn-Semn
diff = s(i) – e(i);
MSE(i) = norm(diff^2);
end
6.4 Anularea zgomotului – semnal de voce
Șingura diferență față de cazul unde semnalul este generat, este la partea de
inițializare:
%% Initializare
N = 32; % dimensiunea filtrului
I = length(Voce); % nr. de iteratii
f = 1000; % frecventa
Ts = 1/(25*f); % perioada de esantionare
t = (0:I -1)*Ts;
s = Voce'; % semnal de voce
Anexe
60 6.5 Achiziție date
recObj1 = audiorecorder(44100,16,1,1);
recObj2 = audiorecorder(44100,16,1,2);
disp('Start speaking.' )
record(recObj1, 5);
record(recObj2, 5);
pause(5);
stop(recObj1);
stop(recObj2);
disp('End of Recording.' );
voice_noise = getaudiodata(recObj1);
noise = getaudiodata(recObj2);
6.6 Anularea zgomotului – Texas Instruments TMS320F28377S
__interrupt void cpu_timer0_isr (void)
{
AdcaRegs. ADCSOCFRC1 .bit.SOC0 = 1; //SOC0
while(AdcaRegs. ADCINTFLG .bit.ADCINT1 == 0);
AdcaRegs. ADCINTFLGCLR .bit.ADCINT1 = 1;
Uint16 i = 0;
y = 0.0;
for(i = RESULTS_BUFFER_SIZE; i > 0; –i)
{
AdcbResults[i] = AdcbResults[i -1];
AdcbFloat[i] = AdcbFloat[i -1];
}
AdcbResults[0] = AdcbResultRegs. ADCRESULT0 ;
AdcbFloat[0] = ( float) 0.0006667 * (AdcbResults[0] – 500) – 1;
AdcaResults[resultsIndexA] = AdcaResultRegs. ADCRESULT0 ;
AdcaFloat[resultsIndexA] = ( float) 0.0006667 * (AdcaResults[resultsIndexA]
– 500) – 1;
for(i = 0; i < RESULTS_BUFFER_SIZE; ++i)
y += w[i]*AdcbFloat[i];
err[resultsIndexA] = AdcaFloat[resultsIndexA] – y;
// To prevent saturation
if (err[resultsIndexA] > 2)
err[resultsIndexA] = 2;
if (err[resultsIndexA] < -2)
err[resultsIndexA] = -2;
if (err[0] == 2 && err[1] == 2 && err[2] == 2)
for (i = 0; i < RESULTS_BUFFER_SIZE; ++i)
err[i] = 0.0;
Anexe
61 //LMS
ue = mu*err[resultsIndexA];
for(i = 0; i < RESULTS_BUFFER_SIZE; ++i)
w[i] += ue*AdcbFloat[i];
//NLMS
/*
for (i = 0; i < RESULTS_BUFFER_SIZE; ++i)
norm = norm + pow(AdcbFloat[i],2);
norm = sqrt(norm);
mu = mu_b / (a + pow(norm,2));
norm = 0.0;
ue = mu*err[resultsIndexA];
for(i = 0; i < RESULTS_BUFFER_SIZE; ++i)
w[i] += u e*AdcbFloat[i];
*/
//SLMS
/*
ue = mu*err[resultsIndexA];
for(i = 0; i < RESULTS_BUFFER_SIZE; ++i)
if (AdcbFloat[i] < 0)
w[i] += -ue;
else
if (AdcbFloat[i] > 0)
w[i] += ue;
else
w[i] += 0;
*/
DacaRegs. DACVALS.all = (Uint16) 1500*(err[resultsIndexA] + 1) + 500; //
filtered signal
DacbRegs. DACVALS.all = AdcaResultRegs. ADCRESULT0 ; resultsIndexA++; // voice
+ noise signal
if(RESULTS_BUFFER_SIZE <= resultsIndexA)
resultsIndexA = 0;
PieCtrlRegs. PIEACK.all = PIEACK_GROUP1;
}
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Autor: Lucian -Cristian IACOB Conducător științific : Prof.dr .ing. Petru Dobra FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE FACULTATEA DE AUTOMATICĂ ȘI… [629179] (ID: 629179)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
