Filtre Numerice Implementate pe Echipamente de Tip Real

FILTRE NUMERICE IMPLEMENTATE PE ECHIPAMENTE DE TIP REAL

CUPRINSUL

1 Introducere

1.1 Context

1.2 Conturarea domeniului temei

1.2.1 Clasificarea semnalelor

1.2.2 Modalități de prelucrare ale semnalelor

2 Filtre numerice

2.1 Descriere generală și clase de filtre

2.1.1 Filtre nerecursive / filtre recursive

2.1.2 Filtre cauzale / filtre necauzale

2.1.3 Filtre stabile / filtre instabile

2.1.4 DupĂ ordinul filtrului

2.2 Sinteza filtrelor cu răspuns finit la impuls (fir)

2.2.1 Generalitați

2.2.2 Elaborarea specificațiilor filtrului

2.2.3 Noțiuni teoretice

2.2.3.1 Caracterizarea filtrelor FIR

2.2.3.2 Metode de aproximare a filtrelor FIR

2.2.4 Implementarea în MATLAB a filtrelor FIR

2.3 Sinteza filtrelor cu răspuns infinit la impuls (IIR)

2.3.1 Generalitați

2.3.2 Proiectarea filtrelor IIR

2.3.3 Metode ale aproximării sau al calcului coeficienților filtrelor IIR

2.3.4 Avantajele filtrelor IIR

2.3.5 Implementarea în MATLAB a filtrelor IIR

3 Descrierea echipamentelor hardware și a mediilor de programare

3.1 Informații generale despre Placa dsPICPRO4

3.2 Elementele componente ale placii dsPICPRO4

3.2.1 Comutatoare

3.2.2 Jumperi

3.2.3 Soket-ul MCU

3.2.4 Alimentare

3.2.5 Conector USB 2.0 (USB 2.0 Programmer)

3.2.6 MIKROICD (Depanator integrat pentru hardware)

3.2.7 Interfața serială de tip RS-232

3.2.8 Interfața ETHERNET

3.2.9 Termometrul Digital DS1820

3.2.10 Convertorul Digital-Analogic

3.2.11 Convertorul Digital-Analogic

3.2.12 Circuitul de Comunicare RS-485

3.2.13 CAN

3.2.14 LED

3.2.15 Butoane

3.2.16 Modul LCD de 2×16 caractere

3.2.17 Modul LCD Grafic

3.2.18 Panou cu touch (Touch Panel)

3.2.19 Convertor de tip A/D pentru testarea intrărilor

3.2.20 Conectorii portului Direct Access

4 Concluzii

5 Bibliografie

6 Referințe web

A. Codul sursă

B. Site-ul web al proiectului

C. CD / DVD

Index

LISTA FIGURILOR

Figura 1 – Reprezentarea grafică a unui semnal continuu in timp continuu 2

Figura 2 – Reprezentarea grafică a unui semnal discret în timp continuu 3

Figura 3 – Reprezentarea grafică a unui semnal continuu în timp discret 3

Figura 4 – Reprezentarea grafică a unui semnal discret in timp discret 4

Figura 5 – Reprezentarea sistemică a prelucrării semnalelor 5

Figura 6 – Structură de comunicații cu egalizor 6

Figura 7 – Filtrarea zgomotelor 6

Figura 8 – Structura unui filtru nerecursiv 8

Figura 9 – Structura unui filtru recursiv 9

Figura 10 – Caracteristica de frecvență a unui FTB 11

Figura 11 – Răspunsul de fază zero al filtrului dorit și al celui real 15

Figura 12 – Caracteristica de frecvență a unui FTB 21

Figura 13 – Corespondența dintre planul S și planul Z prin transformarea biliniară 24

Figura 14 – Relația între frecvența analogică și cea digitală în transformarea biliniară 25

Figura 15 – Placa de dezvoltare dsPICPRO4 29

Figura 16 – Grupul de comutatoare SW5 30

Figura 17 – Posibilitățile de conectare ale jumper-ului. 30

Figura 18 – Ilustrarea Soket-ului MCU 31

Figura 19 – Ilustrarea Surselor de alimentare 31

Figura 20 – Conectorul integrat USB 2.0 32

Figura 21 – Interfața serială de tip RS-232 33

Figura 22 – Portul Ethernet 33

Figura 23 – Termometrul digital DSI820 34

Figura 24 – Convertorul MCP4921 34

Figura 25 – Temporizatorul RTCC PCF8583P 35

Figura 26 – Circuitul de comunicare RS-485 35

Figura 27 – Ilustrarea unui CAN (Controller Area Network) 36

Figura 28 – Ilustrarea LED-urilor (Light Emitting Diodes) 36

Figura 29 – Ilustrarea butoanelor 36

Figura 30 – Ilustrarea modulului LCD 37

Figura 31 – Modulul Grafic LCD 37

Figura 32 – Panoul cu touch 37

Figura 33 – Converorul de tip Analog – Digital 38

Figura 34 – Conectorii portului Direct Access 38

Figura 35 – Cardul Multimedia (MMC/SD) 39

LISTA TABELELOR

Tabelul 1 – Răspunsurile ideale la impuls pentru filtre uzuale. 13

Tabelul 2 – Parametrii ferestrelor de timp utilizate pentru proiectarea filtrelor FIR 13

Tabelul 3 – Funcțiile MATLAB utilizate pentru proiectarea oricarui tip de FTJ analogic 26

Tabelul 4 – Funcțiile MATLAB utilizate pentru transformările de frecvența 26

Tabelul 5 – Funcțiile MATLAB utilizate pentru discretizarea filtrului 27

Tabelul 6 – Funcțiile MATLAB complete utilizate pentru proiectarea unui filtru digital 27

Tabelul 7 – Funcțiile MATLAB utilizate pentru a determina ordinul minim al unui filtru 27

Introducere

Context

În ziua de azi putem spune că viețile ne sunt guvernate de tehnologie, deoarece aceasta ne face munca mult mai simplă și mai ușoară. Această tehnologie, mai mult sau mai puțin avansată, este regăsită peste tot în jurul nostru, de la banalul prăjitor de pâine până la mașina cu care circulăm sau telefonul mobil fără de care nu poți trăi.

Odată cu dezvoltarea din ce în ce mai mult a tehnologiei, a apărut si necesitatea omului de a transmite/recepționa informațiile într-un timp cât mai scurt și cu viteze cât mai mari. În procesarea datelor și prelucrarea informației un rol important aparține filtrației semnalelor prin frecvență – operație, realizată cu dispozitive și circuite analogice (filtre pasive sau active) sau cu dispozitive și circuite logice și în acest caz numindu-se filtrație numerică a semnalelor.

Spre deosebire de filtrele analogice (pasive sau active) în care semnalul este prelucrat în forma sa reală și netransformată, filtrele numerice prezintă sisteme de prelucrare a spectrului semnalelor, reprezentate prin secvențe de numere, luate la intervale discrete de timp. Aceste filtre utilizează circuite logice, iar prelucrarea semnalelor se face liniar având ca rezultat schimbarea formei semnalului de intrare al filtrului digital, de altfel – ca și al celui analogic.

Structura lucrării

În lucrarea de diplomă cu titlul: “ Filtre numerice implementate pe echipamente de tip real” sunt descrise principiile pentru implementarea filtrelor numerice pe microcontroller-ul dsPIC30F6014A.

Lucrarea de față este împărțită în 5 capitole: „Introducere”, în care vor fi prezentate câteva informatii de baza despre semnale si sisteme, „Filtre numerice”, „Descrierea echipamentelor hardware și a mediilor de programare”, „Realizarea, punerea în funcțiune și rezultate experimentale”, respectiv capitolul „Concluzii”. În partea de final a lucrării este prezentată o secțiune destinată bibliografiei utilizate și Anexele care vin sa întregească toate cele redactate. În cele ce urmează se va face o trecere în revistă a capitolelor menționate mai sus, cu o detaliere scurtă a fiecăruia.

În capitolul „Introducere” a fost realizat un preambul în domeniul semnalelor si sistemelor pentru a introduce cititorul în sfera prelucrarii și pentru a-i oferii câteva imagini de ansamblu asupra temei acestui proiect și domeniului din care aceasta face parte.

Capitolul „Filtre numerice” viziteaza o scurta descriere a filtrelor numerice, plecand de la descrierea generala a acestora, si facand referire la categoriile in care aceste tipuri de filtre se pot evidentia.

Capitolul „Descrierea echipamentelor hardware și a mediilor de programare” ne prezintă, pe scurt, o descriere asupra echipamentelor folosite la realizarea proiectului, ce scoate în evidență principiile de funcționare ale acestora. De asemenea acest capitol ne mai oferă și câteva cuvinte despre mediile de programare folosite la realizarea codului și încărcarea acestuia pe microcontroler.

