Calculul şi utilizarea Transformatei Fourier Discrete

Σχετικά έγγραφα
Metode iterative pentru probleme neliniare - contractii

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Metode de interpolare bazate pe diferenţe divizate

Curs 4 Serii de numere reale

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Asupra unei inegalităţi date la barajul OBMJ 2006

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Esalonul Redus pe Linii (ERL). Subspatii.

Curs 1 Şiruri de numere reale

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Integrala nedefinită (primitive)

Laborator 11. Mulţimi Julia. Temă

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

Componente şi Circuite Electronice Pasive. Laborator 4. Măsurarea parametrilor mărimilor electrice

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor


Curs 2 Şiruri de numere reale

III. Reprezentarea informaţiei în sistemele de calcul

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Subiecte Clasa a VIII-a

riptografie şi Securitate

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

MARCAREA REZISTOARELOR

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Seminar 5 Analiza stabilității sistemelor liniare

prin egalizarea histogramei

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Aplicaţii ale principiului I al termodinamicii la gazul ideal

z a + c 0 + c 1 (z a)

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

1.3 Baza a unui spaţiu vectorial. Dimensiune

Problema a II - a (10 puncte) Diferite circuite electrice

Toate subiectele sunt obligatorii. Timpul de lucru efectiv este de 3 ore. Se acordă din oficiu 10 puncte. SUBIECTUL I.

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Criptosisteme cu cheie publică III

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

Examen AG. Student:... Grupa:... ianuarie 2011

1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB

Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

SEMINAR TRANSFORMAREA FOURIER. 1. Probleme

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Tratarea numerică a semnalelor

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Subiecte Clasa a VII-a

Sisteme diferenţiale liniare de ordinul 1

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

a. 11 % b. 12 % c. 13 % d. 14 %

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera


VII.2. PROBLEME REZOLVATE

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

4. Măsurarea tensiunilor şi a curenţilor electrici. Voltmetre electronice analogice

Profesor Blaga Mirela-Gabriela DREAPTA

Seminar 3. Problema 1. a) Reprezentaţi spectrul de amplitudini şi faze pentru semnalul din figură.

Tranzistoare bipolare şi cu efect de câmp

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

Capitolul 3. Serii Fourier. a unei funcţii periodice de perioadă Dezvoltarea în serie Fourier

Proiectarea filtrelor IIR prin metode de transformare

Procesarea Semnalelor

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare.

5.4. MULTIPLEXOARE A 0 A 1 A 2

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

Curs 2 DIODE. CIRCUITE DR

Seminar Algebra. det(a λi 3 ) = 0

Laborator 6. Integrarea ecuaţiilor diferenţiale

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Al cincilea baraj de selecţie pentru OBMJ Bucureşti, 28 mai 2015

Conice - Câteva proprietǎţi elementare

riptografie şi Securitate

Proiectarea filtrelor prin metoda pierderilor de inserţie

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

LUCRAREA 2 SEMNALE ŞI SISTEME ÎN TIMP DISCRET

Subiecte Clasa a V-a

2 Transformări liniare între spaţii finit dimensionale

Proiectarea filtrelor FIR prin metoda ferestrei

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Matrice. Determinanti. Sisteme liniare

Electronică anul II PROBLEME

Transcript:

Laboratorul Calculul şi utilizarea Transformatei Fourier Discrete. Tema Utilizarea transformatei Fourier discrete (TFD) pentru calculul spectrului unui semnal cu suport finit. Implementarea algoritmului FFT (transformata Fourier rapidă), în variantele bazate pe decimare în timp, respectiv frecvenţă..2 Suport teoretic Fie x[n] un semnal cu suport 0 :. Transformata sa Fourier (TF) este X(ω) = x[n]e jωn. (.) Desigur, această expresie poate fi utilizată pentru evaluarea spectrului în orice punct ω [0, 2π]. Totuşi, un mod de calcul mai eficient, prin care se obţine spectrul doar în puncte echidistante, se bazează pe transformata Fourier discretă. Definiţia. Transformata Fourier discretă (TFD) a semnalului x[n] cu suport 0 : este secvenţa unde X[k] = x[n]e j 2π kn =, k = 0 :, (.2) w = e j 2π. (.3) Vom nota în continuare X[k] = T F D (x[n]) (ignorând eventual indicele atunci când lungimea suportului rezultă din context). Observaţia. Comparând (.) şi (.2), observăm relaţia dintre TF şi TFD. Se observă că punând ω = 2πk/, k 0 :, în TF (.), obţinem exact TFD (.2). Aşadar, pentru semnale cu suport finit, TFD reprezintă o eşantionare a TF, în frecvenţe echidistante aflate în intervalul [0, 2π]. Pentru ilustrare, prezentăm în figura. un semnal cu suport 0 : 7 (deci = ), transformata Fourier a acestuia (care este o funcţie continuă cu suport [0, 2π]) şi transformata Fourier discretă a semnalului, care eşantionează TF în frecvenţele 0 : π/ : 7π/.

