Filtre Multirata Pentru Prelucrarea Digitala a Semnalelor

Cuprins

Lista figurilor

Fig.2.1.1 Decimator cu factor de decimare M………………………………………………………23

Fig.2.1.2. Demonstrația decimării cu factor M=2 ( doar eșantioanele indicate prin săgeți sunt reținute )……………………………………………………………………………………………..23

Fig.2.1. 3.Subeșantionarea semnalului x[n] cu M=3: ………………………………………………………………24

Spectul semnalului eșantionat în funcție de frecvența normată;……………………..24

Spectrul semnalului subeșantionat cu M=3…………………………………………..24

Fig.2.2.1.4. Schema de decimare cu filtru antialiere………………………………………………. 25

Fig. 2.1.5. Subeșantionarea semnalului x[n] cu M=3 : funcția în frecvență a filtrului de reducere a elementelor de aliere……………………………………………………………………………….. 25

Fig. 2.1.6.Subeșantionarea semnalului x[n] cu M=3 : spectrul semnalului filtrat…………………. 26

Fig.2.1. 7.Spectrul semnalului subeșantionat……………………………………………………….26

Fig.2.2.1. Interpolator cu factor de interpolare U……………………………………………………27

Fig.2.2.2. Demonstrația expandarii cu factor L=2…………………………………………………..27

Fig. 2.2.3. Circuit complet de interpolare cu factor L………………………………………………28

Fig.2.2.4 Spectrul semnalului eșantionat……………………………………………………………28

Fig .2.2.5 Spectrul semnalului expandat cu factor de interpolare L=4……………………………..29

Fig.2.3.1 Circuitul de modificare fractionară a ratei de eșantionare………………………………..29

Fig.2.3.2, Prima structură……………………………………………………………………………30

Fig.2.3.3.Structura II………………………………………………………………………………..30

Fig.2.3.4. Structura III………………………………………………………………………………31

Fig.2.3.5. Structura IV………………………………………………………………………………31

Fig.2.3.6 Structura V………………………………………………………………………………..31

Fig.2.3.7. Structura VI………………………………………………………………………………31

Fig.2.4.1. Conectarea în cascadă : Interpolator-Decimator…………………………………………32

Fig. 2.4.2.Conectarea în cascadă: Decimator-Interpolator………………………………………….32

Fig.2.5.1. Bloc de filtre de analiză (a) ; Bloc de filtre de sinteză (b)……………………………….32

Fig.2.7.1. Bloc de filtre de analiză cu M canale…………………………………………………….36

Fig.2.7.2 Bloc de filtre de sinteză cu M canale……………………………………………………..36

Fig.2.7.3. BFCS cu M canale……………………………………………………………………….37

Fig.2.8.1. Decimator în mai multe etape……………………………………………………………38

Fig. 2.8.2.Interpolator în trepte……………………………………………………………………..38

Fig. 3.1Exemplu de câteva funcții elementare……………………………………………………..40

Fig .3.2.1. Semnal format din suma a trei sinusoide – format bidimensional………………………44

Fig .3.2.2. Semnal format din suma a trei sinusoide – format tridimensional……………………..44

Fig.3.2.3. Caracteristica filtrului FTJ de tip Chebîșev 1……………………………………………45

Fig.3.2.4. Caracteristica filtrului FTJ de tip Chebîșev 2……………………………………………45

Fig.3.2.5 Caracteristica filtrului FTJ de tip Butterworth……………………………………………46

Fig.3.2.6. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 1

– format bidimensional……………………………………………………………………………..46

Fig.3.2.7. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 1

– format tridimensional……………………………………………………………………………47

Fig.3.2.8. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 2

– format bidimensional……………………………………………………………………………47

Fig.3.2.9. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 2

– format tridimensional…………………………………………………………………………….48

Fig.3.2.10. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Butterworth

– format bidimensional……………………………………………………………………………48

Fig.3.2.11. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Butterworth

– format tridimensional………………………………………………………………………….. 49

Fig.3.2.12. Semnal decimat elementar – bidimensional………………………………………….. 50

Fig.3.2.13 Semnal decimat elementar – tridimensional……………………………………………50

Fig.3.2.14. Semnal decimat standard – bidimensional……………………………………………..51

Fig.3.2.15. Semnal decimat standard – tridimensional……………………………………………..51

Fig.3.2.16. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev1 – bidimensional…….52

Fig.3.2.17. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev1 – tridimensional…….52

Fig. 3.2.18.Semnal decimat elementar, căruia i se aplică un FTJ Butterworth…………………….53

Fig.3.2.19. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev2………………………53

Fig.3.2.20. Semnal interpolat elementar – bidimensional………………………………………….54

Fig.3.2.21. Semnal interpolat elementar – tridimensional………………………………………….54

Fig.3.2.22. Semnal interpolat standard – bidimensional……………………………………………55

Fig.3.2.23. Semnal interpolat standard – tridimensional……………………………………………55

Fig.3.2.24 Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 2……………………..56

Fig.3.2.25. Semnal interpolat elementar, căruia i se aplică un FTJ Butterwoth……………………………56

Fig.3.2.26. Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 1 – bidimensional……57

Fig.3.2.27. Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 1 – tridimensional……57

Fig.3.2.28. Semnal reconstituit în urma aplicării unui decimator, FTJ și interpolator , circuite elementare – bidimesnional…………………………………………………………………………………………………58

Fig.3.2.29. Semnal reconstituit în urma aplicării unui decimator, FTJ și interpolator , circuite elementare – tridimensional…………………………………………………………………………………………………58

Fig.3.2.30 Semnal reconstituit standard…………………………………………………………………………………59

Fig.3.3.1. Semnal inițial – bidimensional……………………………………………………………………………….62

Fig.3.3.2. Semnal inițial – tridimensional………………………………………………………………………………62

Fig.3.3.3. Semnal decimat elementar – bidimensional……………………………………………………………..63

Fig.3.3.4. Semnal decimat elementar – tridimensional…………………………………………………………….63

Fig.3.3.5. Semnal decimat standard – bidimensional……………………………………………………………….64

Fig.3.3.6. Semnal decimat standard – tridimensional………………………………………………………………64

Fig.3.3.7. Semnal interpolat standard – bidimensional…………………………………………………………….65

Fig.3.3.8. Semnal interpolat elementar – tridimensional………………………………………………………….65

Fig.3.3.9. Semnal interpolat standard – bidimensional……………………………………………………………66

Fig.3.3.10. Semnal interpolat standard – tridimensional………………………………………………………….66

Fig.3.3.11 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 – bidimensional……………………………………………………………………………………………………………….67

Fig.3.3.12 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 – tridimensional……………………………………………………………………………………………………………….67

Fig.3.3.13. Semnal reconstituit standard – bidimensional…………………………………………………………68

Fig.3.3.14. Semnal reconstituit standard – tridimensional………………………………………………………..68

Fig.3.3.15 Semnal decimat elementar –tridimensional…………………………………………………………….69

Fig.3.3.16 Semnal decimat standard –tridimensional………………………………………………………………69

Fig.3.3.17 Semnal interpolat elementar –tridimensional…………………………………………………………..70

Fig.3.3.18 Semnal interpolat standard –tridimensional……………………………………………………………70

Fig.3.3.19 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 –tridimensional……………………………………………………………………………………………………………….71

Fig. 3.3.20 Semnal reconstituit standard –tridimensional………………………………………………………..71

Fig.3.3.21. Semnal inițial – bidimensional…………………………………………………………………………….74

Fig.3.3.22. Semnal inițial – tridimensional……………………………………………………………………………74

Fig.3.3.23. Semnal decimat elementar – bidimensional…………………………………………………………..75

Fig.3.3.24. Semnal decimat elementar – tridimensional………………………………………………………….75

Fig.3.3.25. Semnal decimat standard –bidimensional……………………………………………………………..76

Fig.3.3.26. Semnal decimat standard – tridimensional…………………………………………………………….76

Fig.3.3.27. Semnal interpolat standard – bidimensional…………………………………………………………..77

Fig.3.3.28. Semnal interpolat standard – tridimensional…………………………………………………………..77

Fig.3.3.29. Semnal interpolat elementar – bidimensional…………………………………………………………78

Fig.3.3.30. Semnal interpolat elementar – tridimensional…………………………………………………………78

Fig.3.3.31. Semnal reconstituit – bidimensional……………………………………………………………………..79

Fig.3.3.32. Semnal reconstituit – tridimensional……………………………………………………………………..79

Fig.3.3.33. Semnal reconstituit standard – bidimensional…………………………………………………………80

Fig.3.3.34. Semnal reconstituit standard – tridimensional………………………………………………………. 80

Fig. 3.4.1.Semnalul inițial – bidimensional……………………………………………………………………………83

Fig.3.4.2. Semnalul inițial – tridimensional……………………………………………………………………………83

Fig.3.4.3 Semnal decimat elementar – bidimensional………………………………………………………………84