Capitolul intitulat „Realizarea, punerea în funcțiune și rezultate experimentale”, este destinat unei scurte prezentări a realizării fizice pe baza pozelor făcute asupra echipamentelor dezvoltare și oferirea informațiilor despre punerea în funcțiune și utilizarea sistemului.

Lucrarea se încheie cu un capitol de concluzii în care sunt prezentate obiectivele realizate și eventualele direcții de viitor pentru îmbunătățirea aplicației.

Conturarea domeniului temei

Clasificarea semnalelor

A privi lumea înconjurătoare ca fiind structurată în sisteme nu mai este o noutate. Acest concept a adus si aduce mari beneficii în folosul cercetării în toate domeniile. Sistemele interacționează între ele prin schimb de masă, de energie sau de informație.

Definim semnalul ca fiind suportul fizic al informației transferate între sisteme. Orice semnal este din punct de vedere matematic o funcție de timp, dar în definirea semnalului pot interveni si alte

variabile reprezentate de mărimi fizice precum spațiul, temperatura etc. Iată câteva exemple de semnale purtătoare de informații pe care le vom avea în vedere în continuare:

Sunetul si imaginea. Sunt semnale ce poartă informații care pot fi percepute de ființele vii.

Semnale transferate între sisteme din natură sau din procese industriale, având diverse suporturi fizice (tensiuni electrice, câmp magnetic, temperaturi, forțe, viteze, etc.).

După natura domeniului de definitie al variabilei independente (timpul) și al domeniului în care funcția ia valori, semnalele se pot clasifica:

a. Semnale continue în timp continuu. Reprezintă semnalele care există în toate momentele de timp în intervalul analizat si a căror amplitudine poate lua orice valoare reală în domeniul lor de

valori. [www1]

Circuitele (partea hardware) care prelucrează acest tip de semnale, se numesc circuite analogice, respectiv sisteme analogice. În consecintă, aceste semnale mai poartă denumirea de semnale analogice. Semnalele analogice există teoretic într-o infinitate de momente dintr-un interval dat si pot lua o infinitate de valori într-un domeniu finit. De regulă, semnalele provenite din lumea reală înconjurătoare sunt continue în timp si amplitudine, ca de exemplu: semnalele furnizate de un microfon, de o cameră video, de un traductor de temperatură etc. Cu alte cuvinte lumea înconjurătoare a fost una exclusiv analogică până în momentul interventiei inteligentei umane, care a dus la aparitia procesărilor numerice. Exemple de semnale analogice:

Semnale electrice: tensiune, curent, câmp electric, câmp magnetic;

Semnale mecanice: deplasare, viteză, unghi, viteză unghiulară, forță, cuplu, presiune;

Semnale fizico-chimice: temperatură, concentrație pH etc.

Pentru a putea prelucra aceste semnale în sisteme electronice, ele sunt convertite cu ajutorul unor traductoare în mărimi electrice: tensiune sau curent. Semnalele continue în timp continuu se notează astfel: S(t)

Figura 1 – Reprezentarea grafică a unui semnal continuu in timp continuu

b. Semnale discrete în timp continuu. Reprezintă semnalele care există în toate momentele de timp în intervalul de timp analizat, dar a căror amplitudine nu poate lua decât anumite valori din

domeniul lor de valori. Este usor de imaginat acest tip de semnal dacă presupunem că măsurăm o tensiune continuă în timp continuu cu ajutorul unui voltmetru numeric de măsură, al cărui afisaj are un număr dat de cifre. [www1]

Operația prin care un semnal continuu ajunge să fie reprezentat cu un număr finit de cifre sau un număr finit de bitți, se numeste discretizare.

Figura 2 – Reprezentarea grafică a unui semnal discret în timp continuu

c. Semnale continue în timp discret. Sunt semnalele definite doar în anumite momente ale domeniului de definiție – timpul, dar a căror amplitudine poate lua orice valoare reală în domeniul lor

de valori. Practic, semnalele discrete provin matematic din semnalele continue în timp continuu, prin restrângerea domeniului de definiție doar la anumite valori discrete. Această operație prin care din semnalul continuu se iau doar anumite probe (eșantioane) corespunzătoare unor valori discrete ale

timpului se numește eșantionare. De obicei, valorile discrete ale timpului se aleg echidistante. În acest fel, intervalul de timp dintre două eșantioane formează perioada de eșantionare (Te).

Figura 3 – Reprezentarea grafică a unui semnal continuu în timp discret

d. Semnale discrete în timp discret. Sunt semnalele ce se obțin din cele continue în timp continuu prinelectric, câmp magnetic;

Semnale mecanice: deplasare, viteză, unghi, viteză unghiulară, forță, cuplu, presiune;

Semnale fizico-chimice: temperatură, concentrație pH etc.

Pentru a putea prelucra aceste semnale în sisteme electronice, ele sunt convertite cu ajutorul unor traductoare în mărimi electrice: tensiune sau curent. Semnalele continue în timp continuu se notează astfel: S(t)

Figura 1 – Reprezentarea grafică a unui semnal continuu in timp continuu

b. Semnale discrete în timp continuu. Reprezintă semnalele care există în toate momentele de timp în intervalul de timp analizat, dar a căror amplitudine nu poate lua decât anumite valori din

domeniul lor de valori. Este usor de imaginat acest tip de semnal dacă presupunem că măsurăm o tensiune continuă în timp continuu cu ajutorul unui voltmetru numeric de măsură, al cărui afisaj are un număr dat de cifre. [www1]

Operația prin care un semnal continuu ajunge să fie reprezentat cu un număr finit de cifre sau un număr finit de bitți, se numeste discretizare.

Figura 2 – Reprezentarea grafică a unui semnal discret în timp continuu

c. Semnale continue în timp discret. Sunt semnalele definite doar în anumite momente ale domeniului de definiție – timpul, dar a căror amplitudine poate lua orice valoare reală în domeniul lor

de valori. Practic, semnalele discrete provin matematic din semnalele continue în timp continuu, prin restrângerea domeniului de definiție doar la anumite valori discrete. Această operație prin care din semnalul continuu se iau doar anumite probe (eșantioane) corespunzătoare unor valori discrete ale

timpului se numește eșantionare. De obicei, valorile discrete ale timpului se aleg echidistante. În acest fel, intervalul de timp dintre două eșantioane formează perioada de eșantionare (Te).

Figura 3 – Reprezentarea grafică a unui semnal continuu în timp discret

d. Semnale discrete în timp discret. Sunt semnalele ce se obțin din cele continue în timp continuu prin eșantionare în momente de timp bine definite, si apoi prin discretizarea valorii semnalului, mai exact prin trunchierea valorii reale la una cu un număr finit de cifre. Rezultatul va fi acela că semnalul va lua doar un număr finit de valori și doar în anumite momente de timp.

Circuitele (partea hardware) care prelucrează acest tip de semnale se numesc circuite digitale, respectiv sisteme digitale. De aceea, semnalele din această categorie mai poartă denumirea de semnale digitale.[www1]

Obtinerea semnalelor digitale se face pornind de la cele analogice, parcurgând următoarele etape:

eșantionare;

digitizare;

codare.

Semnalele digitale sunt singurele care pot fi prelucrate cu calculatorul numeric și de aceea eșantionarea este o etapă obligatorie pentru prelucrarea semnalelor din lumea reală, în care este implicat calculatorul numeric. Pentru a se pierde cât mai puțină informație, ar trebui ca eșantionarea semnalului analogic original să se facă „cât mai des”, iar digitizarea semnalului să se facă pe un număr cât mai mare de cifre. Acest lucru duce însă la obținerea unui volum mare de date, care ar necesita un spațiu de memorie mare si ar implica viteze de calcul reduse.

Semnalele discrete în timp discret se notează astfel: S[n] sau S[nTe]. [www1]

Figura 4 – Reprezentarea grafică a unui semnal discret in timp discret

Modalitați de prelucrare ale semnalelor

Pe măsură ce tehnologia evoluează apar din ce în ce mai multe domenii în care prelucrarea semnalelor este folosită. Principalele domenii inginerești unde se întalnesc prelucrările de semnal sunt în:

Comunicații: codarea / decodarea digitală a sunetului în telefonia digitală cu multiplexarea mai multor convorbiri pe acelasi fir, Faxul, Internet-ul etc;

Medicină: analiza semnalelor biomedicale (ECG, EEG, computertomografia etc.), diagnosticarea automată, monitorizarea diverselor funcții vitale, proteze complexe;

Conducerea automată a proceselor: pilotarea automată a navelor, avioanelor și rachetelor, servomecanisme, roboți, controlul proceselor industriale complexe sau periculoase;

