aplicatii dsp

29
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.

Upload: isabelle-dupoint

Post on 09-Dec-2015

291 views

Category:

Documents


1 download

DESCRIPTION

Digital Signal application

TRANSCRIPT

Page 1: Aplicatii DSP

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.

Page 2: Aplicatii DSP

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.

Page 3: Aplicatii DSP

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.

Page 4: Aplicatii DSP

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-

Page 5: Aplicatii DSP

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.

Page 6: Aplicatii DSP

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).

Page 7: Aplicatii DSP

Procesoare digitale de semnal. Aplicaţii

182

Page 8: Aplicatii DSP

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

Page 9: Aplicatii DSP

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).

Page 10: Aplicatii DSP

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)

Page 11: Aplicatii DSP

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

Page 12: Aplicatii DSP

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.

Page 13: Aplicatii DSP

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).

Page 14: Aplicatii DSP

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.

Page 15: Aplicatii DSP

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

Page 16: Aplicatii DSP

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

( ). ( )#

−∑

Page 17: Aplicatii DSP

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

Page 18: Aplicatii DSP

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.

Page 19: Aplicatii DSP

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:

Page 20: Aplicatii DSP

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)

Page 21: Aplicatii DSP

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.

∂ ε

Page 22: Aplicatii DSP

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)

Page 23: Aplicatii DSP

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:

Page 24: Aplicatii DSP

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

Page 25: Aplicatii DSP

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

Page 26: Aplicatii DSP

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

Page 27: Aplicatii DSP

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

Page 28: Aplicatii DSP

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

Page 29: Aplicatii DSP

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 ).