PERCOBAAN 10
ANALISIS SINYAL
DALAM DOMAIN FREKUENSI
Tujuan
Praktikum
- Mengamati
sinyal dalam domain waktu dan domain frekuensi dengan menggunakan library FFT
- Mengamati
sinyal dalam domain waktu dan domain frekuensi dengan menggunakan library
Pwelch
_________________________________________________________________________________
10.1 Dasar
Teori
10.1.1 Fast
Fourier Transform
Transformasi Fourier
merupakan keluarga dari Transformasi Integal, gampangnya, ini adalah ‘alat’
yang bisa kita gunakan untuk melihat sinyal dengan kacamata yang lain. Jika
selama ini kita hanya melihat sinyal melalui osiloskop atau alat sejenis
lainnya, itu adalah visualisasi sinyal dalam ranah waktu (time domain),
sumbu horisontal-nya waktu (t) dan sumbu vertikal-nya adalah amplitudo (A). Deret
Fourier adalah suatu deret berbentuk sinus dan kosinus yang dapat
memperesentasikan fungsi priodik, dengan Transformasi Fourier sinyal dalam
Domain waktu dapat dipresentasikan dalam Domain Fekuensi. Dalam Matriks
Laboratory (MatLab) telah disediakan funsi untuk melakukan Transformasi Fourier
tersebut yang dikenal dengan Fast Fourier Transform (fft.m). Aplikasi FFT
mencakup berbagai bidang diantaranya, pada Teknik structural Analysis, modulation
dan demodulation, Image Processing, Vibration Analysis, dan lain-lain.
Satu bentuk transformasi
yang umum digunakan untuk merubah sinyal dari domain waktu ke domain frekuensi
adalah dengan transformasi Fourier:
Persamaan ini merupakan bentuk transformasi Fourier
yang siap dikomputasi secara langsung dari bentuk sinyal x(t). Sebagai contoh,
anda memiliki sinyal sinus dengan frekuensi 5 Hz dan amplitudo 1 Volt. Dalam domain waktu anda akan melihat
seperti pada Gambar 1 bagian atas. Sementara dalam domain frekuensi akan anda
dapatkan seperti pada bagian bawah. Untuk memperoleh hasil seperti gambar
tersebut anda dapat memanfaatkan library fft yang tersedia pada Matlab.
Gambar 10.1. Sinyal Sinus dalam Domain
Waktu dan Domain Frekuensi
10.1.2 Analisis Spektrum
Untuk menghitung frekuensi dari suatu sinyal,
sebuah implementasi diskrit dari analisa Fourier dapat digunakan, yang kemudian
lebih disempurnakan dengan suatu algoritma yang kita kenal sebagai Fast
Fourier transform (FFT). Secara umum teknik ini merupakan pendekatan yang
terbaik untuk transformasi. Dalam hal ini input sinyal ke window ditetapkan memmiliki
panjang 2m. Anda dapat memilih analisis window yang akan digunakan. Output dari syntax FFT(x,n)
merupakan sebuah vector komplek, dengan n amplitudo komplek dari 0 Hz sampai
dengan sampling frekuensi yang digunakan.
Pada Gambar 9.2(a),
ditunjukkan bentuk gelombang suara napas dari penderita asma. Gelombang suara
ini merupakan fungsi waktu sehingga akan selalu berbeda jika dilakukan
pengambilan ulang data tersebut. Penyebabnya yang dapat dipastikan adalah
kondisi start dan stop yang berbeda, disamping ada
perbedaan lain. Tapi pada setiap data, jika dikonversi menjadi fungsi frekuensi
akan memiliki kemiripan. Pada Gambar 9.2(b) ditnjukkan hasil konversi dengan
FFT dan Pwelch dari sebuah gelombang suara paru-paru penderita asma. Hasil
konversi dalam domain frekuensi sangat bermanfaat dalam analisis dan
identifikasi sebuah sinyal.
(a)
(b)
Gambar 10.2 Konversi
Sinyal (a) Gelombang Suara Paru-paru.
(b) Hasil Konversi dengan FFT dan Pwelch.
10.2. Peralatan
- PC multimedia yang sudah dilengkapi dengan OS
Windows
- Perangkat Lunak Matlab yang dilengkapi dengan
Tool Box DSP
10.3. Langkah
Percobaan
10.3.1 Transformasi Fourier Sederhana
Pertama kita Masih
mendefinisikan sinyal yang akan digunakan sebagai percobaan. Frekuensi cuplikan
1000 Hz (=fs), kita gambar hanya 0,5 detik pertama (=t) untuk sebuah sinyal
dengan 2 kandungan frekuensi 100 Hz dan 200 Hz (=y). Silakan dicoba kemudian
catat hasilnya.
%------------------------------------------------------------------
% Nama File :
Transf_Fourier_Sederhana.m
% Oleh :
%------------------------------------------------------------------
fs = 1000;
t = 0:1/fs:0.5;
y = sin(2*pi*100*t)+sin(2*pi*200*t);
t = 0:1/fs:0.5;
y = sin(2*pi*100*t)+sin(2*pi*200*t);
plot(t,y);
title(’Sinyal dengan kandungan 2 frekuensi’)
xlabel(’waktu (detik)’);
title(’Sinyal dengan kandungan 2 frekuensi’)
xlabel(’waktu (detik)’);
tambahkan program anda sebagai berikut:
Y = fft(y);
f = fs*(0:length(Y)-1)/length(Y);
figure;
plot(f,abs(Y));
title(’Kandungan frekuensi sinyal y (gambar 2 sisi)’)
xlabel(’frekuensi (Hz)’);
figure;
plot(f,abs(Y));
title(’Kandungan frekuensi sinyal y (gambar 2 sisi)’)
xlabel(’frekuensi (Hz)’);
kemudian catat
hasilnya. Sekali lagi, tambahkan
program anda sebagai berikut:
f =
fs*(0:(length(Y)-1)/2)/length(Y);
figure
plot(f,abs(Y(1:(length(Y)+1)/2)));
title(’Kandungan frekuensi sinyal y (gambar 1 sisi)’)
xlabel(’frekuensi (Hz)’);
figure
plot(f,abs(Y(1:(length(Y)+1)/2)));
title(’Kandungan frekuensi sinyal y (gambar 1 sisi)’)
xlabel(’frekuensi (Hz)’);
kemudian catat
hasilnya.
10.3.2 Fenomena Gibb
Kita mulai dengan mencoba memahami suatu masalah
yang popular dalam pengolahan sinyal, yaitu fenomena Gibb. Untuk memahami
bagaimana penjelasan fenomena tersebut, anda ikuti langkah berikut.
1.
Bangkitkan sebuah sinyal sinus dengan cara seperti berikut
%------------------------------------------------------
% Nama File: fen_Gibb.m
% Oleh :
%------------------------------------------------------
t=-3:6/1000:3;
N=input('Jumlah sinyal ');
c0=0.5;
w0=pi;
xN=c0*ones(1,length(t));
for n=1:2:N
theta=((-1)^((n-1)/2)-1)*pi/2;
xN = xN +
2/n/pi*cos(n*w0*t +theta);
end
plot(t,xN)
xlabel('waktu')
ylabel('x(t)')
2.
Jalankan lagi program anda, dengan cara memberi jumlah masukan sinyal yang
berbeda, misalnya 3, 5, 7, dst. Apa yang anda dapatkan?
3.
Dari langkah percobaan ini, fenomena apa yang didapatkan tentang sinyal persegi
? Apa kaitannya dengan sinyal sinus?
10.3.3 Pengamatan Frekuensi Pada Sinyal Tunggal
Di sini anda akan
mengamati bentuk sinyal dalam domain waktu dan domain frekuensi dengan
memanfaatkan library fft yang ada dalam DSP Toolbox Matlab. Apabila ada yang
kurang jelas dengan perintah yang diberikan dalam petunjuk, jangan pernah
sungkan menanyakan kepada dosen pengajar. Selanjutnya ikuti langkah berikut.
1. Jalankan
program perbagian, tambahkan program jalankan lagi, dan seterusnya
Membangkitkan sinyal sinus yang memiliki frekuensi f = 5 Hz, dan amplitudo 1
Volt.
% ---------------------------------
% Nama File : Fungsi FFT.m
% Oleh
: Yulianto
% ---------------------------------
Fs=100;
t=(1:100)/Fs;
f=5;
s=sin(2*pi*f*t);
subplot(2,1,1)
plot(t,s)
xlabel('time')
2.
Lanjutkan langkah ini dengan memanfaatkan fungsi fft untuk mentranformasi
sinyal ke dalam domain frekuensi. Jangan sekali-kali menggantikan huruf besar
dengan huruf kecil atau sebaliknya, karena MATLAB sangat sensitive terhadap
penulisan.
S=fft(s,512);
w=(0:255)/256*(Fs/2);
subplot(2,1,2)
plot(w,abs(S(1:256)))
xlabel('frequency')
3. Cobalah anda merubah nilai f1=5,
10, 20, dst Apa yang anda lihat pada gambar sinyal anda?
4. Cobalah merubah nilai amplitudo
dari 1 volt menjadi 2, 4 atau 5. Apa yang terjadi pada sinyal anda?
10.3.4
Pengamatan Frekuensi Pada Kombinasi 2
Sinyal
Anda telah mengetahui cara mengamati sinyal
dalam domain waktu dan frekuensi. Pada percobaan berikut ini anda coba
bangkitkan 2 sinyal sinus dengan frekuensi f1 dan f2. Sementara nilai amplitudo
dapat anda lihat pada listing program
berikut ini.
1. Caranya
adalah dengan mengetik program berikut ini
%
------------------------------------------------------
% Nama
File : Frekuensi_Fungsi_Dua_Sinyal.m
%
Oleh : Yulianto
%
------------------------------------------------------
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);
s=s1+s2;
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')
2. Rubah nilai f2 =10, 25, 20 dst. Apa yang anda dapatkan dari langkah ini?
3. Coba rubah nilai amplitudo pada
sinyal kedua menjadi 1, 5 atau 10. Apa yang anda dapatkan dari langkah ini?
4. Pengetahuan apa yang dapat anda
pahami dalam peercobaan ini? Simpulkan !.
10.3.5 Pengamatan Frekuensi Pada Kombinasi 4 Sinyal
1. 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
%
--------------------------------------------------------
% Nama File : Frekuensi_Fungsi_Empat_Sinyal.m
% Oleh :
Yulianto
%
--------------------------------------------------------
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')
Perhaitkan
bentuk sinyal yang dihasilkan dari langkah-langkah yang telah anda lakukan.
2.
Rubah nilai f2 =10, f3 = 20 dan f4 =30. Apa yang anda dapatkan dari langkah ini?
Gambar 10.3. Gabungan Beberapa Sinyal dalam Domain Waktu
dan Domain Frekuensi
10.3.6 Pengamatan
Frekuensi Pada Kombinasi 6 Sinyal
Pada percobaan berikut ini anda coba bangkitkan 4
sinyal sinus dengan frekuensi f1, f2, f3, f4, f5, dan f6. Sementara nilai amplitudo dapat anda
lihat pada listing program berikut ini. Caranya adalah dengan mengetik program
berikut ini:
%
-------------------------------------------------------------
% Nama File : Frekuensi_Fungsi_Enam_Sinyal.m
% Oleh :
Yulianto
%
-------------------------------------------------------------
Fs=100;
t=(1:200)/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);
f5=9;
s5=(2/9/pi)*sin(2*pi*f5*t);
f6=11;
s6=(2/11/pi)*sin(2*pi*f6*t);
s=s1+s2+s3+s4+s5+s6;
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')
Catat
dan amati bentuk sinyal yang dihasilkan dari langkah anda tersebut.
10.3.7 Pengamatan Frekuensi Pada Sinyal Audio
Menggunakan FFT
Di sini dicoba untuk melihat
sinyal yang lebih real dalam kehidupan kita. Anda pernah merekam suara
menggunakan y=wavrecord(10.0*Fs,Fs); dan wavwrite(y,Fs,'rekamanku.wav') seperti
ditunjukkan pada bab 5. Cek apa anda sudah punya file rekamanku.wav, jika belum
ada silakan merekam ulang atau mencari file wav yang lain yang telah ada, dan
ingat-ingat nama filenya, gantikan nama file: rekamanku.wav dalam program di
bawah ini dengan file anda sendiri. Kemudian ikuti langkah berikut ini:
Buat program pemanggil file audio *.wav.
%
-----------------------------------------------------------
% Nama File : Frekuensi_Sinyal_Audio_FFT.m
%
Oleh : Yulianto
%
-----------------------------------------------------------
clear all;
[y,Fs] = wavread('rekamanku.wav'); % silakan ganti dengan
file
% anda sendiri
Fs=16000; % nilai default Fs=16000
sound(y,Fs)
figure(1)
plot(y)
figure(2)
Y=fft(y);
plot((abs(Y(1:3400))))
Jangan lupa anda catat yang terjadi
10.3.8
Pengamatan Frekuensi Pada Sinyal Audio Menggunakan Pwelch
Anda telah melakukan percobaan
menggunakan FFT, berikut ini diharapkan anda melakkan hal yang sama, tapi
menggunakan Pwelch. Hasil rekaman yang telah anda pakai pada sub-bab 7.3.5,
akan digunakan lagi pada percobaan ini. Rekaman yang telah anda buat, misalnya
bernama: rekamanku.wav. Dengan cara yang sama kita cobakan pada Pwelch.
Kemudian ikuti langkah berikut ini:
Buat program pemanggil file audio *.wav.
%
---------------------------------------------------------------
% Nama File :
Frekuensi_Sinyal_Audio_Pwelch.m
% Oleh : Yulianto
%
---------------------------------------------------------------
clear all;
[y,Fs] =
wavread('rekamanku.wav'); % silakan ganti dengan file
% anda sendiri
Fs=16000; % nilai default
Fs=16000
sound(y,Fs)
figure(1)
plot(y)
figure(2)
Y=Pwelch(y);
Plot(‘Y’)
Jangan lupa anda catat yang terjadi
10.4
Analisis Data
Seperti biasa diakhir
pertemuan anda harus menyelesaikan laporan, dengan memberikan bukti-bukti bahwa
anda telah melakkan pecobaan dan jangan lupa menjawab pertanyan atau perintah
yang telah disediakan pada percobaan di atas.
10.5 Tugas
1. Apa
sebenarnya fenomena Gibb itu?
2. Apa
hubungan sinyal persegi dengan sinyal sinus?
3. Jika anda hubungkan dengan mata kuliah
teknik modulasi digital, coba anda jelaskan mengapa sinyal persegi tidak
langsung digunakan memodulasi carrier?
4. Coba
anda buat record suara anda, terserah berupa vokal atau ucapan yang lain, dan amati
bentuk spektrumnya.
5.
Jelaskan perbedaan antara FFT dan Pwelch
6. Beri contoh aplikasi FFT atau Pwelch
dalam suatu sistem
Tidak ada komentar:
Posting Komentar