Radioul si televiziunea digitală;

Aplicații legate de vorbire: filtrare, recunoasterea vorbirii, sinteza vorbirii;

Multimedia: captarea, generarea, procesarea, transmiterea si stocarea sunetului și imaginilor; compact-discul.

Prelucrarea modernă a semnalelor se face cu ajutorul procesoarelor numerice de semnal. Avantajul lor constă în flexibilitatea structurii de prelucrare (realizată prin programare) și precizia (controlată prin lungimea cuvântului). Pe de altă parte prelucrarea numerică impune o întârziere inerentă care poate fi dezavantajoasă la prelucrări în timp real.

Problema proiectării în prelucrarea semnalelor este de a găsi un sistem numit procesor de semnal a cărui intrare este un semnal temporal (discret, în cazul prelucrării numerice) și a cărui ieșire este informația ce se dorește a fi extrasă din semnal (în multe cazuri tot un semnal temporal). [PNS12]

Figura 5 – Reprezentarea sistemică a prelucrării semnalelor

unde:

{uk}k, {yk}k – semnale discrete (șiruri de date);

P.S. – sistem de prelucrare (procesor de semnal)

Prelucrarea este de două feluri:

Off-line

On-line (în timp real).

Prelucrarea în timp real presupune existența unui flux neîntrerupt de date care se introduce în procesor cu o anume viteză (de exemplu biți/sec), ieșirea obținându-se cu aceeași viteză.

Din cauza întârzierii de prelucrare, ieșirea apare adesea cu o întârziere față de intrare. Dacă prelucrarea este anticipativă, apare o întârziere suplimentară. [PNS12]

Prelucrarea off-line (numită uneori tip șarjă) nu mai presupune o corelare între viteza de achiziție a datelor de intrare și cea cu care acestea sunt furnizate la ieșire.

Câteva exemple pot fi edificatoare:

a) Transformata Fourier – asociază unui semnal de timp u un semnal de frecvență û ; în plus transformata Fourier necesită pentru calcul cunoașterea întregului semnal, deci nu poate fi calculată pe măsura sosirii eșantioanelor. Această prelucrare este tipică pentru off-line (șarjă).

b) Simularea off-line – presupune calculul răspunsului unui sistem la diverse semnale de intrare și stări inițiale. De regulă semnalele de intrare și ieșire sunt semnale temporale, dar scările lor de timp sunt determinate de viteza de calcul a simulatorului (tot un procesor de semnal) și nu sunt sincronizate cu “mediul înconjurător”. Deci prelucrarea este tot de tip off-line.

c) Prelucrarea imaginilor – procesorul de semnal primește datele primare ale unei imagini statice și le prelucrează pentru îmbunătățirea contrastului și înlăturarea dublurilor (umbrelor). De regulă prelucrarea este off-line.

d) Egalizarea semnalelor (pe liniile de comunicații) este o prelucrare on-line. Egalizorul este un procesor de semnal care compensează distorsiunile din linie.

Figura 6 – Structură de comunicații cu egalizor

u – semnal transmis;

y – semnal recepționat;

z – semnal egalizat;

C.C. – canal de comunicații;

E – egalizor (sistem – procesor de semnal)

Întrucât egalizoarele apar la transmiterea vocii, deci a sunetelor, ele se utilizează în toată

tehnica audio.

e) Filtrarea este cea mai tipică prelucrare on-line. De regulă prin filtrare se realizează schimbarea conținutului de frecvență al unui semnal printr-o relație tip ŷ(ω) = ĥ(ω)⋅û(ω). Ca urmare atât linia de comunicație cât și egalizorul pot fi considerate filtre. Aplicația specifică a filtrelor este însă filtrarea zgomotelor, ilustrată de schema de mai jos:

Figura 7 – Filtrarea zgomotelor

u – semnal de bazã (transmis);

n – zgomot;

y – semnal recepționat;

z – semnal filtrat;

F – filtru (sistem – procesor de semnal)

În structura din figura 7 transmițătorul trimite un semnal u, dar ca rezultat al interacțiunilor cu mediul de transmisie este recepționat împreună cu un zgomot n. Scopul prelucrării semnalului y este de a elimina cât mai mult zgomot fără a distorsiona semnalul de bază.

f) Simularea on-line – apare, de exemplu, în construcția simulatoarelor de antrenament (pentru zbor, cale ferată sau șofaj). Aici trebuie calculat răspunsul simulat al vehiculului la comenzile pilotului, cu o sincronizare foarte precisă astfel încât vehiculul simulat și aparatele de măsură să reacționeze “ca în realitate”. [PNS12]

Filtre numerice

Odată cu dezvoltarea industriei telecomunicațiilor și a electronicii de putere apare nevoia folosirii sistemelor de procesare a semnalelor. Datorită faptului că filtrele numerice pot fi implementate pe DSP (Digital Signal Processor) si microprocesoare (CPU) acestea sunt ideale pentru a fi folosite în componența telefoanelor mobile precum și a echipamentelor audio-video, de navigație, echipamente IT și altele, folosite tot mai frecvent în prezent.

Filtrele sunt circuite electronice/electrice care au rolul de a procesa un semnal de intrare și de a produce la ieșire un alt semnal permițând unor anumite frecvențe ale acestuia să treacă prin filtru în timp ce alte frecvențe sunt blocate sau atenuate. Acestea pot fi implementate în circuite electronice pentru a modifica caracteristicile amplitudinii și a fazei la ieșirea circuitului.

Descriere generală și clase de filtre

Un filtru numeric standard este un sistem liniar, discret, invariant în timp, utilizat în scopul modificării spectrului unui semnal. Reprezentarea sa se face printr-o ecuație cu diferențe de ordin n, de forma:

(2.1)

Dacă se consideră o pereche intrare/ieșire {uk}k,{yk}k admițând transformata Z, se poate aplica transformata Z în condiții inițiale nule obținând:

unde H(z) este functia de transfer raționala a filtrului:

(2.2)

Pentru proiectarea și realizarea unui filtru numeric se urmărește alegerea coeficienților {ap,bq}, în vederea satisfacerii unor prescripții de performanță.[PNS12]

Criteriile de clasificare a filtrelor numerice sunt în parte aceleasi cu ale sistemelor, de aceea le vom aminti sintetic, cu câteva precizări specifice. Dintre criteriile de clasificare a filtrelor numerice, cele mai importante sunt următoarele:

Filtre nerecursive / filtre recursive.

Este un criteriu major de clasificare a filtrelor din punct de vedere al structurii algoritmului. Astfel, există două mari categorii:

a. Filtre nerecursive

Aceste filtre au specific faptul că ieșirea y[n] a filtrului depinde doar de valoarea ultimelor N ețantioane din secvența de intrare x[n] si de valoarea celor N coeficienți ai filtrului. Acest tip de filtru este definit de algoritmul următor:

(2.3)

Figura 8 – Structura unui filtru nerecursiv

b. Filtre recursive

La acest tip de filtre ieșirea y[n] depinde atât de valoarea ultimelor N eșantioane din secventa de intrare x[n] , cât si de valoarea ultimelor M eșantioane din secventa de ieșire. Acest tip de filtru este definit de algoritmul următor:

(2.4)

Structura de bază a filtrului recursiv de baza este:

Figura 9 – Structura unui filtru recursiv

Filtre cauzale / filtre necauzale

a. La filtrele cauzale mărimea de ieșire depinde doar de valoarea prezentă si de valorile trecute ale secvenței x[n] , nu și de valorile viitoare. [PNS12]

Exemple: – este cauzal

– este necauzal, deoarece depinde de un

eșantion necunoscut încă: x[n +1];

– este necauzal; depinde de y[n +1];

b. Filtrele necauzale nu pot fi implementate pe sisteme numerice on line. De aceea în cazul în care rezultă algoritmi ce conțin „eșantioane viitoare” precum: x[n+1], y[n+1] etc, atunci soluția pentru implementarea lor o constituie transformarea lor în filtre cauzale prin întârzierea lor cu un număr

suficient de impulsuri de tact (k), astfel încât x[n+k] să devină x[n].

Filtre stabile / filtre instabile

a) Filtrele stabile sunt cele care produc la ieșire valori finite, atunci când la intrare se aduc secvențe de valori finite.

Toate filtrele nerecursive sunt stabile.

b) Filtrele instabile sunt cele care produc la ieșire valori infinite, atunci când la intrare se aduc secvențe de valori finite.

Filtrele recursive pot fi instabile, în funcție de valoarea coeficienților.[PNS12]

Dupa ordinul filtrului

În cazul cel mai general, cel al filtrelor recursive:

Se numește ordin al filtrului, numărul maxim al celulelor de memorare, dintre cele aflate la intrare sau cele aflate la iesire.

