Categories
DSP

Bagaimana membuat & menggambar sinusoidal di Matlab?

Baiklah, mari kita mulai dengan menggambar atau membuat sinyal sinusoidal dengan frekuensi 1 Hz selama 1 detik, pertama kita siapkan variabel t-nya:

>> t=0:1;

Kemudian variabel f atau frekuensi-nya:

>> f=1;

Langkah berikutnya adalah menghitung sinusoidalnya, ingat omega = 2 * pi * f, sehingga perintahnya… sekalian kita gambar dengan perintah plot antara variabel t dan y…

>> y=sin(2*pi*f*t);
>> plot(t,y);

nah ini hasilnya…

Eee…. kok malah cuman garis lurus ya??? apanya yang salah nich….?? Ya jelas ada yang salah tho, lha wong data untuk variabel waktu (t) cuman angka 0 dan 1 kok, jadinya y hanya menghitung di 2 titik itu…

Baiklah sekarang akan dicoba kita tambahi data t-nya dengan langkah 0.5 (setengah), jadinya cuman 3 (tiga) titik loch…

>> t=0:0.5:1;
>> y=sin(2*pi*f*t);
>> plot(t,y);

Dan ini hasilnya… (jangan kaget, karena hanya 3 titik)…

Okey sekarang kita ubah lagi jarak datanya menjadi 1/10 (sepersepuluh)…

>> t=0:0.1:1;
>> y=sin(2*pi*f*t);
>> plot(t,y);

Hasilnya seperti ini…

Hmmmm… kurang sip? Okey kita buat jarak antar data 1/100 (seperseratus)…

>> t=0:0.01:1;
>> y=sin(2*pi*f*t);
>> plot(t,y);

Hasilnya…

Wow! sudah bagus tuch… Coba sekarang Anda perhatikan langkah-langkah yang telah kita lalui bersama, hasil terakhir menghasilkan jumlah data terbesar, artinya semakin kecil jarak antar data, untuk satu periode waktu yang sama, menghasilkan jumlah data yang makin besar, keuntungannya, gambar menjadi lebih halus dan alami… Ini konsekuensinya…

Baiklah, sekarang bagaimana kalo frekuensi kita ubah menjadi 2 Hz… (masih menggunakan t sebelumnya)

>> f=2;
>> y=sin(2*pi*f*t);
>> plot(t,y);

Hasilnya… (terlihat ada 2 gelombang dalam 1 detik = 2 Hz atau 2 cycle/sec)…

Sekarang kita pakai frekuensi 10 Hz…

>> f=10;
>> y=sin(2*pi*f*t);
>> plot(t,y);

hasilnya… (hitung jumlah gelombangnya…)

Lumayan… walaupun agak ‘kaku’ tampilannya, kalo frekuensi 10 Hz, menurut Nyquist, sebaiknya minimal gunakan frekuensi pencuplikan 2 kali lipat atau minmal 20 Hz (akan kita bahas dalam posting saya lainnya) atau periodenya 1/20 atau 0.05 detik, sedangkan yang kuta gunakan jarak antar data adalah 0.01 atau 1/100 detik, hasilnya bisa Anda lihat sendiri seperti diatas…

Kalo kemudian jarak antar data kita kecilkan, yaitu 0.001 detik, maka…

>> t=0:0.001:1;
>> y=sin(2*pi*f*t);
>> plot(t,y);

Hasilnya…

Kesimpulan-nya:

  • Perhatikan parameter penting dalam sinusoidal yaitu frekuensi-nya berapa? Gunakan persamaan omega = 2 * pi * frekuensi * waktu.
  • Gunakan jarak antar data minimal 1/2 dari periode (Nyquist Theorem?).
  • Semakin kecil jarak antar data, dengan periode waktu yang sama, semakin besar jumlah datanya…

Ada komentar atau pertanyaan monggo dan silahkan…