Senin, 16 Juni 2014

Percobaan 10.Analisis Sinyal Dalam Domain Frekuensi



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);
plot(t,y);
  
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)’);

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)’);

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