Exemple: – de ordinul 2

– de ordinul 3

– de ordinul 2

În cazul filtrelor nerecursive, ordinul filtrului reprezintă numărul maxim de celule de memorare folosite la intrarea filtrului.

Exemple: – de ordinul 1

– de ordinul 3

Sinteza Filtre cu Răspuns Finit la Impuls (FIR)

Generalitați:

Un filtru digital sau numeric este un sistem discret care scalează și/sau defazează în mod selectiv componentele spectrale ale semnalului discret de intrare, oferind la ieșire un semnal discret optim pentru scopul dorit. Scopul filtrării este de a îmbunătăți calitatea semnalului (de a reduce sau înlătura zgomotul), de a extrage informații sau de a separa două sau mai multe semnale combinate.

Filtrarea numerică este preferată celei analogice datorită unuia sau mai multor avantaje:

Filtrele numerice pot avea caracteristici imposibil de realizat cu filtrele analogice, (de

exemplu, fază perfect liniară, în cazul filtrelor FIR).

Spre deosebire de filtrele analogice, performanțele celor digitale nu variază cu

variabilele mediului, de exemplu, temperatura. Aceasta elimină necesitatea calibrării

periodice.

Diferite semnale de intrare pot fi filtrate de un singur filtru digital, fără modificarea

structurii hard, prin multiplexare.

Atât datele filtrate cât și cele nefiltrate pot fi stocate pentru o prelucrare ulterioară.

Folosind avantajele tehnologiei VLSI, aceste filtre pot fi realizate la dimensiuni mici,

putere mică, preț scăzut. [www.2]

Elaborarea specificațiilor filtrului.

Proiectarea unui filtru discret presupune trei etape importante:

1. Elaborarea specificațiilor filtrului;

2. Determinarea parametrilor filtrului pentru a satisface specificațiile;

3. Realizarea filtrului numeric printr-o structură specifică.

Primul pas este specificarea caracteristicilor filtrului. Pentru exemplificare se prezintă în figura 10 caracteristica de amplitudine a unui Filtru Trece Bandă (FTB).

Figura 10 – Caracteristica de frecvență a unui FTB

unde:

– eroarea permisă în B.T.

– deviația din B.T.

– deviația din B.O.

– frecvențele de margine din B.T.

– frecvențele de margine din B.O.

Deviațiile din B.T. și B.O. pot fi exprimate direct în unități de măsură corespunzătoare semnalului (V, A, etc) sau în dB, când sunt definite astfel:

(2.5)

(2.6)

Pasul următor este cel al calculului coeficienților filtrului.[www.2]

Noțiuni teoretice

Caracterizarea filtrelor FIR

Un filtru cu răspuns finit la impuls (FIR de la acronimul în engleză Finite Impulse Response) poate fi caracterizat, în mod echivalent, prin una din ecuațiile:

(2.7),

(2.8)

sau

(2.9)

unde:

h[k] – sunt coeficienții răspunsului la impuls al filtrului;

H(z) – funcția de transfer a filtrului;

M-1 este ordinul filtrului;

– pulsația normalizată cu frecvența de eșantionare.

Filtrele FIR sunt specifice domeniului discret și nu pot fi obținute prin transformarea

filtrelor analogice.

Răspunsul în frecvență, H() , poate fi exprimat sub forma:

(2.10)

Daca h(n) este o funcție reala, atunci este o funcție para si este o funcție impară.

Unul din cele mai simple filtre FIR este cel cu fază liniară. Numai filtrele FIR pot fi

proiectate a avea fază liniară. Se demonstrează că un filtru FIR are fază liniară, dacă și numai

dacă răspunsul la impuls, h[k] satisface condiția:

, (2.11)

relație cunoscută și sub numele de condiția de liniaritate a lui Gibbs.

Filtrele pentru care este îndeplinită condiția de simetrie sunt

utilizate, în general, pentru filtrare propriu-zisă, pe când cele pentru care este îndeplinită

condiția de asimetrie sunt utilizate în aplicații cu defazare (integrator,

diferențiator, transformator Hilbert).[www.2]

Metode de aproximare a filtrelor FIR

Metodele de aproximare ale funcției de transfer cel mai frecvent folosite în cazul filtrelor FIR

sunt:

1) metoda ferestrelor de timp;

2) metoda eșantionării în frecvență;

3) metoda optimală.

1) Metoda Ferestrelor

Etapele de proiectare în cazul metodei ferestrelor sunt:

a. Specificarea răspunsului în frecvență dorit, notat , atenuarea în banda de

oprire, atenuarea în banda de trecere și frecvențele capetelor de bandă. De obicei răspunsul

dorit se consideră a fi răspunsul filtrului ideal de acel tip;

b. Obținerea răspunsului la impuls prin calcularea transformatei Fourier inverse:

(2.12)

Pentru filtrele selective de frecvență expresia pentru este data in Tabelul 1:

Tabelul 1 – Răspunsurile ideale la impuls pentru filtre uzuale.

În general, răspunsul la impuls este de durată infinită și, pentru a se obține un filtru FIR, acesta trebuie trunchiat. Pentru un filtru FIR de lungime M trunchierea se face la , ceea ce este echivalent cu multiplicarea lui cu o „funcție fereastră” de lungime M, notată cu , avand transformata Fourier .

c. Se selectează funcția fereastră prin a cărei folosire se satisfac specificațiile filtrului, apoi se determină numărul de coeficienți ai filtrului folosind relațiile aproximative specificate în Tabelul 2 (relațiile dintre lățimea benzii de tranziție și lungimea filtrului).

d. Se obtin valorile lui pentru funcția fereastră aleasă și valorile coeficienților

filtrului FIR, dupa relația:

(2.13)

Efectele trunchierii în timp se manifestă în domeniul frecvență prin apariția unor ripluri în banda de trecere și în banda de oprire, precum și o bandă de tranziție de lățime nenulă. În tabelul 2 sunt prezentați diverși parametri ai ferestrelor utilizate în proiectare.[www.2]

Tabelul 2 – Parametrii ferestrelor de timp utilizate pentru proiectarea filtrelor FIR

2) Metoda eșantionării în frecvență

Această metodă permite proiectarea filtrelor FIR nerecursive pentru filtre standard (FTJ, FTS, FTB, FOB) și filtre cu răspuns în frecvență arbitrar. De asemenea poate fi folosită și pentru proiectarea filtrelor FIR recursive.

Se poate specifica următorul set de frecvențe, egal spațiate, în care se specifică răspunsul în frecvență, pentru filtre de tipul I sau , pentru pentru filtre de tipul II.

, pentru M = impar (2.14)

pentru M = par

Se determină coeficienții răspunsului la impuls al filtrului FIR pornind de la aceste specificații în frecvență, egal decalate. Este de dorit să se optimizeze cerințele în frecvență în banda de tranziție a filtrului.[www.2]

Răspunsul în frecvență al unui filtru FIR este dat de relația:

(2.15)

Funcția de fază zero a filtrului proiectat va fi:

(2.16)

unde: (2.17)

Figura 11 – Răspunsul de fază zero al filtrului dorit și al celui real

Dacă este real, se observă ca eșantioanele în frecvență satisfac proprietatea de simetrie:

(2.18)

Această condiție împreună cu cea pentru face ca numărul de puncte în care se precizează sa se reduca la daca M este impar si daca M este par.

Exista patru situații posibile:

1. simetric,

2. simetric,

3. antisimetric,

4. antisimetric,

Pentru fiecare situație se stabilește relația pentru răspunsul la impuls.

Avantajul metodei eșantionării în frecvență constă în structura de eșantionare eficientă atunci când multe din eșantioanele răspunsului de modul în frecvență sunt zero. În scopul minimizării erorii se pot utiliza 1-3 eșantioane suplimentare situate în banda de tranziție.

3) Metoda optimală

Aproximarea de tip Cebîșev este văzută ca un criteriu de proiectare optim, în sensul că

eroarea de aproximare ponderată dintre răspunsul în frecvență dorit și cel obținut este întinsă

uniform peste banda de trecere și cea de oprire și apoi se minimizează eroarea maximă.

Această aproximare poate utiliza metoda de schimb Remez sau metoda celor mai mici pătrate.

[www.2]

Sinteza Filtrelor cu Răspuns Infinit la Impuls (IIR)

Noțiuni teoretice

Caracterizarea filtrelor cu răspuns infinit la impuls (IIR)

Un filtru digital IIR (acronimul de la Infinite Impulse Response) poate fi descris prin una

din relațiile:

(2.19),

(2.20),

(2.21)

unde este răspunsul la impuls al filtrului, teoretic infinit ca durată, iar și

coeficienții filtrului. Tehnicile de proiectare a unui filtru IIR se bazează pe conversia unui

