Dalam dunia Pemrosesan Sinyal Digital, ada suatu proses untuk mendapatkan data digital melalui proses pencuplikan, artinya sinyal analog dicuplik (diambil) secara diskrit dengan periode Ts atau frekuensi cuplik Fs. Nah agar tidak terjadi kesalahan (yang kemudian diberi nama aliasing), pak Nyquist memberikan aturan bahwa frekuensi cuplik minimal harus 2 (dua) kali lipat frekuensi maksimum yang dikandung sinyal yang bersangkutan.

Untuk memahami hal tersebut, mari kita persiapkan dulu sinyal sinusoidal dengan frekuensi 2 Hz. Kita gunakan frekuensi cuplik 1000 Hz atau periode 0.001 detik (supaya gambarnya jauh lebih ‘mulus’ dibandingkan dengan eksperimen-eksperimen yang akan kita lakukan)…

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

Okey, Anda siap? Konsenterasi… kita awali dengan menyiapkan gambar (perintah figure), kemudian diteruskan dengan menyiapkan variabel waktu t1 dengan frekuensi sampling = frekuensi sinyal (atau periodenya 1/f detik), kita hitung y1-nya kemudian kita gambarkan sinyal asli y dan sinyal hasil pencuplikan y1, menggunakan perintah-perintah berikut…

>>figure;
>>t1=0:1/f:1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya (yang asli warna biru, yang cuplikan warna hijau)…

Hmmm… apaan tuch (perhatikan garis hijau), kok cuman garis lurus, berarti salah nich… Ya jelas lha wong frekuensi pencuplikan = frekuensi sinyal, harusnya khan 2 kali lipat, coba kita ubah lagi… (gunakan 1/(2*f))

>>figure;
>>t1=0:1/(2*f):1;
>>y1=sin(2*pi*f*t2);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 2 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Oalah…. sami mawon, podho wae, sama saja… ya garis lurus lagi (walaupn jumlah datanya bertambah, perhatikan lingkaran-lingkaran hijau, bandingkan dengan gambar sebelumnya)! Loch khan pak Nyquist sudah bilang kalo itu 2 kali lipat adalah minimal, ya mestinya pake yang lebih tinggi lagi, coba sekarang pake 2,5 kali lipat…

>>figure;
>>t1=0:1/(2.5*f):1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 2,5 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Wah ini agak lumayan (maksudnya dibandingkan hasil-hasil sebelumnya), bukan garis lurus, tapi… belum berbentuk sinusoidal ya…?? Okey kita coba jadi 3 kali lipat…

>>figure;
>>t1=0:1/(3*f):1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 3 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Kemudian 4 kali lipat…

>>figure;
>>t1=0:1/(4*f):1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 4 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Kemudian 10 kali lipat…

>>figure;
>>t1=0:1/(10*f):1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 10 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Kemudian (terakhir, jangan kebanyaken) 20 kali lipat…

>>figure;
>>t1=0:1/(20*f):1;
>>y1=sin(2*pi*f*t1);
>>plot(t,y,t1,y1,’-o’);
>>title(sprintf(’frekuensi sampling = 20 x frekuensi sinyal, jumlah data %d’,length(y1)));

Hasilnya…

Bagaimana? Semakin mendekati sinusoidal aslinya too…?? Cuman jumlah data-nya juga semakin banyak, iya khan? Terus silahkan disimpulkan sendiri, okey? Atau kalo masih penasaran silahkan Anda coba 30, 40, 70 atau bahkan 100 kali lipat… silahkan jika mau…

Silahkan berikan komentar atau pertanyaan Anda…

NB: Sinyal asli sebenarnya menggunakan frekuensi cuplik sebesar 500 kali dari frekuensi 2 Hz (=1000 Hz), jadi wajar saja jika gambarnya halus (banget).

Tags: ,