2 LABORATORUL. CALCULUL ŞI UTILIZAREA TFD x[n] X[k] n 0 /2 k π 2π ω Figura.: Stânga: un semnal cu suport 0 : 7. Dreapta: spectrul semnalului (amplitudine) şi eşantioanele obţinute cu TFD. Propoziţia. Dacă x[n] este un semnal cu suport 0 : şi X[k] = T F D(x[n]), atunci are loc egalitatea x[n] = k=0 X[k]e j 2π kn = k=0 care defineşte transformata Fourier discretă inversă (TFDI). X[k]w kn. (.) Transformata Fourier rapidă Transformata Fourier rapidă (FFT Fast Fourier Transform) este numele generic pentru o clasă de algoritmi rapizi de calcul al transformatei Fourier discrete (TFD), pentru semnale cu suport finit. umele FFT provine din complexitatea de O( log 2 ) operaţii aritmetice necesare calculului TFD al unui semnal cu eşantioane. Spre deosebire, algoritmul banal care implementează (.2) ca atare (printr-o înmulţire matrice-vector) necesită O( 2 ) operaţii. Algoritmii de tip FFT sunt bazaţi pe ideea de decimare, adică de reducere a calculului TFD ( ) la calculul unor TFD de lungime mai mică. Pentru simplitatea prezentării, vom considera doar cazul practic în care este o putere a lui 2. În acest caz, decimarea este de fapt înjumătăţire, iar calculul TFD ( ) se reduce la calculul a două transformări TFD /2 ( ). Ideea esenţială este de a aplica recursiv procedeul de decimare, pentru calculul fiecărei TFD de lungime mai mică. Aşadar, algoritmii FFT sunt de tip divide et impera. Algoritmul FFT cu decimare în timp se bazează pe următoarea separare a relaţiei de definiţie (.2): X[k] = = = = n par /2 /2 + n impar /2 x[2m]w 2km + /2 x[2m]w/2 km + wk x[2m + ]w k(2m+) x[2m + ]w km /2. (.5)

.2. SUPORT TEORETIC 3 x[0] x[2] x[] x[6] x[] x[3] x[5] x[7] TFD /2 ( ) TFD /2 ( ) U[0] = U[] U[] = U[5] U[2] = U[6] U[3] = U[7] V [0] = V [] w V [] = V [5] w 5 V [2] = V [6] w 6 V [3] = V [7] w 7 w 0 w w 2 w 3 X[0] X[] X[2] X[3] X[] X[5] X[6] X[7] Figura.2: Calculul unei TFD de lungime = utilizând două TFD de lungime /2 = (decimare în timp). Aşadar, în prima linie a şirului de egalităţi de mai sus avem definiţia (.2) a TFD. În a doua linie, separăm suma din prima linie în două sume, una corespunzând indicilor pari, cealaltă celor impari. În a treia linie exprimăm formal separarea prin substituţiile n = 2m, m = 0 : /2, în prima sumă, şi n = 2m +, m = 0 : /2, în a doua. Trecerea la ultima linie se bazează pe relaţia evidentă w 2km = e j 2π 2km 2π j = e /2 km = w/2 km. Din (.5) rezultă că TFD (x[n]) se calculează ca sumă a două TFD a unor semnale cu suport 0 : /2, formate din eşantioanele pare, respectiv impare, ale semnalului x[n]. otând x p [m] = x[2m] şi x i [m] = x[2m + ] aceste semnale şi U[k] = TFD /2 (x p [m]), V [k] = TFD /2 (x i [m]) transformatele Fourier discrete ale lor (de lungime /2), putem scrie X[k] = U[k] + w k V [k], k = 0 :. (.6) Atenţie, în această relaţie avem k = 0 :, deci apar două perioade ale transformatelor Fourier discrete U[k], V [k]. Schema de calcul corespunzătoare relaţiei (.6) este ilustrată în figura.2; convenim ca unirea a două săgeţi să reprezinte o operaţie de sumare; o constantă, e.g. w k, asociată unei săgeţi înseamnă înmulţirea semnalului reprezentat de săgeată cu constanta respectivă. Aplicând recursiv modul de calcul din relaţia (.5) şi figura.2, pentru calculul fiecărei TFD de lungime mai mică, se obţine următoarea funcţie recursivă, care calculează TFD (x[n]). funcţie X = FFT(x, ). dacă = atunci. X = x 2. altfel