filtru analogic într-unul digital.[www.3]

Un filtru analogic poate fi descris prin:

1. Functia de transfer:

(2.22)

unde si sunt coeficienții filtrului analogic.

2. Răspunsul la impuls, legat de funcția de transfer prin transformata Laplace:

, (2.23)

3. Ecuația diferențială liniară cu coeficienți constanți:

(2.24)

unde și reprezintă intrarea, respectiv ieșirea filtrului.

Fiecare din aceste trei reprezentări ale unui filtru analogic conduce la metode diferite de convertire a filtrului analogic în domeniul discret. Un filtru IIR stabil nu poate avea fază liniară.

La proiectarea filtrelor IIR se specifică doar caracteristica de amplitudine, ceea ce nu înseamnă că faza nu este importantă. Deoarece faza și amplitudinea sunt în strânsă legătură, se specifică caracteristica de amplitudine și se acceptă răspunsul în fază obținut prin metodologia respectivă. Un filtru IIR este cu reacție și deci este necesar un număr mai mic de coeficienți decât în cazul filtrelor FIR.

Panta în banda de tăiere poate fi mult mai abruptă decât în cazul filtrelor FIR pentru un același ordin. În schimb, filtrele IIR pot fi instabile și performanțele sale pot fi ușor degradate ca urmare a cuantizării mărimilor ce intervin în calculul răspunsului filtrului.[www.3]

Proiectarea filtrelor IIR

Proiectarea unui filtru IIR cuprinde trei etape importante:

1) Elaborarea specificațiilor filtrului;

2) Determinarea parametrilor filtrului pentru a satisface specificațiile;

3) Realizarea filtrului numeric printr-o structură specifică.

În principiu, nu este nici o dificultate să se proiecteze un filtru analogic având anumite specificații. O abordare utilă în proiectarea filtrelor discrete IIR este de a modela sistemul dorit ca un filtru analogic și apoi să se convertească prin anumite metode, în forma discretă. Se va obține un sistem analogic descris prin funcția de sistem H(s), ce constituie “un prototip" pentru filtrul digital ce trebuie implementat ca sistem discret descris prin funcția de sistem H(z).

Ca și în cazul filtrelor cu răspuns finit la impuls, primul pas este specificarea caracteristicilor filtrului. Pentru exemplificare se prezintă în figura 12 caracteristica de amplitudine a unui FTB.

Figura 12 – Caracteristica de frecvență a unui FTB

Pentru specificarea răspunsului în amplitudine, , se utilizează următorii parametri:

– eroarea permisă în B.T.

– deviația din B.T.

– deviația din B.O.

– frecvențele de margine din B.T.

– frecvențele de margine din B.O.

Deviațiile din B.T. și B.O. pot fi date direct exprimate în unități de măsură corespunzătoare semnalului (V, A, etc) sau în dB, când sunt definite astfel:

(2.25)

(2.26)

Pasul următor este cel al aproximării sau al calculului coeficienților filtrului. Există mai multe metode de aproximare a filtrelor IIR:

A. Sinteza plecându-se de la un filtru analogic prototip, prin:

a) metoda invarianței răspunsului la impuls;

b) metoda transformării biliniare;

c) metoda alocării polilor și zerourilor;

d) metoda transformării de frecvență;

e) metoda celor mai mici pătrate.

B. Sinteza directă, printr-un procedeu asistat de calculator; Se vor prezenta doar metoda invarianței răspunsului la impuls și metoda transformării biliniare deoarece sunt considerate cele mai utilizate metode de transformare a funcției H(s) în H(z) .[www.3]

Metode ale aproximării sau al calcului coeficienților filtrelor IIR

1) Metoda invarianței răspunsului la impuls

Proiectarea prin această metodă are la bază prezentarea următoare: răspunsul la impuls al filtrului digital IIR , h[n] , trebuie să fie egal cu răspunsul la impuls al filtrului analogic, eșantionat, adică:

, , (2.27)

Aplicând această relație, se arată că, dacă funcția de transfer a filtrului analogic este:

(2.28)

unde pk sunt polii filtrului analogic (poli distincți) și kc coeficienții filtrului, atunci funcția de

transfer a filtrului digital este de forma:

(2.29)

Se observă că filtrul digital are polii la

Cu expresia anterioara a funcției de transfer, un filtru IIR se realizează ușor ca un banc paralel de filtre cu un singur pol. În cazul în care h[n] are coeficienți reali, dacă unii din poli au valori complexe, ei apar în perechi complex conjugate și se combină spre a forma un filtru de ordinul doi cu coeficienți cu reali. În consecință filtrul rezultant poate fi realizat ca un banc paralel de filtre cu doi poli. Relația funcției de transfer poate fi generalizată și pentru situația în care polii sunt multipli.

Pașii ce trebuie parcurși în proiectarea filtrelor cu răspuns finit la impuls IIR folosind metoda invarianței răspunsului la impuls sunt:

a) se determină funcția de transfer a filtrului analogic care satisface specificațiile filtrului digital dorit;

b) se dezvoltă H(s) în fracții simple;

c) se obține transformata Z pentru fiecare fracție simplă;

d) se obține H(z) ca sumă de funcții de transfer H(z) cu polii simpli sau dubli;

Metoda invarianței răspunsului la impuls este potrivită pentru proiectarea filtrelor FTJ, FTB și, datorită fenomenului de aliasing, este inadecvată pentru proiectarea FTS și FOB.[www.3]

2) Metoda transformării biliniare

Metoda transformării biliniare este una din cele mai eficiente metode de proiectare a filtrelor IIR, obținându-se un răspuns în frecvență care aproximează cât mai fidel filtrul analogic din care provine și în același timp proiectarea este simplă.

Transformarea biliniară transformă axa jΩ în cercul unitate doar o singură dată, evitându-se astfel fenomenul de aliasing. În plus, toate punctele din semiplanul stâng trec în interiorul cercului unitate în planul Z și toate punctele din semiplanul drept al planului S trec în puncte corespunzătoare din exteriorul cercului unitate din planul Z.

Se consideră un filtru liniar analogic pentru care funcția de transfer este:

(2.30)

Sistemul este caracterizat și prin ecuația diferențială:

(2.31)

Pornind de la această ecuație se obține funcția de transfer a filtrului digital ca fiind:

(2.32)

Relația care face trecerea de la planul s la planul z este:

(2.33)

Aceasta este numită transformarea biliniară.

Pentru a studia caracteristicile transformăriii biliniare se înlocuiește (2.34) si (2.35) in relatia anterioara si se obtine:

(2.34) si (2.35),

(2.36),

(2.37)

Dacă r < 1 atunci < 0 și dacă r > 1 atunci > 0. Deci semiplanul stâng din S trece în interiorul cercului unitate și semiplanul drept al planului S în exteriorul cercului unitate în planul Z dupa cum este ilustrat in Figura 13:

Figura 13 – Corespondența dintre planul S și planul Z prin transformarea biliniară

Dacă r = 1 atunci = 0 si

(2.38)

sau echivalent

(2.39)

Se observă că întregul domeniu pentru trece o singură dată în domeniul . La frecvențe joase conversia poate fi considerată liniară și deci distorsiunile apărute sunt neglijabile. În schimb la frecvențe mari este puternic neliniară, ceea ce duce la distorsiuni mari asa cum este reprezentata in figura 14:

Figura 14 – Relația între frecvența analogică și cea digitală în transformarea biliniară

De asemenea, se observă că s trece în și, în consecință, un FTJ cu un singur pol ce are un zerou s conduce la un filtru digital cu un zerou în .

Pașii care trebuie parcurși în proiectarea unui filtru digital prin metoda transformatei biliniare sunt:

1) Se specifică frecvențele caracteristice (frecvențe discrete).

2) Se calculează frecvența corespunzătoare filtrului analogic, pentru a se înlătura distorsinile cauzate de compresia axei , cu relația:

(2.40)

3) Se calculează funcția de transfer a unui filtru analogic H(s) cu specificațiile de la punctul anterior.

4) Se calculează funcția de transfer H(z) a filtrului digital dorit.

5) Se implementează H(z), de preferință prin folosirea unor secțiuni de ordin inferior.

Avantajele filtrelor IIR

Avantajul principal al filtrelor IIR față de filtrele FIR constă în faptul că ordinul filtrului obținut pentru a îndeplini anumite specificații cerute este mult mai mic decât cel corespunzător unui filtru FIR.

Deși filtrele IIR au fază neliniară, prelucrarea datelor în MATLAB este în cele mai multe cazuri off-line, adică secvența de date este disponibilă înaintea filtrării, ceea ce permite utilizarea unui filtru necauzal, de fază zero (prin intermediul funcției filtfilt) care elimină distorsiunile de fază ale unui filtru IIR. În timp real această posibilitate nu există.[www.3]

