Membuat Aplikasi Filter Suara Untuk Menghilangkan Noise Menggunakan MATLAB

Assalamu'alaikum poinreaders
Pada kesempatan kali ini saya akan membahas materi request dari salah satu pembaca yang masuk ke email kami. Pada tulisan ini saya akan menjelaskan dan mensimulasikan aplikasi Filter suara dengan menggunakan MATLAB. Yuk simak ulasan lengkapnya...
 
Aplikasi Filter Suara Untuk Menghilangkan Noise Menggunakan MATLAB

Adakalanya suara yang kita terima dari pengirim sering kali mengalami penambahan suara bising atau noise yang diakibatkan oleh berbagai faktor, dimulai dari cuaca saat pengiriman, jarak pengiriman, sampai jenis media transmisi yang digunakan. Untuk itu diperlukan sebuah Filter pada sisi penerima yang berfungsi untuk menyaring suara bising atau noise agar suara yang didengar di sisi penerima terdengar jelas seperti aslinya. Untuk membuat Filter suara menggunakan MATLAB caranya cukup mudah, berikut ini langkah-langkahnya :

Langkah Pertama yaitu membaca file suara yang kita rekam sebelumnya dengan menggunakan syntak :
[f,fs] = audioread( 'C:\Users\USER\Documents\rekaman.wav' );
Dimana f merupakan frekuensi suara yang direkam sedangkan fs merupakan frekuensi sampling yang akan kita gunakan. Apa itu frekuensi sampling? sobat bisa membacanya DISINI 

Syntak yang berwarna merah diatas merupakan File Location dari file rekaman yang akan sobat gunakan. Selain menggunakan suara hasil rekaman dari laptop atau hp, kita juga bisa merekam suara yang akan kita gunakan dengan menggunakan MATLAB. Caranya sudah saya jelaskan pada artikel sebelumnya, sobat bisa membacanya DISINI

Langkah Kedua yaitu memutar suara rekaman yang telah kita masukan sebelumnya untuk mendapatkan sinyal keluaran yang dihasilkan menggunakan syntak :
pOrig = audioplayer(f,fs);
pOrig.play;
Langkah Ketiga yaitu menampilkan sinyal hasil rekaman tersebut dalam domain waktu dengan menggunakan syntak :
N = size(f,1); figure;
stem(1:N, f(:,1));
title('Mono Channel');
N sendiri merupakan jumlah sampel yang akan kita hasilkan dalam proses sampling.

Langkah Keempat yaitu melihat distribusi frekuensi dari rekaman yang kita buat menggunakan Fast Fourier Transform atau transformasi FFT dengan menggunakan syntak :
df = fs / N;
w = (-(N/2):(N/2)-1)*df;
y = fft(f(:,1), N) / N;
y2 = fftshift(y);
figure;
plot(w,abs(y2));
Langkah Kelima yaitu membuat filter jenis Bandpass Filter, karena suara yang kita rekam frekuensinya rendah, maka kita bisa menggunakan filter jenis ini untuk menghilangkan bising atau noise. Untuk mengimplementasikannya bisa menggunakan syntak :
n = 7;
beginFreq = 700 / (fs/2);
endFreq = 12000 / (fs/2);
[b,a] = butter(n, [beginFreq, endFreq], 'bandpass')
Dimana beginFreq dan endFreq merupakan rentang frekuensi yang akan kita lakukan filter.
Langkah Keenam yaitu melakukan filter terhadap suara yang kita masukan dengan menggunakan syntak :
fOut = filter(b, a, f);
Langkah Ketujuh yaitu memutar suara yang telah kita lakukan filter dengan menggunakan syntak :
p = audioplayer(fOut, fs);
p.play;

Berikut ini output yang dihasilkan dari program diatas :

Sinyal suara sebelum dilakukan filter
Gambar 1.Sinyal suara sebelum dilakukan filter

Sinyal suara setelah dilakukan filter
Gambar 2.Sinyal suara setelah dilakukan filter

Sobat poinreaders juga bisa mengunduh syntak tersebut pada link di bawah ini :


Semoga materi yang saya sampaikan tentang MATLAB dapat dipahami poinreaders. Silakan tulis pertanyaan seputar materi yang telah dibahas pada kolom komentar. Jangan lupa follow akun sosial kami agar poinreaders bisa mendapatkan materi terbaru tentang pemrograman.

Share this

Related Posts

Previous
Next Post »