LABORATORUL. CALCULUL ŞI UTILIZAREA TFD x[0] x[] x[2] x[6] x[] x[5] x[3] x[7] w2 w 0 2 w2 0 w2 w2 0 w2 w2 0 w2 w 2 w 3 w 0 w w 0 w 2 w 3 w w 0 w 5 w 6 w 7 w w 2 w 3 w X[0] X[] X[2] X[3] X[] X[5] X[6] X[7] Figura.3: Schemă completă de calcul al TFD de lungime = (decimare în timp).. Pune x p [m] = x[2m], x i [m] = x[2m + ], pentru m = 0 : /2 2. Calculează U = FFT(x p, /2), V = FFT(x i, /2) (apel recursiv) 3. X[k] = U[k] + w k V [k], pentru k = 0 : /2. X[k] = U[k /2] + w k V [k /2], pentru k = /2 : În implementările practice ale algoritmului FFT nu se folosesc apelurile recursive, ci variante iterative echivalente, care conduc la programe mai eficiente. Pentru a ilustra varianta iterativă, am detaliat schema operaţiilor pentru calculul TFD ( ) în figura.3. Schema, numită diagramă fluture, datorită formei sale, este obţinută din cea din figura.2 prin detalierea operaţiilor necesare tuturor TFD de lungime mai mică. Liniile punctate verticale separă etapele de calcul (iteraţiile sau nivelele de recursie, după cum interpretăm algoritmul); în fiecare etapă se combină TFD de lungime mai mică, pentru a obţine un număr de două ori mai mic de TFD de lungime dublă. Observăm cu uşurinţă că sunt log 2 etape şi că în fiecare dintre ele se efectuează 2 operaţii, ceea ce conduce la totalul deja calculat de 2 log 2. Eşantioanele semnalului de intrare sunt ordonate după numerele obţinute prin inversarea biţilor indicilor. De exemplu, cu referinţă la figura.3, elementul cu indicele = 00 2 este în poziţia = 00 2 ; ordinea completă este (toate numerele sunt în baza 2): 000, 00, 00, 0, 00, 0, 0,. Spunem că un semnal astfel ordonat se află în ordine bit-inversă a indicilor. Înainte de a scrie algoritmul iterativ anunţat mai devreme, vom face mici modificări în diagrama din figura.3. Rezultatul este diagrama de calcul din figura., obţinută prin simple manipulări ale puterilor numerelor de tip (.3). Observăm întâi că, cu referire la (.6), avem. În concluzie, con-, k = 0 : /2. În fine, calculele se pot desfăşura pe loc în vectorul care conţine semnalul iniţial x[n]. Algoritmul corespunzător diagramei din figura. este următorul: w k = wk /2 statăm că se pot utiliza doar constantele w k. Apoi, pentru K putere a lui 2, putem scrie w m K = wm/k funcţie x = FFT decimare timp(x, ). Ordonează x în ordine bit-inversă a indicilor 2. pentru i = : log 2. K = 2 i