Fig.3.4.4. Semnal decimat elementar – tridimensional…………………………………………………………….84

Fig.3.4.5. Semnal decimat standard – bidimensional……………………………………………………………….85

Fig.3.4.6 Semnal decimat standard – tridimensional……………………………………………………………….85

Fig.3.4.7 Semnal interpolat standard – bidimensional……………………………………………………………..86

Fig.3.4.8. Semnal interpolat standard – tridimensional……………………………………………………………86

Fig.3.4.9 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – bidimensional………………………………………………………………………………………………………………….87

Fig.3.4.10 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – tridimensional……………………………………………………………………………………………………………….87

Fig.3.4.11 Semnal reconstituit standard – bidimensional……………………………………………………………………………………………………………….85

Fig.3.4.7 Semnal interpolat standard – bidimensional……………………………………………………………..86

Fig.3.4.8. Semnal interpolat standard – tridimensional……………………………………………………………86

Fig.3.4.9 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – bidimensional………………………………………………………………………………………………………………….87

Fig.3.4.10 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – tridimensional……………………………………………………………………………………………………………….87

Fig.3.4.11 Semnal reconstituit standard – bidimensional…………………………………………………………88

Fig.3.4.12 Semnal reconstituit standard – tridimensional…………………………………………………………88

Lista acronimelor

DSP – Prelucrarea Semnalului Digital (Digital Signal Processing)

FIR – filtre cu Răspuns Finit la Impuls

IIR – filtre cu Răspuns Infit la Impuls

LTI – sistem Liniar Invariant in Timp (Liniar Time-Invariant system)

TFTD – Transformata Fourier în Timp Discret

FTJ – Filtru Trece Jos

BFCS – Blocuri de Filtre cu Codare de Subbandă

Introducere

În anul 1970, inginerii și oamenii de știință au pus bazele prelucrării digitale a semnalelor, utilizând pentru prima dată calculatoarele DSP(digital signal processing). Acesta a fost momentul primei utilizări a circuitelor digitale integrate de prelucrare a semnalului. Un alt impuls în acest domeniu a fost constatarea utilizării pe scară largă a algoritmului de calcul direct a tranformatei Fourier discrete.

Realizările tehnice și tehnologice rapide au dezvăluit noi orizonturi și au contribuit în mod semnificativ la revoluția de prelucrare a semnalului. La începutul acestei ere de prelucrare a semnalului, procesarea analogicã a fost limitată din punct de vedere hardware (tuburi vidate și circuite RLC) în timp ce procesarea digitală a semnalului a dus la complexitatea algoritmilor și viteze de calcul cât mai mici.

În prezent, cea mai mare bază de algoritmi este conținută în Matlab, astfel încât persoanele fizice, studenții și inginerii au nevoie doar să învețe cum să aplice acești algoritmi.

Procesarea semnalului digital s-a schimbat dramatic în ultima jumătate de secol. În anii 1960, principalele interese au fost tehnologiile audio, în principal electro-acustica, comunicațiile și muzica electronică.

Tehnologia de circuit integrat a crescut în densitate de componente pe cipuri, a dus la creșterea vitezei și a redus puterea de disipare. Producția în masă combinată cu disponibilitatea de software la preț redus a fost sprijinul necesar în procesarea semnalului digital și a cauzat creșterea aplicațiilor DSP. În ciuda unui număr extraordinar de mare de lucări publicate în domeniu, oamenii de stiință, cercetătorii, inginerii se bazează pe utilizarea intensă a calculatorului.

Tehnicile de procesare multirată a semnalului sunt utilizate pe scară largă în domeniile ingineriei moderne, cum ar fi: comunicații, prelucrare de imagini, audio, digital și multimedia. Principalul avantaj al unui sistem multirată este reducerea substanțială a complexității calculatoarelor și, în consecință, reducerea costurilor.

Eficiența algoritmilor de calcul multirată se bazează pe abilitatea de a folosi simultan diferite frecvențe de eșantionare în diferite părți ale sistemului.

Modificările frecvenței de eșantionare generează efecte nedorite prin : alierea spectrală , ce apare la decimare, și apariția imaginilor spectrale , efect datorat interpolării.

În consecință prelucrarea multirată ar putea produce erori inacceptabile în semnalul digital. Rolul filtrelor multirată este de a permite conversia ratei de eșantionare a semnalului digital fără distrugerea componentelor de semnal de interes.

Un filtru multirată poate fi definit ca un filtru digital în care rata de eșantionare a semnalului de intrare este schimbată în unul sau mai multe puncte intermediare. Tehnicile filtrelor pentru conversia ratei de eșantionare sunt utilizate atunci când frecvența de eșantionare a semnalului de la intrare e diferită de cea de la ieșire. Rolurile de bază ale acestor filtre, în sistemele moderne de procesare a semnalului merg în trei direcții principale.

În primul rând sunt folosite ori de câte ori este necesară conectarea a două sisteme digitale cu frecvențe de eșantionare diferite. Filtrarea este utilizată pentru a elimina alierea (în cazul decimării), respectiv eliminarea spectrelor imagine (în cazul interpolării).

Utilizarea unui filtru adecvat permite conversia ratei de eșantionare a semnalului digital într-o rată de eșantionare țintă fără a distruge componentele semnalului inițial.

În al doilea rând, utilizarea unor astfel de filtre este necesară în abordarea unor probleme complexe de filtrare, atunci când un singur filtru care funcționează la o rată de eșantionare fixă este de ordin semnificativ ridicat și apare un zgomot la ieșire datorită erorilor de multiplicare și de sensibilitatea mare la variația coeficienților filtrului.

Diverse tehnici de proiectare a filtrelor multirată prevăd caracteristica de filtrare generală, partajată în mai multe subfiltre, care funcționează la o rată de eșantionare mai mică. Constrângerile de proiectare a subfiltrelor sunt mici în comparație cu un filtru de ansamblu cu rată unică. Ca o consecință a restrângerilor reduse în proiectarea subfiltrelor, efectele cuantizării sunt reduse.

Filtrele multirată pot oferi o soluție practică pentru filtrele digitale cu caracteristici spectrale stricte care sunt foarte dificil de rezolvat.

În al treilea rând, filtrarea multirată este utilizată în construirea grupurilor de filtre multirată.

Pentru filtrele multirată FIR(filtre cu Răspuns Finit la Impuls) sau IIR (filtre cu Răspuns Infit la Impuls), funcțiile de transfer pot fi utilizate pentru generarea întregului sistem. Un filtru FIR poate genera cu ușurință un răspuns cu fază liniară, dar necesită un număr mai mare de operațiuni pe eșantion de iesire în comparație cu un răspuns generat de un filtru IIR cu fază liniară. Filtrul FIR este o alegere adecvată atunci când forma de undă a semnalului trebuie să fie conservată.

Un avantaj al abordării unei astfel de arhitecturi multirată este capacitatea de a îmbunătăți în mod semnificativ eficiența filtrului FIR.

Procesarea multirată a semnalelor și filtrarea multirată a reprezentat un punct de atracție pentru mulți cercetători în ultimele decenii. Dezvoltarea rapidă a noilor algoritmi și a metodelor noi de design a fost influențată de progresele în tehnologia informaticii și în dezvoltarea software.

Deși există multe lucrări scrise, această temă reprezintă încă o zonă de interes pentru cercetare.

Un program eficient și cu un design sofisticat în domeniul de filtrare multirată, are nevoie de un instrument de software de nivel înalt, cum ar fi MATLAB. Software-ul adecvat permite utilizatorilor să construiască algoritmi care să realizeze o anumită funcție.

În prima parte a acestei lucrari voi aborda partea teoretică necesară pentru a întelege filtrarea multirată , urmând ca în a doua parte să demonstrez practic comportarea semnalului după decimare, respectiv interpolare.

1. Noțiuni introductive

1.1.Semnale în timp discret

Un semnal este o funcție de cel puțin o variabilă independentă.

Un semnal discret în timp este o secvență de numere notate ca {x [n]}, unde n este declarat a fi indicele de timp, iar x [n] denotă valoarea elementului al n-lea din secvență. Un semnal în timp discret este numit semnal discret.

Semnalele discrete pot fi definite doar pe întreg intervalul de valori ale lui n, N1 n N2. Când valorile secvenței {x[n]} sunt reprezentate ca numere binare, semnalul {x[n]} este un semnal digital.

Lungimea secvenței este definită ca :

N N2 – N1 +1 (1.1.1)

Secvența {x[n]} are lungime finită dacă N este finit, altfel {x[n]} are lungime infintă.

În multe aplicații, semnalul discret este generat prin eșantionarea la intervale egale de timp semnalului continuu în timp , xc(t):

x[n]=xc(t)|t=nT= xc(nT) (1.1.2)

Intervalul de timp ,T, este numit interval de eșantionare sau perioada de eșantionare și este egal cu :

FT=(1.1.3)

unde FT este frecvența de eșantionare sau rata de eșantionare.

