Secara matematik, MSE dirumuskan sebagai berikut,
Sedangkan implementasi dalam matlab untuk file suara yang berekstensi .wav dapat dilihat pada kode di bawah. Cara menggunakan fungsi ini cukup mudah, yakni (dalam Matlab command window): msewav('fileinput.wav','fileoutput.wav').
Pastikan file fungsi ini beserta dua file wav yang akan dihitung MSE-nya ada dalam satu folder (direktori) dimana anda bekerja, atau gunakan perintah addpath untuk menambahkannya ke dalam direktori kerja anda.
msewav.m (Github )
function error = msewav(inputFile ,outputFile) % function to compute mse between two .wav. files % usage: mse=msewav(cleanfile.wav,enhanced.wav) % matlab spectrum library for Vibrastic Lab, ITS % bagustris@yahoo.com (21/7/2014) for .wav files if nargin<2 fprintf('mse=msewav(inputFile, outputFile) \n'); return; end; [in, fs1, Nbits1]= wavread(inputFile); [out, fs2, Nbits2]= wavread(outputFile); if (( fs1~= fs2) | ( Nbits1~= Nbits2)) error( 'The two files do not match!\n'); end if length(in)<length(out); out=out(1:length(in)); else in=in(1:length(out)); end in=in(:); out=out(:); %error=mse(in,out); in=in./max(abs(in)); out=out/max(abs(out)); z=sum(((in)-(out)).^2); error=z/length(in); end
If you find a bug (or suggest some improvement), please contact me.