Fs = 100 * 10^3;

Wp = [20500 23500] /(Fs/2);

Ws = [19000 25000] /(Fs/2);

Rp = 0.25;

Rs = 45;

[n, Wp] = ellipord(Wp, Ws, Rp, Rs);

[b, a] = ellip(n, Rp, Rs, Wp);

freqz(b, a, Fs/2, Fs);

pause;

A = 3;

t = 0 : 1/Fs : 1;

f = 15*10^3;

u=A*cos(2*pi*f*t+pi/4)+rand(size(t));

U = fft(u);

y = filter(b, a, u);

Y = fft(y);

Ff = 1 : 1 : Fs/2;

subplot(211);

plot(Ff(1:Fs/2),20*log10(abs(U(1:Fs/2))));

title('Filtru de tip FTB Eliptic');

xlabel('Frecventa (kHZ)');

ylabel('Amplitudine (dB)');

grid;

subplot(212);

plot(Ff(1:Fs/2),20*log10(abs(Y(1:Fs/2))));

title('Filtru de tip FTB Eliptic');

xlabel('Frecventa (kHZ)');

ylabel('Amplitudine (dB)');

grid;

pause; clf; stepz(b);

title('Raspunsul la intrare trepta al filtrului:');

xlabel('Timp (ms)');

ylabel('Amplitudine');

pause; impz(b);

title('Raspunsul la impuls al filtrului:');

xlabel('Timp (ms)');

ylabel('Amplitudine');

pause; zplane (b,a);

title('Raspunsul la impuls al filtrului:');

xlabel('Timp (ms)');

ylabel('Amplitudine');

Descrierea echipamentelor hardware și a mediilor de programare

Introducere în MATLAB

Limbajul matlab este un limbaj de nivel înalt ce permite efectuarea calculelor matematice fără a fi nevoie de implementarea algoritmilor de calcul într-un limbaj de nivel jos.Limbajul matlab permite realizarea calculelor matriciale printr-o formă simplă, apropiată de reprezentarea matematică.

Limbajul matlab a fost creat de prof. Cleve B. Moler de la Universitatea din New Mexico pentru a permite un access ușor la bibliotecile de calcul matricial realizat în Fortran.

Limbajul matlab este un limbaj interpretat, având nevoie de un interpretor pentru efectuarea propriu-zisă a calculelor. Cel mai răspândit interpretor este suita de programe MATLAB, oferit de firma MathWorks, o suită comercială, care pe lângă interpretor oferă și o sumedenie de biblioteci (numite toolbox-uri) pentru o gamă largă de domenii, printre care și procesarea semnalelor sau a imaginilor. În afară de interpretor, MATLAB integrează și toate uneltele necesare pentru crearea și rularea programelor: o interfață grafică ușor de folosit, un editor dedicat, un spațiu de lucru care oferă toate informațiile necesare despre datele folosite și interfețe pentru afișarea rezultatelor și interacțiunea cu utilizatorul.

Implementarea în MATLAB a filtrelor FIR

A. Pentru proiectarea filtrelor FIR cu ajutorul metodei ferestrelor și a eșantionării în

frecvență se folosesc următoarele funcții:

fir1 implementează metoda clasică a proiectării filtrelor FIR cu fază liniară prin metoda ferestrelor. Se pot proiecta filtre FTJ, FTS, FTB și FOB.

fir2 reprezintă o combinție dintre metoda ferestrelor și cea de eșantionare în frecvență, fereastra aleasă implicit fiind fereastra Hamming.

filter filtrează secvențele cu un filtru FIR sau un filtru IIR.

B. Pentru proiectarea filtrelor FIR cu ajutorul metodei optimale se folosesc următoarele funcții:

fircls1 are la bază proiectarea filtrelor FIR cu fază liniară tip FTJ și FTS, având la bază metoda celor mai mici pătrate.

firls are la bază proiectarea filtrelor FIR cu fază liniară prin metoda celor mai mici pătrate.

remezord estimează ordinul unui filtru FIR prin metoda optimală, utilizând algoritmul Parks-McClellan.

remez proiectează un filtru FIR cu fază liniară utilizând metoda Parks-McClellan, ce are la bază algoritmul Remez. Filtrul proiectat este optimal în sensul că eroarea maximă între răspunsul în frecvență dorit și răspunsul în frecvență obținut este minimizată.

Exemplu:

Se consideră un semnal cu frecvențele f1,f2…f5. Să se treacă semnalul eșantionat cu frecvența Fs= 1500Hz printr-un filtru FIR TJ descris prin vectorul amplitudinilor a = [1 1 1 0 0] și vectorul frecvențelor normalizate f = [0.1 0.2 0.3 1]. Să se reprezinte grafic caracteristicile de frecvență ale filtrului, stepz și impz.

Implementarea în MATLAB a filtrelor IIR

Tehnicile clasice de proiectare a unui filtru IIR includ:

găsirea unui filtru analogic FTJ normalizat cu frecvența de tăiere 1;

translarea acestui filtru prototip în configurația de bandă dorită (FTJ->FTJ, FTJ

->FTS, FTJ->FTB, FTJ->FOB);

transformarea filtrului în domeniul discret.

A.Proiectarea unui filtru analogic prototip de tip FTJ

Tabelul 3 – Funcțiile MATLAB utilizate pentru proiectarea oricarui tip de FTJ analogic

B. Transformarea de frecvență

Al doilea pas în proiectarea unui filtru analogic este transformarea de frecvență aplicată filtrului prototip. MATLAB-ul conține funcții care transformă filtrul FTJ analogic (cu frecvența de tăiere de 1 rad/sec) într-unul FTS, FTB sau FOB având frecvențele de tăiere dorite.

Tabelul 4 – Funcțiile MATLAB utilizate pentru transformările de frecvența

După cum se observă, toate transformările de frecvență acceptă două modele de sistem: prin funcția de transfer și prin ecuațiile de stare. Pentru cazul FTB și FOB și , unde și reprezintă limita inferioară, respectiv limita superioară a benzii.

Funcțiile ce realizează transformarea de frecvență utilizează substituția variabilei frecvență. În cazul lp2bp și în cazul lp2bs este o substituție de ordinul doi astfel încât ordinul filtrului obținut este de două ori mai mare decât cel al filtrului prototip. Pentru lp2lp și lp2hp ordinul filtrului sintetizat este același ca al filtrului prototip.

C. Discretizarea filtrului

Al treilea pas, în cazul în care se folosește tehnica bazată pe un filtru analogic prototip,este discretizarea în domeniul timp. Există două metode mai des folosite:

-metoda invarianței răspunsului la impuls;

-metoda transformării biliniare.

Tabelul 5 – Funcțiile MATLAB utilizate pentru discretizarea filtrului

Tabelul 6 – Funcțiile MATLAB complete utilizate pentru proiectarea unui filtru digital

Tabelul 7 – Funcțiile MATLAB utilizate pentru a determina ordinul minim al unui filtru

Exemplu:

Să se proiecteze un FTB eliptic cu următoarele specificații:

– banda de trecere 20.5 – 23.5 kHz;

– banda de oprire 0 – 19kHz, 25 – 50 kHz;

– atenuarea maximă în banda de trecere de 0.25dB;

– atenuarea în banda de oprire 45dB;

Să se reprezinte grafic caracteristicile de frecvență ale filtrului, stepz , impz și zplane.

Informatii generale despre Placa dsPICPRO4

Sistemul de dezvoltare dsPICPRO4 este o placa de dezvoltare cu toate caracteristicile pentru microcontrolarele cu Microcip dsPIC. Este proiectată pentru a permite studenților si inginerilor să testeze și sa exploreze mai ușor capacitățile microcontrolarelor dsPIC. De asemenea permite microcontrolarelor dsPIC să fie conectate cu circuite externe si cu o varietate de dispozitive periferice. Utilizatorul poate deci sa se concentreze numai pe dezvoltarea software-ului.

Figura 15 ilustreaza placa de dezvoltare. Langă fiecare componenta de pe placa cu circuite printate, atât in partea de sus cât si în partea de jos o sa întâlnim numeroase notații. Acestea descriu conexiunile microcontrolarului, modul de operare și asigura mai multe informații utile astfel încat nu mai este nevoie de alte scheme suplimentare.

Figura 15 – Placa de dezvoltare dsPICPRO4

Elementele component ale plăcii dsPICPRO4

Comutatoare

Sistemul de dezvoltare dsPICPRO4 conține un număr de dispozitive periferice. Pentru activarea lor înaintea programării, jumperii sau comutatoarele trebuie să fie corect setate. Comutatoarele sunt dispozitive mecanice folosite pentru a stabili sau a întrerupe conexiunea intre doua contacte. Sistemul de dezvoltare dsPICPRO4 are cinci perechi de comutatoare:

