Biasanya, ada 4 (empat) proses yang harus dilakukan dalam akusisi data melalui Kartu suara (soundcard) menggunakan MATLAB:
- Inisialisasi, membuat objek device;
- Konfigurasi, menambahkan kanal serta mengatur cara akuisisi;
- Eksekusi, memulai (mengaktifkan) objek device dan akuisisi atau mengirim data;
- Terminasi, menghapus objekdevice.
Untukmemverifikasi frekuensi dasar sebuah garputala adalah 440Hz, sebuah nada akan diakuisisi dan analisis menggunakan MATLAB. Ini adalah contoh proses yang akan dijelaskan berikut ini.
Dalam contoh ini, kita akan memverifikasi frekuensi dasar (fundamental) sebuah garputala adalah 440Hz. Untuk melakukan hal ini, akan kita gunakan sebuah mikrofon dan sebuah kartu suara untuk memperolah data-data suara. Berikutnya, akan dilakukan proses FFT dari data yang diperoleh untuk menemukan komponen frekuensi sebuah garputala.
![akuisisi data suara menggunakan kartu suara](http://www.mathworks.com/products/demos/daq/acquiring_data/fig_graphic2.1.gif)
akuisisi data suara menggunakan kartu suara
Kita awala dengan mengambil data suara selama 2 detik melalui kanal di kartu suara. Karena garputala bergetar dengan frekuensi nominal 440Hz, frekuensi pencuplikan kartu suara bisa diatur paling rendah yaitu 8000Hz.
Setelah kita getarkan garputala dan kita letakkan dengan dengan mikrofon, akan kita lakukan akusisi data. Berikut penjelasan dari masing-masing langkah yang telah disebutkan sebelumnya…
Inisialisasi
Langkah pertama adalah membuat objek masukan analog untuk kartu suara:
AI = analoginput('winsound');
Konfigurasi
Selanjutnya, kita tambahkan sebuah kanal tunggal ke AI, dan atur frekuensi cupliknya 8000Hz dengan durasi akuisisi 2 detik:
addchannel(AI, 1);
Fs = 8000; % Frekuensi pencuplikan 8000 Hz
set (AI, 'SampleRate', Fs)
duration = 2; % akuisisi selama 2 detik
set(AI, 'SamplesPerTrigger', duration*Fs);
Eksekusi
Okey! Sekarang kita siap melakukan akuisisi data suara. Pemicuan dilakukan dengan perintah start(), sistem akan segera melakukan akuisisi data setelah perintah tersebut diberikan. Sebelum memberikan perintah start(), ada baiknya ada getarkan dulu garputalanya dan dekatkan dengan mikrofonnya…
start(AI);
Untuk mendapatkan semua datanya:
data = getdata(AI);
Terminasi
Akuisisi akan berakhir setelah semua data diperoleh. Untuk mengakhiri sesi akuisisi, kita hapus objek AI dari workspace (tempat penyimpanan variabel dalam MATLAB):
delete(AI)
Hasilnya
Sekarang kita lihat komponen frekuensi dari garputala menggunakan FFT, sekaligus digambar hasilnya:
xfft = abs(fft(data));
Kemudian kita ubah nilai absolutnya menjadi besaran dB dan ambil komponen frekuensi real-nya:
mag = 20*log10(xfft); mag = mag(1:end/2);
![Hasil FFT dari garputala Hasil FFT dari garputala](http://www.mathworks.com/products/demos/daq/acquiring_data/Daqdoc.gif)
Hasil FFT dari garputala
Hasilnya menunjukkan bahwa frekuensi dasar garputala yang bersangkutana sekitar 440Hz dan overtone pertama sekitar 880Hz. Cara sederhana untuk menemukan frekuensi dasar dengan cara:
[ymax,maxindex]=max(mag);
Jawabannya 441 Hz.
Menggunakan Perangkat Keras yang Berbeda
Contoh ini juga bisa Anda terapkan untuk perangkat keras yang berbeda hanya dengan mengubah dua perintah. Misalnya, jika menggunakan kartu serbaguna dari National Instruments, berikan perintah sebagai berikut:
AI=analoginput('nidaq','Dev1'); addchannel(AI,0)
Demikian juga untuk perangkat keras yang lainnya…
Sumber
- The Mathworks.
November 5th, 2009 at 6:02 pm
pakai matlab 2008 atau 2009 pak ngak perlu pake soun card
November 11th, 2009 at 4:44 pm
pak saya mau buat mikrokontroller untuk hidup mati peralatan listrik di perintah dengan suara manusia. bagaimana caranya,,,
ada sumber yang bisa saya baca tentang masalah ini?
makasih atas jawabannya.
January 30th, 2010 at 10:19 pm
salam pak, ini saya sedang melakukan percobaan mikrofon kondenser untuk mencari satu yang terbaik, kemudian dicari frekuensinya melalui FFT (utk desain filter), nah pertanyaan saya gmn rumusan dalam matlab untuk menampilkan FFTnya….??? sebagai inputannya adalah data angka sinyal yang panjangnya 500 data dalam format *.csv atau excel.
thank’s before and after…..
March 9th, 2010 at 10:34 am
Salam pak…saya orang awam yang kurang mengerti bagaimana matlab bekerja…saya mau tanya tentang pembacaan frekuensi suara manusia hasil dari pemrosesan menggunakan matlab..gambar hasil matlab berupa grafik spektigram dengan sumbu x frekuensi, sumbu y daya (ternormalisasi)
Bagaimana ya pak? trimakasih atas bantuannya
July 17th, 2010 at 5:19 pm
pak…bisa minta materi atau bahan ajar untuk pengolhan citra digital menggunakan matlab….
http://bocah-cakil.blogspot.com
November 22nd, 2011 at 9:06 am
Asslkm,,
pak,saya mau tanya… jika kita mempunyai sebuah data yg dihasilkan dari suatu percobaan. trus data tersebut mau saya analisa FFT atau DFT di matlab.. bgmn caranya pak??
mohon penjelasannya
trimakasih
March 15th, 2012 at 6:06 pm
Selamat malam, pak
saya mau bertanya, cara bapak menampilkan plot tersebut apakah dengan syntax : plot(xfft,mag); ? Saya menggunakan syntax seperti ini dan terdapat error :
??? error using ==> plot
Vectors must be the same lengths.
Bisa dijelaskan pak? Jika bisa, tolong dikoreksi dan diberikan syntax yang tepat
Terima kasih pak..![:)](http://agfi.staff.ugm.ac.id/blog/wp-includes/images/smilies/icon_smile.gif)
April 2nd, 2018 at 9:51 am
ternyata matlab bisa digunakan untuk ini ya
April 18th, 2018 at 9:47 am
woah ini mata kuliah saya semester lanjut
May 16th, 2018 at 2:22 pm
thank you for sharing it’s so helpful
November 26th, 2018 at 7:28 pm
terimakasih sangat membantu