În general, o unitate din frecvența de eșantionare este dată de numărul de ciclii pe secundă. Când intervalul de timp ,T, se masoară în secunde [s], frecvența de eșantionare , FT, se măsoară în Hertzi.

1.2.Sistemele în timp discret

Un sistem în timp discret, sau mai pe scurt sistem discret, este un algoritm sau un dispozitiv fizic care convertește o secvență, numită secvență de intrare (input), într-o altă secvență, numită secvență de ieșire (output). Relația intrare-ieșire a sistemului poate fi exprimată matematic astfel:

δ – eșantion unitate

u[n]= – semnal treaptă unitate (1.2.1)

x[n]=abn – semnal exponențial (1.2.2)

xs[n]=sin(2fn+ϕ) – semnal sinusoidal (1.2.3)

xe[n]=aej(ωn+Φ) –semnal exponențial complex (1.2.4)

Operații de bază cu semnale discrete:

Adunarea:

(1.2.5)

Înmulțirea:

(1.2.6)

Înmulțirea cu un scalar:

(1.2.7)

Întârzierea (deplasarea în timp):

(1.2.8)

Subeșantionare:

(1.2.9)

Supraeșantionare:

(1.2.10)

unde {y[n]}=Φ({x[n]}), iar Φ reprezintă regula folosită pentru a produce semnalul de ieșire în funcție de semnalul de la intrare {x[n]}.

Un sistem discret este finit dacă secvența de intrare finită produce o secvență de ieșire de asemenea finită. În practică, prezintă interes doar sistemele discrete stabile.

Un sistem este cauzal daca semnalul de ieșire depinde de momentele de timp ale semnalului de intrare. Daca y[n0] este semnalul de ieșire la momentul n0, y[n] este zero atunci când x[n] este zero,pentru n n0 .

1.3.Sisteme liniare invariante în timp

Sistemele liniare invariante în timp – sistemele LTI (Liniar Time-Invariant) – sunt sistemele stabile liniare care nu variază în timp. Răspunsul acestui sistem la impulsul unitate { δ [n]} este un impuls notat cu {h[n]},

h[n]=Φ({δ [n]}). (1.3.1)

Un sistem LTI este complet caracterizat de {h[n]} atât timp cât ieșirea sistemului poate fi exprimat ca o convoluție între input și impuls:

y[n]= sau y[n]=. (1.3.2)

Operația de convoluție exte exprimată astfel:

{y[n]}={x[n]}*{h[n]}. (1.3.3)

Sistemul LTI este stabil dacă impulsurile sale satisfac relația :

. (1.3.4)

Sistemul LTI este cauzal dacă secvența {h[n]} este cauzală:

h[n]=0, n<0.

Sistemul LTI nu este cauzal dacă secvența {h[n]} nu este este cauzală:

h[n]=0, n>0.

Sistemele LTI sunt împărțite în două mari clase:

Sisteme cu răspuns finit la impuls – FIR (Finite Impulse Response)

Sisteme cu răspuns infinit la impuls – IIR (Infinite Impulse Response)

Pentru un sistem cu răspuns finit la impuls (FIR) , dacă secvența de valori {h[n]} are lungime finită, relația intrare-ieșire poate fi exprimată ca o convoluție finită:

[n]= (1.3.5)

unde N este lungimea secvenței {h[n]}.

Pentru un sistem cu răspuns infinit la răspuns (IIR), dacă secvența {h[n]} are lungime infinită , relația intrare-ieșire va fi exprimată ca o convoluție infinită:

[n]= (1.3.6)

O clasă a sistemelor LTI poate fi caracteriezată de o ecuație diferențială cu coeficienți constanți. Pentru aceste tipuri de sisteme, relația intrare-ieșire este exprimată astfel:

= (1.3.7)

unde {x[n]} reprezintă intrarea sistemului, {y[n]} reprezintă ieșirea sistemului, iar ak si bk sunt constante. Ieșirea sistemului dată de relația anterioară poate fi calculată recursiv. Dacă sistemul este cauzal, semnalul de ieșire poate fi scris astfel:

y[n]= – , (1.3.8)

unde a0=0.

Pentru sistemele FIR , ecuația diferențială este nerecursivă, astfel sistemele FIR fiind numite și sisteme nerecursive.

1.4.Transformata Fourier în Timp Discret (TFTD)

Transformata Fourier în timp discret este reprezentată de secvențe exponențiale în timp discret {e-jωn}, unde ω este pulsația, ω=2πf, f fiind frecvența.

Pentru aplicații de prelucrare a semnalelor , câteva proprietăți ale transformatei Fourier în timp discret sunt foarte practice:

2.Sisteme Multirată

Sistemele în care procesul de prelucrare implică și modificarea frecvenței de eșantionare se numesc sisteme multirată.

În multe aplicații practice ale procesarii semnalelor digitale apare problema schimbării frecvenței de eșantioanare a semnalului prin creșterea sau scăderea acesteia. De exemplu, în domeniul audio digital apare problema filtrării trece-jos a semnalului analogic pentru limitarea superioară a spectrului la frecvența fM , în vederea digitizării. Filtrul analogic ar trebui să aibă o bandă de tranziție mică, ceea ce este mai greu de realizat. Ca alternativă, se foloseste un FTJ cu banda de tranziție mai mare care este mai ușor de realizat, se supraeșantionează semnalul filtrat și se elimină alierea spectrală; semnalul digital obținut este trecut printr-un filtru digital trece-jos cu faza liniară, după care se realizează o reducere a frecvenței de eșantionare (subeșantionare) cu același factor cu care a fost realizată supraeșantionarea.

Operațiile elementare în procesarea digitală multirată a semnalului sunt decimarea și interpolarea.

2.1.Decimarea

Constă în reducerea ratei de eșantionare a unui semnal, iar blocul corespunzator se numește decimator.

Un decimator de factor M la intrarea căruia se aplică un semnal x(n) va produce la iesire un semnal xD(n)=x(Mn), M număr întreg, adică doar eșantioanele lui x(n) care apar la intervale de timp multiple de M sunt reținute de către decimator.

Fig.2.1.1 Decimator cu factor de decimare M

Fig.2.1.2. Demonstrația decimării cu factor M=2 ( doar eșantioanele indicate prin săgeți sunt reținute )

Dacă semnalul de intrare x[n] cu spectrul de bază limitat la Fx/2 este caracterizat de frecvența de eșantioanre Fx=1/Tx, iar semnalul de ieșire este caracterizat de frecvența de eșationare Fy=1/Ty, unde Tx și Ty sunt perioadele de eșantionare corespunzătoare, reducând rata de eșantionare, adică selectând fiecare a M-a valoare a lui x[n], semnalul rezultat are o funcție de densitate spectrală obținută prin repetarea periodică a lui X(ejω ) cu o frecvență de repetitive Fx/M, mai mică decât cea inițială, ceea ce poate duce la efecte de aliere.

Făcând o analiză în frecvență a decimatorului se observă că :

(2.1.1)

adică:

Se extinde de M ori spectrul X(ejω ) astfel încât să se obțină X(ejω/ M );

Se creează (M-1) versiuni noi ale spectrului X(ejω/ M ) prin deplasarea succesivă cu 2π a acestuia;

Spectrul astfel creat se atenuează de M ori.

Se remarcă posibilitatea suprapunerii spectrului X(ejω/ M ) peste imaginile sale translatate, obținându-se efectul de aliere.

Fig.2.1. 3.Subeșantionarea semnalului x[n] cu M=3:

Spectul semnalului eșantionat în funcție de frecvența normată;

Spectrul semnalului subeșantionat cu M=3.

Pentru a elimina suprapunerea spectrală trebuie redusă banda de frecvențe a lui x[n] la Fmax=Fx/2M, sau, altfel spus, ωmax=π/M. Secvența de intrare x[n] este trecută printr-un filtru trece- jos, care are funcția pondere h[n] și răspunsul în frecvența H(ejω) ce în mod ideal satisfice condiția:

(2.1.2)

Pentru a evita alierea spectrală, în schema de decimare se introduce un filtru de antialiere spectrală ca în figura :

Fig.2.2.1.4. Schema de decimare cu filtru antialiere

Conform acestei scheme, blocul de decimare conține două etaje: un filtru de antialeire spectrală și blocul de subeșantionare cu un factor M.

Secvența de iesire din filtrul cu funcția pondere h[n] este :

(2.1.3)

Aceasta este subeșantionată cu factorul M pentru a produce xD[n]. Astfel, semnalul de la ieșire, se poate scrie :

(2.1.4)

Fig. 2.1.5. Subeșantionarea semnalului x[n] cu M=3 : funcția în frecvență a filtrului de reducere a elementelor de aliere.

Fig. 2.1.6.Subeșantionarea semnalului x[n] cu M=3 : spectrul semnalului filtrat.

În urma filtrării cu filtrul antialiere , spectrul semnalului subeșantioant va arăta astfel:

