Sunteți pe pagina 1din 4

Prelucrarea timp frecvenţă a semnalelor _______________________________ Laborator nr.

Serii Fourier. Transformata Fourier.

1. Considerații teoretice
1.1. Serii Fourier
Orice semnal periodic poate fi scris ca o sumă infinită de semnale armonice (sinus și cosinus).
Frecvența oricărui termen din seria trigonometrică este un multiplu întreg (armonică) a frecvenței
fundamentale a semnalului periodic. Fiind dat un semnal periodic f(t), el poate fi reprezentat:
¥
f (t ) = a0 + å [ak cos(kw 0 t ) + bk sin(kw 0 t )]
k =1

unde k este un număr întreg.


a0, ak și bk se numesc coeficeinții seriei Fourier și sunt calculați plecând de la f(t).
2p
w0 = este frecvența fundamentală a semnalului periodic f(t) cu perioada T și kw 0 se mai
T
numește și a k-a armonică a semnalului f(t).
Coeficienții seriei Fourier se calculează cu formulele:
T
1
a0 = ò f (t )dt
T 0
T
2
ak = ò f (t )cos(kw0t )dt
T 0
T
2
bk = ò f (t ) sin(kw0t )dt
T 0

Notând e jwt = cos(wt ) + j sin(wt ), putem scrie


k =¥
f (t ) = åc e k
jkwt

k = -¥
T
1
în care ck = ò f (t )e - jkwt dt
T 0

1.2. Transformata Fourier


Transformata Fourier poate fi utilizată pentru a putea analiza în domeniul frecvențelor un
semnal.
Transformata Fourier este definită de ecuația:
¥
F (w ) = ò f (t )e - jwt dt

și inversa transformatei Fourier se definește:


¥
1
f (t ) = ò F (w )e
jw t
dw
2p -¥

Luând în considerare formulele de mai sus, putem folosi transformata Fourier și inversa ei
pentru a avea reprezentarea unui semnal atât în domeniul timp, cât și în domeniul frecvență.
Prelucrarea timp frecvenţă a semnalelor _______________________________ Laborator nr. 1
Ambele domenii de reprezentare (timp și frecvență) pot fi continui sau discrete cu referire la
variabila timp sau frecvență. Rezultă patru variante diferite de transformată Fourier.

Frecvență continuă Frecvență discretă


Timp continuu Transformata Fourier (FT) Serie Fourier (FS)
Timp discret Transformata Fourier a unor Transformata Fourier discretă –
semnale eșantionate – în timp transformata Fourier rapidă
discret (DTFT) (DFT – FFT)

DTFT (pe care o notăm cu X ( e jΩ ) ) este o funcție periodică, de perioadă egală cu fe , unde fe
este frecvența de eșantionare a semnalului. Astfel reprezentarea DFT se va face numai în intervalul
de la 0 la fe .
Dacă ne interesează energia fiecărei frecvențe din semnal, trebuie să determinăm valoarea
absolută a transformatei Fourier. Pentru a putea analiza spectrul Fourier obținut, trebuie să avem o
reprezentare grafică în funcție de frecvență. Fiecare valoare din FFT corespunde unei anumite
frecvențe. Rezoluția în frecvență este:
𝑓$ 1
Δ𝑓 = =
𝑁 Δ𝑡$ ⋅ 𝑁
unde N este numărul de eșantioane din semnal, iar Δ𝑡$ este intervalul de eșantionare.
Simetria transformatei Fourier. Dacă examinăm regiunea cuprinsă între 0 și 𝑓$ se observă că
există o simetrie pară față de un punct central situat la 0.5𝑓$ , frecvența Nyquist. Această simetrie
adaugă informații redundante. Dacă se analizează reprezentarea grafică a spectrului se constată că
reprezentarea dintre 0.5𝑓$ și 𝑓$ este o imagine în oglindă a datelor dintre 0 si 0.5𝑓$ .

Tema
1. Fie semnalul:
() ( ) ( ( ) ) ( ( )
f t = 2cos 2π ft + 2cos 2π Af t + θ + D cos 2π Bf t + ϕ )
a) Trasați graficul semnalului de la t=0 la t=2 sec, considerând f = 10Hz și
(i) A = B = 1, D = 1, q = f = 0
(ii) A = 1, B = 0, D = 3, q = p / 2 și f = p / 4
(iii) A = 2, B = 3, D = 3, q = p / 2 și f = p / 4
b) Generați un semnal sinusoidal, un semnal dreptunghiular și un semnal dinți de fierăstrău.
Desenați semnalele cu o frecvență de 25,5 Hz, un offset egal cu 0,2 și amplitudinea egală cu 1.
c) Trasați graficul semnalului dreptunghiular pentru 3 – 5 perioade.

