Sunteți pe pagina 1din 23

1

Aplicaii ale Filtrelor Adaptive (I)




Mediul de dezvoltare Matlab este un pachet de programe dedicat calculului
numeric i reprezentrilor grafice n domeniul tiinei inginereti. El integreaz
analiza numeric, calculul matriceal, procesarea semnalului i reprezentrile grafice,
ntr-un mediu uor de nvat i folosit, n care enunurile problemelor i rezolvrile
acestora sunt exprimate n modul cel mai natural posibil, aa cum sunt scrise
matematic, fr a fi necesar programarea tradiional. Elementul de baz cu care
opereaz Matlab-ul este matricea. Cu acesta se pot rezolva probleme fr a fi necesar
scrierea unui program ntr-un limbaj de programare.

Figura 4.1. Interfaa programului Matlab

1. Noiuni de baz despre Filtrele Adaptive n Matlab
Vom arta cum se pot folosi algoritmele pentru filtre adaptive ntlnite n
Toolbox-ul din Matlab numit DSP System.
Vom folosi un semnal foarte simplu i vom crea o ilustare a aplicaiei. n timp
ce n acest exemplu vom discuta doar despre dou algoritme, n matlab se ntlnesc n
jur de 30 de filtre adaptive diferite.

Obinere de ajutor
2
Pentru a vedea o list cu toi algoritmii disponibili mpreun cu toate metodele
care se aplic filtrelor adaptive, n meniul prinicipal al matlab-ului se scrie help
adaptfilt.
Noi oferim acum un exemplu simplu.
Semnalul dorit
Dorim s folosim un filtru adaptiv pentru a extrage semnalul dorit dintr-un
semnal alterat de zgomot. Extragerea semnalului se face prin anularea zgomotului, iar
semnalul dorit este o sinusiod.
n = ( 1: 1000) ' ;
s = si n( 0. 075*pi *n) ;

Zgomotul de semnal
Presupunem c zgomotul de semnal v1 este autoregresiv
v = 0. 8*r andn( 1000, 1) ;
ar = [ 1, 1/ 2] ;
v1 = f i l t er ( 1, ar , v) ;

Semnalul alterat
Acest semnal este compus din semnalul sinusoidal + zgomot
x = s + v1;


Semnalul de referin
Presupunem c avem un semnal v2 care este corelat cu semnalul v1. Acesta va
fi folosit ca i semnal de referin.
ma = [ 1, - 0. 8, 0. 4 , - 0. 2] ;
v2 = f i l t er ( ma, 1, v) ;

1.1 Construirea Filtrelor Adaptive

Se vor folosi dou filtre adaptive i anume filtru LMS i filtru LMS normalizat
NLMS, acestea avnd ponderile egale cu 7.
L = 7;
hl ms = adapt f i l t . l ms( 7) ;
hnl ms = adapt f i l t . nl ms( 7) ;

Alegerea dimensiuni pasului
3
Toate algoritmele de tipul LMS au aa numita dimensiune a pasului care
determin valoarea coreciei care se face cnd filtrul se adapteaz de la o iteraie la
alta.
Alegerea unei dimnensiuni a pasului adecvate nu este mereu uoar, o
dimensiune foarte mic a pasului va afecta viteza de convergen, n timp ce un pas
foarte mare poate provoca abaterea filtrului. Setul de instrumente din DSP System
include algoritmi pentru determinarea pasului maxim acceptat de algoritmele folosite.
[ mumaxl ms, mumaxmsel ms] = maxst ep( hl ms, x)
[ mumaxnl ms, mumaxmsenl ms] = maxst ep( hnl ms) ; %I nt ot deauna egal
cu doi
War ni ng: St ep si ze i s not i n t he r ange 0 < mu < mumaxmse/ 2:
Er r at i c behavi or mi ght r esul t .
mumaxl ms =
0. 2088
mumaxmsel ms =
0. 1214
Stabilirea dimensiuni pasului
Prima valoare de ieire a lui maxstep este valoarea necesar pentru coeficieni,
n timp ce a doua valoare este necesar pentru coeficienii MS. Alegerea unui pas
mare, deasemeni rezult variaii mari ale valorilor de convergen, aa c vom folosi o
dimensiune mic a pasului.
hl ms. St epSi ze = mumaxmsel ms/ 30;
hnl ms. St epSi ze = mumaxmsenl ms/ 20;

Dac cunoatem deja dimensiunea pasului, aceasta se poate seta cnd se
creaz prima dat filtrul: hlms =adaptfilt.lms(N,step);

1.2 Filtrare cu Filtre Adaptive