Fig.2.1. 7.Spectrul semnalului subeșantionat.

Deoarece rata corespunzătoare de eșantionare a lui xD[n] este Fy=1/Ty, frecvența normată este notată cu ωy, astfel:

(2.1.5)

unde F este frecvența normată. Dar :

(2.1.6)

și

(2.1.7)

este frecvența normată corespunzatoare semnalului eșantionat cu perioada Tx.

Se obține:

(2.1.8)

Astfel domeniul de frecvență este inclus în domeniul de frecvență corespunzator , prin procesul de deciamare.

2.2.Interpolarea

Interpolarea reprezintă creșterea ratei de eșantionare a semnalului și constă în supraeșantionarea cu un factor întreg L.

x[n] yE[n]

Fig.2.2.1. Interpolator cu factor de interpolare U

Interpolatorul esre un dispozitiv, care, având la intrare un semnal x[n], va genera la ieșire secvența :

(2.2.1)

Fig.2.2.2. Demonstrația expandarii cu factor L=2

O creștere a frecvenței de eșantionare cu un factor întreg L poate fi realizată interpolând L-1 eșantioane noi între valorile succesive ale semnalului. Secvența yE[m] are o rată de eșantionare Fy=LFx, care se obține din x[n], adăugând L-1 zerouri între valorile succesive ale semnalului de intrare.

Fig. 2.2.3. Circuit complet de interpolare cu factor L

Secvența v[n] va fi de forma:

(2.2.2)

Aplicând transformata Z se obține:

(2.2.3)

Spectrul său va fi de forma:

(2.2.4)

unde ωy este frecvența normată cu noua rată de eșantionare Fy și este de forma:

(2.2.5)

Relația între frecvențele normate de intrare, respectiv de ieșire, este dată de relația între frecvențele de eșantionare Fy=LFx. Astfel se obține:

(2.2.6)

Pentru un factor de interpolate L=4 am reprezentat spectrele și :

Fig.2.2.4 Spectrul semnalului eșantionat

Fig .2.2.5 Spectrul semnalului expandat cu factor de interpolare L=4

Deoarece frecvențele de bază a lui x[n] sunt situate în domeniul , secvența v[n] poate fi trecută prin filtrul trece- jos cu răspuns în frecvența , definit ideal astfel:

(2.2.7)

Spectrul semnalului de la ieșire va fi :

(2.2.8)

În domeniul frecvență se observă că spectrul secvenței de ieșire reprezintă versiunea de L ori compactată a spectrului X(ejω).

2.3.Modificarea fracționară a ratei de eșantionare

În multe aplicatii practice ale procesării semnalelor digitale apare problema schimbării frecvenței de eșantionare a semnalului prin creșterea sau scăderea acesteia. Conversia cu factorul rațional L/M a ratei de eșantionare se poate realiza interpolând mai întâi semnalul cu un factor L și apoi decimând ieșirea interpolatorului cu factorul M.

xf[n]

y[n]

Fy=1/Ty

Fig.2.3.1 Circuitul de modificare fractionară a ratei de eșantionare (frecvența de tăiere a sa este min între π/M si π/L)

Este important să se realizeze mai întâi interpolarea și apoi decimarea pentru a prezenta caracteristicile spectrale dorite ale lui x[n]. Filtrul trece- jos utilizat între cele două blocuri de interpolare, respectiv decimare, încorporează operațiile de filtrare pentru ambele operații.

Expresia lui este:

( 2.3.1)

La construirea sistemelor multirată este de dorit să avem o structură eficientă de implementare care permite evaluarea la cea mai mică frecvență de eșantionare. Acest obiectiv nu poate fi realizat ușor. Respectarea structurii de variație a frecvenței de eșantionare presupune ca filtrarea să se facă cu o frecvență de eșantionare mai mare.

Într-un decimator filtrarea trebuie să prevină alierea și, prin urmare, este nevoie de un filtru trece -jos. Într-un interpolator rolul filtrarii este de a elimina imaginile produse de supraeșantionare. De aceea după un interpolator urmează tot un filtru trece-jos.

În mod evident, eficiența convertoarelor frecvenței de eșantionare poate fi îmbunatățită dacă operațiile sunt încorporate în structura de filtrare, pentru asta trebuie modificate blocurile de interpolare și decimare. Proprietățile noii structuri obținută astfel sunt :

Operațiile sunt efectuate cu frecvență de eșantionare mică;

Modificarea structurii nu afectează performanța generală a decimatorului sau interpolatorului.

Există șase structuri de bază legate de prelucrarea semnalelor multirată care, atunci când sunt utilizate în mod corespunzator,duc la îmbunătățirea eficienței sistemului deoarece acestea ne permit să subeșantionăm, sau să supraeșantionăm, în funcție de ce dorim să obținem la ieșirea sistemului.

În ceea ce urmează o să prezint cele șase identități, care uneori mai sunt numite și identități nobile.

Fig.2.3.2, Prima structură

În această structură blocul de decimare de la ieșirea sistemului este înlocuit de două blocuri de decimare introduse la intrarea sistemului.

Fig.2.3.3.Structura II

În această structură se demonstrează că întârzierea de ordinul M introdusă de primul bloc, urmată de un decimator elementar este echivalentă cu decimarea semnalului cu un factor decimator M , urmat de o întârziere de ordinul 1.

Fig.2.3.4. Structura III

Această structură este legată de conectarea în cascadă a unui sistem linear invariant în timp H(z) și un decimator. Filtrarea cu un filtru de funcțe pondere H(zM) urmată de decimarea semnalului cu un factor M are același efect pe care îl are o structură în cascadă ce presupune mai întâi decimarea semnalului cu un factor M și apoi filtrarea cu un filtru de funcție pondere H(z).

Fig.2.3.5. Structura IV

În această structură sunt utilizate operații aritmetice în plus dar evaluarea se face cu o frecvență de eșantion mai mică (factorul de interpolare , L, este mai mic).

Fig.2.3.6 Structura V

Această structură afirmă că semnalul întârziat cu ajutorul unui bloc de întârziere de ordin I, urmat de o operarție de supraeșationare, efectuată de blocul de interpolare este echivalent cu semnalul mai întâi supraeșantionat și apoi întârziat cu ajutorul unui bloc de întâziere de ordin L

.

Fig.2.3.7. Structura VI

În această structură se evidentiază conexiunea în cascadă a unui sistem invariant în timp și un interpolator. Semnalul de la ieșirea sistemului format din filtrul cu funcția pondere cu H(z) și interpolatorul cu factorul de supraeșantionare L este egal cu semnalul de la ieșirea sistemului format dintr- un interpolator cu factor de interpolare L și un filtru cu funcția pondere H(zL).

2.4.Conectarea în cascadă a dispozitivelor de modificare a frecvenței de eșantionare

Un decimator, sau un interpolator poate schimba frecvența de eșantionare a unui semnal cu un factor întreg. Pentru a schimba frecvența de eșantionare cu un factor fracționar, se foloseste conectarea dispozitivelor în cascadă. Acest lucru indică faptul că folosirea unui factor de decimare M și a unui factor de interpolare L modifică frecvența de eșationare fără a modifica relația intrare-ieșire a semnalului.

Practic, se poate demonstra că, deși secvențele intermediare sunt diferite, semnalul de iesire este același și în conectarea decimator-interpolator, respectiv în conectarea interpolator-decimator.

Fig.2.4.1. Conectarea în cascadă : Interpolator-Decimator

Fig. 2.4.2.Conectarea în cascadă: Decimator-Interpolator

2.5.Blocuri de filtre digitale

Un bloc de filtru este un set de filtre trece-bandă care, fie au o intrare comună, fie au ieșirile însumate, fiind folosite pentru descompunerea semnalelor în subbenzi și pentru refacerea semnalelor descompuse.

Fig.2.5.1. Bloc de filtre de analiză (a) ; Bloc de filtre de sinteză (b)

Blocurile de filtre uniforme constau în filtre trece-jos, trece-sus, și trece-bandă care partiționează spectrul semnalului în benzi adiacente de lățimi egale pentru ca apoi să recombine aceste benzi de frecvențe.

2.6.Filtre M-bandă

Se numește bloc de filtre M-bandă structura din figura 2.5.1 (a) . Această structură este realizată cu filtre de subbandă Hk(z) , numite filtre de analiză. Aceste filtre au rolul de a descompune semnalul x[n] într-un set de M semnale subbandă vk[n], fiecare semnal vk[n] ocupând o porțiune din bandă de frecvență originală (analiza semnalului se face prin separarea într-un set de benzi spectrale înguste).

În figura 2.5.1(b) este reprezentată o structură numită bloc de sinteză care are rolul de a recombina un set de semnal subbandă vk[n] într-un singur semnal y[n] (fiecare filtru Gk(z) reprezintă un filtru de sinteză).

Filtrele din compunerea blocurilor de filtre sunt caracterizate de funcția răpuns la impuls:

(2.6.1)