2. Influența punctelor în care se calculează transformata asupra formei spectrului


Fie un semnal cosinus format din 30 de eșantioane, câte 10 eșantioane pe perioadă.
n = np.linspace(0, 29, 30);
x = np.cos(2*np.pi*n/10);

Vom considera trei valori în care se calculează transformata N1 = 64, N2 = 128, N3 = 256.
Astfel se va genera semnalul X1 rezultat prin concatenarea semnalului x cu un semnal format din 34
Prelucrarea timp frecvenţă a semnalelor _______________________________ Laborator nr. 1
de zerouri (astfel încât semnalul să aibă în total 64 de eșantioane) s.a.m.d. Funcția abs calculează
magnitudinea transformatei.
X1 = np.fft.fft(x, N1);
X2 = np.fft.fft(x, N2);
X3 = np.fft.fft(x, N3);
Frecvența începe de la 0 și se termină la N-1 pentru transformata Fourier calculată în N puncte.
Vom normaliza scala și vom considera doar prima jumătate:
F1 = np.arange(0,N1//2, 1)/N1;
F2 = np.arange(0,N2//2, 1)/N2;
F3 = np.arange(0,N3//2, 1)/N3;

Se trasează cele trei grafice și se compară.


fig = plot.figure(2)
plot.subplot(3,1,1)
plot.plot(F1, abs(X1[0:N1//2]))
..............

3. Influența numărului de perioade luate în considerare pentru calculul transformatei


În exemplul anterior am luat în considerare 3 perioade pentru un semnal cosinus. Pe lângă
semnalul generat la exemplul anterior, generați încă două semnale: unul format din 6 perioade și unul
format din 9 perioade.
Luând în considerare un număr de N = 2048 de puncte în care se calculează transformata
Fourier, să se traseze pe același ecran cele trei grafice.
Comparați cele trei grafice.

4. Centrarea spectrului în 0.
Transformata Fourier calculată cu fft conține informații referitoare la frecvențele cuprinse între
0 și fe . Totuși, știm că frecvența de eșantionare trebuie să fie de cel puțin două ori mai mare decât
cea mai înaltă frecvență din semnal. Astfel, spectrul semnalului trebuie să aibă frecvențe mai mici
decât fe /2, frecvența Nyquist. De asemenea, știm că un semnal real trebuie să aibă valorile spectrului
simetrice pentru frecvențe pozitive și negative. În loc să avem un spectru de la 0 la fe este mult mai
corect să desenăm spectrul de la - fe /2 la fe /2. Acest lucru se poate face folosind funcția fftshift.
n = [0:149];
x1 = cos(2*np.pi*n/10);

N = 2048;
X = abs(np.fft.fft(x1,N));
X = np.fft.fftshift(X);

F = [-N/2:N/2-1]/N;

5. Determinarea conținutului de frecvențe dintr-un semnal


Se consideră că frecvența de eșantionare cu care a fost făcută achiziția unui semnal este de 250
Hz. Semnalul a fost generat folosind formula:
Prelucrarea timp frecvenţă a semnalelor _______________________________ Laborator nr. 1
() ( ) (
x t = sin 2 * %pi * f1 * t + sin 2 * %pi * f2 * t )
unde f1 = 2 Hz și f2 = 5 Hz.
Să se traseze graficul funcției între 0 și 3 sec.
Să se calculeze și să se traseze graficul transformatei Fourier astfel încât să fie evidențiate
frecvențele din semnal (graficul trebuie să aibă două vârfuri la 2 Hz și 5 Hz).
Să se reia exercițiul pentru f1 = 10 Hz și f2 = 5 Hz

6. Se consideră următorul semnal:


0 𝑡 ∈ [0, 0.5)
sin 2𝜋𝑓/ 𝑡 + cos (2𝜋𝑓5 𝑡) 𝑡 ∈ [0.5, 1.0)
𝑓 𝑡 = 0 𝑡 ∈ [1.0, 1.5)
cos 2𝜋𝑓< 𝑡 ∙ cos (2𝜋𝑓5 𝑡) 𝑡 ∈ [1.5, 2.0)
0 𝑡 ∈ [2.0, 2.5]
unde f1 = 5 Hz, f2 = 10 Hz și f3 = 20 Hz.
Să se reprezinte grafic semnalul f(t). Să se scrie un program care calculează și reprezintă grafic
transformata Fourier a semnalului generat.

Bibliografie
1. https://www.ritchievink.com/blog/2017/04/23/understanding-the-fourier-transform-by-
example/
2. https://matplotlib.org/index.html
3. http://www.numpy.org
4. https://docs.scipy.org/doc/

S-ar putea să vă placă și