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')

b) Wynik działania programu.

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