Astfel, coeficientul de ordin zero este o constantă, iar toți ceilalți coeficienți, multiplii de M , sunt egali cu zero.

Componenta polifazică de ordinul zero pentru H(z) este definită de relația:

(2.6.2)

care, pentru filtrul M-bandă, devine:

(2.6.3)

De asemenea are loc egalitatea :

(2.6.4)

unde:

(2.6.5)

Din relațiile anterioare se observă că este satisfacută egalitatea :

(2.6.6)

Evaluate pe cercul de rază unitate, expresia devine:

(2.6.7)

Această egalitate arată că pentru orice θ suma răspunsurilor în frecvență în punctele θ, θ+2π/M,… , θ+2π(M-1)/M este egală cu unitatea. În cazul în care H(z) este un filtru M-bandă de tip trece -jos, observația anterioară permite o interpretare suplimentară. Considerând, de exemplu, M=2, vom obține un filtru jumătate-de-bandă. Din ecuația(2.6.7) rezultă că:

(2.6.8)

În particular, relația anterioară implică simetria față de punctul θ=π/2:

(2.6.9)

Această simetrie, pentru un caz mai general al filtrelor M-bandă, poate fi generate de un filtru trece- jos cu frecvența de tăiere π/M care să satisfacă ecuația (2.6.1)

(2.6.1)

Răspunsul la impuls al unui filtru trece- jos ideal generat cu datele anterioare (frecvența de tăiere π/M) este:

(2.6.10)

Este vizibil că relația de mai sus (2.6.10) satisface relația (2.6.1). Aplicând L’Hopital avem h(0)=1/M, iar h(kM)=0. Pentru a obține un filtru cu răspuns infinit la impuls (FIR) trebuie să aplicăm o fereastră cu o durată limitată w(k):

(2.6.11)

Alegerea acestei ferestre va determina riplurile caracteristicii de transfer în zona frecvenței de tăiere și valorile riplului în benzile de trecere și de blocare.

Folosirea acestor filtre de tip jumatate-de-bandă în blocurile de analiză au rolul de a simplifica dezvoltarea matematică, jumătate din coeficienți fiind zero. Filtrele M-bandă sunt folositoare în analiză pentru că permit refacerea semnalului la ieșirea filtrelor de analiză pentru un bloc de filtru oarecare. Pentru a demonstra cele spuse mai sus considerăm un filtru M-bandă H0(z), funcția pondere a celorlalte filtre de analiză fiind dată de următoarea relație:

(2.6.12)

Se va genera astfel o acoperire a benzii de frecvențe cu un filtru-trece-bandă, cu banda de 2π/M. Din relația (2.6.6) avem:

(2.6.6)

Dar H(WMkz) este de fapt Hk(z), astfel că :

(2.6.13)

Considerăm x(k) semnalul de intrare în blocul de analiză (intrarea fiind comună tutror filtrelor de analiză). Dacă iesirea filtrului i este , atunci obținem :

(2.6.14)

Se observă că semnalul original x(k) poate fi reconstituit prin însumarea ieșirilor filtrelor de analiză. Aceasta indică faptul că filtrele de sinteză trebuie să fie compatibile cu filtrele de analiză.

Filtrele M-bandă sunt folosite ca filtre de interpolare. În realizarea operației de interpolare intervin două etape:

Expandarea semnalului prin umplere cu zerouri;

Filtrarea trece- jos pentru eliminarea imaginilor benzii de bază între π/M și π.

Semnalul obținut în urma interpolării este dat de relația:

(2.6.15)

unde hi(k) este răspunsul la impuls al filtrului de interpolare.

2.7.Blocul de filtre de analiză

Un astfel de bloc este realizat din M filtre egal distanțate în frecvență având aceeași lățime de bandă. Spectrul semnalului de intrare X(z) poate fi inclus în domeniul . Blocul de filtre de analiză are rolul de a descompune acest spectru în subbenzi, fiecare subbandă având lățimea de bandă π/M.

Deoarece lățimea benzii semnalelor filtrate este aproximativ π/M, frecvența de eșationare după filtrare poate fi redusă cu un factor M.

(2.7.1)

Prin operația de decimare se obține o translatare a semnalelor subbandă în banda de bază. Ecuația prezentată mai sus poate fi scrisă și sub forma matriceală, astfel aceasta devine:

(2.7.2)

unde vectorul semnalelor subbandă este dat de:

(2.7.3)

matricea funcțiilor pondere utilizate în modularea semnalului, a blocului de filtre de analiză este:

(2.7.4)

iar vectorul modulator al semnalului de intrare este:

(2.7.5)

În condițiile în care factorul de decimare M este egal cu numărul de filtre subbandă, se poate folosi termenul de bloc de filtre cu eșantionare critică. În acest caz, numărul de eșantioane pe unitatea de timp pentru toate canalele subbandă are aceeași valoare cu numărul de eșantioane pe unitatea de timp ale semnalului de intrare X(z).

Fig.2.7.1. Bloc de filtre de analiză cu M canale

Blocul de filtre de sinteză

Fig.2.7.2 Bloc de filtre de sinteză cu M canale

Complementarul blocului de analiză este blocul de sinteză, ambele având în componență filtre M-bandă. Pentru compatibilitatea celor două blocuri, filtrele Gi(z) au caracteristicile de bază aceleași ca filtrele Hi(z).

În acest caz se efectuează operația inversă a decimării, interpolarea. Interpolând semnalele Xi(z) vom obține semnale Xi(zM), i=0,1,…,M-1. Aceste semnale sunt trecute prin filtrele Gi(z) pentru filtrare și apoi însumate, astfel obținându-se semnalul de ieșire:

(2.7.6)

Aceastei relații i se poate asocia următoarea formă echivalentă:

(2.7.7)

unde:

.(2.7.8)

BFCS – Blocuri de Filtre cu Codare de Subbandă și factor de decimare maxim

Obținerea blocurilor de filtre cu codare în subbandă se face prin înlănțuirea unui bloc de analiză cu un bloc de sinteză, ambele având M canale. Blocul de analiză împarte semnalul de intrare, de bandă largă, X(z), în semnale subbandă Xi(z), acestea având benzi egale. Aceste semnale obținute după decimare pot fi codate, stocate sau transmise. Blocul de sinteză este utilizat la final pentru a reconstitui semnalul inițial, acesta aproximând cât mai corect semanlul de intrare, .

Semnalul X(z) are o lătime de bandă egală cu π, semnalele obținute în urma filtrelor de analiză, Xi(z), având banda egală cu π/M. Când frecvența de eșantionare a semnalelor subbandă se reduce cu un factor M, toate aceste semnale sunt eșantionate cu cea mai mică frecvență posibilă. Un astfel de bloc se numește “bloc de filtre cu codare subbandă “cu eșantionare critică sau factor decimator maxim.

Fig.2.7.3. BFCS cu M canale

Analizând schema anterioară, semnalul de ieșire, fiind un semnal modulat, va fi de forma:

(2.7.9)

având ca vector modulator de ieșire:

(2.7.10)

Din ecuațiile anterioare se poate scrie:

(2.7.11)

unde matricea de sinteză este următoarea:

(2.7.12)

Făcând următoarele înlocuiri : vectorul subbandă din relația (2.7.2) să fie înlocuit cu relația (2.7.11) se obține următoarea relație intrare-ieșire:

(2.7.13)

Matricea F(z) este obținută făcând produsul între matricea de modulare a blocului de sinteză cu transpusa matricii de modulare a blocului de analiză. Pentru a nu avea component de aliere la ieșire trebuie îndeplinită urmatoarea condiție:

(2.7.14)

În cazul în care F(z) este o funcție de tip trece-jos, atunci nu apar nici distorsiuni de amplitudine, iar dacă este cu faza liniară nu există nici distorsiuni de fază sau întârzieri.

Daca un bloc de filtre cu codare de subbandă îndeplinește următoarea condiție:

, (2.7.15)

atunci blocul realizează reconstrucția perfectă a semnalului de la intrare.

2.8.Sisteme cu mai multe trepte de realizare a conversiei frecvenței de eșantionare

Blocurile de decimare și interpolare discutate până acum sunt sisteme cu o singură etapă deoarece schemele de implementare constau într-un singur filtru trece-jos și un dispozitiv de modificare a frecvenței de eșantionare. În cazul în care factorul de decimare M este rezultatul unui produs de numere întregi:

M=M1*M2*…*Mk,(2.8.1)

în loc de a folosi un singur filtru trece-jos și un decimator, se foloșeste un ansamblu ce poate fi implementat ca o cascadă de decimare, fomată din k blocuri de decimare, fiecare bloc având factorul de decimare aferent Mi. O astfel de implementare în cascadă formează un decimator în mai multe etape.

Fig.2.8.1. Decimator în mai multe etape

Similar se formează interpolatorul în mai multe etape, având ca factor de interpolare:

L=L1*L2*…*Lk (2.8.2)

Fig. 2.8.2.Interpolator în trepte