Comutatorul SW1 activează/dezactivează LED-ul;

Comutatorul SW2 activează/dezactivează LCD, GLCD-BCK, CAN, RS-485 și RTC-INT;

Comutatorul SW3 activează/dezactivează controlerul touch panel-ului și ethernet-ului;

Comutatorul SW4 activează/dezactivează MMC-CS, DAC, SPI și I2C;

Comutatorul SW5 activează/dezactivează rezistorii PORTB_HIGH.

Figura 16 – Grupul de comutatoare SW5

Jumperi

Similar, jumperii sunt folosiți pentru a stabili sau a întrerupe conexiunea dintre două puncte. Sub capacul de plastic al jumper-ului, se află un contact de metal care stabileste conexiunea când jumper-ul este pus peste doi pini.

Jumper-ul este folosit ca un selector intre două conexiuni posibile ale unui conector de trei pini. Cum este ilustrat in figura 17, pinul din mijoc al conectorului poate fi conectat cu pinul din stânga sau din dreapta, în funcție de poziția jumper-ului.

Figura 17 – Posibilitățile de conectare ale jumper-ului.

Soket-ul MCU

Placa dsPICPRO4 vine cu un microcontroler dsPIC30F6014A de 80 de pini in TQFP, lipit de placuta MCU. Utilizatorul poate să înlature această plăcuță MCU și să pună alta cu un microcontroler de 64 sau 80 de pini.

Pinii microcontrolerului sunt orientati periferic, așa cum este ilustrat in figura 4. Toate porturile au conexiuni directe la conectorii de tip Direct Port Access 2×5 (10-pini). Acești conectori sunt folosiți in mod normal pentru a conecta dispozitive periferice externe la placă sau ca puncte unde se poate conecta o sonda logică digitală.

Toți pinii portului sunt conectați la LED-uri si la butoane, care permit monitorizarea si testarea stării digitale a pinilor.

Unii dintre pini sunt conectați la alte periferice cum ar fi senzorul de temperatură al circuitului DS1820, circuitul de comunicare RS-232, circuitul de comunicare RS-485, LCD etc.

Figura 18 – Ilustrarea Soket-ului MCU

Alimentare

Placa dsPICPRO4 poate folosi una sau doua surse de energie – surse normale de PC prin cablu USB (de obicei) si surse de energie externe ( adaptor de energie extern AC/DC). Când se va folosi o sursa de energie prin cablu USB, jumper-ul J10 ar trebui sa fie poziționat in partea dreaptă.

Când se va folosi o sursa de energie externa, placa dsPICPRO4 produce +5V folosind regulatorul de voltaj MC34063A. Sursa de energie externa poate să fie AC sau DC, în timp ce voltajul sursei de energie variază de la 9V la 32V. Jumper-ul J10 ar trebui să fie poziționat in partea stângă.

Figura 19 – Ilustrarea Surselor de alimentare

Conector USB 2.0 (USB 2.0 Programmer)

Nu este nevoie sa folosim echipament extern in timpul progrămarii deoarece sistemul de dezvoltare dsPICPRO4 are propriul conector USB 2.0 integrat. Tot ce trebuie făcut este sa conectăm sistemul la PC folosind cablul USB. Apoi, se va încărca programul in microcontroler prin software-ul de programare dsPICflash care vine odată cu placa dsPICPRO4.

Figura 20 – Conectorul integrat USB 2.0

MIKROICD (Depanator integrat pentru hardware)

MikroICD este un instrument folosit pentru depanarea in timp real la nivel de hardware. Depanatorul MikroICD permite executarea unui program pe un microcontroler dsPIC si observarea valorilor variabile, registrelor funcțiilor speciale (SFRs) si EEPROM în timp ce rulează programul.

MikroICD poate fi folosit cu orice compilator dsPIC proiectat de MikroElektronika. Tot ce trebuie făcut este sa se selecteze tipul structurii (Release sau ICD Debug), crearea unui proiect, programarea MCU-ului și apoi rularea depanatorului.

Depanatorul mikroICD utilizeaza programatorul integrat pentru a comunica cu compilatorul și foloseste aceleași comenzi ca un depanator normal:

Lansarea Depanatorului [F9]

Pornire/Pauza Depanator [F6]

Comutare între punctele de pauza [F5]

Pornirea cursorului [F4]

Intrare (Step Into) [F7]

Sărire (Step Over) [F8]

Golire RAM [F2]

Oprire Depanator [Ctrl+F2]

Interfața serială de tip RS-232

Interfața de tip RS-232 permite transferul de date point-to-point. Este de obicei folosită în aplicațiile de achiziție de date pentru a transfera date între microcontroler și PC. Deoarece nivelele de voltaj dintre microcontroler și PC nu sunt direct compatibile între ele, un convertor de nivel cum ar fi MAX232, trebuie utilizat. Pentru a oferi un sistem mai flexibil, microcontrolerul este conectat la convertorul MAX232 prin jumperii J12, J13 pentru RS-232A si respectiv jumperii J14, J15 pentru RS-232B. Jumperii J12 si J13 sunt folosiți pentru a conecta liniile Rx și Tx la pinii RF2 SI RF3, în timp ce jumperii J14 si J15 sunt folosiți pentru a conecta liniile Rx si Tx la pinii RF4 și RF5.

Figura 21 – Interfața serială de tip RS-232

Interfața ETHERNET

Ethernet-ul este cea mai folosită tehnologie de rețea locală (LAN) utilizată in zilele noastre. Deasupra stratului fizic, stațiile Ethernet comunică reciproc trimițându-și pachete de date, una, alteia.

Fiecărei stații îi este atribuită o singură adresă MAC de 48-biți care este folosită pentru a specifica atât destinația cât și sursa fiecărui pachet de date.

Ethernet-ul are un controler ENC28J60 10BASE-T de 28-pini incluzand Media Access Control și Physical Layer (MAC & PHY), Buffer RAM de 8KB și comunicare printr-o Interfața Serial Periferică (SPI).

Figura 22 – Portul Ethernet

Termometrul Digital DS1820

Termometrul digital DS1820 este bine structurat pentru măsurarea temperaturii mediului inconjurator, având o temperatură care variază între -55Co și 125Co, având o precizie de +/-0.5Co. Trebuie sa fie plasat corespunzator în soket-ul de 3 pini aflat pe placa de baza dsPICPRO4, ale cărui părți rotunde sunt orientate în sus, cum este marcat pe placa de bază (vezi figura 23). Altfel, termometrul digital DS1820 s-ar putea deteriora permanent.

Figura 23 – Termometrul digital DSI820

Convertorul Digital-Analogic

Sistemul de dezvoltare dsPICPRO4 are un convertor integrat MCP4921 de tip D/A 12-biți folosit pentru a face conversia de la digital la analog. Dupa conversie, valoarea analogă corespunzătoare apare pe conectorul CN17. Asemanator unității convertorului de tip A/D, placa de bază dsPICPRO4 activează selecția voltajului de referintă pentru operarea convertorului MCP4921. Voltajul corespunzator este selectat folosind jumper-ul J16. Operarea acestui convertor ca și comunicare cu microcontrolerul este activată de comutatoarele 2,3,4 și 6 din grupul SW4.

Figura 24 – Convertorul MCP4921

Temporizator in timp real

Cele mai multe proiecte bazate pe hardware au nevoie de un temporizator sau o sursa de întarziere. Din acesta cauză, placa de dezvoltare dsPICPRO4 este prevazută cu PCF8583P. Este un RTCC (Real Time Clock Chip) care foloseste comunicarea serială I2C pentru a face transferul de date cu microcontrolerul, având o ieșire întreruptă (intrerrupt output). Pentru a funcționa corespunzator atât întreruperea cât și liniile de comunicare de tip I2C trebuie să fie conectate la microcontroler folosind comutatorul 8 din grupul SW2 si comutatoarele 7 si 8 din grupul SW4.

Figura 25 – Temporizatorul RTCC PCF8583P

Circuitul de Comunicare RS-485

Circuitul de comunicare RS-485 activeaza transferul de date de tip point-to-point. De obicei este folosit pentru transferul între mai multe microcontrolere. Interfața de transmisie-recepție ADM485 este folosită pentru a transforma un semnal din liniile Rx și Tx ale microcontrolerului

într-un semnal diferențial la ieșirile A și B.

Placa de dezvoltare dsPICPRO4 are un singur circuit de comunicare RS-485. Pentru a oferi un sistem mai flexibil, microcontrolerul este conectat la ADM485 prin trei comutatoare (5,6 si 7) din grupul SW1. De asemenea comutatoarele sunt folosite pentru a conecta liniile microcontrolerului Rt, Rx și Tx la RS-485.