26 Responses to “Nyquist - Apaan tuch?”

  1. Muantep!
    Kalo ada yang sudah baca tapi masih belum ngerti juga, berarti…..
    perlu baca lagi, tul gak Mas?
    :D

    Chandra MDE
    http://telinks.wordpress.com

  2. iya tul! saya sudah berusaha pake program dan gambar, supaya lebih jelas gitu… trims ya!

  3. keren sekali, saya yang ndak tau apa Pemrosesan Sinyal Digital, kalo jadi dosen di lingkungan saya. Langsung mak nyus

  4. trims…

  5. thanks pak…btw,bapak mantan dosen saya lho..(teknik antar muka)

  6. alhamdulillah, terima kasih…
    alhamdulillah masih bisa konek dengan mantan mahasiswa,
    now we are friend… he he he…

  7. pak mau numpang tanaya..

    apakah teorema nyquist ini baerlaku untuk serat optik???
    atau hanya serat tembaga saja???

  8. teorema Nyquist merupakan aturan dalam pencuplikan data - proses analog to digital - sehingga tidak ada kaitannya dengan medium pembawa data tersebut, apakah udara, kabel, serat optik, serat tembaga, dll

  9. alexander tompodung
    May 11th, 2009 at 9:51 am

    Efek nyquist it is ok. Tapi contoh ril nya gimana?

  10. @Alexander:
    contoh riil bisa Anda lakukan saat melakukan perekaman CD audio ke WAV atau MP3 dengan menurunkan sampelnya menjadi kurang dari 44 kHz (syarat Nyquist) dan Anda dengarkan hasil pencuplikannya…

  11. apakah bisa mengakali penambahan resolusi dari ADC AVR(misal ATMega16) yang di datasheet maksimum dituliskan 10-bit menjadi resolusi 12-bit atau lebih tinggi lagi berdasarkan theorema Nyquist ini?

    (btw,pembahasan yang cukup menarik pak..trims infonya)

  12. pak,,gmn caranya cari amplitudo jika inputnya berupa file .wav???
    mohon bantuannya….thanx

  13. @adiholix:
    tidak bisa… sudah dari pabriknya - gunakan ADC eksternal dengan resolusi 12-bit

    @tulus:
    data WAV dibaca melalui matlab kemudian tampilkan menggunakan instruksi pembacaan data tersebut, di gambar akan ditampilkan amplitudonya…

  14. ohhh gt ya pak,,,tp misal pake J2ME gmn ya pak????
    mohon bantuannya…thanx

  15. pak kl bisa bahas tentang teorema sampling juga y…trus implementasi nya menggunakan matlab GUI.thnks..

  16. @jefri:
    loh disini juga ada teorema samplingnya juga loch, cuman memang tidak eksplisit…

  17. semoga dengan berbagi …hidup bapak lebih berarti. terimakasih pak

  18. Mantap pak artikelnya. Skrg saya lebih mengerti tentang nyquist. Trimakasih bwt penjelasanya.

  19. Pak..kalo tentang Wigner Ville gimana sih pak?Saya gk ngerti mengaplikasikan Choi Willian Kernel ke Wigner Ville…(wvdc.m)..Mohon bantuanna pak..makasi…

  20. Mohon bantuannya Pak Agfi, Saya mahasiswa Telekomunikasi, sedang kerja Tugas Akhir tentang Digital Signal Processing…
    Di Tugas Akhir Saya diharuskan menggunakan Mel-Filterbank untuk mengolah data.
    Saya sudah berhasil membuat Filterbanknya (walau bukan buatan saya sendiri), nah permasalahnnya sekarang, Saya bingung sama yang dihasilkan kode program saya. Trus jika Saya mau memfilter sebuah sinyal, Mel-Filternya harus diapakan dulu Pak?

    Mohon bantuannya Pak Agfi, Saya pemula di DSP, dan tertarik untuk memperdalaminya lagi

    buat kode MATLABnya :
    http://www.ee.ic.ac.uk/hp/staf.....bankm.html

  21. jadi pak…..fungsi dari frequency sampling distu apa ya pak???

  22. kok kayaknya menuju ke arah sampling ya pak bukan ke nyquist? (dalam kepala saya nyquist itu kayak bode plot) atau ada yang salah dalam metode yang saya pelajari? mohon pencerahannya pak… terima kasih….

  23. memang apa yang dibahas adalah teorema pencuplikan atau Nyquist sampling theorem… sedang dalam dunia kontrol Nyquist juga membahas mengenai masalah bode plot… so its clear, beliau (Nyquist) memang ahli dalam berbagai hal… :)

  24. jadi kalau frekuensi nyquistnya makin besar makin bagus atau gmn ya pak ?
    soal nya saya liat semakin mendekati data nya ya pak ?
    mohon pencerahannya pak ? hehehe

  25. thank for your sharing Mr Agfi
    http://telcoconsultant.net

Trackbacks/Pingbacks

  1. RealTime - Questions: "Sin x + sin 2x + sin 3x+ sin 4x= 0?"

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>