Funcția de transfer, H(z), a unui decimator, în acest caz va deveni:

H(z)=H1(z)H2(zM1)H3(zM1M2)…Hk(zM1M2…Mk-1) (2.8.3)

Similar, având funcția de transfer a unui interpolator ,F(z), vom obține funcția de transfer pentru un interpolator în trepte:

H(z)=H1(z)H2(zL1)H3(zL1L2)…Hk(zL1L2…Lk-1) (2.8.4)

Structurile multietajate sunt foarte utile pentru a realiza o conversie mare a frecvenței de eșantionare. Un singur filtru de decimare sau interpolare, cu o bandă de trecere foarte îngustă, este, de obicei, greu de proiectat și de pus în aplicare, de aceea este înlocuit cu o cascada de filtre simple. Specificațiile filtrelor simple, individuale, sunt caracteristici ale filtrului în ansamblu.

3.Aplicații practice

3.1.Introducere în Matlab

Numele de Matlab provine de la “MATrix LABoratory”, firma producătoare fiind “The MathWorks”,SUA.

Matlab este un limbaj de înaltă performanță pentru proiectarea asistată de calculator; în același timp este și un limbaj de programare care integrează calculul, vizualizarea și programarea într-un mediu ușor de utilizat, aplicațiile și soluțiile acestora fiind exprimate într-un limbaj matematic accesibil.

Domeniile de utilizare ale acestui limbaj sunt:

Matematica și calculul numeric;

Dezvoltarea algoritmilor;

Dezvoltarea de aplicații;

Grafica inginerească;

Modelare, simulare și testarea prototipurilor

Matlab-ul a evoluat atât în industrie, unde este utilizat pentru cercetare de înalt randament, cât și în domeniul universitar.

Acest sistem, Matlab, constă în cinci părți principale:

Limbajul în sine;

Mediul de lucru;

Grafice;

Biblioteca de funcții matematice;

Interfața de aplicații program.

Matlab-ul utilizează expresii matematice ca și celelalte limbaje de programare, însă aceste expresii implică pe scară largă lucrul cu matrici. Expresiile sunt alcătuite din: variabile, operatori, numere, funcții. Acest program furnizează un număr mare de funcții matematice elementare standard(abs, sqrt, exp, sin, cos, etc.). Pentru vizualizarea funcțiilor elementare se poate tasta: help elfun.

Fig. 3.1Exemplu de câteva funcții elementare

Principalele funcții utilizate în partea practică a acestei lucrări sunt : sin, cos, upsample, downsample, interp, decimate.

3.1.1Noțiuni teoretice minime necesare aplicațiilor

În multe aplicații este necesară schimbarea frecvenței de eșantionare a semnalului. Aceasta, pentru un semnal discret, duce la obținerea unei secvențe care să conțină eșantioanele semnalului continuu, având perioada diferită de cea inițială.

Deoarece creșterea sau scăderea frecvenței de eșantionare se face cu ajutorul circuitelor de decimare, interpolare și a filtrelor adaptive, obținerea unor modificari fracționare se poate realiza prin cascadarea circuitelor de decimare cu cele de interpolare și invers.

Scăderea ratei de eșantionare sau decimarea reprezintă renunțarea la anumite eșantioane ale semnalului prin modificarea frecvenței de eșantionare a unui semnal discret cu un factor întreg M. În acest caz Fs’=Fs/M, ambele secvențe de eșationare trebuind să respecte criteriul lui Nyquist:

Fs≥Fmax (3.1.1.1)

respectiv

Fs’≥F’max (3.1.1.2)

unde

Fs’= (3.1.1.3)

Creșterea ratei de eșantionare sau interpolarea, este operația inversă a decimării și este realizată prin introducerea unor eșantioane suplimentare între eșantioanele curente ale semnalului.

În acest caz avem Fs’=LFs , unde Fs’este frecvența semnalului interpolat, iar L este factorul de interpolare.

Și în cazul creșterii frecvenței de eșantionare trebuie respectat criteriul lui Nyquist:

Fs≥Fmax (3.1.1.4)

Fs’≥F’max (3.1.1.5)

Fs’=FsL (3.1.1.6)

3.2.Aplicarea filtrelor multirată unui semnal sinusoidal

clc

clear all

close all

Ft=2000;

Fs=10000;

wt=2*Ft/Fs;

n=5

Nfft=2^16;

wt=2*Ft/Fs;

[bd,ad]=cheby1(n,2,wt);

% [bd,ad]=butter(n,wt);

% [bd,ad]=cheby2(n,30,wt);

F=-Fs/2:Fs/Nfft:Fs/2-Fs/Nfft;

h=impz(bd,ad);

H=fft(h,Nfft);

figure(2)

plot(F,abs(fftshift(H)))

grid

%%semnal sinusoidal

F1=500;

F2=1000;

F3=2000;

N=2^16;

n=0:N-1;

Nfft=64*N;

s=sin(2*pi*F1/Fs*n)+sin(2*pi*F2/Fs*n)+sin(2*pi*F3/Fs*n);

wn=-Fs/2:Fs/Nfft:Fs/2-Fs/Nfft;

S=fft(s,Nfft);

%%semnalul la ierirea din FTJ

y=filter(bd,ad,s);

Y=fft(y,Nfft); %datorita inmultiri se distrorsioneaza semnalul

figure(3)

plot(wn,abs(fftshift(Y))) %spectrul semnalului de iesire

grid

figure(4)

%plot(s)

plot(y);

grid

figure(5)

spectrogram(s,1000) % semanlul de intrare

figure(6)

spectrogram(y,1000) %semnalul de iesire

figure(7)

plot(wn,abs(fftshift(S)))

%%decimare standard

M=2;

sd1=decimate(s,M);

wnd=-Fs/(M*2):Fs/(M*Nfft):Fs/(M*2)-Fs/(M*Nfft);

Sd1=fft(sd1,Nfft);

figure(8)

spectrogram(sd1,1000)

figure(9)

plot(wnd,fftshift(abs(Sd1)))

%%decimare elementara + FTJ

sd1=downsample(s,M);

Sd1=fft(sd1,Nfft);

figure(10)

spectrogram(sd1,1000)

figure(11)

plot(wnd,fftshift(abs(Sd1)))

sd=filter(bd,ad,s);

sd11=downsample(sd,M);

Sd11=fft(sd11,Nfft);

figure(12)

spectrogram(sd11,1000)

figure(13)

plot(wnd,fftshift(abs(Sd11)))

%%interpolare standard

L=5;

wni=-Fs*L/2:Fs*L/Nfft:Fs*L/2-Fs*L/Nfft;

si=interp(s,L);

Si=fft(si,Nfft)

figure(14)

spectrogram(si,1000);

figure(15)

plot(wni,fftshift(abs(Si)))

%%interpolare elemntara+FTJ

si1=upsample(s,L);

s2=filter(bd,ad,si1);

S2=fft(s2,Nfft);

figure(16)

spectrogram(s2,1000);

figure(17)

plot(wni,fftshift(abs(S2)))

%%interpolare+decimare

wnid=-Fs*L/(M*2):Fs*L/(M*Nfft):Fs*L/(M*2)-Fs*L/(M*Nfft);

si2=upsample(s,L);

sd1=filter(bd,ad,si2);

s3=downsample(sd1,M);

S3=fft(s3,Nfft);

figure(19)

spectrogram(s3,1000)

figure(20)

plot(wnid,fftshift(abs(S3)))

În acest program voi lucra cu un semnal compus din trei semnale sinusoidale, pe frecvențe diferite.

Fig .3.2.1. Semnal format din suma a trei sinusoide – format bidimensional

Fig.3.2.2. Semnal format din suma a trei sinusoide – format tridimensional

Pentru a obține la recepție un semnal cât mai apropiat de cel inițial , vom filtra semnalul sinusoidal cu un filtru trece jos de tip:

Chebîșev 1

Fig.3.2.3. Caracteristica filtrului FTJ de tip Chebîșev 1

Chebîșev 2

Fig.3.2.4. Caracteristica filtrului FTJ de tip Chebîșev

Butterworth

Fig.3.2.5 Caracteristica filtrului FTJ de tip Butterworth

Semnalul obținut la ieșirea filtrului TJ în funcție de fiecare filtru are următoarea caracteristică (vor fi prezentate în paralel caracteristicile 2D si 3D) :

Chebîșev 1

Fig.3.2.6. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 1

– format bidimensional

Fig.3.2.7. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 1

– format tridimensional

Chebîșev 2

Fig.3.2.8. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 2

– format bidimensional

Fig.3.2.9. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Chebîșev 2

– format tridimensional

Butterworth

Fig.3.2.10. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Butterworth

– format bidimensional

Fig.3.2.11. Semnal format din suma a trei sinusoide, trecut printr-un FTJ de tip Butterworth

– format tridimensional

Pentru a vedea efectele filtrelor multirată am interpolat și decimat acest semnal folosind mai multe funcții:

