Kalau Anda belum tahu cerita saya tentang Transformasi Fourier silahkan klik disini. Jika sudah saya punya pertanyaan…
Baiklah pakai contoh saja dengan Matlab…
Kita buat sebuah sinyal sebagai berikut, masih sama seperti sebelumnya, namun kali ini kedua frekuensi, yaitu 100 Hz dan 200Hz tidak muncul bersamaan tetapi bergantian, apakah Transformasi Fourier mampu melihat kedua frekuensi ini?
fs = 1000;
t = 0:1/fs:0.5;
tx = [t t+t(length(t))];
y1 = sin(2*pi*100*t);
y2 = sin(2*pi*200*t);
y = [y1 y2];
plot(tx,y);
title(‘Sinyal dengan kandungan 2 frekuensi’)
xlabel(‘waktu (detik)’);
Hasilnya, gambaran dari sinyal yang saya tanyakan adalah sebagai berikut…
Kemudian kita lakukan FFT…
Y = fft(y);
Kita gambarkan hasilnya dengan perintah-perintah 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)’);
hasilnya sebagai berikut…
Mmmm bisa khan? Sama saja hasilnya… bisa diperoleh 2 frekuensi sesuai dengan dugaan kita, bagaimana jika ditambahkan derau kemudian di-FFT…
ya= y + 2*randn(size(tx));
figure;
plot(tx,ya);
title(‘Sinyal apakah ini….??’);
xlabel(‘waktu (detik)’);
YA = fft(ya);
f = fs*(0:(length(YA)-1)/2)/length(YA);
figure;
plot(f,abs(YA(1:(length(YA)+1)/2)));
title(‘Kandungan frekuensi sinyal apa ini….??’);
xlabel(‘frekuensi (Hz)’);
Nah hasilnya…
Sama seperti artikel saya yang lalu khan? Luar biasa Transformasi Fourier ini…
Sekarang pertanyaan saya, lantas bisakah kita tahu bahwasanya ke-2 frekuensi tidak bersamaan munculnya? Ya tidak bisa-lah… hanya kandungan frekuensi saja, sedangkan kapan dan lama waktu muncul masing-masing freuensi itu kita tidak tahu… lantas kalo mo tahu? Ya pake lainnya donk… apaan tuch? Pake STFT (Short Time Fourier Trasnform)…
Wah apa lagi nich…
Ceritanya begini, jika TF bekerja untuk seluruh sinyal, tapi STFT hanya bekerja pada sebuah jendela yang kecil yang kemudian digeser-geser mulai dari awal hingga akhir untuk mendapatkan interpretasi data keseluruhan secara waktu dan frekuensi atau istilahnya time-frequency domain… di Matlab pake perintah specgram()…
figure;
specgram(y,256,1000);
Keterangan:
256 sebagai panjang jendela, sedangkan 1000 merupakan fs-nya
Hasilnya…
Nah tuch… kelihatan bahwa kedua frekuensi muncul secara tidak bersamaan, lebih tepat berturutan, hanya saja tidak terlalu jelas dimana tepatnya frekuensi mulai bergantian… Baik sekarang Anda perhatikan masing-masing perintah dan hasil gambarnya sebagai berikut:
figure;
specgram(y,64,1000);
figure;
specgram(y,128,1000);
figure;
specgram(y,256,1000);
Hasilnya secara berturutan…
Mm menarik hasilnya, dengan semakin besar ukuran jendela, semakin akurat resolusi frekuensinya, tapi semakin gak jelas resolusi waktunya. Demikian juga sebaliknya, semakin kecil ukuran jendelanya, semakin bagus resolusi waktunya, tapi resolusi frekuensi-nya makin jelek…
Ini-lah yang dimaksudkan dengan Ketidak-pastian Heisenberg… ada semacam trade-off antara resolusi waktu dan frekuensi, tapi minimal sudah kita peroleh ranah waktu-frekuensi, alhamdulillah…
Ada komentar saudara-saudari sekalian?