Anda di halaman 1dari 3

MATLAB: Akuisisi Data melalui Kartu

Suara
Biasanya, ada 4 (empat) proses yang harus dilakukan dalam akusisi data melalui Kartu
suara (soundcard) menggunakan MATLAB:

1. Inisialisasi, membuat objek device;


2. Konfigurasi, menambahkan kanal serta mengatur cara akuisisi;
3. Eksekusi, memulai (mengaktifkan) objek device dan akuisisi atau mengirim data;
4. 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

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

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)

http://agfi.staff.ugm.ac.id/blog/index.php/2009/09/matlab-akuisisi-data-melalui-kartu-
suara/

Anda mungkin juga menyukai