Date post: | 09-Dec-2015 |
Category: |
Documents |
Upload: | isabelle-dupoint |
View: | 288 times |
Download: | 1 times |
Procesoare digitale de semnal. Aplicaţii
176
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
8.1 Realizarea filtrelor digitale
Realizarea digitală a filtrelor prezinta în principal următoarele avantaje:
- eliminarea erorilor datorate variaţiilor valorii componentelor cu temperatura şi
datorate îmbătrînirii componentelor,
- eliminarea erorilor datorate zgomotului indus de sursele de alimentare,
- obtinerea unor performante ridicate ce nu se pot obtine pe cale analogica (decit foarte
dificil),
- realizarea unor caracteristici de taiere foarte abrupte, a unor caracteristici cu
amplitudine oarecare (dupa necesitati) şi a unor caracteristici de faza liniare.
Dezavantajele filtrelor numerice constau în erorile ce apar datorita cuantizarii (atit a
semnalului de intrare cit şi a elementelor ce caracterizeaza filtrul numeric-coeficientii filtrului)
precum şi în aparitia ciclurilor limita şi a oscilatiilor de depasire (fenomene care apar datorita
trunchierii sau rotunjirii rezultatelor partiale şi ca efect al lungimii finite a cuvintelor binare
cu care se opereaza în structura numerica de calcul.
Exista doua categorii de filtre digitale: filtre cu raspuns finit la impuls (FIR) şi filtre cu
raspuns infinit la impuls (IIR).
8.1.1. Realizarea filtrelor FIR
Un filtru cu raspuns finit la impuls (FIR) este un sistem discret liniar şi invariant în
timp a carui iesire este data de suma ponderata a unui numar finit de intrari intirziate. Filtrele
FIR sint nerecursive (spre deosebire de filtrele IIR); prin urmare nu necesita bucle de reactie
(feedback) în calculul lor .
Aceasta proprietate permite o analiza simpla şi o implementare cu ajutorul unor
procesoare de tipul ADSP 21xx.
Realizarea unui filtru FIR este prezentată în figura 8.1.
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
177
Figura 8.1 Filtrul nerecursiv FIR
unde T reprezinta o întîrziere cu un pas (tact de esantionare), iar hi sint coeficientii filtrului
FIR calculati cu metoda seriilor Fourier utilizind ferestrele sau metoda Park-McClleanen.
Iesirea filtrului FIR este data de relatia:
y(n) = Σk=0,N-1hk(n)x(n-k) = Σk=0,N-1hkx(n-k) (1)
În aceasta relatie s-a pus în evidenta faptul ca, coeficientii filtrului hk pot sa-şi
modifice valoarea la fiecare pas n. În continuare vom presupune ca acesti coeficienti sint
constanti: hk(n)=hk. În acest caz filtrul nu este un filtru adaptiv.
Pentru implementarea ecuatiei (1) trebuie sa se defineasca doua buffere circulare de
lungime N, unde N este numarul de intirzieri ale filtrului FIR.
Un buffer circular este folosit pentru a memora intrarea X(n), iar celalalt buffer
circular memoreaza coeficientii filtrului hk.
Situatia este ilustrata în figura 8.2.
Procesoare digitale de semnal. Aplicaţii
178
Figura 8.2. Organizarea bufferelor circulare
Prin inmultirea locatiilor corespondente din cele doua buffere şi acumularea
rezultatelor se obtine iesirea y(n).
Sa consideram un exemplu: N=4 în figura 8.3.
y(0) = Σk=0,3hkx(-k) = h0x0 = h3x0
y(1) = Σk=0,N-1 hkx(1-k) = h0x1 + h1x0 = h3x1 + h2x0
y(2) = Σk=0,N-1hkx(2-k) = h0x2 + h1x1 + h2x0 = h3x2 + h2x1 + h1x0
y(3) = Σk=0,N-1hkx(3-k) = h0x3 + h1x2 + h2x1 + h3x0 = h3x3 + h2x2 + h1x1 + h0x0
y(4) = Σk=0,N-1hkx(4-k) = h0x4 + h1x3 + h2x2 + h3x1 = h3x4 + h2x3 + h1x2 + h0x1
În continuare este prezentata o subrutina în limbaj de asamblare ADSP 2101care
implementeazăun filtru FIR:
.MODULE fir_sub;
{
Parametrii de intrare:
I0 -->Cel mai vechi esantion în linia de întîrziere
L0 = Lungimea filtrului FIR (N)
I4 --> Indica începutul tabelei de coeficienti ai FIR
L4 = Lungimea filtrului FIR (N)
M1,M5 = 1
CNTR = Lungimea filtrului FIR - 1 (N-1)
Parametrii de iesire:
MR1 = Rezultatul curent al filtrarii
I0 --> Cel mai vechi esantion în linia de întîrziere
I4 --> Indica începutul tabelei de coeficienţi ai FIR
Toti coeficientii sînt în format 1.15.
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
179
}
.ENTRY fir;
fir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5);
DO sop UNTIL CE;
sop: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);
MR=MR+MX0*MY0(RND);
IF MV SAT MR;
RTS;
.ENDMOD;
Aceasta subrutina executa operatiile descrise în figura 8.3.
Figura 8.3 Realizarea prelucrărilor FIR pentru N=4
Săgetile ^ indica pointeri I0 şi I4, iar săgetile <-> indica locatiile corespondente în cele
doua buffere circulare care se vor inmultii şi acumula. Se observa ca datorita simetriei coefi-
Procesoare digitale de semnal. Aplicaţii
180
cientilor putem scrie bufferul de coeficienti în ordine inversa (deci incepind cu h0 şi terminind
cu hN-1).
Initial se sterge registrul MR şi se incarca registrele MX0 şi MY0 cu primul esantion şi
respectiv cu primul coeficient al filtrului; aceste valori sint deja stocate în memorie. Se
executa apoi de (N-1) ori instructiunea multifunctiede inmultire cu acumulare şi incarcare
simultana a 2 date; acest lucru se relizeaza cu ajutorul unei bucle hardwhere DO-UNTIL CE;
initial registrul CNTR se incarca cu N-1. Aceasta bucla calculeaza primele (N-1) nume de
produse necesare calculului lui J(n).
Se observa ca dupa fiecare inmultire cu acumulare se preiau urmatorii 2 operanzi ce
trebuie inmultiti utilizindu-se în acest scop adresarea indirecta cu post-indexare:dupa citirea a
2 operanzi deja este calculata adresa urmatorilor 2; de asemenea bufferele sint circulare ca în
figura 4.3.
Ultima inmultire se efectueaza separat pentru a permite rotunjirea rezultatului. Daca a
aparut depasirea aritmetica rezultatul este saturat.
În acest fel rezultatele intermediare sint acumulate la intreaga rezolutie de 40 biti a
registrului MR.
Numarul maxim N de intirzieri ale filtrului FIR, pentru ca implementarea sa fie în timp
real este determinat de viteza de lucru a procesorului, perioada de esantionare şi de celelalte
operatii necesare în afara buclei principale care efectueaza suma de produse.
Este necesar ca timpul total de prelucrare sa fie mai mic sau cel mult egal cu perioada
de esantionare.
Pentru subrutina prezentata anterior timpul de prelucrare total este Tp = (N-1+5)Tc =
(N+4)Tc unde Tc este durata unui ciclu procesor. Luind o valoare tipica Tc = 30ns şi perioada
de esantionare Ts = 125μs rezulta N = 125μs/30ns coeficienti; acest numar este suficient de
mare pentru implementarea oricarui filtru numeric FIR.
8.1.2. Realizarea filtrelor IIR
Comparativ cu filtrele FIR, un filtru IIR este, de cele mai multe ori, mai eficient în
ceea ce priveste caracteristicile de atenuare la acelasi ordin al filtrului.
Acest lucru este posibildatorita faptului ca un filtru IIR este recursiv (are reactie
inversa) şi deci poseda atit zerouri (ca filtrul FIR) cit şi poli. Dezavantajele filtrelor IIR fata de
FIR constau în faptul ca pune probleme de stabilitate iar faza nu este liniara.
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
181
Functia de transfer a unui filtru IIR este data de relatia:
H(z) = Σk=0,N-1 bkz-k / {1 - Σk=1,N-1akz-k }
sau de ecuatia cu diferente finite:
y(h) = Σk=0,N-1 bkx(n-k) + Σk=1,N-1 aky(n-k)
O posibila forma de realizare a unui filtru IIR o reprezinta implementarea ecuatiei cu
diferente finite (realizare în forma directa). Exista mai multe forme de realizare (vezi
Fig.%4.).
Presupunem în continuare N=M. Vom rescrie functia H(z) astfel:
H(z) = { Y(z)/W(z) }. { W(z)/ X(z) }
unde:
Y(z) / W(z) = b0 + b1z-1 + .... + bNz-N şi
W(z) /X(z) = 1 / {1 - a1z-1 - .... - aNz-N }
Rezulta 2 ecuatii cu diferente finite:
y(n) = b0w(n) + b1w(n-1) + .... + bNw(n-N)
şi
w(n) = x(n) + a1w(n-1) + .... + aNw(n-N)
În acest mod trebuie definit un singur buffer circular de lungime N pentru calculul
celor 2 sectiuni (reactie inversa - feed back şi reactie "inainte" - feed forward). Se calculeaza
initial sectiunea "feed back" apoi sectiunea feed forward utilizind acelasi buffer circular
(aceasta forma de realizare se numeste forma directa II.
Nu mai sint necesare 2 buffere circulare de lungime (N+1) pentru a stoca valorile
intirziate ale lui x(n) şi ale lui y(n).
Procesoare digitale de semnal. Aplicaţii
182
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
183
Figura 8.4. Forme de realizare a filtrelor recursive IIR
Subrutina care implementeaza filtrul este :
.MODULE diriir_sub;
{
Parametrii de intrare
MR1 = esantionul curent ( x[n] )
MR0 = 0
I0 --> Locatia curenta in linia de intirziere
L0 = Lungimea filtrului
I5 --> Coeficientii pe calea de reactie directa (a)
L5 = Lungimea filtrului - 1
I6 --> Coeficientii pe calea de reactie inversa (b)
L6 = Lungimea filtrului
M0 = 0
M1,M4 = 1
M2 = 2
CNTR = Lungimea filtrului - 2
AX0 = Lungimea filtrului - 1
Procesoare digitale de semnal. Aplicaţii
184
Parametrii de iesire
MR1 = esantionul de iesire ( y[n] )
I0 --> Locatia curenta in linia de intirziere
I5 --> Coeficientii pe calea de reactie directa (a)
I6 --> Coeficientii pe calea de reactie inversa (b)
Toti coeficientii sint in format 1.15 format.
}
.ENTRY diriir;
diriir: MX0=DM(I0,M1), MY0=PM(I5,M4);
DO poleloop UNTIL CE;
poleloop: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I5,M4);
MR=MR+MX0*MY0(RND);
CNTR=AX0;
DM(I0,M0)=MR1;
MR=0, MX0=DM(I0,M1), MY0=PM(I6,M4);
DO zeroloop UNTIL CE;
zeroloop: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I6,M4);
MR=MR+MX0*MY0(RND);
MODIFY (I0,M2);
RTS;
.ENDMOD;
Organigrama prelucrarilor este data în Fig.8.5.
Ultima inmultire se realizeaza separat pentru a se rotunji şi eventual satura rezultatul.
Dupa aceasta locatia lui w(n) este actualizata, fara modificarea pointerului.
Dupa parcurgerea unui ciclu complet (feedback + feedforward) se reia faza de
feedback cu pointerul I0 indicind pe w(n-2) care la pasul (n+1) reprezinta valoarea w(n'- 3) =
w(n'- 1 - 2) deoarece n'= n + 1 <=> n = n'- 1. În continuare se va lucra cu w(n-2), w(n-1), w(n)
de la pasul n care la pasul (n+1) reprezinta w(n-3), w(n-2), w(n-1); valoarea w(n-3) de la pasul
n se va suprapune cu w(n) la pasul (n+1).
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
185
Figura 8.5 Implementarea unui filtru IIR – forma directă
În mod uzual filtrele IIR se implementeaza în forma în cascada. Filtrul IIR este o
cascada de sectiuni de filtru IIR de ordin 2 (/1/). Acest lucru prezinta avantajul ca filtrul
devine mai simplu de implementat iar senzitivitatea fata de erorile de reprezentare ale
coeficientilor filtrului este mai mica în raport cu forma directa.
Functia de transfer pentru o sectiune de ordin 2 a unui filtru IIR este:
Y(z)/ X(z) = { B0 + B1z-1 + B2z-2 } / 1 - A1z-1 - A2z-2
sau ecuatia cu diferente finite:
y(n) = B0x(n) + B1x(n-1) + B2x(n-2) + A1y(n-1) + A2x(n-2)
Procesoare digitale de semnal. Aplicaţii
186
Aceasta forma de realizare se numeste forma "biquad". În continuare este prezentata o
subrutina care implementeaza un filtru IIR cu functia de transfer:
HIIR(z) = H1(z)H2(z)....HN(z)
unde Hi(z) sint de tipul biquad, pentru i=1..N (deci filtrul IIR este o cascada de N sectiuni
"biquad")
.MODULE biquad_sub;
{
Parametrii de intrare
SR1 = esantionul de intrare
I0 --> Linia de intirziere
L0 = 0
I1 --> tabela de factori de scala pentru fiecare sectiune biquad
L1 = 0 (pentru o singura sectiune biquad)
L1 = numarul de sectiuni biquad
I4 --> coeficientii B2,B1,B0,A2,A1, B2,B1,B0,A2,A1, ...
L4 = 2.5 * ordinul filtrului sau 5 * numarul de sectiuni biquad
M0,M4 = 1
M1 = -3
M2 = 1 (daca sint mai multe sectiuni)
M2 = 0 (pentru o singura sectiune)
M3 = (1 – lungimea liniei de intirziere)
CNTR = numarul de sectiuni biquad
Parametrii de iesire
SR1 = esantionul de iesire
I0 --> linia de intirziere
I1 --> tabela factorilor de scala
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
187
I4 --> tabela de coeficienti
Toti coeficientii sint in format 1.15.
}
.CONST N = 3; {numarul de sectiuni }
.CONST N_x_5 = 15; { 5* numarul de sectiuni }
.VAR/DM delayline[4]; { linia de intirziere}
.VAR/DM scalelist[N]; { tabela de factori de scala }
.VAR/PM coefflist[N_x_5]; { tabela de coeficienti }
.ENTRY biquad;
biquad: I0=^delayline;
DO sections UNTIL CE;
SE=DM(I1,M2);
MX0=DM(I0,M0), MY0=PM(I4,M4); {x(n-2), b2}
MR=MX0*MY0(SS), MX1=DM(I0,M0), MY0=PM(I4,M4); {x(n-1), b1}
MR=MR+MX1*MY0(SS), MY0=PM(I4,M4); {b0}
MR=MR+SR1*MY0(SS), MX0=DM(I0,M0), MY0=PM(I4,M4); {y(n-2), a2}
MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M4); {get y(n-1), a1}
DM(I0,M0)=MX1, MR=MR+MX0*MY0(RND); {x(n-1) x(n-2)}
sections: DM(I0,M0)=SR1, SR=ASHIFT MR1 (HI); {x(n) x(n-1)}
DM(I0,M0)=MX0;
DM(I0,M3)=SR1;
RTS;
.ENDMOD;
Este necesara scalarea operanzilor la intrarea în fiecare celula (sectiune) pentru a evita
aparitia depasirilor aritmetice.
Organigrama prelucrarilor (pentru primele 2 sectiuni) este ilustrata în Fig.4.12.
Procesoare digitale de semnal. Aplicaţii
188
Figura 8.6. Organigrama prelucrărilor pentru filtrul biquad ( 2 secţiuni)
S-au facut urmatoarele notatii ale starilor intermediare ale pointerilor:
(a) - citire a lui B0 fara citire în bufferul I0;
(b) - dupa citirea lui B0;
(c) - s-au citit y(n-1) şi A1, pointerul I0 revine pe x(n-2)
(deoarece M1 = -3) iar pointerul I4 trece pe coeficientul B'2
din a doua sectiune;
Dupa efectuarea inmultirii B1x(n-1) se citeste B0 apoi se efectueaza inmultirea
B0x(n); toate rezultatele partiale se acumuleaza în MR. Apoi se actualizeaza valorile
x(n-2) <-- x(n-1) şi x(n-1) <-- x(n).
(d) - pointerul I0 - la efectuarea celei de-a doua sectiuni;
(e) - dupa parcurgerea buclei DO se actualizeaza valorile z(n-2) <-- z(n-1) şi z(n-1) <--
z(n), se revine la inceputul liniei de intirziere I0 . (M3 = 1-lungimea liniei de intirziere = -5).
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
189
8.2 Filtre adaptive. Aplicaţii ale filtrelor adaptive
În multe aplicaţii de prelucrare a semnalelor coeficienţii filtrelor numerice nu pot fi
calculaţi iniţial (off-line) după care să se execute filtrarea în timp real. De exemplu un modem
care transmite şi receptionează date pe o linie telefonică trebuie să conţină în structura sa şi un
egalizor care să corecteze distorsiunile care apar în mediul de transmisie.
Deoarece canalul de transmisie are diferite caracteristici de răspuns în frecvenţă la
momente de timp distincte , rezultă că distorsiunile vor fi diferite la momente de timp
diferite,deci egalizorul trebuie să-şi modifice coeficienţii în timp (trebuie să aibă coeficienţi
ajustabili).
Din acest motiv egalizorul se mai numeşte şi egalizor adaptiv sau generic filtru
adaptiv.
Un filtru adaptiv este de fapt un filtru numeric ( ca în capitolul 4) la care se adaugă un
bloc de ajustare a coeficienţilor. (figura 8.7).
T T T T
h(0) h(1) h(2) h(3) h(4)
Algoritm pentru ajustarea coeficientilor
Intrare
Iesire
Figura 8.7. Structura unui filtru adaptiv FIR
Structura din figura 8.7 este cea mai des utilizată datorită faptului că filtrul digital este
de tip FIR (mai simplu de realizat). Există şi filtre adaptive în structură IIR.
Procesoare digitale de semnal. Aplicaţii
190
De asemenea structura FIR este preferată deoarece este necondiţionat stabilă , spre
deosebire de structura IIR.
Coeficienţii filtrului adaptiv se calculează conform unui algoritm care urmăreşte ca
ieşirea filtrului să fie cît mai aproape de o ieşire dorită (ideală).
Observaţie : în cazul filtrelor adaptive coeficienţii nu se calculează cu metodele studiate
pentru filtrele obişnuite (neadaptive).
Un algoritm de ajustare a coeficienţilor filtrului adaptiv trebuie să posede următoarele
caracteristici :
1.- rată de convergenţă ridicată
(rata de convergenţă este definită ca numărul de iteraţii necesar pentru ca ieşirea filtrului să
se apropie suficient de mult de ieşirea dorită ) . Un algoritm cu rată de convergenţă ridicată
conduce la un filtru adaptiv care poate urmări variaţii rapide ale semnalului de intrare.
2.- factor de dezacord mic
( factorul de dezacord indică diferenţa între ieşirea obtinută şi ieşirea dorită ) .Acest factor
oferă o informaţie cantitativă asupra calităţii filtrului adaptiv real în comparaţie cu filtrul
adaptiv teoretic.
3.- robusteţe - se referă la capacitatea algoritmului de a opera satisfăcător la o gamă
diversă de secvenţe de intrare (semnale deterministe sau semnale aleatoare cu caracteristici
statistice diferite).
4.- cerinţe de calcul reduse - se referă la numarul de operaţii necesare pentru
implementare (adunări, scăderi, înmulţiri, împărţiri) , la capacitatea de memorie necesară
pentru structura de date a algoritmului şi la efortul de programare necesar implementării
algoritmului pe calculator.
5.- structura simplă - algoritmul trebuie să fie modular şi cu un grad ridicat de
paralelism (pentru a putea fi uşor realizat hardware în tehnologie VLSI)
6.- senzitivitate redusă la cuantizarea coeficienţilor - dacă algoritmul se
implementează numeric pe calculator atunci trebuie să fie puţin dependent de cuantizarea
cantităţilor cu care se operează în caz contrar funcţionarea devine incorectă sau chiar
instabilă.
8.2.1. Aplicaţii ale filtrelor adaptive
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
191
În domeniul telecomunicaţiilor filtrele adaptive au următoarele aplicaţii importante:
1. Egalizarea adaptivă în transmisiunile de date
Schema generală a unui sistem de transmisiuni cu egalizor adaptiv este prezentată în
figura 8.8.
Filtrutrs. Canal
Filtrurec.
Filtruadaptiv
DecizieGen.semnal +In
{b(k)} {a(k)}
transmisiezgomot
{p(n)}
sincronizare
Gen. semnalde test
1
2
k+ +
-
Out
Figura 8.8. Egalizor adaptiv
Avem relaţiile :
a(k) = + 1 , b(k) = high
- 1 , b(k) = low
p(n) - funcţia pondere a filtrului de transmisie ,canalului şi a filtrului de recepţie
conectate în cascadă .
u(k) = a(k).p(0) + a n p k nn k
( ). ( )#
−∑
Procesoare digitale de semnal. Aplicaţii
192
Primul termen corespunde simbolului dorit , iar cel al doilea corespunde interferenţei
intersimbol şi trebuie eliminat.
Ajustarea coeficienţilor filtrului se efectuează în două trepte : iniţial se face o ajustare
la care semnalul dorit este dat de un generator de semnal de test ( corespunzător secvenţei de
antrenare ) - poziţia 2 a comutatorului k ;după aceea ajustarea coeficienţilor se face folosind
ieşirea blocului de decizie - poziţia 1 a comutatorului k .Se consideră că din acest moment
coeficienţii filtrului nu mai au variaţii mari deoarece ,cu o foarte mare probabilitate blocul de
decizie lucrează corect - canalul de transmisie îşi menţine raspunsul în frecvenţă .
8.2.2. Reprezentarea digitală a semnalului vocal
Una dintre cele mai des utilizate metode de reprezentare a semnalului vocal este
metoda predicţiei liniare . Această metodă presupune că semnalul vocal este comprimat - se
extrag numai anumiţi parametrii esentiali : coeficienţii de predictie liniară , frecvenţa
fundamentală şi decizia sonor / nesonor.
În figura 8.9 este reprezentat modelul unui sintetizator vocal prin predicţie liniară .
Generatorde impuls
frecventa fundamentala
1
2
Generator
de zgomotdecizie sonor (1) / nesonor (2)
coeficientii de predictie liniara
Filtru adaptiv(lattice)
semnal vocal sintetizat
Figura 8.9 Sinteza semnalului vocal
8.2.3. Compensarea ecoului
În retelele telefonice care utilizează circuite de conversie de la 2 fire la 4 fire (hibrid)
se poate produce fenomenul de ecou. Datorită imperfecţiunii hibridului o parte din semnalul
emis se reîntoarce la sursa de emisie cu o întîrziere oarecare;dacă această întîrziere este mare
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
193
atunci se produce fenomenul de ecou. În figura 8.10 este prezentat un sistem de transmisiune
cu protecţie la ecou.
Hibrid Compensatorde ecou
Intirziere
Intirziere
HibridCompensatorde ecou
+
+
+
+
-
-
A B
semnal de la A la B ( fara ecou)
semnal de la A la B (cu ecou , in absenta compensatorului de ecou)
Figura 8.10. Compensatorul adaptiv de ecou
Compensatorul de ecou este un filtru adaptiv pentru care ajustarea coeficienţilor se
face astfel ca ieşirea filtrului să fie cît mai apropiată de ieşirea din hibrid;în linie se va emite
diferenţa dintre ieşirea hibridului şi ieşirea filtrului adaptiv adică un semnal fără ecou.
8.2.4. Îmbunătăţirea calităţii semnalului (Adaptive Line Enhancer - ALE )
Structura unui ALE este prezentată în figura 8.11.
Semnalul de intrare este un semnal de bandă îngustă acoperit de zgomot ( de exemplu
un semnal sinusoidal + zgomot).Filtrul adaptiv îşi ajustează coeficienţii astfel încît la ieşire
să se obţină semnalul de bandă îngustă ( de exemplu semnalul sinusoidal) cu o mică
atenuare.
Un element esenţial în structura din figura 5.5 este întîrzierea între intrare şi filtrul
adaptiv; această întîrziere asigură eliminarea corelaţiei între zgomotul de la intrarea în sistem
şi zgomotul de la intrarea în filtrul adaptiv.
În acest mod diferenţa dintre ieşirea filtrului adaptiv şi intrare este:
e(n) = [ s(n) + w(n-D) ] * h(n) - w(n) , unde * este produsul de convoluţie.
Procesoare digitale de semnal. Aplicaţii
194
Funcţia e(n) are valori mai mici , ca valoare medie pătratică , dacă D > 0 deoarece
intervine în calcul produsul de convoluţie w(n-D)* w(n) care este nul dacă D>0 (semnale
necorelate).
semnal cu zgomot
s(n)+w(n)Intirziere (D) Filtru adaptiv
Algoritm deadaptare
++
-e(n)
iesire
s(n)^
s(n)^ = semnal imbunatatit (extras din zgomot)e(n) = functia de eroare (minima in medie patratica)
s(n) = semnal util (de banda ingusta)w(n) = semnal zgomot ( de banda larga)
Figura 8.11. Sistemul ALE
Algoritmul LMS pentru ajustarea coeficienţilor filtrului adaptiv
Ajustarea coeficienţilor filtrului adaptiv se realizează cu scopul de a minimiza
diferenţa dintre ieşirea filtrului adaptiv şi o ieşire dorită . Vom nota această diferenţă cu
e(n) - eroarea de estimare.
Eroarea de estimare este dată de formula :
e(n) = d(n) - h(n)*u(n)
unde h(n) reprezintă secvenţa coeficienţilor filtrului adaptiv , u(n) secvenţa semnalului de
intrare , d(n) - semnalul de ieşire dorit , iar * reprezintă produsul de convoluţie.
Pentru a calcula h(n) se minimizează eroarea pătratică medie a erorii de estimare:
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
195
ε = n
M
=∑
0
e 2 (n) = n
M
=∑
0
[ d(n) - k
N
=
−
∑0
1
h(k).u(n-k) ] 2 =
= n
M
=∑
0
d 2 (n) - 2 k
N
=
−
∑0
1
h(k).r du (k) + k
N
=
−
∑0
1
l
N
=
−
∑0
1
h(k).h(l).r uu (k-l) unde
r du (k) = n
M
=∑
0
d(n).u(n-k) , 0≤ k ≤ N-1
r uu (k) = n
M
=∑
0
u(n).u(n+k) , 0≤ k ≤ N-1
Funcţia r du (k) este funcţia de corelaţie dintre ieşirea dorită şi intrare , iar funcţia r
uu (k) este funcţia de autocorelaţie a intrării.
Se poate arăta că funcţia ε, privită ca funcţie de h(0),h(1),... ,h(N-1) are un singur
minim. (ε este o suprafaţă N - dimensională nededă ).
Derivînd expresia erorii pătratice medii ε în raport cu h(m) şi impunînd ca :
∂ ε
-------- = 0 , m = 0,1,...,N-1 adică
∂ h(m)
k
N
=
−
∑0
1
h(k).r uu (k-m) = r du (m) , m=0,1, ...,N-1.
Se obţine un sistem liniar de ecuaţii din care rezultă coeficienţii filtrului adaptiv , h(k).
Sistemul liniar de ecuaţii cu soluţiile h(0),h(1),...,h(N-1) definit mai sus poate fi scris
sub formă matriceală astfel:
r.h 0 = p , unde r este matricea funcţiei de autocorelaţie , h 0 este vectorul
coeficienţilor optimi ai filtrului adaptiv , iar p este matricea de intercorelaţie (între ieşirea
dorită şi intrare ) după cum urmează :
r uu (0) r uu (1) ... r uu (N-1)
r = r uu (-1) r uu (0) ... r uu (N-2)
r uu (-N+1) r uu (-N+2) ... r uu (0)
Procesoare digitale de semnal. Aplicaţii
196
h(0)
h 0 = h(1) , cu h(m) astfel ca ε este minimă ,
h(N-1)
r du (0)
p = r du (1)
r du (N-1)
Pentru rezolvarea sistemului de ecuaţii liniare se preferă o variantă iterativă de
determinare a soluţiilor h(k), k = 0,1,..., N-1 , care evită calculul funcţiilor de corelaţie.
Notăm cu h(n) vectorul coeficienţilor filtrului adaptiv la pasul n ( la pasul n=0 se ia
h(0)=0).
Avînd în vedere că ε are un singur minim , dat de vectorul h 0 , vectorul h (n+1) la
pasul (n+1) va fi calculat recursiv prin relaţia :
h(n+1) = h(n) + (1/2) μ[ -∇(n) ] , μ > 0.
unde ∇(n) reprezintă gradientul lui ε la pasul n .
Observaţie : Formula anterioară reprezintă metoda gradientului pentru rezolvarea unei
probleme de minim cu parametrii; în acest caz funcţia care trebuie minimizată este ε iar
parametrii sînt componentele vectorului h. Se demonstrează că dacă vectorul parametrilor
variază în direcţia opusă vectorului gradient al funcţiei ce trebuie minimizată , după un
anumit număr de paşi se va atinge punctul de minim căutat.
∂ ε
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
197
Prin definiţie ∇(n) = ------ = - 2.p + 2.r.h(n) .
∂ h(m)
Dacă ∇(n) = 0 rezultă r.h(n) = p , relaţie similară celei care din care rezultă h 0 ;
acest lucru arată că în adevăr dacă ∇(n) = 0 s-a atins punctul de minim deci :
h 0 = h (n) , pentru ∇(n) = 0 ;
Pentru ∇(n) = 0 se observă ,din relaţia de recurenţă a lui h(n) , că h(n+1) = h(n) ,deci
începînd de la pasul n ,pentru care ∇(n) = 0, coeficienţii filtrului adaptiv nu se mai modifică -
procesul de ajustare al coeficienţilor s-a încheiat.
Formula de recurenţă a coeficienţilor h(n) se poate rescrie astfel :
h(n+1) = h(n) + μ[ p - r.h(n) ] , n = 0,1,2,.....
Parametrul μ controlează stabilitatea şi viteza de convergenţă ale algoritmului de
ajustare recursiv şi se numeşte constantă sau pas de adaptare.
În practică este dificil să se calculeze matricile p şi r deoarece acestea reprezintă
medii statistice (conform definiţiilor funcţiilor de corelaţie , respectiv de autocorelaţie).De
aceea aceste matrici se vor aproxima prin valorile lor instantanee:
p(n) = u(n).d * (n) şi r(n) = u(n).u H (n) în loc de
p(n) = E[u(n).d * (n)] şi r(n) = E[u(n).u H (n)] , unde E reprezintă operatorul de
mediere statistică , * reprezintă conjugarea complexă , H reprezintă operaţia de transpunere
şi conjugare complexă a unei matrici, d(n) este ieşirea dorită , u(n) este vectorul semnalului
de intrare definit astfel :
u(n)
u (n) = u(n-1)
u(n - N+1)
Procesoare digitale de semnal. Aplicaţii
198
Rezultă următoarea formulă de recurenţă pentru h(n) :
h(n+1) = h(n) + μ.u(n).[d(n) - u H (n).h(n)]
sau altfel scris ( ţinînd cont că ( h H (n) .u(n) ) * = u H (n) .h(n) ) :
e(n) = d(n) - h H (n) .u(n) ;
h(n+1) = h(n) + μ.u(n).e * (n) ;
Aceste ultime 2 relaţii constituie algoritmul LMS ( Least Mean Squares) pentru
ajustarea coeficienţilor filtrului adaptiv.
Algoritmul LMS poate fi rescris astfel ( considerînd toate secvenţele reale):
h n+1 (0) h n (0) u(n)
h n+1 (1) = h n (1) + μ.e(n) * u(n - 1)
h n+1 (N - 1) h n (N - 1) u(n - N+1)
de unde rezultă :
y(n) = k
N
=
−
∑0
1
h(k).u(n-k) ;
e(n) = d(n) - y(n) ; (eroarea la pasul curent n)
h n+1 (k) = h n (k) + μ.e(n).u(n-k) ; k = 0,1,...,N-1 şi n = 0,1,2,......
unde h n (k) reprezintă coeficientul de index k la pasul n .
În concluzie algoritmul LMS presupune că la fiecare eşantion al intrării u(n) ( la
fiecare pas) se efectuează urmatoarele:
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
199
1. - calculul ieşirii filtrului adaptiv ( y(n) ); se presupune că la n=0 avem h(0)=0;
2. - calculul erorii între eşantionul de ieşire al filtrului adaptiv şi eşantionul ieşirii
dorite;
3. - actualizarea coeficienţilor filtrului adaptiv ( h(k) cu k = 0,1,...,N - 1).
Constanta de adaptare, μ , trebuie aleasă suficient de mare pentru ca viteza de
convergenţă să fie ridicată şi suficient de mică pentru a menţine stabilitatea algoritmului.
Pe de altă parte alegerea lui μ depinde de caracteristicile statistice ale semnalului de
intrare, u(n) ; de asemenea dacă μ este prea mic termenul μ.e(n).u(n-k) poate fi considerat
nul datorită cuantizării ce apare în structura hardware care implementează filtrul adaptiv - în
acest caz ajustarea coeficienţilor se încheie fără ca minimul erorii pătratice medii să fie
atins.
Se demonstrează că μ trebuie să îndeplinească următoarea condiţie :
0 < μ < 1 / ( 10.N.P u ) , unde N este numărul de coeficienţi ai filtrului
adaptiv (de tip FIR) , iar P u este puterea semnalului de intrare definită astfel :
P u = [1/(M+1)] .n
M
=∑
0
u 2 (n) ;
Implementarea algoritmului LMS
În continuare se prezintă o modalitate se implementare a algoritmului LMS de
adaptare a coeficientilor. Rutina trebuie apelată la fiecare achiziţie a unui eşantion nou.
Implementarea filtrului adaptiv ( pentru ALE, sau pentru compensatorul adaptiv de ecou) va
conţine o rutină de implementare a filtrului FIR şi o rutină de adapare a coeficienţilor filtrului
FIR.
{----------------Algoritmul LMS Modify Subroutine-----------------------}
{ parametrii de intrare :
mx0=eroarea , my1 = pasul de adaptare
i3 -> linia de intirziere
i6 -> coeficientii FIR adaptiv
Procesoare digitale de semnal. Aplicaţii
200
cntr = numarul de coeficienti ai FIR
parametrii de iesire : coeficientii FIR actualizati
lms: mf=mx0*my1(rnd), mx0=dm(i3,m1); { mf = e(n) * μ }
{ mx0 = u(n-k)}
mr=mx0*mf(rnd), ay0=pm(i6,m5); { mr1= e(n)*μ*u(n-k)}
{ ay0 = h(n)}
do adaptive until ce;
ar=mr1+ay0, mx0=dm(i3,m1), ay0=pm(i6,m4);
{ h(n) = h(n) + mr1= e(n)*μ*u(n-k) }
{ citeste urmatorul h(n)}
adaptive: pm(i6,m6)=ar, mr=mx0*mf(rnd); { h(n+1) = h(n) }
{mr1= e(n)*μ*u(n-k)}
modify(i6,m4); { reface i6}
modify(i3,m3); { reface i3}
rts;
8.3 . Generarea şi recepţia tonurilor multifrecvenţă (DTMF)
DTMF (Dual Tone Multifrequency) reprezintă un sistem de semnalizare care
înlocuieşte semnalizarea clasică,cu pulsuri,în reţeaua telefonică. De asemenea sistemul DTMF
este utilizat şi în alte aplicaţii : sisteme bancare prin telefon,poştă electronică pe linie
telefonică,control la distanţă prin telefon.
Un semnal multifrecvenţă (DTMF) reprezintă o sumă de două sinusoide convenabil
alese; există mai multe standarde DTMF care diferă prin numărul de frecvenţe alese şi prin
valoarea acestora. Cel mai utilizat standard este standardul CCITT care recomandă două
grupuri de frecvenţe : un grup de frecvenţe joase (697 Hz,770 Hz, 852 Hz , 941 Hz) şi un grup
de frecvenţe înalte (1209 Hz , 1336 Hz, 1477 Hz, 1633 Hz).
Un ton DTMF se obtine prin însumarea unei frecvenţe din grupul frecvnţelor joase cu
o frecvenţă din grupul frecvenţelor înalte.
Avantajele utilizării procesorului de semnal ADSP 2101 în generarea şi recepţia
tonurilor DTMF sînt urmatoarele:
- precizie ridicată în generarea frecvenţelor necesare
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
201
- modificarea simplă a standardului DTMF (prin schimbarea structurii de date a
programului)
- posibilitatea implementării unor sisteme de generare şi recepţie DTMF multicanal
Generarea tonurilor DTMF
Generarea tonurilor multifrecvenţă poate fi realizată simplu prin calculul matematic al
celor 2 eşantioane de sinusoidă (corespunzător celor 2 frecvenţe necesare) după care se
efectuează suma acestora.
Organigrama simplificată pentru un program de generare a tonurilor DTMF este
prezentată în figura 8.11.
Initializari (intr.,pointeri,stare)
citeste ton din memorie(f1,f2)
Initializeaza var.pt. sin
Asteapta intr.Intrerupere asincrona (IRQ2) Intrerupere periodica (SPORT0) (8 kHz)
stare=stare+1 (mod 16)
citeste ton din memorie(f1,f2)
Initializeaza var.pt. sin
calculeaza sin(f1)
calculeaza sin(f2)
scalare 1/2
calculeaza sumasinusoidelor
genereaza la iesiretonTAB f0,1 f02 ... f15,1 f15,2 ,
ton DTMF= (1/2)(sin fi,1+sin fi,2)
Tabela de tonuri DTMF
Figura 8.12 Implementarea unui generator DTMF
Acest program generează o succesiune cunoscută de tonuri DTMF (citite din memorie)
sau un ton de disc (440 Hz + 350 Hz).
Recepţia tonurilor DTMF
Procesoare digitale de semnal. Aplicaţii
202
Decodarea unui ton DTMF presupune extragerea celor 2 frecvenţe (tonuri) din semnal
şi testarea acestora pentru a se determina dacă semnalul este ton DTMF;dacă cele 2 frecvenţe
corespund standardului DTMF atunci se determină codul de 4 biţi asociat semnalului DTMF.
Decodarea analogică a tonurilor DTMF se realizează prin detecţia şi numărarea
trecerilor prin zero ale semnalului testat după ce acesta a fost trecut printr-un set de filtre
trece bandă foarte selective.În prelucrarea digitală este convenabil să se efectueze o
transformare din domeniul timp în domeniul frecvenţă (transformarea Fourier discretă - DFT).
Această transformare este efectuată utilizînd algoritmul Goertzel (/1/) care prezintă
urmatoarele avantaje:
- nu este necesară stocarea a N eşantioane ale semnalului testat (N este numărul de
puncte în care se calculează transformata Fourier discretă).
- calculul unui punct al DFT se realizează simultan cu citirea eşantionului curent al
semnalului testat.
- nu este necesară adresarea cu inversarea biţilor (ca la FFT).
- implementarea algoritmului Goertzel este simplă (echivalentă cu un filtru IIR de
ordin 2).
În continuare este prezentat pe scurt algoritmul Goertzel.
Figura 8.13 prezintă structura filtrului IIR de ordin 2 care implementează algoritmul
Goertzel.
Formulele de calcul ale transformatei Fourier discrete sînt următoarele:
| X(k) | 2 = A 2 + B 2 - A.B.c k
A = Q k (N-1); B = Q k (N-1);
Q k (n) = c k .Q k (n-1) - Q k (n-2) + x(n);
c k = 2. cos (2πk/N);
Alegerea lui N şi k se face conform relaţiei:
f recvenţa dorită k
8. Aplicaţii în prelucrarea semnalelor de telecomunicaţii
203
----------------------------------- = -----
( frecvenţa de eşantionare) N
unde frecventa dorită este frecvenţa pentru care se calculează transformata Fourier , iar N este
numărul de puncte în care se calculează transformata Fourier.
Rezultă : k = (N.frecvenţa dorita)/(frecvenţa de eşantionare) ;trebuie ales N astfel
încît k să rezulte cît mai apropiat de un numar întreg.
Figura 8.13 Algoritmul Goertzel
Pentru detecţia unui ton DTMF este necesară determinarea amplitudinii celor 2
componente spectrale (frecvenţele care însumate generează tonul DTMF) şi a armonicelor
acestora. Se alege N = 205 pentru frecvenţele fundamentale şi N = 201 pentru armonici.
Rezultă următoarele valori pentru k şi coeficientul c k :
frecventa k coeff c k
697 Hz 18 1,703275
770 Hz 20 1,635859
852 Hz 22 1,562297
Procesoare digitale de semnal. Aplicaţii
204
941 Hz 24 1,482867
1209 Hz 31 1,163138
1336 Hz 34 1,008835
1477 Hz 38 0,790074
1633 Hz 42 0,559454
frecventa k coeff c k
1394 Hz 35 0,917716
1540 Hz 39 0,688934
1704 Hz 43 0,449394
1882 Hz 47 0,202838
2418 Hz 61 -0,659504
2672 Hz 67 -1,000000
2954 Hz 74 -1,352140
3266 Hz 82 -1,674783
Frecvenţa de eşantionare este de 8 kHz.
Testele efectuate după calculul DFT sînt următoarele:
1. - determinarea frecvenţei de linie şi a frecvenţei de coloană cu amplitudini
maxime, din cele 8 componente spectrale asociate frecvenţelor fundamentale.
2. - verificarea amplitudinii componentelor spectrale alese la punctul 1 (acestea trebuie
să depăşească un prag minim impus).
3. - se verifică dacă mai există şi alte componente spectrale care au amplitudinea
peste pragul impus la punctul 2 (acest lucru nu este permis pentru un ton DTMF).
4. - se calculează diferenţa în decibeli dintre nivelul frecvenţei de rînd şi nivelul
frecvenţei de coloană (determinate anterior) şi se compară cu un prag impus (altul decît cel
definit anterior);diferenţa nu trebuie să depăşească acest prag.
5. - pentru frecvenţele de rînd şi de coloană determinate se verifică amplitudinile
componentelor spectrale ale armonicii a -2 -a ;acestea trebuie să fie neglijabile.
6. - codul binar asociat tonului DTMF se generează numai dacă acesta are durata
corectă (tonul DTMF are o durată de 40-50 ms ).