Membuat Fourier Series Matlab

 

Analisis Fourier  atau Fourier Series adalah metoda untuk mendekomposisi sebuah gelombang seismik menjadi beberapa gelombang harmonik sinusoidal dengan frekuensi berbeda-beda.

Dengan kalimat lain, sebuah gelombang seismik dapat dihasilkan dengan menjumlahkan beberapa gelombang sinusoidal frekuensi tunggal. Sedangkah sejumlah gelombang sinusoidal tersebut dikenal dengan Deret Fourier.

adalah metoda untuk mendekomposisi sebuah gelombang seismik menjadi beberapa gelombang harmonik sinusoidal dengan frekuensi berbeda-beda.

Dengan kalimat lain, sebuah gelombang seismik dapat dihasilkan dengan menjumlahkan beberapa gelombang sinusoidal frekuensi tunggal. Sedangkah sejumlah gelombang sinusoidal tersebut dikenal dengan Deret Fourier.

·Fungsi signal fourier series

function [X, w] = FourierSeries(x, T0, k_vec)

% symbolically calculate the Fourier Series, and return the

% numerical results

%

% x: the time domain signal within one period;

% it must have definition over [0, T0]

% it must be a symbolic function of t

%

% T0: the period of the signal

% k_vec: the range of Harmonics to be calculated

syms t;

for mm = 1:length(k_vec)

k = k_vec(mm);

% Fourier series

X1(mm) = int(x*exp(-j*2*pi*k*t/T0), t, 0, T0)/T0;

% change the symbolic value to numerical value

X(mm) = subs(X1(mm));

% angular frequency

w(mm) = k*2*pi/T0;

end

stem(w,abs(X1), 'o-');

legend('Matlab calculation');

  • Source untuk membangkitkan fourier series

clc;

clear;

syms t;

tau = 1;

T0 = 5;

xt = heaviside(t+tau/2) - heaviside(t-tau/2) + heaviside(t-(T0-tau/2)) - heaviside(t-(T0+tau/2));

xw = xt/(2*pi);

FourierSeries(xt, 5, -3:3);

xlabel('\omega (rad/sec)');

ylabel('|c_k|');

· K_vec = -3:3 dan periode =5

Fourier Series

 

K_vec = -15:15 dan periode =5

· Fourier Series

 

Keterangan :  Dari percobaan diatas perbedaan k_vec menyebabkan range data frekuensi yang ditampilkan lebih banyak. Apmplitudo tidak berubah.

· Mengubah nilai rad ke hertz dengan membagi dengan (2*pi). Coba ganti dari rad/s menjadi Hz. Ganti juga legend atau keterangan gambar jika anda masih menggunakan ω (rad/s).

clc;

clear;

syms t;

tau = 1;

T0 = 5;

xt = heaviside(t+tau/2) - heaviside(t-tau/2) + heaviside(t-(T0-tau/2)) - heaviside(t-(T0+tau/2));

xw = xt/(2*pi);

FourierSeries(xt, 5, -15:15);

xlabel('\omega (rad/sec)');

ylabel('|c_k|');

figure;

FourierSeries(xw, 5, -15:15);

xlabel('(hertz)');

ylabel('|c_k|');

Fourier Series

Keterangan: Perubahan dari rad/sec ke hertz hanya mengakibatkan perubahan skala amplitude sesuai hertz saja.

· Masukkan nilai T0 = 1, 5, 10 dengan k_vec -10:10.

Fourier Series

Keterangan: Perbedaan T0 mengakibatkan amplitude berbeda-beda dan panjang sumbu x tidak sama.