Acum dup ce am setat parametri filtrului adaptiv, putem filtra semnalul
zgomotos. Semnalul de referin v2 va fi intrarea filtrelor adaptive, n timp ce smnalul
dorit este x. Semnalul de ieire y va incerca s imite ct mai bine posibil semnalul x.
Semnalul de intrare v2 este corelat doare cu componenta de zgomot a semnalului x i
4
anume v1. Semnalul de eroare, minus ieirea actual y vor constitui astfel o estimare a
unei pri a lui x care nu este corelat cu v2, i reprezint semnalul s care dorim s-l
extragem din x.
[ yl ms, el ms] = f i l t er ( hl ms, v2, x) ;
[ ynl ms, enl ms] = f i l t er ( hnl ms, v2, x) ;


Soluia Optim
Pentru comparaie vom calcula folosind Filtru FIR Wiener optim
bw = f i r wi ener ( L- 1, v2, x) ; %Fi l t r u FI R Wi ener Opt i m
yw = f i l t er ( bw, 1, v2) ; %Est i mar e l ui x f ol osi nd f i l t r u Wi ener
ew = x - yw; %Est i mar ea si nusoi dei act ual e
Reprezentarea Rezultatelor
Se va reprezenta sinusoida estimat pentru fiecare caz.
f i gur e( 1) ;
pl ot ( n( 900: end) , [ ew( 900: end) , el ms( 900: end) , enl ms( 900: end) ] ) ;
t i t l e( ' Semnal ul Si nusi odal f ar a zgomot ' )
l egend( ' Wi ener ' , . . .
' LMS' , ' NLMS' ) ;
xl abel ( ' Ti mp ( n) ' ) ;
yl abel ( ' Ampl i t udi ne'


Figura 4.2.1 Reprezentarea semnalelor sinusoidale

Pentru o referin mai bun vom reprezenta semnalul zgomotos punctat

f i gur e( 2) ;
hol d on
5
pl ot ( n( 900: end) , [ ew( 900: end) , el ms( 900: end) , enl ms( 900: end) ] ) ;
pl ot ( n( 900: end) , x( 900: end) , ' k: ' )
t i t l e( ' Semnal ul Si nusi odal f ar a zgomot +r epr ezent ar ea zgomot ul ui ' )
l egend( ' Wi ener ' , . . .
' LMS' , ' NLMS' , ' Zgomot ' ) ;
xl abel ( ' Ti mp i ndex ( n) ' ) ;
yl abel ( ' Ampl i t udi ne' ) ;
hol d of f


Figura 4.2.2. Reprezentarea semnalelor sinusoidale

Coeficienii Finali
Putem compara coeficienii filtrului Wiener cu cei ai filtrelor adaptive.
[ bw. ' hl ms. Coef f i ci ent s. ' hnl ms. Coef f i ci ent s. ' ]
ans =
0.9893 0.8607 0.9374
0.2837 0.1016 0.2077
0.0769 -0.0274 0.0218
0.0201 -0.0191 -0.0174
0.1076 0.0627 0.1107
0.0665 0.0172 0.1073
0.0282 0.0087 0.0551

Resetarea filtrului nainte de filtrare
6
Filtrele adaptive au o semnalizare a memoriei de persisten
PersistentMemory care poate fi folosit pentru a reproduce aceleai teste. Setarea
iniial a steagului de semnalizare este false ceea ce nseamn c starea filtrului i
coeficienii se reseteaz nainte de filtrare. De exemplu urmtoarele dou apeluri
succesive produc acelai rezultat.
[ yl ms, el ms] = f i l t er ( hl ms, v2, x) ;
[ yl ms2, el ms2] = f i l t er ( hl ms, v2, x) ;

Pentru a menine istoricul filtrului, trebuie s setm indicatorul cu off. Astfel
starea final anterioar ct i coeficienii anteriori sunt folosii ca i condiii iniiale
pentru urmtorul set de date.
[ yl ms, el ms] = f i l t er ( hl ms, v2, x) ;
hl ms. Per si st ent Memor y = t r ue;
[ yl ms2, el ms2] = f i l t er ( hl ms, v2, x) ; %Nu mai est e l a f el
Setarea indicatorului cu true poate fi util atunci cnd filtrm o cantitate
mare de date ce poate fi partiionat n buci mai mici i apoi introduse n filtru
folosind o bucl.

1.3. Curbe de nvare

Pentru a analiza convergena filtrelor adaptive, ne uitm la aa zisele cube de
nvare. Acestea pot fi uor generate n setul de instrumente DSP System, dare vom
avea nevoie de mai multe teste pentru a obine rezultate semnificative.
Vom folosi 25 de eantioane pentru a realiza zgomotul peste sinusiod.
n = ( 1: 5000) ' ;
s = si n( 0. 075*pi *n) ;
nr = 25;
v = 0. 8*r andn( 5000, nr ) ;
v1 = f i l t er ( 1, ar , v) ;
x = r epmat ( s, 1, nr ) + v1;
v2 = f i l t er ( ma, 1, v) ;

Calcularea curbelor de nvare
Acum vom calcula eroarea medie ptratic. Pentru a grbi un pic lucrurile
vom calcula eroare la fiecare 10 eantioane. Prima dat trebuie s resetm filtrele
adaptive pentru a evita folosirea coficienilor deja calculai.
r eset ( hl ms) ;
r eset ( hnl ms) ;
M = 10; %Fact or de deci mar e
msel ms = msesi m( hl ms, v2, x, M) ;
msenl ms = msesi m( hnl ms, v2, x, M) ;
f i gur e( 3) ;
7
pl ot ( 1: M: n( end) , [ msel ms, msenl ms] )
l egend( ' cur ba de i nvat ar e LMS' , ' cur ba de i nvat ar e NLMS' )
xl abel ( ' Ti mp ( n) ' ) ;
yl abel ( ' MSE' ) ;


Figura 4.2.3 Reprezentarea corbelor de nvare

Curbe teorietice de nvare
Pentru algoritmi LMS i NLMS, curbele teoretice de nvare pot fi
deasemenea calculate avnd eroarea medie ptratic minim (MMSE), eroare medie
ptratic mare (EMSE) i valoarea coeficieniilor medie.

r eset ( hl ms) ;
[ mmsel ms, emsel ms, meanwl ms, pmsel ms] = msepr ed( hl ms, v2, x, M) ;
f i gur e( 2) ;
pl ot ( 1: M: n( end) , [ mmsel ms*ones( 500, 1) , emsel ms*ones( 500, 1) , . . .
pmsel ms, msel ms] )
l egend( ' MMSE' , ' EMSE' , ' cur ba de i nvat ar e pt LMS pr edi ct i v' , . . .
' cur ba de i nvat ar e LMS' )
xl abel ( ' Ti mp( n) ' ) ;
yl abel ( ' MSE' ) ;

8

Figura 4.2.4 Reprezentarea corbelor de nvare teoretice

2. Identificarea unor sisteme folosind Filtrele Adaptive

n Matlab gsim n setul de instrumente mai multe funcii proiectate ale
filtrelor adaptive care folosesc algoritmul LMS. Acestea pot fi folosite pentru a obine
soluia optim.
Implementarea algoritmului LMS pentru a rezolva ecuaia Winer-Hopf i
pentru a gsi coeficienii pentru un filtru adaptiv este gasit in matlab sub forma:
adaptfilt.lms
Deasemeni, ntlnim n matlab implementarea pentru algoritmul LMS cu
variaie normalizata pentru rezolvarea ecuaiei Winer-Hopf i gsirea coeficienilor
pentru filtru adaptiv: adaptfilt.nlms.
O alta implementare ntlnit este cea cu variaie semn-date a algoritmului
LMS. Corecia a ponderilor filtrului la fiecare iteraie depinde de semnul semnalului
de intrare x(k). Aceasta implementare se gsete sub forma; adaptfilt.sd
La algoritmul LMS cu variaie semn-eroare, corecia aplicat ponderi filtrului
pentru fiecare iteraie succesiv deminde de semnul erori e(k), implementarea este
gsita sub forma: adaptfilt.se
9
O alt implementarea a algoritmului LMS este cea cu variaie semn-semn. La
acest algoritm, corecia aplicat ponderi filtrului depinde de semnul lui x(k) i semnul
lui e(k).
2.1. Identificarea unui sistem folosind adaptfilt.lms

Pentru a folosi funciile de filtru adaptiv gsite n setul de instrumente, trebuie
s ofierim trei lucruri:
Funcia pentru filtru adaptiv LMS folosit. n acest exemplu vom folosi pentru
filtru adaptiv LMS adaptfilt.lms
Un sistem sau proces necunoscut la care s se adapteze. n acest exemplu,
sistemul necunoscut este un algoritm dezvoltat pentru filtru FIR ntlnit sub
denumirea de firgr.
Date de intrare corespunztoare pentru a exercita procesul de adaptare. n ceea
ce privete modelul generic de filtru adaptiv LMS, acestea sunt semnalul dorit d(k) i
semnalul de intrare x(k).
ncepem prin definirea unui semnal de intrare x
x = 0. 1*r andn( 1, 250) ;
Zgomotul semnalului de intrare este n band larg. Pentru filtru de sistem
necunoscut , folosim algoritmul firgr pentru a crea un filtru trece-jos de ordinul
doisprezece.
[ b, er r , r es] = f i r cband( 12, [ 0 0. 4 0. 5 1] , [ 1 1 0 0] , [ 1 0. 2] , {' w' , ' c' }) ;
Dei nu este nevoide de ele aici, includem argumentele de ieire err i res.
n continuare filtrm semnalul prin sistemul necunoscut pentru a obine
semnalul dorit.
d = f i l t er ( b, 1, x) ;
Cu filtrul necunoscut proiectat i semnalul dorit introdus, construim i aplicm
filtrul adaptiv LMS pentru a identifica sistemul necunoscut.
Pentru pregtirea filtrului adaptiv, este necesar s furnizm valoarea de start
pentru estimarea coeficienilor filtrului i dimensiunea pasului pentru LMS. Putem
ncepe cu coeficieni estimai de la un anumit set de valori diferite de zero. n acest
exemplu folosim zerouri pentru doisprezece ponderi iniiale ale filtrului.
10
Pentru dimensiunea pasului, 0.8 este o valoare rezonabil, un bun compromis
ntre a fi suficient de mare pentru a converge bine cele 250 de iteraii i suficient de
mic pentru a crea o estimare precis a filtrului necunoscut.
mu = 0. 8;
ha = adapt f i l t . l ms( 13, mu) ;
n final, folosim filtrul adaptiv , semnalul dorit i semnalul de intrare (ha, d,
x), rulm filtrul adaptiv pentru a determina sistemul necunoscut i reprezentm
rezultatele, comparnd coeficienii actuali din algoritmul firgr i coeficienii gsii
de adaptfilt.lms.
[ y, e] = f i l t er ( ha, x, d) ;
st em( [ b. ' ha. coef f i ci ent s. ' ] )
t i t l e( ' I dent i f i car e unui si st emf ol osi nd Al gor i t mul Fi l t r ul ui Adapt i v
LMS ' )
l egend( ' Ponder i l e Act ual e al e Fi l t r ul ui ' , ' Ponder i l e Est i mat e al e
Fi l t r ul ui ' , . . .
' Locat i on' , ' Nor t hEast ' )


Figura 4.3.1.1 Ponderile filtrului

11
n reprezentar, ponderile estimate i cele actuale sunt la fel. Ca un experiment,
vom schimba dimensiunea pasului la 0.2. Repetnd exemplul de mai sus cu mu = 0. 2
rezultatul se observ n imaginea urmtoare. Ponderile estimate nu reuesc s
aproximeze ponderile actuale.

Figura 4.3.1.2 Ponderile filtrului cu pas schimbat



2.2. Identificarea unui sistem folosind adaptfilt.nlms

Pentru a mbunti performana de convergen a algoritmului LMS, varianta
normalizat (NLMS) folosete o dimensiune a pasului adaptiv n funcie de puterea
semnalului. Dup cum puterea semnalului de intrare se modific, algoritmul
calculeaz puterea de intrare i ajusteaz dimensiunea pasului pentru a menine o
valoare apropiat. Astfel dimensiunea pasului se schimb cu timpul.
Ca i rezultat, algoritmul normalizat converge mai rapid, doar cu cteva
eantioane n multe cazuri. Pentru semnalele de intrare care se schimb ncet n timp,
algoritmul normalizat LMS reprezint o aproximare mai eficient a LMS.
n exemplul adaptfilt.nlms, vom folosi algoritmul firgr pentru a crea filtrul
pe care dorim s-l indentificm. Pentru a putea compara rezultatele, putem nlocui
adaptfilt.lms cu adaptfilt.nlms pentru a folosi variaia normalizat a algoritmului
LMS. Vom observa o convergen mai bun cu aceeai fidelitate.
12
Pentru nceput, vom genera semnalul de intrare i filtrul necunoscut.
x = 0. 1*r andn( 1, 500) ;
[ b, er r , r es] = f i r cband( 12, [ 0 0. 4 0. 5 1] , [ 1 1 0 0] , [ 1 0. 2] , . . .
{' w' ' c' }) ;
d = f i l t er ( b, 1, x) ;
Din nou, d reprezint semnalul dorit d(x) i b conine coeficienii pentru
filtrul necunoscut.
mu = 0. 8;
ha = adapt f i l t . nl ms( 13, mu) ;
Folosim codul precedent pentru a iniializa algoritmul LMS.
Rularea procesului de identificare este o preoblem de folosire a algoritmului
adaptfilt.nlms cu semnalul de intrare dorit, coeficienii filtrului i condiiile
specifficate n argumentul de intrare s. Rezultatele sunt reprezentate n figur pentru a
putea compara filtrul adaptat i filtrul actual.
[ y, e] = f i l t er ( ha, x, d) ;
f i gur e( 1) ;
st em( [ b. ' ha. coef f i ci ent s. ' ] )
t i t l e( ' I dent i f i car ea Si st emul ui Fol osi nd Al gor i t mul LMS Nor mal i zat ' )
l egend( ' Ponder i l e Act ual e' , ' Ponder i l e Est i mat e ' , . . .
' Locat i on' , ' Nor t hEast ' )
13

Figura 4.3.2.1 Ponderile filtrului

Dup cum se observ din figur , ponderiile sunt aproape identice.
Dac comparm performana convergen a algoritmului LMS regulat la
varianta normalizat a algoritmului, vom observa c versiunea normalizat se
adapteaz n interaii mult mai puine la un rezultat bun.
ha2=adapt f i l t . l ms( 13, mu) ;
[ y2, e2] =f i l t er ( ha2, x, d) ;
f i gur e( 2) ;
hol d on
pl ot ( e2) ;
pl ot ( e, ' r ed' ) ;
t i t l e( ' Compar ar ea Per f or mant el or de Conver gent a ' ) ;
l egend( ' Ponder i l e Fi l t r ul ui LMS Obt i nut e' , . . .
' Ponder i l e Fi l t r ul ui NLMS Obt i nut e ' , ' Locat i on' ,
' Nor t hEast ' ) ;
14

Figura 4.3.2.2 Performanele de convergen















3. Anularea Zgomoului

3.1. Anularea zgomotului folosind adaptfilt.sd

15
Atunci cnd cantitatea de calcul necesar pentru a obine un filtru adaptiv
folosit ntr-un proces, varianta semn-date a algoritmului LMS, poate fi o alegere
foarte bun dup cum este demonstrat n acest exemplu.
Din fericire, prin modul cum se proiecteaz procesoarele digitale se semnal
(DSP) n momentul de fa, sa mai relaxat nevoia de a minimiza numrul de operaii
efectuate de procesor, astfel operaiile de nmulire i de schimbare sunt la fel de
rapide ca i operaiile de adunare.
La varianta normal i cea normalizat a filtrului adaptiv LMS, coeficienii
pentru filtrul adaptiv rezult din eroarea medie ptratic dintre semnalul dorit i
semnalul de ieire din sistemul necunoscut i rezultatul este aplicat coeficienilor
filtrului curent.
Folosind algoritmul semn-date se schimb calculul erori medii ptratice
prin folosirea semnului datelor de intrare pentru a schinba coeficienii filtrului.
Atunci cnd eroarea este pozitiv, coeficienii noi sunt coeficienii anteriori
plus eroarea numlit cu dimensiunea pasului . Dac eroarea este negativ, noi
coeficieni sunt deasemenea vechi coeficieni minus eroarea multiplicat cu
dimensiunea pasului.
Dac intrarea este zero, noi coeficieni sunt la fel ca setul precedent.
n form vectorial, algoritmul LMS semn-date este:
)], ( sgn[ ) ( ) ( ) 1 ( k x k e k w k w + = +

<
=
>
=
0 ) ( , 1
0 ) ( , 0
0 ) ( , 1
)] ( sgn[
k x
k x
k x
k x
Unde vectorul w conine ponderiile aplicate coeficienilor filtrului i vectorul x
conine datele de intrare. reprezint dimensiunea pasului (mu).
Dac dimensiunea pasului este mic, corecia ponderilor filtrului devine mai
mic pentru fiecare eantion i eroarea algoritmului semn-date scade mai incet.
Cnd este luat pasul (mu) de dimensiune mare, acesta mrete ponderile cu fiecare pas
aa c eroarea scade mai rapid, dar rezultatul erori nu se apropie de soluia ideal.
Pentru a asigura o rat bun de convergen i stabilitate, pasul treuie selectat n
limitele urmtoare:
} {
1
0
ntrare naluluiDeI PutereaSem N
< <
16
Unde N reprezint numrul de eantioane ale semnalului. Deasemeni, nu se
definete ca i putere a lui doi pentru o calculare mult mai eficient.

Not: n funcie de cum setm condiiile iniiale ale algoritmului semn-date, se
influeneaz foarte mult eficiena adaptrii. Deoarece algoritmul cuantizeaz semnalul
de intrare, algoritmul poate deveni instabil foarte uor.
O serie de valori de intrare mari, mpreun cu procesul de cuantizare poate
duce la erori mari dincolo de toate limitele.

n acest exemplu de anulare a zgomotului adaptfilt.sd sunt nenesare dou
seturi de date pentru intrare:
Date care conin semnalul stricat de zgomot d(k). Procesul de anulare a
zgomotului nltur zgomotul i las semnalul .
Date care conin zgomot aleator x(k), care este corelat cu zgomotul ce a stricat
semnalul. Fr o corelaie ntre datele de zgomot, algoritmul adaptiv nu poate elimina
zgomotul din semnal.
Folosim un smnal de tip sinus.
si gnal = si n( 2*pi *0. 055*[ 0: 1000- 1] ' ) ;
Acum adugm zgomot alb corelat cu semnalul. Pentru a ne asigura c
zgomotul este corelat, trecem zgomotul ptrintr-un filtru FIR trece-jos, iar dup aceea
adugm zgomotul filtrat peste semnal.
noi se=r andn( 1, 1000) ;
nf i l t =f i r 1( 11, 0. 4) ; %f i l t r u t r ece j os de or i di nul unspr ezece
f noi se=f i l t er ( nf i l t , 1, noi se) ; %Zgomot cor el at
d=si gnal . ' +f noi se;

f noi se este zgomotul corelat, iar d este acum semnalul de intrare dorit

Pentru prepararea obiectului adaptfilt pentru procesare, este necesar setarea
parametrilor de intrare coeffs i mu . Dup cum am amintit mai sus, valorile
coeficienilor i dimensiunea pasului determin dac filtrul adaptiv poate elimina
zgomotul din semnal.
Pentru acest exemplu, ncepem cu aceeai coeficieni precum coeficienii
folosii pentru a filtra zgomotul (nfilt), i i modificm uor astfel nct algoritmul s
se adapteze.
coef f s = nf i l t . ' - 0. 01; %Set ar ea condi t i i l or i ni t i al e al e f i l t r ul ui .
mu = 0. 05; %Di mensi unea pasul ui .
Avnd argumentele de intrare cerute pentru adaptfilt.sd, construim obiectul
adaptfilt , rulm aplicaia i vedem rezultatele.
17
ha = adapt f i l t . sd( 12, mu)
set ( ha, ' coef f i ci ent s' , coef f s) ;
[ y, e] = f i l t er ( ha, noi se, d) ;
pl ot ( 0: 199, si gnal ( 1: 200) , 0: 199, e( 1: 200) ) ;
t i t l e( ' Anul ar ea Zgomot ul ui cu Al gor i t mul Semn- Dat e' ) ;
l egend( ' Semnal ul Act ual ' , ' Rezul t at ul Anul ar i Zgomot ul ui ' , . . .
' Locat i on' , ' Nor t hEast ' ) ;
Atunci cnd se utilizeaz adaptfilt.sd, acesta utilizeaz mau puine operaii
de multiplicare dect oricare dintre algoritmii LMS. Deasemenea efectuarea adaptri
semn-date are nevoie doar de bii pentru schimbare, multiplicare, cnd dimensiunea
pasului este o putere a lui doi.
Dei performana algoritmului este una destul de bun dup cum se poate
observa din figur, acest algoritm este mai puin stabil dect variantele standard de
LMS. n exemplul de anulare a zgomotului, semnalul dup porcesare se potriveste
foarte bine cu semnalul de intrare, dar algoritmul poate foarte uor s depeasc
limitele ncercnd s ating o performan bun.
Schimbnd condiiile filtrului coeffs i mu sau chiar filtrul trece-jos
folosit pentru corelarea zgomotului, poate duce la rezultate euate n anularea
zgomotului i algoritmul s devin nefolositor.


Figura 4.4.1 Anularea zgomotului cu algoritmul Semn-Date

3.2. Anularea Zgomotului Folosind adaptfilt.se

18
n anumite cazuri varianta de algoritm LMS semn-eroare (SELMS) poate fi o
alegere foarte bun pentru o apicaie cu filtru adaptiv.

La varianta normal i cea normalizat a filtrului adaptiv LMS, coeficienii
pentru filtrul adaptiv rezult din eroarea medie ptratic dintre semnalul dorit i
semnalul de ieire din sistemul necunoscut i rezultatul este aplicat coeficienilor
filtrului curent.
Folosind algoritmul semn-eroare se schimb calculul erori medii ptratice
prin folosirea semnului datelor de intrare pentru a schinba coeficienii filtrului.
Atunci cnd eroarea este pozitiv, coeficienii noi sunt coeficienii anteriori
plus eroarea numlit cu dimensiunea pasului . Dac eroarea este negativ, noii
coeficieni sunt deasemenea vechi coeficieni minus eroarea multiplicat cu
dimensiunea pasului.
Dac intrarea este zero, noii coeficieni sunt la fel ca setul precedent.
n form vectorial, algoritmul LMS semn-eroare este:
)], ( )][ ( sgn[ ) ( ) 1 ( k x k e k w k w + = +

<
=
>
=
0 ) ( , 1
0 ) ( , 0
0 ) ( , 1
)] ( sgn[
k e
k e
k e
k e
Unde vectorul w conine ponderiile aplicate coeficienilor filtrului i vectorul x
conine datele de intrare. reprezint dimensiunea pasului (mu).
Dac dimensiunea pasului este mic, corecia ponderilor filtrului devine mai
mic pentru fiecare eantion i eroarea algoritmului semn-eroare scade mai incet.
Cnd este luat pasul (mu) de dimensiune mare, acesta mrete ponderile cu fiecare pas
aa c eroarea scade mai rapid, dar rezultatul erori nu se apropie de soluia ideal.
Pentru a asigura o rat bun de convergen i stabilitate, pasul treuie selectat n
limitele urmtoare:
} {
1
0
ntrare naluluiDeI PutereaSem N
< <
Unde N reprezint numrul de eantioane ale semnalului. Deasemeni, mu se
definete ca i putere a lui doi pentru o calculare mult mai eficient.
n acest exemplu de anulare a zgomotului adaptfilt.se sunt nenesare dou
seturi de date pentru intrare:
19
Date care conin semnalul stricat de zgomot d(k). Procesul de anulare a
zgomotului nltur zgomotul i las semnalul .
Date care conin zgomot aleator x(k), care este corelat cu zgomotul ce a stricat
semnalul. Fr o corelaie ntre datele de zgomot, algoritmul adaptiv nu poate elimina
zgomotul din semnal.
Folosim un smnal de tip sinus.
si gnal = si n( 2*pi *0. 055*[ 0: 1000- 1] ' ) ;
Acum adugm zgomot alb corelat cu semnalul. Pentru a ne asigura c
zgomotul este corelat, trecem zgomotul ptrintr-un filtru FIR trece-jos, iar dup aceea
adugm zgomotul filtrat peste semnal.
noi se=r andn( 1, 1000) ;
nf i l t =f i r 1( 11, 0. 4) ; %f i l t r u t r ece j os de or i di nul unspr ezece
f noi se=f i l t er ( nf i l t , 1, noi se) ; %Zgomot cor el at
d=si gnal . ' +f noi se;

f noi se este zgomotul corelat iar d este acum semnalul de intrare dorit
Pentru prepararea obiectului adaptfilt pentru procesare, este necesar setarea
parametrilor de intrare coeffs i mu . Filtrul construit de ctre noi are coeficienii
setai implicit zero.
Setarea coeficienilor algoritmului la zero de multe ori nu funcioneaz pentru
algoritmul semn-eroare. Cu ct valorile coeficienilor stabilite iniial sunt apropiate
de valorile ateptate cu att este mai probabil ca algoritmul s se comporte bine i
zgomotul s fie nlturat.
Pentru acest exemplu, ncepem cu aceeai coeficieni precum coeficienii
folosii pentru a filtra zgomotul (nfilt), i i modificm uor astfel nct algoritmul s
se adapteze.
coef f s = nf i l t . ' - 0. 01; %Set ar ea condi t i i l or i ni t i al e al e f i l t r ul ui .
mu = 0. 05; %Di mensi unea pasul ui .
Avnd argumentele de intrare cerute pentru adaptfilt.se, construim obiectul
adaptfilt , rulm aplicaia i vedem rezultatele.
ha = adapt f i l t . se( 12, mu)
set ( ha, ' coef f i ci ent s' , coef f s) ;
set ( ha, ' per si st ent memor y' , t r ue) ; %pr eveni r ea r eset ar i f i l t r ul ui .
[ y, e] = f i l t er ( ha, noi se, d) ;
pl ot ( 0: 199, si gnal ( 1: 200) , 0: 199, e( 1: 200) ) ;
t i t l e( ' Anul ar ea Zgomot ul ui cu Al gor i t mul LMS Si gn- Er r or ' ) ;
l egend( ' Semnal ul Act ual ' , ' Er oar ea Dupa El i mi nar ea Zgomot ul ui ' , . . .
' Locat i on' , ' Nor t hEast ' )

Not: Este necesar s setm corespunztor Per si st ent Memor y la t r ue cnd
schimbm setrile obiectului ha.
20
Dac Per si st ent Memor y este lsat pe implicit (false), cnd aplicm ha cu
metoda f i l t er , procesul de filtrare ncepe prin resetarea propietilor obiectului la
valorile iniiale. Pentru a pstra coeficienii folosii pentru acest exemplu, setm
Per si st ent Memor y astfel nct coeficienii s nu se reseteze.
Performanele algoritmului se pot observa din figura urmtoare.



Figura 4.4.2. Anularea zgomotului folosind algoritmul LMS cu semnul erorii


3.3. Anularea Zgomotului Folosind adaptfilt.ss

O alt variant a unui algoritm LMS ntlnit n setul de instrumente, este
varianta semn-semn (SSLMS). Raionamentul pentru aceast variant se potrivete
cu algoritmii prezentai mai sus.
Folosind algoritmul semn-semn se schimb calculul erorii medii ptratice
prin folosirea semnului datelor de intrare pentru a schinba coeficienii filtrului.
Atunci cnd eroarea este pozitiv, coeficienii noi sunt coeficienii anteriori
plus eroarea numlit cu dimensiunea pasului . Dac eroarea este negativ, noii
coeficieni sunt deasemenea vechii coeficieni minus eroarea multiplicat cu
dimensiunea pasului.
Dac intrarea este zero, noii coeficieni sunt la fel ca setul precedent.
n esen, algoritmul coantizeaz ambele erori i intrarea.
n form vectorial, algoritmul LMS semn-eroare este:
)], ( )][ ( sgn[ ) ( ) 1 ( k x k e k w k w + = +
21

<
=
>
=
0 ) ( , 1
0 ) ( , 0
0 ) ( , 1
)] ( sgn[
k z
k z
k z
k z
Unde:
)] ( sgn[ ) ( [ ) ( k x k e k z =
Unde vectorul w conine ponderiile aplicate coeficienilor filtrului i vectorul x
conine datele de intrare. reprezint dimensiunea pasului (mu).
Dac dimensiunea pasului este mic, corecia ponderilor filtrului devine mai
mic pentru fiecare eantion i eroarea algoritmului semn-eroare scade mai ncet.
Cnd este luat pasul (mu) de dimensiune mare, acesta mrete ponderile cu fiecare pas
aa c eroarea scade mai rapid, dar rezultatul erori nu se apropie de soluia ideal.
Pentru a asigura o rat bun de convergen i stabilitate, pasul treuie selectat n
limitele urmtoare:
} {
1
0
ntrare naluluiDeI PutereaSem N
< <
Unde N reprezint numrul de eantioane ale semnalului.
n acest exemplu de anulare a zgomotului adaptfilt.ss sunt nenesare dou
seturi de date pentru intrare:
Date care conin semnalul stricat de zgomot d(k). Procesul de anulare a
zgomotului nltur zgomotul i las semnalul .
Date care conin zgomot aleator x(k), care este corelat cu zgomotul ce a stricat
semnalul. Fr o corelaie ntre datele de zgomot, algoritmul adaptiv nu poate elimina
zgomotul din semnal.
Folosim un smnal de tip sinus.
si gnal = si n( 2*pi *0. 055*[ 0: 1000- 1] ' ) ;
Acum adugm zgomot alb corelat cu semnalul. Pentru a ne asigura c
zgomotul este corelat, trecem zgomotul ptrintr-un filtru FIR trece-jos, iar dup aceea
adugm zgomotul filtrat peste semnal.
noi se=r andn( 1, 1000) ;
nf i l t =f i r 1( 11, 0. 4) ; %f i l t r u t r ece j os de or i di nul unspr ezece
f noi se=f i l t er ( nf i l t , 1, noi se) ; %Zgomot cor el at
d=si gnal . ' +f noi se;

f noi se este zgomotul corelat iar d este acum semnalul de intrare dorit

22
Pentru prepararea obiectului adaptfilt pentru procesare, este necesar setarea
parametrilor de intrare coeffs i mu . Filtrul construit de ctre noi are coeficienii
setai implicit zero.
Setarea coeficienilor algoritmului la zero de multe ori nu funcioneaz pentru
algoritmul semn-eroare. Cu ct valorile coeficienilor stabilite iniial sunt apropiate
de valorile ateptate cu att este mai probabil ca algoritmul s se comporte bine i
zgomotul s fie nlturat.
Pentru acest exemplu, ncepem cu aceeai coeficieni precum coeficienii
folosii pentru a filtra zgomotul (nfilt), i i modificm uor astfel nct algoritmul s
se adapteze.
coef f s = nf i l t . ' - 0. 01; %Set ar ea condi t i i l or i ni t i al e al e f i l t r ul ui .
mu = 0. 05; %Di mensi unea pasul ui .

Avnd argumentele de intrare cerute pentru adaptfilt.ss, construim obiectul
adaptfilt , rulm aplicaia i vedem rezultatele.
ha = adapt f i l t . ss( 12, mu)
set ( ha, ' coef f i ci ent s' , coef f s) ;
set ( ha, ' per si st ent memor y' , t r ue) ; %pr eveni r ea r eset ar i f i l t r ul ui .
[ y, e] = f i l t er ( ha, noi se, d) ;
pl ot ( 0: 199, si gnal ( 1: 200) , 0: 199, e( 1: 200) ) ;
t i t l e( ' Anul ar ea Zgomot ul ui cu Al gor i t mul LMS Si gn- Si gn ' ) ;
l egend( ' Semnal ul Act ual ' , ' Er oar ea Dupa El i mi nar ea Zgomot ul ui ' , . . .
' Locat i on' , ' Nor t hEast ' )

Not: Este necesar s setm corespunztor Per si st ent Memor y la t r ue cnd
schimbm setrile obiectului ha.
Dac Per si st ent Memor y este lsat pe implicit (false), cnd aplicm ha cu
metoda f i l t er , procesul de filtrare ncepe prin resetarea propietilor obiectului la
valorile iniiale. Pentru a pstra coeficienii folosii pentru acest exemplu, setm
Per si st ent Memor y astfel nct coeficienii s nu se reseteze.
Performanele algoritmului se pot observa din figura urmtoare.
23

Figura 4.4.4. Anularea zgomotului folosind algoritmul LMS cu semn