upsample/downsample: aceste funcții sunt folosite pentru interpolare, respectiv decimare elementară;

interp/decimate: aplicând aceste funcții se aplică și un FTJ semanlului;

upsample/downsample și un filtru TJ creat;

resample: această funcție aplică decimarea și interpolarea pentru a obține semnalul de ieșire.

Decimare:

Fig.3.2.12. Semnal decimat elementar – bidimensional

Fig.3.2.13 Semnal decimat elementar – tridimensional

Fig.3.2.14. Semnal decimat standard – bidimensional

Fig.3.2.15. Semnal decimat standard – tridimensional

Fig.3.2.16. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev1 – bidimensional

Fig.3.2.17. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev1 – tridimensional

Fig. 3.2.18.Semnal decimat elementar, căruia i se aplică un FTJ Butterworth

Fig.3.2.19. Semnal decimat elementar, căruia i se aplică un FTJ Chebîșev2

Interpolare:

Fig.3.2.20. Semnal interpolat elementar – bidimensional

Fig.3.2.21. Semnal interpolat elementar – tridimensional

Fig.3.2.22. Semnal interpolat standard – bidimensional

Fig.3.2.23. Semnal interpolat standard – tridimensional

Fig.3.2.24 Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 2

Fig.3.2.25. Semnal interpolat elementar, căruia i se aplică un FTJ Butterwoth

Fig.3.2.26. Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 1 – bidimensional

Fig.3.2.27. Semnal interpolat elementar, căruia i se aplică un FTJ Chebîșev 1 – tridimensional

Pentru a reconstitui semnalul inițial se aplică funcția reasmple, sau se face decimare, se aplică un filtru trece jos și apoi se face interpolare.

Fig.3.2.28. Semnal reconstituit în urma aplicării unui decimator, FTJ și interpolator , circuite elementare – bidimesnional

Fig.3.2.29. Semnal reconstituit în urma aplicării unui decimator, FTJ și interpolator , circuite elementare – tridimensional

Fig.3.2.30 Semnal reconstituit standard

Următoarea aplicație practică se va face analizând comportamentul unui semnal vocal în urma aplicării circuitelor de decimare și interpolare, urmând exemplul dat mai sus pentru semnalul sinusoidal. Această aplicație se va efectua în următoarele cazuri:

Cazul I: Vocea unamă

Cazul II: Melodie instrumentală – Vioara.

3.3. Aplicarea filtrelor multirată unui semnal vocal

Cazul I

I.I

clc

close all

clear all

%%% Exercitiul 2

[x,Fs,Nb]=wavread('speech.wav');

Nfft=2^16;

X=fft(x,Nfft);

wn=-Fs/2:Fs/Nfft:Fs/2-Fs/Nfft;

figure(1)

spectrogram(x,5000)

figure(2)

plot(wn,fftshift(abs(X)))

L=5;

M=9;

%%decimare fara FTJ (se produce aliere)

xd1=x(1:M:length(x));

Xd1=fft(xd1,Nfft);

wn1=-Fs/(2*M):Fs/(M*Nfft):Fs/(2*M)-Fs/(M*Nfft);

figure(3)

spectrogram(xd1,5000) % rosu peste tot…din cauza alierii

figure(4)

plot(wn1,fftshift(abs(Xd1)))

%% decimare cu FTJ

xd2=decimate(x,M);

Xd2=fft(xd2,Nfft);

wn1=-Fs/(2*M):Fs/(M*Nfft):Fs/(2*M)-Fs/(M*Nfft);

figure(5)

plot(wn1,fftshift(abs(Xd2)))

figure(6)

spectrogram(xd2,5000) % albastru la margine …. nu mai e aliere

% %% interpolare cu FTJ

xi=interp(x,L);

Xi=fft(xi,Nfft);

wni=-Fs*L/2:Fs*L/Nfft:Fs*L/2-Fs*L/Nfft;

figure(7)

plot(wni,fftshift(abs(Xi)))

figure(8)

spectrogram(xi,5000) % albastru la margine …. nu mai e aliere

xi1=upsample(x,L);

Xi1=fft(xi1,Nfft);

figure(9)

plot(wni,fftshift(abs(Xi1)))

figure(10)

spectrogram(xi1,5000)

%%

Ft=3000;

wt=2*Ft/Fs;

n=5

Nfft=2^16;

wt=2*Ft/Fs;

% [bd,ad]=cheby1(n,2,wt);

% [bd,ad]=butter(n,wt);

[bd,ad]=cheby2(n,30,wt)

xd3=upsample(x,L)

x3=filter(bd,ad,xd3);

xid=downsample(x3,M);

% xid=resample(x,L,M);

Xid=fft(xid,Nfft);

wnid=-Fs*L/(2*M):Fs*L/(M*Nfft):Fs*L/(2*M)-Fs*L/(M*Nfft);

figure(11)

plot(wnid,fftshift(abs(Xid)))

figure(12)

spectrogram(xid,5000)

Fs1=Fs*L;

Fs2=Fs*L/M;

z=resample(x,L,M);

Z=fft(z,Nfft);

figure(13)

spectrogram(z,5000)

figure(14)

plot(wnid,fftshift(abs(Z)))

%

sound(x,Fs)

sound(xd1,Fs/M)

sound(xd2,Fs/M)

sound(xi,Fs1)

sound(xid,Fs2)

Pentru a vedea cum se comportă acest semnal , am variat atât factorul de interpolare cât și factorul de decimare.

Pentru un factor de interpolare L=5 și un factor de decimare M=9 avem următoarele grafice :

Fig.3.3.1. Semnal inițial – bidimensional

Fig.3.3.2. Semnal inițial – tridimensional

Fig.3.3.3. Semnal decimat elementar – bidimensional

Fig.3.3.4. Semnal decimat elementar – tridimensional

Fig.3.3.5. Semnal decimat standard – bidimensional

Fig.3.3.6. Semnal decimat standard – tridimensional

Fig.3.3.7. Semnal interpolat standard – bidimensional

Fig.3.3.8. Semnal interpolat elementar – tridimensional

Fig.3.3.9. Semnal interpolat standard – bidimensional

Fig.3.3.10. Semnal interpolat standard – tridimensional

Fig.3.3.11 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 – bidimensional

Fig.3.3.12 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 – tridimensional

Fig.3.3.13. Semnal reconstituit standard – bidimensional

Fig.3.3.14. Semnal reconstituit standard – tridimensional

Pentru un factor de interpolare L=7 și un factor de decimare M=5 avem următoarele grafice :

Fig.3.3.15 Semnal decimat elementar -tridimensional

Fig.3.3.16 Semnal decimat standard -tridimensional

Fig.3.3.17 Semnal interpolat elementar -tridimensional

Fig.3.3.18 Semnal interpolat standard -tridimensional

Fig.3.3.19 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 2 -tridimensional

Fig. 3.3.20 Semnal reconstituit standard –tridimensional

I.II

clc

close all

clear all

%%%citire fisier voce

[x,Fs,Nb]=wavread('Mihai_Eminescu.wav');

Nfft=2^16;

X=fft(x(:,1),Nfft);

wn=-Fs/2:Fs/Nfft:Fs/2-Fs/Nfft;

figure(1)

spectrogram(x(:,1),1000)

figure(2)

plot(wn,fftshift(abs(X)))

L=4;

M=7;

%%decimare fara FTJ (se produce aliere)

xd1=x(1:M:length(x(:,1)));

Xd1=fft(xd1,Nfft);

wn1=-Fs/(2*M):Fs/(M*Nfft):Fs/(2*M)-Fs/(M*Nfft);

figure(3)

spectrogram(xd1,5000) % rosu peste tot…din cauza alierii

figure(4)

plot(wn1,fftshift(abs(Xd1)))

%% decimare cu FTJ

xd2=decimate(x(:,1),M);

Xd2=fft(xd2,Nfft);

wn1=-Fs/(2*M):Fs/(M*Nfft):Fs/(2*M)-Fs/(M*Nfft);

figure(5)

plot(wn1,fftshift(abs(Xd2)))

figure(6)

spectrogram(xd2,5000) % albastru la margine …. nu mai e aliere

%% ascultare semnale

sound(x,Fs)

sound(xd1,Fs/M)

sound(xd2,Fs/M)

% %% interpolare cu FTJ

xi=interp(x(:,1),L);

Xi=fft(xi,Nfft);

wni=-Fs*L/2:Fs*L/Nfft:Fs*L/2-Fs*L/Nfft;

figure(7)

plot(wni,fftshift(abs(Xi)))

figure(8)

spectrogram(xi,5000) % albastru la margine …. nu mai e aliere

xi1=upsample(x(:,1),L);

Xi1=fft(xi1,Nfft);

figure(9)

plot(wni,fftshift(abs(Xi1)))

figure(10)

spectrogram(xi1,5000)

%%Creearea filtrelor TJ

Ft=3000;

wt=2*Ft/Fs;

n=5

Nfft=2^16;