Figura 26 – Circuitul de comunicare RS-485

CAN

CAN (Controller Area Network) este o rețea serială proiectată inițial pentru industria auto, dar de asemenea a devenit un bus popular și in industria automatizării ca și in alte aplicații. CAN este un sistem de rețele de tipul two-wire, half-duplex, high-speed stabilit între microprocesoare. Rețeaua de tip Half-Duplex arată ca microcontrolerul poate primi și trimite date, dar fiecare transfer făcându-se pe rând.

Figura 27 – Ilustrarea unui CAN (Controller Area Network)

LED

Light Emitting Diodes (LEDs) sunt componente folosite in mod normal pentru a afișa starea digitală a pinilor. Placa de bază dsPICPRO4 are 67 de leduri conectate la porturile microcontrolerului:

PORTA, PORTB low, PORTB high, PORTC, PORTD low, PORTD high, PORTF, PORTG low și PORTG high. Porturile ledurilor se pot activa/dezactiva folosind comutatorul potrivit din grupul SW1.

Figura 28 – Ilustrarea LED-urilor (Light Emitting Diodes)

Butoane

Placa de bază dsPICPRO4 are 67 de butoane care pot fi folosite ca și intrări digitale la porturile microcontrolerului. De asemenea este si un buton rosu care se foloseste ca și buton de RESET.

Figura 29 – Ilustrarea butoanelor

Modul LCD de 2×16 caractere

Un modul LCD cu caractere standard este probabil cea mai folosită componentă pentru a vizualiza date. In mod normal poate afișa mesajul pe doua linii de cate 16 caractere alfabetice fiecare. Fiecare caracter este format din 5×8 pixeli. Modulul LCD comunică cu microcontrolerul printr-un bus de 4-biți.

Figura 30 – Ilustrarea modulului LCD

Modul LCD Grafic

Un modul LCD grafic (GLCD) asigură o metodă avansată pentru afișarea mesajelor vizuale. In timp ce un modul LCD poate afișa numai caractere alfabetice, un GLCD poate fi folosit pentru afișarea mesajelor sub forma de grafice sau imagini. Cel mai folosit modul LCD Grafic are o rezoluție de 128×64 pixeli. Contrastul modulului GLCD poate fi ajustat folosind potențiometrul P2 aflat in colțul din dreapta al modulului.

Figura 31 – Modulul Grafic LCD

Panou cu touch (Touch Panel)

Panoul cu touch este un panou subțire, lipicios si transparent care poate fi pus peste modulul grafic LCD. Este format din două straturi separate care formeaza o structură ”sandwich”. Este foarte sensibil la atingere astfel încât chiar și o atingere ușoara provoacă modificări ale semnalului de ieșire. Este folosit în diferite dispozitive în combinație cu modulul grafic LCD. Conectorul CN1 permite ca acest dispozitiv să fie conenctat la un controler integrat al panoului cu touch a cărui parte activă este formată din 5 tranzistori discreți. Patru comutatoare ale grupului SW3 activează sau dezactivează conexiunea dintre acest controler și RB8, RB9, RF0, RF1.

Figura 32 – Panoul cu touch

Convertor de tip A/D pentru testarea intrărilor

Placa de dezvoltare dsPICPRO4 are două potențiometre pentru a proba operația de conversie de la analog în digital (ADC). Ieșirile ambelor potențiometre variază între 0-5V. Aceste semnale de tip analog pot fi conectate simultan la doi pini cu intrări de tip analog. Jumperii J17 si J18 sunt folosiți pentru conectarea potențiometrului P3și P4 la pinii corespunzători ai MCU-ului.

Conversia A/D are multe întrebuințări. Microcontrolerul preia un semnal analog de la pinul de intrare si îl transformă într-o valuare digitală. Practic, orice semnal analog care se încadrează în limita acceptată de microcontroler poate fi măsurat. Pentru placa de bază dsPICPRO4 limita este 0-5V.

Figura 33 – Converorul de tip Analog – Digital

Conectorii portului Direct Access

Toate întrările și ieșirile pinilor microcontrolerului pot fi accesate prin conectorii (2×5) IDC-10 aflați în partea dreaptă a plăcii. Pentru fiecare port al microcontrolerului este un conector care are un port cu opt pini si incă doi pini adiționali conectați la VCC și GND.

Acesti conectori pot fi folosiți pentru a conecta sistemul la un dispozitiv extern. Daca perifericele integrate și externe folosesc acceași pini atunci, perifericele integrate trebuie deconectate de pe placa configurand jumperii corespunzatori. De asemenea conectorii pot fi folosiți pentru atasarea sondelor logice sau a altor echipamente de testare.

Figura 34 – Conectorii portului Direct Access

Card Multimedia (MMC/SD)

Cardul MMC este folosit ca un mediu de stocare a datelor pentru dispozitivele portabile. Cu ajutorul cititorului MMC se pot transfera cu ușurință date de pe cardul MMC in calculator. Microcontrolerul de pe placa de bază dsPICPRO4 comunică cu cardul Multimedia prin comunicații de tip SPI.

Pentru a activa cardul MMC trebuie pornite comutatoarele 1,4,5 si 6 din grupul SW4. În acest fel, Cipul Selector al MMC-ului (MMC-CS) și liniile de comunicații SPI (SCK, MISO și MOSI) sunt conectate cu microcontrolerul. Voltajul de funcționare al plăcii de baza dsPICPRO4 este de 5V DC, in timp ce pentru cardul MMC este de 3.3V DC. Din acest motiv, pe placa de bază se afla un regulator de voltaj inclus cu cardul MMC (MC33269DT-3.3). Liniile de date care conecteaza microcontrolerul și cardul MMC trebuie de asemenea ajustate la 3.3V

Figura 35 – Cardul Multimedia (MMC/SD)

Rezultatului experimental și funcționarea instalației

Bibliografie

Bibliografia va fi ordonată alfabetic dupa eticheta fiecărei element (de ex. DOOM05 în lista de mai jos este o etichetă). Etichetele materialelor consultate vor fi formatate folosind:

primele litere ale primului autor urmate de cele două cifre semnificative ale anului apariției materialului, sau

dintr-un acronim popular al lucrării respective, urmat din nou de cele două cifre semnificative ale anului apariției.

[DOOM05] – Dicționarul ortografic, ortoepic și morfologic al limbii române, Editura Univers Enciclopedic, București, 2005

[PNS12] – Material Curs: Prelucararea numerica a semnalelor, Profesor Dan Popescu, Craiova, 2012

Referințe web

[www.1] – Ioan P. MIHU – Procesarea Numerică a Semnalelor, disponibil on-line la adresa:

http://inginerie.ulbsibiu.ro/cat.iee/mat/pns_Cap01.pdf

[www.2] – Sinteza Filtrelor cu Răspuns Finit la Impuls, disponibil on-line la adresa:

http://telecom.etc.tuiasi.ro/pns/laborator/lucrarea%207%20sinteza%20filtrelor%20fir.pdf

[www.3] – Sinteza Filtrelor cu Răspuns Infinit la Impuls, disponibil online la adresa:

http://telecom.etc.tuiasi.ro/pns/laborator/lucrarea%208%20sinteza%20filtrelor%20iir.pdf

Bibliografie

Bibliografia va fi ordonată alfabetic dupa eticheta fiecărei element (de ex. DOOM05 în lista de mai jos este o etichetă). Etichetele materialelor consultate vor fi formatate folosind:

primele litere ale primului autor urmate de cele două cifre semnificative ale anului apariției materialului, sau

dintr-un acronim popular al lucrării respective, urmat din nou de cele două cifre semnificative ale anului apariției.

[DOOM05] – Dicționarul ortografic, ortoepic și morfologic al limbii române, Editura Univers Enciclopedic, București, 2005

[PNS12] – Material Curs: Prelucararea numerica a semnalelor, Profesor Dan Popescu, Craiova, 2012

Referințe web

[www.1] – Ioan P. MIHU – Procesarea Numerică a Semnalelor, disponibil on-line la adresa:

http://inginerie.ulbsibiu.ro/cat.iee/mat/pns_Cap01.pdf

[www.2] – Sinteza Filtrelor cu Răspuns Finit la Impuls, disponibil on-line la adresa:

http://telecom.etc.tuiasi.ro/pns/laborator/lucrarea%207%20sinteza%20filtrelor%20fir.pdf

[www.3] – Sinteza Filtrelor cu Răspuns Infinit la Impuls, disponibil online la adresa:

http://telecom.etc.tuiasi.ro/pns/laborator/lucrarea%208%20sinteza%20filtrelor%20iir.pdf

Similar Posts