Transformasi Fourier

BAB 9 Transformasi Fourier

9.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat mengerti cara mendapatkan transformasi fourier.

2. Mahasiswa dapat apat mengimplementasikan permasalahan transformasi fourier dan penggunaannya dengan GUIDE

9.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

9.3 Transformasi Z

Fourier transform merupakan operasi matematika yang bertujuan untuk dekomposisi dari suatu sinyal (umumnya bentuk time-domain) ke unsur pokok berdasarkan frekuensi yang terkandung. Pada artikel ini akan diberikan ilustrasi Fourier transform dengan menggunakan Matlab. Dengan transformasi ini, kita bisa mengamati dan mengukur komponen frekuensi berapa saja yang menyusun data / sinyal tersebut. Untuk melakukan analisis frekuensi di dalam MATLAB, telah tersedia command “Fast Fourier Transform” (FFT) sebagai berikut:

1. Sinyal dan Fourier 1

Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini: clear; Fs = 1000; % frekuensi sampling 1000Hz t = 0:1/Fs:1.5; % durasi sinyal 1,5 detik tone1 = 200; tone2 = 300; tone3 = 450; % 3 frekuensi tone dalam Hz sinyal = cos(2*pi*tone1.*t) +1/2*cos(2*pi*tone2.*t) + 1/3*sin(2*pi*tone3.*t);

Kita bisa lihat bentuk “time-domain” dari sinyal tersebut, kemudian kita dengarkan: plot(t,sinyal); axis([0 0.2 -1.5 1.5]);

xlabel('waktu (detik)'); ylabel('amplitude') sound(sinyal,Fs);

Gambar 9.1 Time Domain Sinyal 1

S = fft(sinyal,Fs); plot(abs(S)); xlabel('frekuensi (Hz)'); ylabel('magnitude')

Gambar 9.2 Frekuensi Domain Sinyal 2

2. Sinyal dan Fourier 2

Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini:

Definisikan sinyal

dt = 1/100; et = 4; t = 0:dt:et; y = 3*sin(4*2*pi*t) + 5*sin(2*2*pi*t);

Plot grafik 1

subplot(2,1,1); plot(t,y); grid on axis([0 et -8 8]); xlabel('Time (s)'); ylabel('Amplitude');

Fourier Transform

Y = fft(y); n = size(y,2)/2; amp_spec = abs(Y)/n;

Plot grafik 2

subplot(2,1,2); freq = (0:79)/(2*n*dt); plot(freq,amp_spec(1:80)); grid on xlabel('Frequency (Hz)'); ylabel('Amplitude');

Gambar 9.3 Time domain dan Frekuensi Domain Sinyal

3. Sinyal dan Fourier 3

Gambarkan sinyal modulasi AM dengan frequency 1kHz dan carrier 20kHz dengan presentasi modulasi sebesar 0,75. Pergunakan m-file editor. clear

fm = 1e3;

fc = 2e4; mu = 0.75; t = 1e-6:1e-6:0.1; y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t); figure(1) plot(t,y); xlim([0 0.002]) xlabel( 'Time (s)' ) ylabel( 'Amplitudo' ) title( 'Gelombang AM: fc = 2e4 Hz, fm = 1e3 Hz, indeks modulasi = 0.75' )

Gambar 9.4 Time Domain Sinyal

clear fm = 1e3;

fc = 2e4; mu = 0.75; t = 1e-6:1e-6:0.1; y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t); L = length(y);

Y = fft(y,L); Y = fftshift(Y); Ys = Y.*conj(Y);

f = 1e6/L*(-(L/2):L/2-1); plot(f,Ys) xlim([-0.5e5 0.5e5]) xlabel('Frequensi (Hz)') ylabel('Power') title('Spektrum: fc=2e4 Hz, fm=1e3 Hz,index modulasi = 0.75')

Gambar 9.5 Frequency Domain Sinyal

4. Sinyal dan Fourier 4