wt=2*Ft/Fs;

[bd,ad]=cheby1(n,2,wt);

% [bd,ad]=butter(n,wt);

% [bd,ad]=cheby2(n,30,wt);

%%decimare+interpolare

xd3=upsample(x(:,1),L);

x3=filter(bd,ad,xd3);

xid=downsample(x3,M);

Xid=fft(xid,Nfft);

wnid=-Fs*L/(2*M):Fs*L/(M*Nfft):Fs*L/(2*M)-Fs*L/(M*Nfft);

figure(11)

plot(wnid,fftshift(abs(Xid)))

figure(12)

spectrogram(xid,5000)

z=resample(x(:,1),L,M);

Z=fft(z,Nfft);

figure(13)

spectrogram(z,5000)

figure(14)

plot(wnid,fftshift(abs(Z)))

sound(x(:,1),Fs)

sound(xd1,Fs/M)

sound(xd2,Fs/M)

sound(xi,Fs*L)

Fig.3.3.21. Semnal inițial – bidimensional

Fig.3.3.22. Semnal inițial – tridimensional

Fig.3.3.23. Semnal decimat elementar – bidimensional

Fig.3.3.24. Semnal decimat elementar – tridimensional

Fig.3.3.25. Semnal decimat standard –bidimensional

Fig.3.3.26. Semnal decimat standard – tridimensional

Fig.3.3.27. Semnal interpolat standard – bidimensional

Fig.3.3.28. Semnal interpolat standard – tridimensional

Fig.3.3.29. Semnal interpolat elementar – bidimensional

Fig.3.3.30. Semnal interpolat elementar – tridimensional

Fig.3.3.31. Semnal reconstituit – bidimensional

Fig.3.3.32. Semnal reconstituit – tridimensional

Fig.3.3.33. Semnal reconstituit standard – bidimensional

Fig.3.3.34. Semnal reconstituit standard – tridimensional

3.4. Aplicarea filtrelor multirată unui semnal muzical

Cazul II

clc

close all

clear all

%%% Exercitiul 2

[x,Fs,Nb]=wavread('Vioara1.wav');

Nfft=2^16;

X=fft(x(:,1),Nfft);

wn=-Fs/2:Fs/Nfft:Fs/2-Fs/Nfft;

figure(1)

plot(wn,fftshift(abs(X)))

figure(2)

spectrogram(x(:,1),5000)

L=9;

M=5;

%decimare fara FTJ (se produce aliere)

xd1=x(1:M:length(x));

wn1=-Fs/(2*M):Fs/(M*Nfft):Fs/(2*M)-Fs/(M*Nfft);

Xd1=fft(xd1,Nfft);

figure(3)

spectrogram(xd1,5000) % rosu peste tot…din cauza alierii

figure(4)

plot(wn1,fftshift(abs(Xd1)))

% % decimare cu FTJ

xd2=decimate(x(:,1),M);

Xd2=fft(xd2,Nfft);

figure(5)

plot(wn1,fftshift(abs(Xd2)))

figure(7)

spectrogram(xd2,5000) % albastru la margine …. nu mai e aliere% ascultare semnale

sound(x,Fs)

sound(xd1,Fs/M)

sound(xd2,Fs/M)

% % %% interpolare cu FTJ

xi=interp(x(:,1),L);

figure(8)

spectrogram(xi,5000) % albastru la margine …. nu mai e aliere

xi1=upsample(x(:,1),L);

wni=-Fs*L/2:Fs*L/Nfft:Fs*L/2-Fs*L/Nfft;

Xi1=fft(xi1,Nfft);

figure(9)

spectrogram(xi1,5000)

figure(10)

plot(wni,fftshift(abs(Xi1)))

%

Ft=2000;

wt=2*Ft/Fs;

n=5

Nfft=2^16;

wt=2*Ft/Fs;

[bd,ad]=cheby1(n,2,wt);

% [bd,ad]=butter(n,wt);

% [bd,ad]=cheby2(n,30,wt)

% xd3=downsample(x,M);

x3=upsample(x(:,1),L);

y=filter(bd,ad,x3);

xid1=downsample(y,M);

Xid1=fft(xid1,Nfft);

wnid=-Fs*L/(2*M):Fs*L/(M*Nfft):Fs*L/(2*M)-Fs*L/(M*Nfft);

figure(11)

plot(wnid,fftshift(abs(Xid1)))

figure(12)

spectrogram(y,1000)

xid=resample(x(:,1),L,M);

Xid=fft(xid,Nfft);

figure(14)

spectrogram(xid,5000)

figure(15)

plot(wnid,fftshift(abs(Xid)))

%

sound(xid1,Fs*L/M)

% %

%

În acest exemplu, semnalul de intrare este unul stereo. Pentru a putea reda și afișa graficele necesare experimentului, din semnalul stereo am obținut un semnal mono.

În primul experiment am folosit următorii parametrii: L=9, M=5 .

Fig. 3.4.1.Semnalul inițial – bidimensional

Fig.3.4.2. Semnalul inițial – tridimensional

Fig.3.4.3 Semnal decimat elementar – bidimensional

Fig.3.4.4. Semnal decimat elementar – tridimensional

Fig.3.4.5. Semnal decimat standard – bidimensional

Fig.3.4.6 Semnal decimat standard – tridimensional

Fig.3.4.7 Semnal interpolat standard – bidimensional

Fig.3.4.8. Semnal interpolat standard – tridimensional

Fig.3.4.9 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – bidimensional

Fig.3.4.10 Semnal reconstituit cu blocuri de decimare și interpolare elementară și un FTJ Chebîșev 1 – tridimensional

Fig.3.4.11 Semnal reconstituit standard – bidimensional

Fig.3.4.12 Semnal reconstituit standard – tridimensional

Concluzii

Aceste experimente au fost realizate pentru a evidenția efectele operațiilor de decimare și interpolare asupra semnalelor.

Am început cu studiul unui semnal sinusoidal deoarece are un spectru bine definit și se evideanțiază mult mai ușor efectele operațiilor aplicate semnalului.

Filtrul trece-jos a fost proiectat pentru a varia metodele de decimare, astfel aplicând un decimator elementar și un FTJ , ar trebui să se elimine alierea spectrală. Aceleaș efect are și blocul decimator standard, unde frecvența de tăiere a filtrului trece-jos încorporat este 8*Fs/2

Se observă din grafice că, atunci când se aplică un decimator elementar, se elimină frecvențele înainte (Fig.3.2.12), însă nu se elimină alierea spectrală. Aceasta este eliminată cu ajutorul FTJ aplicat înainte de a se face decimarea (Fig.3.2.14). Dacă se aplică un filtru de tip Chebîșev 1 devin vizibile riplurile (Fig.3.2.17).

Aplicând un interpolator elementar aceluiași semnal, apar spectre imagine (Fig. 3.2.20). Pentru a elimina aceste spectre care produc interferențe se aplică la ieșire din interpolator un FTJ. Acest filtru poate fi încorporat în cadrul blocului de interpolare , având frecvența de tăiere …., fie un filtru separat. Figura.3.2.22 demonstrează cele spuse anterior.

Reconstituirea semnalului la ieșire din circuit se face astfel: se interpolează semnalul, se filtrează semnalul astfel obținut cu ajutorul unui FTJ, apoi se face decimarea. La ieșirea unui astfel de bloc se obține un semnal aproape identic cu cel de la intrare, semnal din care au fost eliminate spectrele imagine și alierea.

Cateva exemple mai concludente sunt cele în care semnalul de intrare este un semanl vocal sau o melodie.

Apairiția alierii spectrale în urma decimării elementare (Fig.3.3.3) este eliminată aplicând semnalului un bloc decimator cu FTJ încorporat ( Fig.3.3.5) sau aplicând un FTJ și apoi un decimator elementar .

În cazul interpolării , apariția spectrelor imagine (Fig.3.3.7) este eliminată cu ajutorul unui FTJ aplicat la ieșirea blocului de interpolare elementară (Fig.3.3.9)

Pentru a reconstitui semnalul inițial se folosesc blocuri de interpolare și decimare elementară și un FTJ, sau, în matlab, funcția resamble cumulează toate aceste operații (Fig.3.3.11. și Fig.3.3.13).

Experimetele realizate cu semnalul vocal au fost variate pentru diferiți parametrii deoarece am dorit să evidențiez eficacitatea filtrelor multirată. Tot din acest motiv am facut aceste experimente și cu un semnal melodic.

Bibliografie

[1] Ljiljana Malić , Filtre Multirată pentru Procesarea Digitală a Semnalelor: Aplicații în MATLAB , Editura Information Science Reference, Hershy, New York

[2] http://www.mathworks.com/help/matlab/

[3]

Bibliografie

[1] Ljiljana Malić , Filtre Multirată pentru Procesarea Digitală a Semnalelor: Aplicații în MATLAB , Editura Information Science Reference, Hershy, New York

[2] http://www.mathworks.com/help/matlab/

Similar Posts