.3. GHID MATLAB 5 x[0] X[0] w x[] X[] w 0 x[2] X[2] w w 2 x[6] X[3] w X[] 0 x[] w w x[5] X[5] w w 2 x[3] 0 X[6] w w 2 w 3 x[7] X[7] Figura.: Schemă îmbunătăţită de calcul al TFD de lungime =. 2. pentru k = 0 : K :. pentru m = 0 : K/2. y = x[k + m] 2. z = w m/k x[k + K/2 + m] 3. x[k + m] = y + z. x[k + K/2 + m] = y z Acest algoritm necesită 3/2 log 2 operaţii complexe, din care doar /2 înmulţiri..3 Ghid Matlab Transformata Fourier discretă a unui semnal x (memorat într-un vector) se calculează cu >> X = fft(x) Dacă suportul mesajului are lungime putere a lui 2, atunci algoritmul folosit este FFT; altfel, se foloseşte un algoritm mai lent. Apelul >> X = fft(x, ) calculează TFD a semnalului x prelungit cu zerouri până la lungime. O astfel de TFD calculează o eşantionare mai fină a spectrului semnalului. Transformata Fourier discretă inversă se calculează cu >> x = ifft(x) Evident, ifft(fft(x)) produce semnalul original (cu inevitabilele erori numerice). Deoarece funcţia fft calculează DFT conform definiţiei (.2), vectorul X obţinut reprezintă o eşantionare a spectrului definit pe [0, 2π). Funcţia fftshift realizează deplasarea vectorului X astfel încât spectrul eşantionat să corespundă intervalului [π, π). Apelul >> Y = fftshift(x) mută în primele /2 poziţii din Y a doua jumătate a vectorului X.

6 LABORATORUL. CALCULUL ŞI UTILIZAREA TFD. Sarcini de lucru Tema. (Utilizarea TFD pentru calculul spectrului unui semnal) Luaţi un semnal x[n] de lungime = 6, de exemplu o sumă de sinusoide. a. Desenaţi spectrul semnalului utilizând funcţia freqz. b. Calculaţi TFD a semnalului, utilizând funcţia fft, şi reprezentaţi grafic amplitudinea TFD. Observaţi legătura dintre spectrul obţinut acum şi cel de la punctul a. Desenaţi un grafic în stilul celui din dreapta figurii.. c. Transformaţi TFD a semnalului cu ajutorul funcţiei fftshift şi redesenaţi spectrul. Care este legătura cu spectrul de la punctul b? d. Prelungiţi semnalul x[n] cu zerouri până la lungimile 2 şi. Repetaţi operaţiile de la punctele b şi c. Observaţi că obţineţi o eşantionare mai fină a spectrului semnalului. e. Calculaţi şi desenaţi TFD ale semnalelor x 0 [n] = şi x [n] = ( ) n, ambele cu suport 0 :. Încercaţi să anticipaţi rezultatele. Tema.2 (Algoritmul FFT cu decimare în timp) a. Funcţia sort bitinv (aflată în acelaşi director cu lucrarea de laborator) primeşte un vector format din numere şi întoarce vectorul ordonat în ordine bit-inversă a indicilor (se presupune că indicii încep de la zero şi că este o putere a lui 2). Observaţi că operaţia se poate face pe loc în vector, prin interschimbări de elemente; dacă n este un indice şi ñ = bitinv(n) indicele obţinut prin inversarea biţilor în reprezentarea binară a lui n, atunci avem n = bitinv(ñ). Apelaţi funcţia pentru un vector de dimensiune sau 6 (de exemplu vectorul 0:7) şi constataţi corecta ei funcţionare. b. Scrieţi o funcţie Matlab urmând algoritmul FFT decimare timp de la sfârşitul secţiunii teoretice a acestei lucrări. c. Testaţi funcţia scrisă folosind-o în locul funcţiei fft în programele de la tema anterioară. d. Completaţi funcţia pentru a funcţiona şi în cazul în care semnalul nu are lungimea putere a lui 2. În acest scop, prelungiţi semnalul cu zerouri până la prima putere a lui 2 mai mare ca lungimea semnalului. Tema.3 (Supliment: algoritmul FFT cu decimare în frecvenţă) Studiaţi din curs algoritmul FFT cu decimare în frecvenţă şi scrieţi un program Matlab pentru implementarea lui. Comparaţi rezultatele obţinute de cele două programe scrise în cadrul acestei lucrări de laborator. Completaţi programele astfel încât să calculeze transformata Fourier discretă pentru orice lungime a vectorului de date.