Numer ćw.:
Nazwa wydziału:
Ocena:
3
Wydział Inżynierii Elektrycznej i Komputerowej Grupa stud. / grupa lab.
11M
Nazwa przedmiotu:
Data wykonania ćw.:
Metody numeryczne w technice
Temat ćw:
Podpis:
Data oddania sprawozdania:
Transformata Fouriera.
Skład zespołu (podkreślić osobę odpowiedzialna za wykonanie sprawozdania) Tomasz Jaroś
Radosław Łazur
1. Wstęp:
Szereg Fouriera
∞
x( t) = a
[ a cos( nω t) b sin( nω t)]
0 + ∑
n
1
+ n
1
1
n
gdzie:
t 0 + T
1
a
( )
- składowa stała
0 =
∫ x t dt
T 0
t 0 + T
2
a
x t
( ) cos( nω t) dt
n =
∫
T
1
0
t 0 + T
2
b
x t
( ) sin( nω t) dt
n =
∫
T
1
0
są współczynnikami szeregu Fouriera
W zależności od kształtu funkcji x(t) szereg trygonometryczny zawiera tylko określone składowe.
2. Rozkład na składowe harmoniczne dowolnego sygnału czasowego.
a) Kod programu.
% Aproksymacja Fouriera
clear all
t0 = 0; % poczatek przedzialu
T = 3; % koniec przedzialu
w = 2*pi/T;
syms t % definicja zmiennej symbolicznej f = input('funkcja: ');
x = f; %z zadana funkcja
a0 = (1/T)*int(x,t,t0,t0+T); % wyznaczenie skladowej stalej F = 10; % ilosc harmonicznych
for n=1:F
b(n) = (2/T)*int(x*cos(n*w*t),t,t0,t0+T); c(n) = (2/T)*int(x*sin(n*w*t),t,t0,t0+T); end
k=1:F;
xx = a0 + sum(b.*cos(k*w*t)) + sum(c.*sin(k*w*t));
% wykres
ezplot(xx,[t0 t0+T]);
grid on
hold on
h = ezplot(x,[t0 t0+T]);
set(h,'Color',[1,0,0]);
hold off
title('Aproksymacja Fouriera')
b) Wynik działania programu.
Aproksymacja Fouriera
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.5
1
1.5
2
2.5
3
t
Aproksymacja funkcji exp(-t) dla 10 harmonicznych Aproksymacja Fouriera
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.5
1
1.5
2
2.5
3
t
Aproksymacja funkcji exp(-t) dla 30 harmonicznych
3. Rozkład na składowe harmoniczne okresowego sygnału prostokątnego.
a) Kod programu.
% Aproksymacja Fouriera sygnalu prostokatnego clear all
t0 = 0; % poczatek przedzialu
T = 2; % koniec przedzialu
w = 2*pi/T;
syms t % definicja zmiennej symbolicznej
% ilosc okresow rysowanych na wykresie
ilosc_okresow = input('ilosc rysowanych okresow: ');
% wspolczynnik wypelnienia
p = input('wspolczynnik wypelnienia: ');
% ogranicznik wspolczynnika wypelnienia
if(p > 1)
p = 1;
elseif(p < 0)
p = 0;
end
x1 = 1;
x2 = -1;
a0 = (1/T)*(int(x1,t,t0,t0+T*p) + int(x2,t,t0+T*p,t0+T)); % wyznaczenie skladowej stalej
F = 10; % ilosc harmonicznych
for n=1:F
b(n) = (2/T)*( int(x1*cos(n*w*t),t,t0,t0+T*p) + int(x2*cos(n*w*t),t,t0+T*p,t0+T)); c(n) = (2/T)*( int(x1*sin(n*w*t),t,t0,t0+T*p) + int(x2*sin(n*w*t),t,t0+T*p,t0+T)); end
k=1:F;
xx = a0 + sum(b.*cos(k*w*t)) + sum(c.*sin(k*w*t));
% wykres
ezplot(xx,[t0, t0+ilosc_okresow*T]);
grid on
hold on
for i = 0:(ilosc_okresow-1)
line([t0 + T*i, T*p + T*i],[1, 1],'Color',[1,0,0]) line([T*p + T*i, T + T*i],[-1, -1],'Color',[1,0,0]) if(i > 0)
line([t0 + T*i, t0 + T*i],[1, -1],'Color',[1,0,0]) end
line([T*p + T*i, T*p+ T*i],[1 -1],'Color',[1,0,0]) end
hold off
title('Aproksymacja Fouriera')
Aproksymacja Fouriera
1
0.5
0
-0.5
-1
0
0.5
1
1.5
2
2.5
3
3.5
4
t
Aproksymacja funkcji prostokątnej o współczynniku wypełnienia 0,5 dla 10 harmonicznych Aproksymacja Fouriera
1
0.5
0
-0.5
-1
0
0.5
1
1.5
2
2.5
3
3.5
4
t
Aproksymacja funkcji prostokątnej o współczynniku wypełnienia 0,7 dla 10 harmonicznych W załączniku pliki programowe:
lab3d – służy do aproksymacji szeregiem Fouriera dowolnego sygnału lab3e – służy do aproksymacji sygnału prostokątnego