ckertesz mivanovici pds

Upload: mirela-marinescu

Post on 05-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 CKertesz MIvanovici PDS

    1/73

    UNIVERSITATEA TRANSILVANIA BRAOV

    KERTSZ Csaba-Zoltn Laureniu-Mihail IVANOVICI

    PROCESAREA DIGITAL A SEMNALELOR

    NDRUMAR DE LABORATOR

    2009

  • 8/2/2019 CKertesz MIvanovici PDS

    2/73

  • 8/2/2019 CKertesz MIvanovici PDS

    3/73

    Cuvnt nainte

    n tehnica electronic actual, n care o mare parte a semnalelor este transferat n do-meniul numeric (digital), procedeele de prelucrare digital a semnalelor au o deosebitimportan. Din aceast perspectiv la formarea specialitilor din domeniul inginerieielectronice i a telecomunicaiilor, dar i a celor de la spscializrile din domeniul de cal-

    culatoare i tehnologia informaiei, planul de nvmnt prevede discipline sau modulede discipline, care au ca subiect prelucrarea digital a semnalelor, care are abreviereabine cunoscut DSP (Digital Signal Processing).

    ndrumarul de laborator de fa se adreseaz n primul rnd studenilor de la progra-mele de studii ce aparin domeniilor sus-menionate: Electronic aplicat, Tehnologii isisteme de telecomunicaii, Calculatoare, Tehnologia informaiei, Inginerie electric icalculatoare, toate fiind studii de licen la Facultatea de Inginerie Electric i tiinaCalculatoarelor, la Universitatea Transilvania din Braov.

    Lucrrile incluse n prezentul ndrumar se desfoar n mediul software Matlab.Considernd c studenii nu au avut ocazia s cunoasc n prealabil acest mediu

    software, prima lucrare (care poate avea o extensie elastic de 2-3 edine de laborator,n funcie de gradul de cunoatere i/sau de avansare a formaiei de lucru) constituieo iniiere de baz, dac este cazul o iniiere mai avansat, n Matlab prin exerciii iactivitate individual supravegheat.

    n continuare lucrrile au cursivitatea de a parcurge cteva din cele mai importanteprocedee de prelucrare digital de semnale: eantionarea, cuantizarea, convoluia, co-relaia, autocorelaia, analiza n frecven a semnalelor (domeniul Z, DFT, FFT), filtredigitale (analiz, sintez). Lucrrile sunt concepute astfel nct studenii s aib po-sibilitatea de a lucra individual, s cunoasc gradual noiunile, s aib cte un scurtbreviar teoretic i s ntocmeasc referatul de lucrarare.

    Cu sperana c ndrumarul de laborator de fa va fi util (lucrrile de laboratorau fost rulate de mai muli ani), vom fi bucuroi s primim observaii, sugestii dembuntire pentru a crete gradul de impact i de profunzime a conotinelor cedorim a fi transmise studenilor.

    Autorii

    i

  • 8/2/2019 CKertesz MIvanovici PDS

    4/73

  • 8/2/2019 CKertesz MIvanovici PDS

    5/73

    Cuprins

    Cuprins iii

    1 Introducere n Matlab / Octave 1

    1.1 Interpretarea programelor matlab . . . . . . . . . . . . . . . . . . . . . 21.2 Variabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Funcii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5 Grafice n Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.6 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    2 Discretizarea semnalelor 152.1 Semnale analogice i procesarea digital . . . . . . . . . . . . . . . . . . 152.2 Eantionarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.3 Cuantizarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    3 Schimbarea ratei de eantionare 213.1 Importana frecvenei de eantionare . . . . . . . . . . . . . . . . . . . 213.2 Creterea ratei de eantionare . . . . . . . . . . . . . . . . . . . . . . . 223.3 Scderea ratei de eantionare . . . . . . . . . . . . . . . . . . . . . . . . 233.4 Schimbarea ratei de eantionare cu un factor raional . . . . . . . . . . 233.5 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4 Analiza spectral a semnalelor 254.1 Transformata z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2 Rspunsul n frecven al unui filtru . . . . . . . . . . . . . . . . . . . . 284.3 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    5 Transformata Fourier Rapid 295.1 Transformata Fourier Discret . . . . . . . . . . . . . . . . . . . . . . . 295.2 Algoritmul FFT cu decimare n timp . . . . . . . . . . . . . . . . . . . 295.3 Algoritmul FFT cu decimare n frecven . . . . . . . . . . . . . . . . . 315.4 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    iii

  • 8/2/2019 CKertesz MIvanovici PDS

    6/73

    6 Filtrarea semnalelor 336.1 Noini teoretice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.2 Filtrarea n matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    6.3 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    7 Proiectarea filtrelor n Matlab 377.1 Filtre FIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377.2 Filtre IIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387.3 Exerciii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    8 Filtrul adaptat la semnal 438.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    9 Analiza statistic a semnalelor 479.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    10 Corelaia semnalelor 5310.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5310.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5510.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    11 Dreapta de regresie 5911.1 Breviar teoretic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5911.2 Desfurarea lucrrii . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6011.3 Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    Bibliografie 65

    iv

  • 8/2/2019 CKertesz MIvanovici PDS

    7/73

    Mulumiri

    Autorii doresc s mulumeasc domnului profesor Iuliu Szkely, conductorul ca-tedrei de Electronic i Calculatoare, din cadrul Facultii de Inginerie Electric itiina Calculatoarelor, Universitatea Transilvania din Braov, pentru sprijinul acor-

    dat pentru publicarea lucrrii de fa.De asemenea autorii mulumesc studenilor care au contribuit la mbuntireaconinutului acestui ndrumar de laborator, venind cu ntrebri i comentarii pertinentede-a lungul anilor.

  • 8/2/2019 CKertesz MIvanovici PDS

    8/73

  • 8/2/2019 CKertesz MIvanovici PDS

    9/73

    Lucrarea 1

    Introducere n Matlab / Octave

    Limbajul matlab este un limbaj de nivel nalt ce permite efectuarea calculelor mate-matice fr a fi nevoie de implementarea algoritmilor de calcul ntr-un limbaj de nivel

    jos. Limbajul matlab a fost creat de prof. Cleve B. Moler de la Universitatea din NewMexico pentru a permite un access uor la bibliotecile de calcul matricial realizat nFortran. Limbajul matlab permite realizarea calculelor matriciale printr-o form sim-pl, apropiat de reprezentarea matematic [9], chiar i denumirea matlab provine dinMATrix LABoratory.

    Limbajul matlab este un limbaj interpretat, avnd nevoie de un interpretor pentruefectuarea propriu-zis a calculelor. Cel mai rspndit interpretor este suita de pro-grame MATLAB, oferit de firma MathWorks1, o suit comercial, care pe lng in-terpretor 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 uor de folosit, un editor dedicat, un spaiu de lucru care ofer toateinformaiile necesare despre datele folosite i interfee pentru afiarea rezultatelor iinteraciunea cu utilizatorul.

    O variant de interpretor matlab open-source este octave2 oferit prin intermediulproiectului GNU. Acest program este mai limitat dect varianta comercial, mai alesla capitolul de toolbox-uri oferite, existnd totui o serie de toolbox-uri realizate sublicena GPL colecionate prin proiectul octave-forge3. Nu exist nici mediu integratca n cazul lui Matlab, avnd nevoie de programe auxiliare, cum ar fi un editor de texte

    de uz general pentru scrierea programelor sau gnuplot pentru afiarea rezultatelor.Dei cele dou programe nu sunt 100% compatibile, marea majoritate a programelorcreate ntr-unul din aceste programe pot fi rulate fr probleme i n cellalt. Difereneleimportante, cum ar fi dotarea cu mai multe cu toolbox-uri a Matlabului, se poate sesizanumai n cazul problemelor specializate. Pentru realizarea lucrrilor de laborator dinacest ndrumar sunt suficiente toolbox-urile de procesare a semnalelor i imaginilor

    1http://www.mathworks.com2http://www.gnu.org/software/octave3http://octave.sourceforge.net

    1

  • 8/2/2019 CKertesz MIvanovici PDS

    10/73

    1. Introducere n Matlab / Octave

    oferite de ambele variante de interpretor matlab.

    1.1. Interpretarea programelor matlab

    MATLAB este un program ce dispune de o interfa grafic care integreaz ctevaferestre, printre care o fereastr Command Window, care ofer o linie de comandfolosit pentru executarea scripturilor matlab. Octave pe de alt parte este un program

    n linie de comand ce poate fi executat ntr-un terminal cu ajutorul comenzii octave,dup care prompterul terminalului va fi nlocuit cu unul similar cu acela din MATLAB.

    Linia de comand este caracterizat de un prompter care n cazul programuluiMATLAB este de forma:

    >>

    iar n cazul programului Octave:

    octave:1>

    n cele ce urmeaz acest prompter va fi indicat cu semnul:

    Dup acest prompter se pot introduce comenzile matlab. Comanda introdus esteinterpretat, dup care este afiat rspunsul (dac este cazul). De exemplu, comandapwd va afia calea ctre directorul curent:

    pw d

    an s =

    /home/user

    Rularea programelor matlab se face n directorul curent. De aceea directorul curenttrebuie schimbat la directorul de lucru al utilizatorului (n care se afl programelematlab ale acestuia):

    cd dsp

    pw d

    an s =

    /home/user/dsp

    Prin intermediul aceastei linii de comand pot fi executate toate operaiile oferite delimbajul matlab (care este un limbaj bazat pe linii de cod tocmai din aceast cauz),respectiv lansate programele scrise n limbajul matlab i stocate n fiiere aflate ndirectorul curent.

    2

  • 8/2/2019 CKertesz MIvanovici PDS

    11/73

    Variabile

    Pe lng aceast linie de comand, octave ofer i o integrare cu interpretorul decomenzi din Linux (bash) prin posibilitatea rulrii scripturilor care ncep n formaconsacrat a scripturilor: #!/usr/bin/octave

    Pentru a prsi mediul matlab se poate folosi comanda exit.

    1.2. Variabile

    Elementul de baz al operaiilor matlab este matricea, toate variabilele sunt considerateca fiind de tipul matrice. Un caz particular este cnd matricea respectiv conine unsingur element, care poate fi considerat ca o valoare scalar. De asemenea, dac toatedimensiunile unei matrici cu excepia uneia sunt 1, atunci vorbim de un vector. Acestecazuri sunt tratate n mod special n anumite situaii: de exemplu vectorii permitaccesul la elementele lor prin precizarea unei singure poziii (indiferent dac este unvector rnd sau un vector coloan), iar valorile scalare pot fi extinse n orice dimensiunepentru a uura operaiile cu matrici.

    Intern matlab lucreaz implicit cu valori de tip double(virgul mobil, dubl preci-zie), dar n anumite condiii poate fi precizat un tip cu reprezentare pe mai puini bii(ntreg reprezentat pe 8 sau 16 bii), care ns la efectuarea unei operaii va fi trans-format automat la o valoare double. De asemenea dac rezultatul unei operaii este unnumr complex, variabila va fi transformat ntr-o structur de tip complex, care aredou valori double: partea real i partea imaginar. Transformrile automate se facnumai n direcia creterii preciziei, de aceea o varibil care a devenit de tip complex

    va rmne de tip complex pe durata vieii (pn cnd este tears sau suprascris).Definirea unei variabile se face utilizns operatorul = :

    x = 10

    x =

    10

    Numele de variabil poate fi format din caracterele alfanumerice i _, pe prima pro-ziie nefiind permise cifre. Dup fiecare operaie, Matlab afieaz rezultatul operaiei,care n cazul atribuirii unei variabile este variabila nsi. Pentru a nu afia rezultatul,la sfritul comenzii trebuie adugat operatorul ; :

    y = 2;

    1.3. Operatori

    Matlab cunoate operaiile matematice de baz reprezentate cu simbolurile: + (adu-nare), - (scdere), * (multiplicare), / (mprire la stnga), \ (mprire la dreapta)

    3

  • 8/2/2019 CKertesz MIvanovici PDS

    12/73

    1. Introducere n Matlab / Octave

    respectiv ^ (ridicare la putere). Spaiile goale (spaiu sau tabulator) nu au influenasupra modul de interpretare a operatorilor. Exemplu de folosire:

    1+2an s =

    3

    a = 2.5 * 2 1

    a =

    4

    b = a / 2;

    c = b^5

    c =

    32

    Trebuie avut grij c aceste operaii sunt definite implicit ca operaii matriciale, ifuncioneaz ca operatori obinuii numai n cazul valorilor scalare.

    Operaii cu matrici

    Pentru operaii cu matricii mai sunt definii urmtorii operatori: [] i (). Operatorul[] permite crearea matricilor prin enumerarea elementelor acestora ntre parantezeleptrate, insernd cte un spaiu ntre valorile de pe aceai linie i un caracter ; pentru

    delimitarea liniilor.Astfel, pentru a crea un vector de tip linie se folosete comanda:

    v1 = [1 2 3]

    v1 =

    1 2 3

    pentru crearea unui vector de tip coloan comanda:

    v2 = [1;1;1]

    v2 =

    11

    1

    iar pentru matrici multidimensionale:

    m = [1 2; 1 4]

    m =

    1 2

    1 4

    4

  • 8/2/2019 CKertesz MIvanovici PDS

    13/73

    Operatori

    Un vector poate fi generat n mod automat folosind operatorul :. Aceasta va generao serie de valori, sintaxa fiind: valoare nceput: increment: valoare sfrit. De exemplu:

    i = 1:2:9i =

    1 3 5 7 9

    Dac incrementul nu este precizat atunci se consider valoarea implicit de 1:

    i = 1:4

    i =

    1 2 3 4

    Pentru extragerea unui element al unei matrici se folosete operatorului ():

    m(1,2)

    an s =

    2

    n cazul n care operatorul () se folosete pentru vectori cu mai multe elemente, rezul-tatul va fi o matrice cu valorile din poziiile combinate ale parametrilor:

    m(1,1:2)

    an s =

    1 2

    m([2 1], [2 1])

    an s =

    4 1

    2 1

    Operatorul () se poate folosi i pentru modificarea valorilor unor elemente dinmatrice:

    m(1,1:2) = [2 3]

    m =

    2 3

    1 4

    Operaiile aritmetice prezentate anterior sunt considerate a fi operaii matricialeatunci cnd sunt executate asupra unor matrici. Astfel de exemplu operatorul * estefolosit pentru nmulirea matricial. Pentru a executa operaia aritmetic element cuelement operatorul trebuie precedat de .:

    a=[1 2; 0 1]; b=[2 1;4 3];

    a*b

    an s =

    5

  • 8/2/2019 CKertesz MIvanovici PDS

    14/73

    1. Introducere n Matlab / Octave

    10 7

    4 3

    a.*b

    an s =2 2

    0 3

    Trebuie avut grij la dimensiunile matricilor la executarea operaiilor aritmetice. Deexemplu nmuirea matricial presupune c numrul de coloane n prima matrice esteegal cu numrul de rnduri din cea de a doua matrice. La fel cnd se folosesc operaiileelement cu element cele dou matrici trebuie s aib exact aceai dimensiune. O singurexcepie exist la aceast condiie: dac o matrice se nmulete cu un scalar, atunciscalarul respectiv va fi automat convertit ntr-o matrice avnd aceleai dimensiuni cacellalt operand i se va executa o nmulire element cu element ntre cei doi operanzi.

    Transpusa unei matrici se poate calcula cu operatorul (transpusa complex conju-gat) sau . (transpusa fr conjugare):

    m

    an s =

    2 1

    3 4

    Alte operaii importante asupra matricilor sunt realizate prin intermediul unor fun-cii, de exemplu inv pentru calcularea inversei unei matrici sau det pentru calculareadeterminantului:

    in v(m)

    an s =

    0.8000 -0.6000

    -0.2000 0.4000

    de t(m)

    an s =

    5

    1.4. Funcii

    O funcie este un set de operaii efectuate asupra unor argumente, care returneaz unset de valori. Funcia este apelat sub forma:

    [r1 r2 rn] = nume_funcie(p1, p2, pn)

    unde r1 rn sunt valorile returnate, iar p1 pn sunt parametrii functiei. Dac funciareturneaz o singur valoare, atunci parantezele drepte nu sunt necesare. Dac nu sunt

    6

  • 8/2/2019 CKertesz MIvanovici PDS

    15/73

    Funcii

    specificate variabilele care s fie returnate, atunci dac funcia returneaz unul sau maimulte valori, prima dintre acestea va fi salvat n variabila special ans, iar restul sepierd.

    Fiiere .m

    O secven repetat de comenzi se poate salva ntr-un fiier cu extensia *.m. Acestefiiere pot fi rulate ulterior prin introducerea numelui fiierului (fr extensie) n liniade comand. La introducerea unei comenzi, Matlab va verifica dac exist un fiier .m

    n directorul curent cu numele introdus, caz n care va interpreta comenzile din acelfiier. Dac nu se gsete fiierul n directorul curent, Matlab va mai cuta ntr-o seriede directoare implicite (unde sunt stocate de altfel toate funciile disponibile n Matlab.

    Funciile se definesc n fiiere .m, cu acelai nume ca funcia respectiv. Pentru ca o

    funcie s fie recunoscut ca atare, prima linie de cod trebuie s conin cuvntul cheiefunction i s aib urmtorul format:

    function [r1 r2 rn] = nume_funcie(p1 p2 pn)

    Parantezele drepte trebuie s apar chiar dac funcia nu returneaz nici o valoare.Dac fiierul ncepe cu un comentariu sau n liniile imediat urmtoare dup definiia

    funciei exist un comentariu, atunci comentariul respectiv va reprezenta documentaiafunciei, accesibil prin comanda help.

    Un exemplu pentru o funcie care calculeaz ptratul unei valori este:

    %patrat(a) calculeaz patratul lui a

    function [r] = patrat(a)

    r = a*a

    return

    Funcia poate fi apelat din linia de comand astfel:

    patrat(2)

    an s =

    4

    iar pentru a vedea descrierea funciei se poate executa:

    help patrat

    patrat(a) calculeaz patratul lui a

    Fiecare funcie din Matlab are inclus o astfel de documentaie accesibil cu funciahelp.

    7

  • 8/2/2019 CKertesz MIvanovici PDS

    16/73

    1. Introducere n Matlab / Octave

    Structuri de control

    Pentru a crea o bucl n matlab pot fi folosite instruciunile for sau while. Comandafor va parcurge un vector atribuind unei variabile contor valoare fiecrui element dinvector. Sintaxa aceste comenzi este urmtoarea:

    fo r contor = vector

    ...

    en d

    Pentru a crea o variabil care se incrementeaz (similar cu alte limbaje), se poatefolosi operatorul : de creare a vectorilor:

    fo r contor = nceput : pas : sfrit...

    en d

    Comanda while va crea o bucl care se repet att timp ct o condiie logic esteadevrat:

    while condiie

    ...

    en d

    Evaluarea condiionat a anumitor secvene poate fi realizat prin intermediul co-menzii if, avnd urmtoarea sintax:

    if condiie1

    ...

    e ls e i f condiie2

    ...

    else

    ...

    en d

    ramurile else sunt opionale, respectiv ramura else if poate fi prezent de mai multeori.

    Condiiile logice n cazul comenzilor while respectiv if trebuie s fie valori logice cepot fi realizate prin intermediul operatorilor logici: == (egal), ~= (diferit), < (mai mic), (mai mare), >= (mai mare sau egal), & (i logic), | (sau logic)respectiv ~ (negare).

    Toate aceste structuri de control trebuie terminate cu comanda end, ceea ce permiteca aceste structuri s poate fi folosite att n fiiere .m, ct i n linia de comand, caz

    8

  • 8/2/2019 CKertesz MIvanovici PDS

    17/73

    Grafice n Matlab

    n care interpretarea comenzilor introduse este suspendat pn cnd se ntlnetecomanda end, dup care sunt realizate buclele respectiv instruciunile condiionate.

    Trebuie remarcat faptul c matlabul fiind orientat asupra operaiilor cu matrici,

    aceste operaii sunt optimizate i se execut mult mai rapid dect parcurgerea matriciii executarea operaiei pentru fiecare element n parte. Astfel o structur for folositpentru parcurgerea unei matrici n vederea executrii unei operaii asupra elementelorsale se va executa mult mai lent dect operaia matricial corespunztoare. De aceeatrebuie evitat pe ct posibil folosirea structurilor for

    1.5. Grafice n Matlab

    Pentru crearea graficelor se folosesc urmtoarele comenzi: plot, xlabel, ylabel, title,

    grid, axis, subplot. Comanda plot afieaz un vector sub forma unui grafic. Sintaxaacestei comenzi este:

    plot(x,y)

    care va afia un grafic format din puncte obinute din perechi de valori din vectorii xi y. Vectorii x i y trebuie s aib aceai dimensiune.

    Pentru modificarea aspectului graficului, se pot specifica anumite opiuni cu privirela forma, culoarea sau dimensiunea punctelor sau a liniilor ce unesc punctele graficului:

    plot(x,y,option)

    unde option este un text care poate conine culoarea, tipul de linie i/sau simbolul.Culoarea poate s fie r (rou), g (verde), b (albastru), c (cian), m (magenta), y (galben),w (alb), k (negru). Tipul de linie poate fi - (linie continu), -- (line ntrerupt), -. (liniepunct linie), : (linie punctat). Linia poate conine markere pentru fiecare punct diny sub forma unor simboluri: +, *,o,x, triunghi, romb, etc.

    De exemplu:

    plot(x,y,r)

    va trasa graficul cu o linie roie

    plot(x,y,b*)

    va marca de puncte punctele (x, y) cu stelue albastre

    plot(x,y,g:)

    va trasa un grafic cu linie punctat verde.Dac se dorete afiarea mai multor seturi de puncte pe acelai grafic, atunci funcia

    plot va primi ca argumente o list de parametri de forma x,y,[option].

    9

  • 8/2/2019 CKertesz MIvanovici PDS

    18/73

    1. Introducere n Matlab / Octave

    Titlul graficului se poate seta cu comanda title, textul afiat pe axele Ox i Oy sepoate seta cu funciile xlabel respectiv ylabel, iar o reea de linii ajuttoare se poateafia cu grid.

    Matlab scaleaz axele automat dup valorile maxime din vectorii x i y. Dac sedorete ca graficul s apar pe o scal specificat se folosete funcia axis, care areurmtoarea sintax:

    axis([xmin xmax ymin ymax])

    care va scala axele ntre xmin i xmax (axa Ox) i ntre ymin i ymax (axa Oy).Pentru a afia mai multe grafice se folosete comanda subplot astfel:

    subplot(m,n,p),plot(x,y);

    Aceasta va genera o serie de grafice aranjate n m rnduri i n coloane i va direcionaurmtoarea comand plot pe poziia p (ncepnd de la stnga sus).

    Pentru a crea o suprafa 3D, trebuie s reprezentm valorile nlimii z = f(x, y).Pentru afiarea acestei suprafee se folosete comada mesh sau surf. Sintaxa este:

    mesh(x,y,z)

    respectiv

    surf(x,y,z)

    unde x, y i z sunt matrici de dimensiune m n care reprezint coordonatele fiecruipunct de pe suprafa. Parametrii x i y pot fi i vectori de lungime m respectiv n,caz n care se va realiza toate combinaiile ntre ele pentru calculul punctelor de pesuprafa. Comanda mesh va conecta punctele nvecinate prin linii realiznd un modelwireframe al sufrafeei, iar comanda surf va desena mici suprafee plane ntre punctele

    nvecinate realiznd astfel o aproximare a suprafeei.Folosind parametrul c, al patrulea al funciei mesh, se pot specifica culorile punctelor

    de pe suprafaa afiat:

    mesh(x,y,z,c)

    unde c este o matrice de dimensiune m n reprezentnd valoarile culorilor punctelordin grafic. respectiv cu ajutorului unei palete de culori ce poate fi specificat cu comadacolormap. n cazul n care c nu este specificat aceasta va lua valoarea implicit c = z.

    Pentru a crea matricile x i y, care trebuie s aib toate combinaiile a doi vectorireprezentnd coordonatele Ox i Oy se poate folosi comanda meshgrid:

    [x y] = meshgrid(a,b)

    unde a i b sunt doi vectori de dimensiune m resprectiv n.

    10

  • 8/2/2019 CKertesz MIvanovici PDS

    19/73

    Exerciii

    Exemple de grafice

    Pentru afiarea funciei y = f(x) = x2+x+1 se folosete urmtoarea secven rezultnd

    graficul prezentat n figura 1.1: x = -2:0.1:2;

    y = x.^2 + x + 1;

    plot(x,y,r);

    title(Exemplu plot);

    xlabel(x);

    ylabel(x^2+x+1);

    Pentru afiarea unei suprafee z = f(x, y) = x2 + xy + y2 se folosete urmtoareasecven, rezultnd graficul prezentat n Figura 1.2:

    [x y] = meshgrid(-2:0.1:2, -2:0.1:2);

    z = x.\^2 + x.*y + y.\^2;

    mesh(x,y,z);

    title(Exemplu mesh);

    1.6. Exerciii

    1. Implementai funcia fib care calculeaz recursiv al n-lea element din irul lui

    Fibonacci definit cu formula:

    f ib(n) =

    1 dac n

  • 8/2/2019 CKertesz MIvanovici PDS

    20/73

    1. Introducere n Matlab / Octave

    1

    2

    3

    4

    5

    6

    7

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

    x2

    +

    x

    +

    1

    x

    Exemplu plot

    Figura 1.1. Exemplu de grafic bidimensional

    Exemplu mesh

    -2-1.5

    -1-0.5

    00.5

    11.5

    2

    -2-1.5

    -1-0.5

    00.5

    11.5

    20

    2

    4

    6

    8

    10

    12

    Figura 1.2. Exemplu de grafic tridimensional

    12

  • 8/2/2019 CKertesz MIvanovici PDS

    21/73

    Exerciii

    3. Afiai o form de und sinusoidal definit prin formula

    s = A

    sin(2

    f

    x)

    Modificai programul astfel nct s afieze o form de und dreptunghiularrespectiv triunghiular prin nlocuirea funciei sin cu square respectiv sawtooth.

    4. Realizai o funcie care creaz urmtoarele trei grafice n aceeai fereastr: oform de und sinusoidal, o form de und sinusoidal cu frecvena dubl fade prima i rezultatul nsumrii acestora.

    13

  • 8/2/2019 CKertesz MIvanovici PDS

    22/73

    1. Introducere n Matlab / Octave

    14

  • 8/2/2019 CKertesz MIvanovici PDS

    23/73

    Lucrarea 2

    Discretizarea semnalelor

    2.1. Semnale analogice i procesarea digitalSemnalele analogice sunt semnale continue ce pot fi reprezentate din punct de vederematematic ca funcii reale continue n timp. Pentru a putea procesa un semnal cuajutorul unui procesor de uz general sau cu a unuia specializat1, semnalele continuetrebuie convertite ntr-un format potrivit cu reprezentarea datelor dintr-un procesor.

    Pentru conversia unui semnal analogic ntr-un semnal digital, trebuie realizate douoperaii de baz: discretizarea n timp i n amplitudine a semnalului.

    Discretizarea n timp poart numele de eantionare i se realizeaz cu ajutorul unuibloc de eantionare-memorare (vezi figura 2.1). Discretizarea n amplitudine se numetecuantizare i este realizat cu un circuit de tip convertor analog-digital (CAD).

    Circuitul de eantionare-memorare va preleva valorile semnalului de intrare la anu-mite momente discrete de timp, iar convertorul analog-digital va converti aceste valorireale n reprezentarea lor numeric.

    1Digital Signal Procesor procesor digital de semnal

    CAD

    Intrare analogic

    n

    Ieire digital

    fe

    10011

    Figura 2.1. Discretizarea semnalelor analogice

    15

  • 8/2/2019 CKertesz MIvanovici PDS

    24/73

    2. Discretizarea semnalelor

    2.2. Eantionarea

    Eantionarea reprezint discretizarea n timp a unui semnal continuu. Un eantion

    reprezint valoarea semnalului la un moment dat, bine precizat.Rezultatul eantionrii unui semnal continuu x(t) este un ir de eantioane x[nT],

    unde T este intervalul de timp ntre dou eantioane i se numete perioad de ean-tionare, n cazul unei eantionri uniforme.

    Frecvena de eantionare fs = 1T reprezint frecvena cu care sunt prelevateeantioanele semnalului analogic. Pentru ca un semnal s poate fi refcut complet dineantioanele sale, conform teoremei eantionrii, trebuie satisfcut criteriul Nyquist ianume c frecvena de eantionare trebuie s fie cel puin dublul frecvenei maxime fmdin spectrul semnalului:

    fs 2 fm (2.1)O condiie suplimentar este aceea ca spectrul semnalului s fie mrginit, de formacelui din figura 2.2:

    f

    A

    fm

    -fm

    Figura 2.2. Exemplu de spectru mrginit

    irul de eantioane este echivalent unui vector n matlab, ale crui elemente suntvalorile semnalului luate la momentele de timp corespunztoare eantionrii. Trebuiemenionat faptul c informaia despre frecvena de eantionare nu este stocat n vectorci numai se presupune cunoscut pentru calcule. Astfel orice vector din matlab poatefi considerat un semnal eantionat presupunnd c i se face corespondena cu un setde parametri de eantionare.

    Pentru a genera un semnal tiind funcia care descrie semnalul analogic, se va generan prealabil un vector de timp care reprezint momentele de timp la care se va realizapractic eantionarea:

    t = 0 : 1/fs : 1;

    x = si n(2*pi*f*t);

    n acest caz x va conine eantioanele unui semnal sinusoidal, dar pentru a cunotesemnalul cruia acest vector corespunde, trebuie s tim unitatea metric pentru t ifrecvena de eantionare fs: astfel, acest semnal poate fi o sinusoid cu durata de 1

    16

  • 8/2/2019 CKertesz MIvanovici PDS

    25/73

    Cuantizarea

    secund i eantionat la fs Hz, cu durata de 1 ms i eantionat la fs kHz, sau cu duratade 2s i eantionat la fs

    2Hz.

    Semnalul sinusoidal eantionat din exemplu precedent este prezentat n Figura 2.3.

    0 0.2 0.4 0.6 0.8 1

    1

    0.5

    0

    0.5

    1

    t

    x

    Figura 2.3. Semnal sinusoidal eantionat

    2.3. Cuantizarea

    Cuantizarea reprezint discretizarea n amplitudinea valorilor eantioanelor. Din punctde vedere practic reprezint aproximarea n trepte (numite nivele de cuantizare) a unuisemnal x:

    x qj, pentru dj x < dj+1 (2.2)unde . . . dj1, dj, dj+1 . . . sunt nivelele de decizie avnd valoarea pentru cazul cndqj sunt ntregi dj = qj 0, 5. Acest caz (prezent n convertoarele analog digitale) senumete cuantizare uniform, iar pasul qj+1 qj se numete cuant.

    Aproximarea unui semnal x ntre (-1,1) prin 17 cuante se realizeaz cu o funcie degenul celei din figura 2.4.

    Funcia din figura 2.4 a fost generat cu secvena matlab urmtoare: x = -1:0.0001:1;

    q = round(x*8);

    plot(x,q)

    Convertoarele analog digitale sunt de regul capabile s reprezinte semnalele cavalori ntregi n baza 2, de aceea sunt folosite 2m cuante, unde m este numrul de biide reprezentare. Numerele sunt reprezentate n cod NBCD pe intervalul 0 . . . 2m 1pentru cazul unipolar, i pe intervalul 2m1 . . . 2m1 1 pentru cazul bipolar.

    17

  • 8/2/2019 CKertesz MIvanovici PDS

    26/73

    2. Discretizarea semnalelor

    1 0.5 0 0.5 1

    8

    0

    8

    x

    q

    Figura 2.4. Funcie de cuantizare uniform

    Dup cuantizare semnalul original nu mai poate fi refcut, cuantizarea introducnun zgomot intrinsec numit zgomot de cuantizare. Zgomotul de cuantizare reprezinteroarea dintre semnalul cuantizat i cel original:

    = |xc[n] = xes[n]| (2.3)

    i este de forma celui din figura 2.5.

    0 0.5 1 1.5 2 2.5 3 3.5 4

    2

    1

    0

    1

    2

    x 103

    t

    zgomot

    Figura 2.5. Zgomotul de cuantizare

    Pentru evaluarea acestui zgomot, se folosete raportul semnal-zgomot2:

    SN R = 20 lg VefsemnalVefzgomot

    (2.4)

    2signal-to-noise ratio SNR

    18

  • 8/2/2019 CKertesz MIvanovici PDS

    27/73

    Exerciii

    n cazul unui CAD bipolar cu N = 2m nivele de cuantizare, pentru un semnalsinusoidal ideal raportul semnal zgomot este:

    SN R = 20 lg xmax/2q/

    12

    zg.mediucuant.

    = 20 lg3/2 N 6, 02 m + 1, 76 (2.5)

    unde zgomotul mediu de cuantizare a rezultat din ecuaia:

    1

    N qN1j=0

    dj+1dj

    (x qj)2 dx = 1

    N qN1j=0

    1

    3

    (dj+1 qj)3 (dj qj)3

    =

    = 1

    N q 13

    N14

    q3 = q/12

    (2.6)

    2.4. Exerciii

    1. Reprezentai grafic 1024 de eantioane ale unui semnal alctuit din 2 sinusoide(una de frecvena de 50 Hz, defazaj 0 i amplitudine 0.5 V, iar cealalt de frecvenade 230Hz, defazaj

    3i amplitudine 0.2 V) folosind o frecven de eantionare de

    8kHz.

    2. Cuantizai acest semnal pe 8 respectiv, 16 bii, reprezentai semnalul cuantizatalturi de zgomotul de cuantizare i calculai media ptratic a zgomotului iraportul semnal-zgomot.

    19

  • 8/2/2019 CKertesz MIvanovici PDS

    28/73

    2. Discretizarea semnalelor

    20

  • 8/2/2019 CKertesz MIvanovici PDS

    29/73

    Lucrarea 3

    Schimbarea ratei de eantionare

    3.1. Importana frecvenei de eantionarePentru alegerea corect a frecvenei de eantionare trebuie satisfcut criteriul Nyquist:

    fs 2 fm (3.1)

    Ca urmare a eantionrii, spectrul semnalului va fi periodicizat, iar respectareacriteriului Nyquist asigur faptul c replicile spectrale nu se vor suprapune (Figura 3.1).

    f

    A

    fm

    -fm

    -fs+f

    m-f

    s-f

    mf

    s+f

    mf

    s-f

    mf

    s/2 f

    sf

    s-f

    s/2

    Figura 3.1. Spectrul periodicizat al unui semnal corect eantionat

    Dac criteriul Nyquist nu este respectat, atunci replicile spectrale se vor suprapune,fenomen ce poart numele de aliere (Figura 3.2). n acest caz, semnalul analogic originalnu mai poate fi refcut corect din eantioanele sale.

    Cu ct frecvena de eantionare este mai mare, spectrele duplicate vor fi cu attmai ndeprtate. Pentru a reface semnalul original din cel eantionat este nevoie defiltrarea trece jos a semnalului eantionat pentru a nltura spectrele duplicate.

    Filtrarea trece jos trebuie fcut la etapa de conversie digital analogic cu filtreanalogice, ceea ce nseamn c este foarte costisitoare folosirea unor filtre de ordin su-perior (necesar pentru a nltura spectrele foarte apropiate). De aceea este de preferatfolosirea unei frecvene de eantionare ct mai ridicate permind folosirea unor filtrede ordin inferior.

    21

  • 8/2/2019 CKertesz MIvanovici PDS

    30/73

    3. Schimbarea ratei de eantionare

    f

    A

    fm

    -fm

    fs/2 f

    sf

    s-f

    s/2

    Figura 3.2. Spectrul unui semnal subeantionat, afectat de aliere

    Creterea prea mare a frecvenei de eantionare ns va necesita circuite de ean-tionare cuantizare mai performante (i implicit mai scumpe).

    De aceea se practic schimbarea ratei de eantionare n interiorul blocului de pro-

    cesare digital unde filtrarea de ordin superior poate fi uor implementat la un costextrem de redus.

    3.2. Creterea ratei de eantionare

    Creterea ratei de eantionare se mai numete i interpolare, i este realizat prinintroducerea unor eantioane suplimentare ntre eantioanele curente ale semnalului.n Figura 3.3 putei observa semnalul original, reprezentat de ptrele albastre, ieantioanele ce trebuie adugate reprezentate cu .

    0 5 10 15 20 25 301

    0.5

    0

    0.5

    1

    n

    x[n]

    Figura 3.3. Exemplu de interpolare

    Pentru a calcula valorile eantionelor ce trebuie adugate avem dou posibiliti:

    1. calculm valorile cu o metod de interpolare (liniar, ptratic, Lagrange)

    2. introducem valori de 0, dup care filtrm semnalul cu un fitru trece jos de ordinesuperioar

    22

  • 8/2/2019 CKertesz MIvanovici PDS

    31/73

    Scderea ratei de eantionare

    Ambele metode au avantaje i dezavantaje din punct de vedere vitez i precizie.Practic se prefer folosirea celei de a doua metode, pentru c filtrarea trece jos oricumtrebuie realizat pentru refacerea semnalului analogic.

    3.3. Scderea ratei de eantionare

    Scderea ratei de eantionare sau decimarea este realizat prin renunarea la anumiteeantioane. Este o tehnic complementar cu interpolarea (pentru exemplul din Fi-gura 3.3, eliminm eantioanele marcate cu , rmnnd doar eantioanele marcatecu ptrele).

    Trebuie avut ns grij pentru evitarea apariiei fenomenului de aliere: dac existfrecvene mai mari dect 1

    2din noua frecven de eantionare, acestea se vor suprapune

    frecvenelor joase distrugnd semnalul. Pentru a evita acest lucru nainte de decimare,semnalul original trebuie trecut printrun filtru trece jos cu frecvena de tiere de fs

    2.

    3.4. Schimbarea ratei de eantionare cu un factorraional

    Interpolarea i decimarea sunt folosite pentru schimbarea ratei de eantionare cu unfactor ntreg.

    n cele mai multe cazuri ns este necesar s se schimbe rata de eantionare cu unfactor raional. Un exemplu clasic este conversia ntre o rata de eantionare a semnaleloraudio de la 44100Hz (audio CD) la 48kHz (digital audio).

    Pentru realizarea unei asemena schimbri semnalul original trebuie interpolat lao frecven care reprezint cel mai mic multiplu comun al celor dou frecvene deeantionare, dup care trebuie decimat la noua frecven de eantionare. Cele dou filtretrece jos (de la sfritul etapei de interpolare i de la nceputul etapei de eantionare)se pot combina ntrunul singur (vezi Figura 3.4).

    Interpolare Decimareintrare ieire

    Figura 3.4. Schimbarea ratei de eantionare cu un factor raional

    3.5. Exerciii

    1. Realizai n Matlab interpolarea unui semnal la o frecven de eantionare de 4ori mai mare prin introducerea de 0-uri i filtrarea trece jos. Observai semnalul

    n fiecare etap.

    23

  • 8/2/2019 CKertesz MIvanovici PDS

    32/73

    3. Schimbarea ratei de eantionare

    Pentru filtrarea trece jos (a unui semnal x) putei folosi secvena:

    [b a] = cheby1(5, 0.5, fsmic / fsmare);

    xout = filter(b,a,x);

    2. Observai efectul de aliere prin afiarea pe acelai grafic a unui semnal eantio-nat corespunztor i acelai semnal decimat la o frecven mai mic dect ceacorespunztoare criteriului Nyquist.

    3. Convertii un semnal eantionat la 44100 Hz la o rat de eantionare de 48000 Hz.Gsii calea optim pentru a realiza conversia. Pentru a gsi calea optim porniide la ideea c interpolarea cu un factor foarte mare va necesita foarte multecalcule.

    Pentru a calcula cel mai mic multiplu comun a dou numere folosii funcia lcm,iar pentru factorizarea unui numr funcia factor.

    24

  • 8/2/2019 CKertesz MIvanovici PDS

    33/73

    Lucrarea 4

    Analiza spectral a semnalelor

    4.1. Transformata zTransformata z este o tehnic similar cu transformata Laplace, fiind o form generali-zat a transformatei Fourier. Aceasta este folosit la analiza spectral att a semnalelorcontinue ct i pentru semnale discrete. Transformata Laplace are urmtoarea form:

    X(, ) =

    +

    x(t)etejt dt (4.1)

    n aceast formul exponentul + j poate fi schimbat cu valoarea complex s:

    X(s) =

    +

    x(t)est dt (4.2)

    Pentru a ajunge la formula transformatei z, discretizm semnalul x(t) i nlocuimes cu r:

    X(r, ) =+

    n=

    x[n]rnejn (4.3)

    sau nlocuind r ej cu z:X(z) =

    +n=

    x[n]zn (4.4)

    Se poate observa c transformata z spre deosebire de transformata Laplace estereprezentat n coordonate polare. Distana de la origine r este valoarea atenuriiexponeniale a semnalului, iar este frecvena semnalului.

    De exemplu 3 semnale de 50Hz, eantionate la 8 kHz i avnd atenuri corespunz-toare cu r = 1.1 (semnal atenuat n timp), r = 1 (semnal constant n timp) respectivr = 0.9 (semnal amplificat n timp) sunt prezentate n Figura 4.1. Lng fiecare sem-nal este prezentat n coordonate polare i spectrul corespunztor calculat de-a lungul

    25

  • 8/2/2019 CKertesz MIvanovici PDS

    34/73

    4. Analiza spectral a semnalelor

    cercului unitate. Se poate observa concentrarea punctelor se apropie de origine cu ctvaloare lui r este mai mic.

    0 10 201

    0.5

    0

    0.5

    1Semnal atenuat [r = 1.1]

    t

    x(t)

    Spectru semnal atenuat

    2

    4

    30

    210

    60

    240

    90

    270

    120

    300

    150

    330

    180 0

    0 10 201

    0.5

    0

    0.5

    1Semnal constant [r = 1]

    t

    x(t)

    Spectru semnal constant

    2

    4

    30

    210

    60

    240

    90

    270

    120

    300

    150

    330

    180 0

    0 10 2010

    5

    0

    5

    10Semnal amplificat [r = 0.9]

    t

    x(t)

    Spectru semnal amplificat

    2

    4

    30

    210

    60

    240

    90

    270

    120

    300

    150

    330

    180 0

    Figura 4.1. Semnale pentru diferite valori ale lui r i spectrele polare asociate

    Semnalul constant i periodic va avea spectrul pe cercul unitar i este identic cuspectrul Fourier. Pentru a calcula spectrul a unui semnal putem folosi funcia Matlabczt. De exmplu pentru un semnal sinusoidal:

    t = 0 : 1/8000 : 1023/8000;

    x = si n(2*pi *500*t);

    Putem calcula transformata z cu:

    26

  • 8/2/2019 CKertesz MIvanovici PDS

    35/73

    Transformata z

    z = czt(x);

    z = z / (length(z)/2);

    Normalizarea la jumtatea lungimii vectorului este folosit pentru a avea informaiicorecte despre magnitudinea spectral a semnalului. Dac ne intereseaz doar formaspectrului normalizarea nu este necesar.

    Transformata z conine valori complexe, de aceea pentru vizualizarea spectrului tre-buie afiat magnitudinea i faza acestor valori. Pentru calculul magnitudinii se folosetefuncia abs iar pentru calculul fazei funciile angle i unwrap:

    zm = ab s(z);

    zf = unwrap(angle(z));

    Spectrul semnalului calculat conine acelai numr de eantioane ca semnalul ori-

    ginal organizat n felul urmtor: prima jumtate a eantioanelor indic spectrul frec-venelor ntre 0 i jumtatea frecvenei de eantionare, iar celelalte eantioane indicspectrul frecvenelor oglindite (frecvenele negative).

    Aadar pentru a afia corect spectrul se poate folosi urmtoarea secven:

    w = 0 : 8000/1024 : 8000*1023/1024;

    subplot(2,1,1),plot(w,zm),subplot(2,1,2),plot(w,zf);

    Graficul rezultat din aceste comenzi este prezentat n Figura 4.2.

    0 1000 2000 3000 4000 5000 6000 7000 80000

    0.2

    0.4

    0.6

    Magnitudinea

    w

    zm

    0 1000 2000 3000 4000 5000 6000 7000 800020

    0

    20

    40

    60Faza

    w

    zf

    Figura 4.2. Magnitudinea i faza spectral a unui semnal sinusoidal de 500 Hz

    Spectrul calculat de funcia czt n mod implicit este spectrul complet de pe cercul

    27

  • 8/2/2019 CKertesz MIvanovici PDS

    36/73

    4. Analiza spectral a semnalelor

    unitar, adic identic cu spectrul Fourier. Se pot calcula ns i doar anumite poriuniale spectrului i la alte distane fa de origine, modificnd parametrii funciei czt.

    4.2. Rspunsul n frecven al unui filtru

    Transformata z este folosit ndeosebi pentru calculul rspunsului n frecven ale fil-trelor. Pentru un filtru oarecare este valabil urmtoarea expresie:

    a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1) a(2) y(n 1) a(A) y(n A + 1) (4.5)

    Cunoscnd transformatele z ale semnalelor x[n] i y[n], adic X[z] i Y[z] se potcalcula funcia de transfer H[z] a sistemului filtrului ca fiind:

    H[z] =Y[z]

    X[z] (4.6)

    Expresia lui H[z] se poate scrie mai departe ca fiind:

    H[z] =b1 + b2 z1 + b3 z2 + . . .1 a2 z1 a3 z2 . . . (4.7)

    (normalizat la a1).Rescriind relaia de mai sus ca:

    H[z] =(z z1)(z z2)(z z3) . . .(z p1)(z p2)(z p3) . . . (4.8)

    pot fi identificai zerourile z1, z2, z3, . . . i polii p1, p2, p3, . . . funciei de transfer.Pornind de la polii i zerourile dorite, se pot calcula coeficienii filtrului.Pentru calculul rspunsului n frecven a unui filtru se poate folosi funcia Matlab

    freqz sau, pentru a afia direct polii i zerourile, funcia zplane.

    4.3. Exerciii

    1. Generai cteva semnale sinusoidale, dreptunghiulare respectiv triungulare cufrecvene de baz de 50, 100 i 1000 Hz i frecvena de eantionare de 8 kHz iobservai spectrul acestor semnale.

    2. Generai un semnal alctuit din mai multe sinusoide (sau alte forme de und) ifiltrai acest semnal. Afiai rspunsul n frecven al filtrului folosit i spectrelesemnalului original i cel filtrat.

    Pentru a realiza filtrarea semnalului folosii secvena:

    [b a] = cheby1(5, 0.5, 50/4000);

    y = filter(b, a, x);

    28

  • 8/2/2019 CKertesz MIvanovici PDS

    37/73

    Lucrarea 5

    Transformata Fourier Rapid

    5.1. Transformata Fourier DiscretTransformata Fourier discret este varianta eantionat a transformatei Fourier conti-nue. Transformata Fourier discret a unui semnal x[n] format din N eantioane estecalculat cu formula:

    X(k) =N1n=0

    x(n) ej 2N kn, k = 0, N 1 (5.1)

    Pentru calculul unei singure valori din spaiul transformatei sunt necesare N ope-

    raii, prin urmare complexitatea algoritmului de calcul al transformatei Fourier pentruo secven de N eantioane, este O(N2). n 1965 Cooley i Tukey au inventat un al-goritm de calcul rapid al tranformatei Fourier1 care reduce ordinul acestor calcule laO(N log2 N) prin exploatarea proprietilor transformatei Fourier (simetriei i periodi-citii funciilor sin i cos) i refolosirea coeficienilor la nmulirile complexe.

    5.2. Algoritmul FFT cu decimare n timp

    Se exprim spectrul eantionat separat n funcie de secvena par respectiv cea impar

    a semnalului:

    X(k) =

    N21

    n=0

    x(2n)w2knN +

    N21

    n=0

    x(2n + 1)wk(2n+1)N (5.2)

    unde s-a notat:

    w2knN = ej 2

    N2kn = wknN

    2

    (5.3)

    1Transformata Fourier Rapid Fast Fourier Transform (FFT)

    29

  • 8/2/2019 CKertesz MIvanovici PDS

    38/73

    5. Transformata Fourier Rapid

    Relaia devine astfel:

    X(k) =

    N21

    n=0

    x(2n)wknN2

    Xpar(k)

    +

    N21

    n=0

    x(2n + 1)wknN2

    Ximpar(k)

    wkN = Xpar(k) + wkN Ximpar(k) (5.4)

    Am notat cu Xpar(k) transformata Fourier discret a eantioanelor pare ale secveneix(n) iar cu Ximpar(k) a celor impare.

    Dat fiind faptul c secvena FFT este simetric fa de mijloc avem:

    Xpar(k +N

    2 ) = Xpar(k) (5.5)

    wk+N

    2

    N Ximpar(k +N

    2) = wkN Ximpar(k) (5.6)

    Astfel secvena FFT cu k = 0, N2

    1 pentru secvena x(n), n = 0, N 1:

    X(k) = Xpar(k) + wkN Ximpar(k)

    X(k + N2

    ) = Xpar(k) wkN Ximpar(k) (5.7)

    Aceast formul poate fi reprezentat grafic ca aripile unei fluture (de aici vinedenumirea celulei din FFT: butterfly) reprezentat grafic n Figura 5.1.

    Xpar k

    Ximpar k

    X k

    X kN/2wN

    k1

    +

    +

    Figura 5.1. Celul de tip fluture

    n Figura 5.2 se poate vedea fluturele de calcul pentru algoritmul FFT pentru 8eantioane.

    30

  • 8/2/2019 CKertesz MIvanovici PDS

    39/73

    Algoritmul FFT cu decimare n frecven

    x(0)

    x(4)

    x(2)

    x(6)

    x(1)

    x(5)

    x(3)

    x(7)

    X(0)

    X(1)

    X(2)

    X(3)

    X(4)

    X(5)

    X(6)

    X(7)

    Figura 5.2. Fluturele de calcul al FFT cu decimare n timp pentru 8 eantioane

    5.3. Algoritmul FFT cu decimare n frecven

    n acest caz dezvoltm termenii pari i impari ai transformatei Fourier:

    X(2k) =N1n=0

    x(n)w2knN =

    N21

    n=0

    x(n)w2knN +

    N21

    n=0

    x(n +N

    2)w

    2k(n+N2

    N

    =

    N21

    n=0

    x(n)w2knN +

    N21

    n=0

    x(n +N

    2)w2knN w

    2kN2

    N1

    =

    N21

    n=0

    x(n)wknN2

    +

    N21

    n=0

    x(n +N

    2)wknN

    2

    (5.8)

    X(2k + 1) =N

    1n=0

    x(n)w(2k+1)n

    N =

    N

    2

    1n=0

    x(n)w(2k+1)n

    N +

    N

    2

    1n=0

    x(n + N2

    )w(2k+1)(n+N

    2)

    N

    =

    N21

    n=0

    x(n)w2knN wnN +

    N21

    n=0

    x(n +N

    2)w2knN w

    nN w

    2kN2

    N1

    wN2

    N1

    =

    N21

    n=0

    x(n)wknN2

    wnN N21

    n=0

    x(n +N

    2)wknN

    2

    wnN

    (5.9)

    31

  • 8/2/2019 CKertesz MIvanovici PDS

    40/73

    5. Transformata Fourier Rapid

    ceea ce poate fi notat simplificat ca:

    X(2k) = Xinf(k) + Xsup(k)X(2k + 1) = Xinf(k) wnN Xsup(k) wnN (5.10)unde s-a notat cu Xinf(k) transformata Fourier a primelor N2 eantioane i cu Xsup(k)transformata Fourirer a ultimelor N

    2eantioane.

    Fluturele pentru algoritmul cu decimare n frecven este reprezentat n Figura 5.3.

    x(0)

    x(1)

    x(2)

    x(3)

    x(4)

    x(5)

    x(6)

    x(7)

    X(0)

    X(4)

    X(2)

    X(6)

    X(1)

    X(5)

    X(3)

    X(7)

    Figura 5.3. Fluturele de calcul al FFT cu decimare n frecven pentru 8 eantioane

    5.4. Exerciii

    1. Implementai algoritmul FFT (una din cele dou variante) i comparai rezultatuli timpul de execuie cu timpul de execuie al algoritmului clasic ne-optimizat i

    cel al funciei fft din Matlab.2. Calculai spectrul Fourier pentru cteva semnale cunoscute (de exemplu o sum

    de dou su trei sinusoide de diverse frecvene, un semnal dreptunghiular, etc.)folosind funcia fft din Matlab. Vizualizai spectrul de amplitudine i cel de faz.

    32

  • 8/2/2019 CKertesz MIvanovici PDS

    41/73

    Lucrarea 6

    Filtrarea semnalelor

    Filtrarea este o operaie fundamental de procesare dintr-un sistem de procesare a sem-

    nalelor. Filtrarea este utilizat de regul pentru eliminarea zgomotului care afecteazun semnal. n funcie de tipul filtrului (trece jos, trece band sau trece sus), acesta valsa s treac anumite frecvene ale semnalului, dintr-o band specificat, rejectndfrecvenele din afara benzii de trecere.

    6.1. Noini teoretice

    Operaia de filtrare reprezint de regul trecerea unui semnal x(t) printr-un sistem

    liniar invariant n timp, a crui funcie pondere h(t) este cunoscut (vezi Figura 6.1)

    h(t)x(t) y(t)

    Figura 6.1. Operaia de filtrare

    Un sistem se numete liniar, dac respect principiul superpoziiei, adic dac laintrarea sistemului aplicm o combinaie liniar de dou (sau mai multe) semnaleax1(t) + bx2(t), a , b R, atunci semnalul de la ieirea sistemului poate fi scris ca fiinday1(t) + by2(t), unde y1(t) i y2(t) reprezint rspunsurile sistemului la semnalele x1(t)respectiv x2(t).

    Dac rspunsul sistemului este mereu acelai pentru un acelai semnal de intrare,indiferent de momentul de timp la care este aplicat semnalul respectiv la intrareasistemului, atunci sistemul se numete invariant n timp.

    Sistemul are asociat o funcie pondere h(t), care reprezint rspunsul la impuls alsistemului, adic ieirea corespunztoare unui impuls Dirac aplicat la intrare. Operaiarealizat de un bloc de filtrare nu este altceva dect o operaie de convoluie dat de

    33

  • 8/2/2019 CKertesz MIvanovici PDS

    42/73

    6. Filtrarea semnalelor

    urmtoarea formul:

    y(t) = h(t) x(t) =

    +

    h() x(t ) d =

    +

    h(t ) x() d (6.1)

    n domeniul spectral, produsul de convoluie se transform n produs simplu:

    Y() = H() X() (6.2)unde Y(), H() i X() reprezint spectrele Fourier ale lui y(t), h(t) respectiv y(t).H() poart numele de funcie de transfer a sistemului/filtrului

    Convoluia poate fi imaginat ca o fereastr glisant (fig. 6.2) reprezentat de fun-cia ponder h(t), care se deplaseaz peste semnalul de la intrare, realizndu-se o sum

    a eantioanelor de intrare ponderate cu coeficienii filtrului. Suma nu este altceva dectrspunsul filtrului la un moment dat.

    th(t)

    x(t)

    Figura 6.2. Convoluia

    n domeniul discret convoluia are urmtoarea form:

    y(n) =

    k=

    h(k) x(n k) (6.3)

    i descrie rezultatul cnd funcia x trece prin sistemul caracterizat prin funcia pondereh.

    Dac funcia pondere a sistemului (rspunsul la impuls) este un vector de lungimeK atunci convoluia devine:

    y(n) =Kk=0

    h(k) x(n k) (6.4)

    adic echivalent cu nmulirea a dou polinoame cu coeficieni din vectorii x i h, ceeace este simplu de realizat cu ajutorul unui procesor.

    Cnd rspunsul la impuls al blocului respectiv are lungimea infinit, nu se poate rea-liza convoluia cu funcia de transfer. n acest caz se folosesc dou seturi de coeficieni,unul care se convolv cu eantioanele de la intrare iar cellalt cu ieirile anterioare,astfel nct rspunsul la impuls al ntregului sistem s fie exact rspunsul necesar.

    34

  • 8/2/2019 CKertesz MIvanovici PDS

    43/73

    Filtrarea n matlab

    Astfel filtrarea se poate descrie cu formula:

    a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1) a(2) y(n 1) a(A) y(n A + 1)

    (6.5)

    Aceast formul poate fi realizat fizic prin folosirea unor blocuri de ntrzierei amplificare asupra intrrii i ieirii, i nsumarea acestor semnale rezultate, ca nFigura 6.3.

    b3

    z-1

    b2

    z-1

    b1 +

    a2

    z-1

    a3

    z-1

    Figura 6.3. Implementarea unui filtru cu blocuri de ntrziere i amplificare

    6.2. Filtrarea n matlabFiltrarea unui semnal se realizeaz n matlab cu funcia filter:

    y = filter(b,a,x);

    n acest caz x este vectorul ce conine semnalul de la intrare, iar b i a sunt doivectori ce conin coeficienii filtrului. Dac vrem s realizm o filtrare cu o funcie detransfer de lungime finit (adic o convoluie) putem folosi urmtorul apel al funcieifilter:

    35

  • 8/2/2019 CKertesz MIvanovici PDS

    44/73

    6. Filtrarea semnalelor

    y = filter(h,1,x);

    n care apare 1 n loc de a, pentru c a(1) trebuie neaprat s fie definit pentru c la

    aceast valoare se face normarea rezultatului.

    6.3. Exerciii

    1. Implementai o funcie de filtrare cu formatul y = myfilter(b,a,x) i comparairezultatele cu cele obinute folosind funcia matlab filter.

    2. Observai efectul filtrrii asupra unui semnal folosind un filtru Cebev. Pentrusemnal de test putei folosi semnalul generat la lucrarea 2, sau orice semnalalctuit din sinusoide de frecvene diferite. Pentru determinarea coeficienilor

    acestui filtru, folosii urmtoarea funcie matlab, apelat cu parametrii indicain exemplu:

    [b a] = cheby1(5,0.5,50/4000);

    36

  • 8/2/2019 CKertesz MIvanovici PDS

    45/73

    Lucrarea 7

    Proiectarea filtrelor n Matlab

    7.1. Filtre FIRFiltrele FIR1 sunt filtre de convoluie la care semnalul de intrare este convolut cucoeficienii sau funcia pondere a filtrului:

    yk = b1 xk + b2 xk1 + . . . (7.1)unde xk sunt eantioanele semnalului la intrare, yk reprezint rspunsul filtrului lamomentul k (eantionul k al semnalului y de la ieirea filtrului), iar valorile bk reprezintcoeficienii filtrului.

    Proiectarea unui filtru FIR se bazeaz pe diverse tipuri de ferestre (dreptunghiular,

    triunghiular, Hamming, Hann, Chebyshev, Kaiser).n Matlab, proiectarea unui filtru se face cu comanda fir1 respectiv fir2.Comanda fir1 are urmtorarele forme:

    fir1(N, Wn);

    fir1(N, Wn, high);

    fir1(N, Wn, stop);

    fir1(N, Wn, wind);

    unde N este ordinul filtrului (filtrul va avea N+1 coeficieni), Wn este frecvena de tiereraportat la frecvena maxim a semnalului (frecvena de eantionare / 2). Dac Wn

    este un vector de 2 sau mai multe elemente atunci filtrul va fi un filtru trece band cubanda ntre cele perechile de valori din Wn. Dac este specificat high (n cazul n careWn este scalar) atunci filtrul va fi un filtru trece sus n loc de filtru trece jos, iar daceste specificat stop (n cazul n care Wn este vector de mai multe elemente) atuncifiltrul va deveni filtru oprete band. wind este o fereastr folosit la generarea filtrului.Implicit fereastra folosit este o fereastr Hamming. Diferite tipuri de ferestre pot figenerate cu comenzile: boxcar, bartlett, hamming, hann, kaiser, chebwin, blackman.

    Comanda fir2 are urmtoarea sintax:1engl Finite Impulse Response (raspuns finit la impuls)

    37

  • 8/2/2019 CKertesz MIvanovici PDS

    46/73

    7. Proiectarea filtrelor n Matlab

    fir2(N, F, M)

    unde N este ordinul filtrului, iar F i M reprezint rspunsul dorit n frecven al filtrului

    specificat sub form grafic (ca i cum ar fi desenat cu o comand gen plot(F,M)).Comanda fir2 va genera un filtru care aproximeaz acest rspuns n frecvent.

    Funcia de transfer (coeficienii) i rspunsul n frecven a unor filtre trece jos,trece band i trece sus este prezentat n figura 7.1.

    7.2. Filtre IIR

    Filtrele IIR2 sunt filtre recusive la care pentru calcularea valorii curente a semnalului deieire sunt folosite att valorile semnalului de intrare ct i valorile vechi ale semnaluluide ieire. Astfel se poate realiza un rspuns aproape infinit fr a utiliza foarte muli

    coeficieni. Ecuaia care implementeaz un filtru IIR este urmtoarea:

    a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1) a(2) y(n 1) a(A) y(n A + 1) (7.2)

    Avantajul acestor filtre este c se poate realiza o filtrare cu rspuns lung cu calculepuine, dezavantajul fiind c nu avem control la fel de precis asupra rspunsului filtrului,putnd aprea ripluri3 (oscilaii nedorite) n banda de trecere i n banda de tiere.De asemenea filtrul poate deveni instabil dac coeficientul pentru eantioanele de ieiredepete 1, caz n care semnalul la ieire va intra n saturaie.

    n Matlab proiectarea filtrelor IIR se pot face cu funciile butter, cheby1, cheby2,ellip i yulewalk.

    Funcia butter genereaz un filtru Butterworth i are urmtoarea sintax:

    [b a] = butter(N, Wn);

    [b a] = butter(N, Wn, high);

    [b a] = butter(N, Wn, stop);

    Parametrii sunt aceiai ca la filtre FIR.Funcia cheby1 i cheby2 genereaz filtre Chebyshev de tipul I respectiv II:

    [b a] = cheby1(N, Rp, Wn);

    [b a] = cheby2(N, Rs, Wn);

    Filtrul Chebyshev de tipul I prezint ripluri n banda de trecere, diferena maxima acestor ripluri de la 0 dB poate fi specificat prin parametrul Rp. Filtrul Chebyshevde tipul II prezint ripluri n banda de tiere, diferena minim ntre aceste ripluri ilinia de 0 dB poate fi specificat prin parametrul Rs.

    Funcia ellip genereaz un filtru elliptic:

    2engl. Infinite Impulse Response (rspuns infinit la impuls)3engl. ripple (undioare)

    38

  • 8/2/2019 CKertesz MIvanovici PDS

    47/73

    Filtre IIR

    20 10 0 10 200.1

    0

    0.1

    0.2

    0.3

    0.4Raspunsul in timp

    t

    h(t)

    0 0.1 0.2 0.3 0.4 0.5150

    100

    50

    0

    50Raspunsul in frecventa

    [ 2 fs]

    H()[dB]

    (a) Filtru trece jos

    20 10 0 10 20

    0.3

    0.2

    0.1

    0

    0.1

    0.2

    0.3

    Raspunsul in timp

    t

    h(t)

    0 0.1 0.2 0.3 0.4 0.5

    140

    120

    100

    80

    60

    40

    20

    0Raspunsul in frecventa

    [ 2 fs]

    H()[dB]

    (b) Filtru trece band

    20 10 0 10 200.3

    0.2

    0.1

    0

    0.1

    0.2

    0.3

    Raspunsul in timp

    t

    h(t)

    0 0.1 0.2 0.3 0.4 0.5120

    100

    80

    60

    40

    20

    0

    20Raspunsul in frecventa

    [ 2 fs]

    H()[dB]

    (c) Filtru trece sus

    Figura 7.1. Funcia de transfer i rspunsul n frecven a unor filtre trece jos (a), treceband (b) i trece sus (c)

    39

  • 8/2/2019 CKertesz MIvanovici PDS

    48/73

    7. Proiectarea filtrelor n Matlab

    [b a] = ellip(N, Rp, Rs, Wn);

    Acest filtru prezint ripluri att n banda de trecere, ct i n banda de tiere, aceste

    ripluri pot fi controlate cu parametrii Rp i Rs similar cu filtrele Chebyshev.Un exemplu pentru aceste filtre reprezentate grafic prin intermediul comenzii freqz

    poate fi vizualizat n figura 7.2.

    0 0.2 0.4 0.6 0.8 1600

    400

    200

    0

    Normalized Frequency ( rad/sample)

    Phase(degrees)

    0 0.2 0.4 0.6 0.8 1300

    200

    100

    0

    Normalized Frequency ( rad/sample)

    Magnitude(dB)

    (a) Butterworth

    0 0.2 0.4 0.6 0.8 1600

    400

    200

    0

    Normalized Frequency ( rad/sample)

    Phase(degrees)

    0 0.2 0.4 0.6 0.8 1100

    50

    0

    Normalized Frequency ( rad/sample)

    Magnitude(dB)

    (b) Chebyshev I

    0 0.2 0.4 0.6 0.8 1600

    400

    200

    0

    Normalized Frequency ( rad/sample)

    Phase(degrees)

    0 0.2 0.4 0.6 0.8 1100

    50

    0

    Normalized Frequency ( rad/sample)

    Magnitude(dB

    )

    (c) Elliptic

    0 0.2 0.4 0.6 0.8 1400

    200

    0

    Normalized Frequency ( rad/sample)

    Phase(degrees)

    0 0.2 0.4 0.6 0.8 1100

    50

    0

    Normalized Frequency ( rad/sample)

    Magnitude(dB

    )

    (d) Chebyshev II

    Figura 7.2. Rspunsurile n frecven a filtrelor Butterworth, Chebyshev de tipul I i IIrespectiv elliptic

    Funcia yulewalk genereaz un filtru IIR care aproximeaz un rspuns n frecvenprecizat n mod similar cu funcia fir2:

    40

  • 8/2/2019 CKertesz MIvanovici PDS

    49/73

    Exerciii

    [b a] = yulewalk(N, F, M)

    Pentru a calcula ordinul minim al unui filtru IIR care corespunde anumitor con-

    strngeri asupra riplurilor n banda de trecere i banda de tiere i frecvenele limitse pot folosi funciile buttord, cheb1ord, cheb2ord i ellipord.

    7.3. Exerciii

    1. Generai cteva filtre FIR cu ajutorul comenzilor fir1 i fir2, de diferite tipuri(trece jos, trece band, trece sus), pentru diferite frecvene folosind diferite feres-tre i comparai rspunsul la impuls, rspunsul n frecven i rezultatul filtrriiunor semnale compuse din mai multe sinusoide i zgomot.

    2. Generai cteva filtre IIR cu comenzile butter, cheby1, cheby2, ellip i yulewalk,de diferite tipuri (trece jos, trece band, trece sus), pentru diferite frecvenefolosind diferite ferestre i comparai rspunsul la impuls, rspunsul n frecveni rezultatul filtrrii unor semnale compuse din mai multe sinusoide i zgomot.

    3. Separai semnalul de 300 Hz din semnalul stocat n fiierul s.mat (frecvena deeantionare pentru acest semnal fiind de 8 kHz). Vizualizai semnalul nainte idup implementarea operaie de filtrare.

    41

  • 8/2/2019 CKertesz MIvanovici PDS

    50/73

    7. Proiectarea filtrelor n Matlab

    42

  • 8/2/2019 CKertesz MIvanovici PDS

    51/73

    Lucrarea 8

    Filtrul adaptat la semnal

    8.1. Breviar teoreticFiltrul adaptat la semnal este un tip aparte de filtru, proiectarea acestuia fcndu-seprin specificarea funciei pondere n domeniul timp, nu prin specificarea funciei detranfer n domeniul frecven ca la filtrele prezentate anterior. Acest filtru se folosetede regul pentru detecie, de exemplu ntr-un lan de transmisiune, mai exact, atuncicnd se cunoate forma semnalului original transmis, care la recepie este afectat dezgomot.

    Pentru un semnal determinist de durat finit, s(t), se definete filtrul adaptat lasemnal ca fiind filtrul liniar invariant n timp care are urmtoarea funcie de transfer:

    h(t) = K s((t t0)) (8.1)n care K i t0 sunt constante reale oarecare, cu constrngerea c t0 trebuie astfel

    ales nct filtrul s fie cauzal. Un filtru (sau un semnal) se spune c aste cauzal, dach(t) = 0 pentru t < 0.

    Un exemplu de filtru adaptat la semnal este prezentat n Figura 8.1 [1].

    Figura 8.1. Exemplu de filtru adaptat la semnal - semnalul original i funia pondere afiltrului.

    Funcia de transfer a filtrului adaptat la semnal este:

    43

  • 8/2/2019 CKertesz MIvanovici PDS

    52/73

    8. Filtrul adaptat la semnal

    H() = K

    h(t) ejtdt = K

    s((t t0)) ejtdt (8.2)

    Fcnd schimbarea de variabil = (t t0) obinem:

    H() = K

    s() ej(t0)d = K ejt0

    s(t) ejd (8.3)

    H() = KS()ejt0 (8.4)

    unde S() este transformata Fourier a semnalului s(t), iar S() complex conjugataacesteia.

    O proprietate foarte important a acestui filtru este faptul c maximizeaz raportulsemnal/zgomot [1].

    8.2. Desfurarea lucrrii

    Generai un semnal de 1000 de eantioane, care conine un impuls dreptunghiular delime 100 de eantioane, ca cel din Figura 8.2.

    Figura 8.2. Semnal impuls dreptunghiular.

    Pentru aceasta vei folosi urmtoarea secven Matlab:

    x = zeros(1,1000);

    x(300:400) = 1;

    Peste acest semnal se va suprapune zgomot, de exemplu, folosind funcia Matlabrand:

    44

  • 8/2/2019 CKertesz MIvanovici PDS

    53/73

    Desfurarea lucrrii

    x = x + rand(1,1000);

    Semnalul afectat de zgomot va fi de forma celui din Figura 8.3.

    Figura 8.3. Semnalul afectat de zgomot.

    tiind c semnalul x(t) recepionat, conine un impuls dreptunghiular de durat100 eantioane, vom proiecta un filtru adaptat la semnal, avnd funcia pondere h(t)ca cea din Figura 8.4, folosind secvena Matlab urmtoare.

    h = zeros(1,300);

    h(100:200)=1;

    Figura 8.4. Funcia pondere a filtrului adaptat la semnal.

    Semnalul y(t) de la ieirea filtrului adaptat la semnal (vezi Figura 8.5) se va calculacu ajutorul funciei Matlab conv, care va realiza convoluia dintre semnalul x(t) ifuncia pondere h(t) a filtrului.

    45

  • 8/2/2019 CKertesz MIvanovici PDS

    54/73

    8. Filtrul adaptat la semnal

    y = conv(x,h);

    Figura 8.5. Semnalul y(t) de la ieirea filtrului adaptat la semnal.

    Valoarea maxim din semnalul y(t) indic poziia n care filtrul adaptat la semnala detectat un impuls dreptunghiular similar cu funcia pondere, adic locul n carepotrivirea dintre semnalul x(t) de la intrarea filtrului i semnalul h(t) a fost cea maibun. Semnalul original ar putea fi recuperat prin prguirea semnalului y(t).

    8.3. Probleme1. Generai un semnal care conine cteva impulsuri de form dreptunghiular, de

    aceeai lime. Suprapunei zgomot peste acest semnal, folosind funiile Matlabrand i randn. Filtrai semnalul cu un filtru adaptat la semnal, proiectat n pre-alabil. Vizualizai rezultatul. Ce observai?

    2. Aceeai problem ca mai sus, pentru cazul n care semnalul conine impulsuri deform triunghiular.

    46

  • 8/2/2019 CKertesz MIvanovici PDS

    55/73

    Lucrarea 9

    Analiza statistic a semnalelor

    Scopul lucrrii este acela de a familiariza studenii cu generarea semnalelor aleatoare

    cu parametri cunoscui i cu o distribuie dat, determinarea funciei de repartiie i adensitii de probabilitate, calcularea mediei i a varianei.

    9.1. Breviar teoretic

    Un semnal aleator este un proces care se desfoar n timp i este guvernat de legiprobabilistice. Din punct de vedere matematic, un semnal aleator este o funcie dedou variabile (k, t) = (k)(t), unde k ia valori n spaiul eantioanelor, iar t ia valoripe axa real a timpului. Funcia (k)(t) face parte din mulimea sau clasa de semnale

    (t) i se numete o realizare particular a procesului (t).Pentru a caracteriza un semnal aleator la un moment de timp t arbitrar sau pentruo realizare particular, se folosesc funciile de repartiie i cea de densitate de proba-bilitate. Alte mrimi caracteristice larg utilizate sunt momentele statistice, cele maiimportante fiind media i variana.

    Funcia de repartiie, definit ntr-un punct x, este probabilitatea ca variabila alea-toare la momentul t s fie mai mic sau egal dect pragul x:

    F(x, t) = P{(t) x}Densitatea de probabilitate este derivata funciei de repartiie, i anume:

    w(x, t) =dF(x, t)

    dx

    Valori medii statistice larg utilizate n diverse aplicaii:

    1. Valoarea medie

    (t) =

    +

    xw(x, t)dx

    47

  • 8/2/2019 CKertesz MIvanovici PDS

    56/73

    9. Analiza statistic a semnalelor

    2. Valoarea ptratic medie

    2(t) =

    +

    x2

    w(x, t)dx

    3. Variana

    2(t) = 2(t) (t)2

    9.2. Desfurarea lucrrii

    Se vor genera trei tipuri de semnale aleatoare: x(n) cu distribuie uniform, y(n) cudistribuie normal (Gaussian) i z(n) cu distribuie Rayleigh. Aceste trei semnalealeatoare vor avea media m i variana 2 specificate i vor fi generate folosind urm-toarele formule [8]:

    x(n) = m +

    3(2 1) (9.1)

    y(n) = m +

    2

    lncos(2) (9.2)

    z(n) = m +

    2ln

    (9.3)

    unde funcia reprezint o variabil aleatoare distribuit uniform n intervalul [0, 1],obinut cu ajutorul funtiei Matlab rand. Acelai lucru este valabil i pentru variabila. De exemplu, putei genera semnalele x, y i z ca fiind formate din N = 1000eantioane, pe baza a N valori ale variabilei aleatoare (vezi Figura 9.1). Pentruaceasta putei utiliza comanda Matlab urmtoare:

    xi = rand(1,1000);

    Pentru generarea variabilei aleatoare cu distribuie Gaussian putei folosi secvenaMatlab urmtoare:

    N = 1000;

    eta = rand(1,N);

    xi = rand(1,N);

    y = m + sqrt(2)*sqrt(-1*lo g(xi)).*co s(2*pi*eta)*sigma;

    Pentru generarea unei variabile aleatoare cu distribuie Rayleigh, se folosete co-manda urmtoare.

    z = m + sqrt(2)*sqrt(-1*lo g(xi))*s;

    48

  • 8/2/2019 CKertesz MIvanovici PDS

    57/73

    Desfurarea lucrrii

    Figura 9.1. Reprezentarea grafic a valorilor lui .

    Se vor vizualiza diferite realizri particulare ale celor trei semnale, folosind funiilefigure i plot din Matlab, pentru mai multe valori ale mediei i ale varianei.

    Cu ajutorul funciilor mean i var din Matlab se vor calcula mediile i varianelecelor trei semnale i se vor compara cu mediile i varianele specificate. Cum explicaidiferenele?

    Se va determina funcia de repartiie pentru fiecare din cele 3 realizri particulareale semnalelor aleatoare, dup algoritmul de mai jos:

    Se alege un numr N de nivele de cuantizare (de exemplu N = 100).

    n funcie de valorile minime i maxime ale semnalelor, determinate cu funciileMatlab min, respectiv max, se va calcula pasul de cuantizare:

    =max min

    N

    Se va genera un ir de N valori discrete ale lui x n intervalul [min, max], cupasul , dup formula:

    xj = min + j

    pentru j = 1..N. Se vor determina valorile funciei de repartiie, pornind de la definiie:

    F(xj) = P{ xj}

    pentru cele N valori discrete ale lui x n intervalul [min, max], cu pasul . Proba-bilitatea se va calcula ca frecven relativ de apariie, cu alte cuvinte ca raport

    ntre numrul de valori mai mici dect un anume x i numrul total de valori alesemnalului.

    49

  • 8/2/2019 CKertesz MIvanovici PDS

    58/73

    9. Analiza statistic a semnalelor

    Se va reprezenta grafic funcia de repartiie.Pornind de la definiie, pe baza funciei de repartiie se va determina funia de

    densitate de probabilitate, astfel:

    w(xj) =dF(xj)

    dxj

    Pentru cazul discret, se va folosi o aproximare a derivatei continue, dat de formula:

    wj =Fj Fj1xj xj1 =

    Fj Fj1

    pentru j = 2..N.Reprezentai grafic funcia de densitate de probabilitate.

    S se calculeze histograma valorilor semnalelor, folosind funcia Matlab hist is se reprezinte grafic. Histograma reprezint un estimat al funciei de densitate deprobabilitate. Comparai rezultatul obinut cu graficul anterior. Ce observai?

    n figurile 9.2 i 9.3 putei observa forma histogramei pentru o variabil aleatoaredistribuit uniform, respectiv pentru una distribuit normal, pentru do valori ale luiN. Cum explicai diferenele? De notat faptul c funcia hist calculeaz histogramane-normat.

    (a) N=10 (b) N=20

    Figura 9.2. Histograma unei variabile aleatoare distribuite uniform.

    Histograma cumulativ hc(x) reprezint estimatul funciei de repartiie i se calcu-leaz pe baza histogramei h(x) folosind formula:

    hc(x) =

    x

    h()d

    n cazul discret, integrala se transform ntr-o sum, iar formula de calcul a histo-gramei cumulative devine:

    50

  • 8/2/2019 CKertesz MIvanovici PDS

    59/73

    Probleme

    (a) N=10 (b) N=20

    Figura 9.3. Histograma unei variabile aleatoare distribuite normal.

    hx(x) =x

    k=

    h(k)

    Calculai i reprezentai grafic histograma cumulativ. Ce observai?

    9.3. Probleme

    1. Determinai i reprezentai grafic histograma pentru urmtoarea secven de va-lori aleatoare reprezentate pe 2 bii: 1 1 3 2 3 2 0 0 0 0 0 1 1 0 3 0 2 0 0 0 0 3 3

    3.2. Calculai i reprezentai grafic histograma cumulativ.

    51

  • 8/2/2019 CKertesz MIvanovici PDS

    60/73

    9. Analiza statistic a semnalelor

    52

  • 8/2/2019 CKertesz MIvanovici PDS

    61/73

    Lucrarea 10

    Corelaia semnalelor

    Scopul lucrrii este acela de a studia funciile de autocorelaie i intercorelaie n cazulunor semnale aleatoare cu densitate de probabilitate uniform, normal i Rayleigh.

    10.1. Breviar teoretic

    Funcia de autocorelaie

    Funcia de autocorelaie pentru un semnal aleator (t) se definete ca fiind corelaiadintre (t1) i (t2), t1, t2 R, adic dintre la momentul de timp t1 i la momentult2:

    R(t1, t2) = (t1)(t2) =

    x1x2w2(x1, x2; t1, t2)dx1dx2 (10.1)

    n ipoteza c semnalul (t) este staionar, atunci funcia de autocorelaie va depindedoar de diferena de timp dintre t1 i t2:

    R() = (t)(t + ) (10.2)

    unde = t1 t2.Un estimat al funciei de autocorelaie [7] pentru o secven aleatoare x(n) este dat

    de formula:

    R(m) =1

    N

    Nm1n=0

    x(n)x(n + m) (10.3)

    Proprietile funciei de autocorelaie

    Funcia de autocorelaie are urmtoarele proprieti:

    53

  • 8/2/2019 CKertesz MIvanovici PDS

    62/73

    10. Corelaia semnalelor

    1. Funcia de autocorelaie este par:

    R() = R(

    )

    2. Funcia de autocorelaie este maxim n origine:

    R(0) |R()|

    3. n ipoteza c nu exist componente periodice sau deterministe, valoarea funcieide autocorelaie la infinit este egal cu ptratul mediei semnalului:

    R() = 2

    4. Media ptratic i variana semnalului se obin din funcia de autocorelaie astfel:

    2 = R(0)

    2 = R(0) R()5. Dac semnalul aleator este periodic, atunci i funcia lui de autocorelaie este

    periodic, avnd aceeai perioad:

    (t) = (t + T) R() = R( + T)

    Funcia de intercorelaie

    Fie (t) i (t) dou semnale staionare. Funcia de intercorelaie ntre (t) i (t) sedefinete ca fiind corelaia dintre la momentul de timp t1 i la momentul t2:

    R(t1, t2) = (t1)(t2) =

    x1y2w2(x1, y2; t1, t2)dx1dy2 (10.4)

    n ipoteza de staionaritate, funcia de intercorelaie va depinde la rndul ei doar

    de diferena dintr momentele de timp t1 i t2:

    R() = (t)(t + ) (10.5)

    Un estimat al funciei de intercorelaie [7] pentru dou secvene aleatoare discretex(n) i y(n) este dat de formula:

    R(m) =1

    N

    Nm1n=0

    x(n)y(n + m) (10.6)

    54

  • 8/2/2019 CKertesz MIvanovici PDS

    63/73

    Desfurarea lucrrii

    Diagrama n spaiul strilor

    Dac ne intereseaz s apreciem calitativ dependena dintre dou variabile aleatoare,

    i , atunci cnd nu cunoaem funiile de densitate de probabilitate care caracterizeazperechea de variabile, se poate folosi diagrama n spaiul strilor. Aceasta reprezint unnor de puncte ntr-un spaiu bidimensional, format din perechi ((i), (i)) ale realizrilorparticulare ale perechii de variabile. Forma acestui nor furnizeaz informaii desprecorelaia dintre cele dou semnale: un nor format din puncte haotic distribuite nspaiu indic variabile independente din punct de vedere statistic (vezi Figura 10.1),pe cnd unul ordonat indic o anumit dependen ntre cele dou variabile.

    (a) (b)

    Figura 10.1. Diagrama de stare pentru dou variabile independente distribuite a) uniform;b) normal.

    Diagrama n spaiul strilor asociat unui semnal aleator este o reprezentare bi-dimensional a unei variabile aleatoare care reprezint eantionul de la momentul tal semnalului n funcie de variabila aleatoare asociat semnalului la momentul t p.Reprezentarea se face pe o durat de observaie T.

    Cu ajutorul diagramei n spaiul strilor putem vizualiza legtura ntre cele douvariabile aleatoare pentru diferite intervale de ntrziere p, obinnd o evaluare calita-tiv referitoare la corelaia coninut n semnal i la natura (aleatoare sau determinist)a semnalului.

    Pentru semnalele deterministe aspectul diagramei corespunde legturilor funcio-

    nale dintre eantioanele semnalului, diagrama fiind o reprezentare grafic a acestora.Pentru semnalele aleatoare aspectul diagramei se prezint sub forma unei mulimi depuncte care pot fi incluse ntr-un contur nchis cu o anumit form. Aceast form nepoate da informaii cu privire la corelaia dintre eantioane.

    10.2. Desfurarea lucrrii

    Se vor genera trei secvene de numere aleatoare, cu media i dispersia cunoscute (vezilucrarea precedent). Pentru fiecare din cele trei secvene aleatoare se va reprezenta

    55

  • 8/2/2019 CKertesz MIvanovici PDS

    64/73

    10. Corelaia semnalelor

    grafic diagrama n spaiul strilor pentru diverse valori ale lui p. Acest lucru se varealiza folosind urmtoarea instruciune Matlab: plot( x(p:n), x(1:n-p) ), unde neste dimensiunea secvenei aleatoare.

    Pentru fiecare din cele trei secvene aleatoare se va determina i reprezenta graficfuncia de autocorelaie, folosind funcia Matlab xcorr. S se implementeze o funciede calcul a autocorelaiei, pe baza formulei:

    R(m) =1

    N

    Nm1n=0

    x(n)x(n + m)

    Se determina i reprezenta grafic funcia de intercorelaie pentru dou dintre sece-venele aleatoare generate anterior, folosind funcia Matlab xcorr. S se implementezeo funcie de calcul al intercorelaiei pe baza formulei:

    R(m) =1

    N

    Nm1n=0

    x(n)y(n + m)

    Se va considera cazul unui semnal determinist obinut la ieirea unui sistem descrisde ecuaia:

    x(n) = cx(n 1)[1 x(n 1)]S se genereze acest semnal determinist, pornind de la x(0) = 0.2 i c = 4. S se

    reprezinte grafic diagrama n spaiul strilor pentru aceast secven determinist. Sse determine i reprezinte grafic funcia sa de autocorelaie.

    Calculai funcia de auto-corelaie pentru un semnal cu distribuie Gaussian, fo-losind funcia Matlab xcorr. Rezolvare:

    x = randn(1,1000);

    plot( xcorr(x,x) );

    10.3. Probleme

    1. Cum explicai diferenele de aspect ntre diagramele n spaiul strilor pentru

    cele trei tipuri de semnale aleatoare?

    2. Cum explicai aspectul diagramei n spaiul strilor pentru semnalul determinist.

    3. Verificai proprietile funciei de autocorelaie pentru fiecare caz analizat nlucrare.

    56

  • 8/2/2019 CKertesz MIvanovici PDS

    65/73

    Probleme

    Figura 10.2. Funcia de autocorelaie pentru un semnal aleator distribuit normal.

    57

  • 8/2/2019 CKertesz MIvanovici PDS

    66/73

    10. Corelaia semnalelor

    58

  • 8/2/2019 CKertesz MIvanovici PDS

    67/73

    Lucrarea 11

    Dreapta de regresie

    11.1. Breviar teoreticn aceast lucrare ne propunem s studiem cantitativ dependena statistic dintre douvariabile aleatoare, concret s determinm gradul de dependen liniar dintre ele princalcularea coeficientului de corelaie i determinarea dreptei de regresie.

    Reamintim faptul c diagrama n spaiul strilor pentru dou variabile aleatoarepermitea aprecierea calitativ a dependenei dintre acestea. n Figura 11.1 putei ob-serva forma norului de puncte pentru trei cazuri: a) atunci cnd cele dou variabilealeatoare sunt independente din punct de vedere statistic; b) cnd ntre variabile existo anumit dependen funcional, dar acestea sunt decorelate i c) cnd variabilelesunt corelate, i deci sunt i dependente.

    (a) (b) (c)

    Figura 11.1. Forma norului de puncte pentru dou variabile a) independente statistic; b)dependente dar decorelate i c) dependente i corelate.

    Dac diagrama n spaiul strilor indic faptul c ntre cele dou variabile aleatoarear exista o dependen aproximativ liniar, de forma celei din Figura 11.1c) atunci sepoate determina dreapta de regresie (vezi Figura 11.3) care ar putea aproxima cel maibine aceast dependen [1].

    Ecuaia dreptei de regresie, care minimizeaz eroarea ptratic medie [1] este:

    59

  • 8/2/2019 CKertesz MIvanovici PDS

    68/73

    11. Dreapta de regresie

    =K

    2( ) + (11.1)

    unde K reprezint covariaia dintre cele dou variabile, este media statistic alui , iar media lui .

    Covariaia dintre i reprezint momentul centrat mixt de ordinul doi, K =

    ( )( ) i difer de corelaie doar printr-o constant: K = R . Dou vari-abile se numesc decorelate atunci cnd K = 0. Dou variabile aleatoare independentesunt implicit decorelate.

    Coeficientul de corelaie

    Pornind de la expresia erorii ptratice medii minime dintre variabila aleatoare i ceacare o aproximeaz cel mai bine, :

    min = ( )2 = 2

    1

    K

    2(11.2)

    se definete coeficientul de corelaie, notat cu :

    =K

    (11.3)

    i care reprezint valoarea normat a covariaiei dintre cele dou variabile alea-

    toare. n acest fel, coeficientul de corelaie permite cuantificarea absolut a graduluide dependen liniar dintre i .Dac rescriem expresia erorii ptratice medii ca fiind:

    min = 2(1 2) (11.4)

    se poate observa c trebuie s fie de modul subunitar, pentru ca eroarea ptratics fie pozitiv (fiind o sum de cantiti pozitive): | | 1. Cu ct | | este maiaproape de 1, cu att eroarea de aproximare a lui cu e mai mic, deci gradulde dependen liniar dintre variabile este mai mare. Daca | | = 1 atunci = 0 norul de puncte este chiar o dreapt, dependena dintre cele dou variabile fiind perfect

    liniar.n Figura 11.2 putei observa forma norului de puncte, sau a diagramei n spaiulstrilor, pentru dou variabile aleatoare i , pentru diverse valori ale gradului dedependen liniar dintre acestea.

    11.2. Desfurarea lucrrii

    S se genereze un semnal aleator x(n) cu distribuie normal, i s se construiasc unsemnal y(n) de forma: y(n) = a x(n) + b + k , unde este o variabil aleatoare

    60

  • 8/2/2019 CKertesz MIvanovici PDS

    69/73

    Desfurarea lucrrii

    (a) = 1 (b) = 0.9 (c) = 0.5

    (d) = 0.5 (e) = 0.9 (f) = 1

    Figura 11.2. Forma diagramei n spaiul strilor pentru i , pentru diverse valori alecoeficientului de corelaie.

    distribuit normal, iar k un factor de ponderare. S se reprezinte grafic diagraman spaiul strilor, pentru cele dou semnale. S se calculeze coeficientul de corelaiedintre cele dou semnale, folosind funcia Matlab corrcoef i s se determine dreapta

    de regresie, folosind funcia robustfit. S se reprezinte grafic dreapta de regresie, naceeai figur cu norul de puncte.

    x = randn(1,10000);

    y = 2*x + 3 + randn(1,1000);

    corrcoef(x,y)

    an s =

    1.0000 0.8949

    0.8949 1.0000

    b = robustfit(x,y,ols)an s =

    3.0232

    2.0082

    61

  • 8/2/2019 CKertesz MIvanovici PDS

    70/73

    11. Dreapta de regresie

    Figura 11.3. Diagrama n spaiul strolor i reapta de regresie.

    11.3. Probleme

    1. Repetai cerinele din seciunea de desfurare a lucrrii pentru diverse distribuiiale semnalelor x(n) i y(n), variind factorul k de ponderare i dnd diverse valoriconstantelor a i b.

    2. Calculai dreapta de regresie folosind celelalte metode disponibile pentru funciarobustfit: Andrews, Cauchy, Talwar etc.

    3. Implementai o funcie care s calculeze coeficientul de corelaie, pe baza formuleisale de definiie.

    62

  • 8/2/2019 CKertesz MIvanovici PDS

    71/73

    Anex

    Lista funciilor Matlab des ntlnite:

    abs Modulacos Arccosinusall Verific dac toate valorile unei matrici sunt nenuleangle Faza unei valori complexeany Verific dac cel puin o valoare dintr-o matrice este nenulasin Arcsinusatan Arctangentaxis Modificarea axelor unui graficbutter Crearea unui filtru Butterworthcd Schimbare director de lucruceil Rotunjire n sus

    cheby1 Crearea unui filtru Chebyshev de tipul Icheby2 Crearea unui filtru Chebyshev de tipul IIcolormap Crearea unei hri de culoare pentru afiarea suprafeelorconv Convoluia ntre dou semnalecos Cosinusczt Transformata zdet Determinantdiag Creare o matrice cu valori nenule pe diagonalellip Crearea unui filtru elipticexist Existena unei variabileexit

    Ieire din Matlabexp Exponenialfft Trasformat Fourier Rapidfilter Filtrarea unui semnalfind Gsete valorile nenule unei matricifir1 Crearea unui filtru FIR

    63

  • 8/2/2019 CKertesz MIvanovici PDS

    72/73

    11. Dreapta de regresie

    floor Rotunjire n josfreqz Rspunsul n frecven a unui filtrugrid Afiarea liniilor ajuttoare pe grafic

    help Afiarea documentaiei asociate unei funciiinv Inversa unei matriciisempty Verfic dac o matrice este vidmesh Afiarea unei suprafee prin model wireframemeshgrid Crearea matricilor din combinaia unor vectori pentru afiarea suprafeelorlength Lungimea unui vectorlog Logaritm naturallog10 Logaritm baz 10log2 Logaritm baz 2ones Creare o matrice cu valori de 1

    plot Afiarea unui graficpwd Afiare director de lucrusawtooth Crearea unei forme de und triunghiularsin Sinussize Dimensiunea unei matricisqrt Radicalsquare Crearea unei forme de und dreptunghiularsubplot Crearea mai multor grafice pe o figursurf Afiarea unei suprafee soliderand Creare o matrice cu numere aleatoarerem Restul mpriirepmat Creare unei matrici mai mari prin replicarea unei matriciround Rotunjiretan Tangenttitle Modificarea titlului graficuluiunwrap Corectarea unui vector de fazexlabel Modificarea etichetei de pe axa Oxylabel Modificarea etichetei de pe axa Oyzeros Creare o matrice cu valori de 0

    Pentru o descriere mai detaliat a acestor funcii consultai documentaia lor dis-ponibil folosind comanda help.

    64

  • 8/2/2019 CKertesz MIvanovici PDS

    73/73

    Bibliografie

    [1] Ciuc, M., Vertan, C., Prelucrarea Statistic a Semnalelor, Editura MatrixRom,2005

    [2] Glmeanu, H., Bazele procesrii i transmiterii semnalelor II ndrumar de la-

    borator, Editura Universitii Transilvania, Braov, 2002[3] Kalechman, M., Practical Matlab Applications for Engineers, CRC Press, Boca

    Raton, FL, 2008

    [4] Kalechman, M., Practical Matlab Basics for Engineers, CRC Press, Boca Raton,FL, 2008

    [5] Murgan, A.T., Dogaru, R., Comaniciu, C., Teoria Transmisiunii Informaiei: De-tecia, Estimarea i Filtrarea Semnalelor Aleatoare lucrri practice, Editura PO-LITEHNICA Bucureti, 1995

    [6] Murgan, A.T., Spnu, I., Gavt, I., Sztojanov, I., Neagoe, V.E., Vlad, A., TeoriaTransmisiunii Informaiei probleme, Editura Didactic i Pedagogic, Bucureti,1983

    [7] Oppenheim, A.V., Schafer, R.W., Digital Signal Processing, Prentice-Hall, En-glewood Cliffs, New Jersey, 1975

    [8] Press, W.H., Flannery, B.P., Teukolsky, S.A., Vetterling, W.T., Numerical Recipesin C - The Art of Scientific Computing, 2 ed., Cambridge University Press, 1992

    [9] Smith, J.O., Introduction to Matlab and Octave, Center for Computer Research inMusic and Acoustics, Stanford University, Stanford, CA, februarie 2009

    [10] Smith, S.W., The Scientist and Engineers Guide to Digital Signal Processing, 2ed., California Technical Publishing, San Diego, 1999

    [11] Sptaru, A., Teoria Transmisi