Gambarkan sinyal segitiga dengan frequency 1Hz dan di modulasi carrier 25 Hz dengan presentasi modulasi sebesar 0,8. Pergunakan m-file editor. fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*25*t); Gambarkan sinyal segitiga dengan frequency 1Hz dan di modulasi carrier 25 Hz dengan presentasi modulasi sebesar 0,8. Pergunakan m-file editor. fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*25*t);

Gambar 9.6 Time Domain Sinyal

fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*25*t); L = length(y); Y = fft(y,L); Y = fftshift(Y); Ys = abs(Y);

f = 1e4/L*(-(L/2):L/2-1); plot(f,Ys) xlim([-50 50]) xlabel( 'Frequensi (Hz)' ) f = 1e4/L*(-(L/2):L/2-1); plot(f,Ys) xlim([-50 50]) xlabel( 'Frequensi (Hz)' )

Gambar 9.7 Frekuensi Domain Sinyal

5. Sinyal dan Fourier 5

Barapakah nilai minimum frekuensi carrier agar tidak terjadi overlap antara lower dan upper sideband gelombang AM. fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*1*t); L = length(y); Y = fft(y,L); Y = fftshift(Y); Ys = abs(Y); Barapakah nilai minimum frekuensi carrier agar tidak terjadi overlap antara lower dan upper sideband gelombang AM. fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*1*t); L = length(y); Y = fft(y,L); Y = fftshift(Y); Ys = abs(Y);

Gambar 9.8 Frekuensi Domain Sinyal

fo = 1; t = 0:0.0001:5; m = sawtooth(2*pi*fo*t,0.5); mu = 0.8; y = (1+mu*m).*cos(2*pi*2*t); L = length(y); Y = fft(y,L); Y = fftshift(Y); Ys = abs(Y);

f = 1e4/L*(-(L/2):L/2-1); plot(f,Ys) xlim([-15 15]) xlabel('Frequensi (Hz)') f = 1e4/L*(-(L/2):L/2-1); plot(f,Ys) xlim([-15 15]) xlabel('Frequensi (Hz)')

Gambar 9.9 Frekuensi Domain Sinyal

6. Sinyal dan Fourier 6

Pada percobaan berikut ini anda coba bangkitkan 4 sinyal sinus dengan frekuensi f1, f2, f3, dan f4. Sementara nilai amplitudo dapat anda lihat pada listing program berikut ini. Caranya adalah dengan mengetik program berikut ini >> Fs=100; t=(1:400)/Fs; f1=1; s1=(2/pi)*sin(2*pi*f1*t); f2=3; s2=(2/3/pi)*sin(2*pi*f2*t); f3=5; s3=(2/5/pi)*sin(2*pi*f3*t); f4=7; s4=(2/7/pi)*sin(2*pi*f4*t); s=s1+s2+s3+s4; subplot(2,1,1) plot(t,s) xlabel('time')

S=fft(s,512); w=(0:255)/256*(Fs/2); subplot(2,1,2) plot(w,abs(S(1:256))) xlabel('frequency')

Gambar 9.10 Time domain dan Frekuensi Domain Sinyal

7. Sinyal dan Fourier 7

Pergunakan MATLAB untuk menghasilkan gelombang PAM dengan menggunakan sinusoid modulasi m= 0.5 rad/sec, sampling Ts= 1 second, and pulse duration To= 0.2s. Plot juga hasil magnitudo nya. clear;clc; wc = 0.5*pi; res = 0.001; Fs = 1; sam = floor(1/(Fs*res)); t = 0:res:10-res; m = sin(wc*t);

f = 1/res * ([0:1/(length(t)-1):1] - 0.5); T = 0.2; durInSam = floor(T/res); sm = zeros(size(t)); for i=0:floor(length(t)/sam)-1; sm((i*sam)+1:(i*sam)+durInSam) = m(i*sam+1); end y = fftshift(abs(fft(sm))); figure(1) subplot(2,1,1) plot(t,sm); xlabel('Time (s)') ylabel('Amplitude') title('PAM Wave: T_0 = 0.2 s') subplot(2,1,2) plot(f,y) xlabel('Frequency (Hz)') ylabel('Amplitude') xlim([-15 15])

Gambar 9.11 Time domain dan Frekuensi Domain Sinyal PAM