180 likes | 322 Views
Informatica industriala. Transformata fourier discreta (DFT) si Transformata Fourier rapida (FFT). Transformate Fourier. Obiectiv: descompunerea unui semnal complex intr-o suma de semnale simple semnale simple: set de semnale sinusoidale pentru ca sunt ortogonale
E N D
Informatica industriala Transformata fourier discreta (DFT) si Transformata Fourier rapida (FFT)
Transformate Fourier • Obiectiv: descompunerea unui semnal complex intr-o suma de semnale simple • semnale simple: set de semnale sinusoidale • pentru ca sunt ortogonale • nu isi schimba forma la trecerea printr-un sistem liniar (se schimba amplitudinea si faza, dar semnalul ramane sinusoidal si de aceeasi frecventa) • Mai multe tipuri de transformate Fourier pentru diferite tipuri de semnale:
Transformate Fourier • Mai multe tipuri de transformate Fourier pentru diferite tipuri de semnale
Transformata Fourier Discreta • se aplica numai semnalelor discrete periodice • pentru ca are un numar finit de termeni • se poate calcula printr-un numar finit de pasi • semnalele digitale aperiodice pot fi “transformate” artificial in semnale periodice • transformata Fourier discreta (DFT) transforma un set de N esantioane de intrare (din domeniul timp) in 2 seturi de N/2+1 esantioane de iesire din domeniul frecventa • un set de amplitudini pentru functii cosinus – partea reala • ReX[k], pentru functii ck[i] = cos (2πki/N) – cos() esantionat • un set de amplitudin pentru functii sinus – partea imaginara • ImX[k], pentru functii Sk[i] = sin (2πki/N) – sin() esantionat unde k=0 - N/2, iar i=0 – (N-1)
Sinteza unui semnal pe baza coeficientilor transformatei Fourier discrete: • unde sunt valorile normalizate ale coeficientilor din transformata Fourier discreta
Calcularea DFT • trei metode: • didactica, dar foarte lenta • prin convolutie (clasica) • transformata Fourier rapida FFT • Didactica: • folosind formula anterioara de sinteza, scriem N ecuatii cu N necunoscute pentru cele N valori discrete ale lui x[i] • teoretic ar fi (N/2+1) + (N/2+1) = N+2 coeficienti de determinat, dar se poate arata ca ImX[0]=0 si ImX[N/2]=0, asa ca raman N necunoscute ReX[k] si ImX[k] • se rezolva setul de N ecuatii cu N necunoscute (ex. cu metoda eliminarii a lui Gauss) • metoda prea lenta, nu se foloseste practic, dar arata teoretic de ce se pot determina coeficientii Fourier din N esantioane ale intrarii
Calcularea DFT prin convolutie • se bazeaza pe ortogonalitatea functiilor elementare sinusoidale • daca un semnal de intrare x[i] contine o sinusoida de o anumita frecventa atunci corelatia lui x[i] cu acea functie este diferita de zero (este amplitudinea acelei componente in x); • daca semnalul nu contine acea componenta convolutia lui x[i] cu acea sinusoida este 0 • formula de calcul a coeficientilor:
A[k] ImX[k] θ[k] ReX[k] Reprezentarea polara a transformatei Fourier discrete • reprezentarea grafica a ReX[k] si ImX[k] nu este relevanta pentru ochiul uman • perechile sin si cos de aceeasi frecventa se transforma intr-o functie cos dupa formula: • A cos(x+θ)= C cos(x) + S sin (x) • pentru fiecare frecventa rezulta o magnitudine A (amplitudine) si o faza θ, care se calculeaza cu: A[k] = ReX[k]2 + ImX[k]2 θ[k] = arctan(ImX[k]/ReX[k]))
Reprezentarea frecventei in diagramele DFT (reprezentarea axei x) • patru posibilitati de reprezentare a frecventei: • ca esantioane ale transformatei, de la 0 la N/2 • N este numarul de esantioane ale intrarii • de exemplu pentru N=128, se obtin 64 de esantioane ale transformatei • programatorii prefera aceasta metoda, desi nu este prea sugestiva privind frecventele reale prezente in semnal • ca o fractie din frecventa de esantionare, cu interval de variatie (0-0,5) • teorema lui Shannon limiteaza frecventa semnalului de intrare la jumatate din frecventa de esantionare • trecerea din prima reprezentare in a doua se face prin divizare cu N • similar cu cazul 2 dar multiplicat cu 2π • se obtine o variatie in radiani, intre 0 si π • ca o secventa de frecvente reale • valorile din cazul 2 de reprezentare se inmultesc cu frecventa de esantionare • de exemplu daca frecventa de esantionare este 1000Hz atunci axa Ox variaza intre 0 si 500 Hz
Reprezentarea unui semnalin Domeniul timp si in Domeniul frecventa Domeniul timp Domeniul frecventa Reprezentare prin N/2 esantionane • semnalul esantionat in timp • b. partea reala a transformatei (functii cos()) • c. partea imaginara a transformatei (functii sin()) Reprezentare prin fractii ale frecventei de esantionare
Transformata Fourier Rapida (FFT) • observatii preliminarii: • o metoda de a calcula mult mai eficient DFT • timpul de calcul scade cu 2, 3 ordine de marime; • permite utilizarea transformatei Fourier ca metoda de analiza in aplicatii de procesare a semnalelor on-line (in timp real) • complexitatea algoritmului de calcul al DFT prin convolutie este n2 ;complexitatea FFT este n*lg n • explicarea bazelor matematice ale metodei FFT este mult mai complexa decat forma algoritmului care rezulta • “FFT este pentru Procesarea digitala a semnalelor ca si un tranzistor pentru circuitele electronice: o componenta de baza; • dar nu trebuie sa intelegi structura complexa a tranzistorului ca sa-l folosesti cu succes; • doar un mic numar de specialisti inteleg cu adevarat cum functioneaza tranzistorul (ca si FFT-ul) dar foarte multi il folosesc”
Metoda de calcul a FFT • Secventa de calcul: • pasul 1: un semnal de N puncte din domeniul timp se descompune in N semnale de cate un singur punct • pasul 2: se calculeaza distributiile spectrale pentru cele N semnale de un punct • pasul 3: cele N spectre obtinute se sintetizeaza intr-un singur spectru
Detalii privind calculul FFT • Pasul 1: Decompozitia semnalului avand N puncte in domeniul timp • exemplu de descompunere pentru un semnal avand 16 puncte Semnalul initial cu 16 puncte 2 semnale a cate 8 puncte log2n pasi 16 semnale a cate 1 punct
Detalii privind calculul FFT • Pasul 2: descompunerea spectrala a semnalului de un punct • banal: spectrul este egal cu valoarea punctului (demonstrat in teoria semnalelor) • deci nu se calculeaza nimic, valorile spectrale sunt valorile punctelor din domeniul timp • Pasul 3: sinteza spectrelor fiecarui punct pentru a obtine spectrul semnalului initial • sinteza se face in ordine inversa celei de descompunere: • se combina cate 2 spectre de punct pentru a obtine spectrul pentru 2 puncte, apoi spectrele de 2 puncte cate 2 pentru a obtine spectre de cate 4 puncte s.a.m.d. pana la obtinerea spectrului pentru semnalul initial cu N puncte
Detalii privind calculul FFT • Pasul 3(continuare): • exemplu de combinare a 2 spectre de 4 puncte pentru a obtine un spectru pentru 8 puncte • operatia de baza: compozitia a 2 puncte in alte 2 puncte Spectrul pentru 4 puncte impare Spectrul pentru 4 puncte pare 2 puncte de intrare Spectrul de frecventa pentru 8 puncte Unitate elementara de calcul de tip fluture (butterfly) xS – reprezinta multiplicarea cu o sinusoida 2 puncte de iesire
Detalii privind calculul FFT • Diagrama de executie a programului Semnal in domeniul timp Decompozitia semnalului de intrare log2n ori Antet pentru fiecare sub-DFT Antet Calculul unei unitati butterfly pentru fiecare butterfly Distributia spectrala (semnal in domeniul frecventa)