Listing Program

12
a. Listing Program %input fs=8000; [rekam,fs]=wavread('ekstraksiicha'); [r c]=size(rekam); if r>c rekam=rekam'; end %ukuran window windowsize=200; %frame blocking pjdata=length(rekam); temp=pjdata/windowsize; jumf=floor(temp); for m=2:jumf frame=m; p=m*windowsize; n=p-(windowsize-1); q=(m-1)*windowsize; for k=n:p suara(k-q)=rekam(k); end

Transcript of Listing Program

Page 1: Listing Program

a. Listing Program

%input

fs=8000;

[rekam,fs]=wavread('ekstraksiicha');

[r c]=size(rekam);

if r>c

rekam=rekam';

end

%ukuran window

windowsize=200;

%frame blocking

pjdata=length(rekam);

temp=pjdata/windowsize;

jumf=floor(temp);

for m=2:jumf

frame=m;

p=m*windowsize;

n=p-(windowsize-1);

q=(m-1)*windowsize;

for k=n:p

suara(k-q)=rekam(k);

end

%pre-emphasis

Page 2: Listing Program

for t1=2:windowsize

suara1(t1)=suara(t1)-0.9375*suara(t1-1);

terima(t1)=0.0;

end

suara1(1)=suara(1);

%window hamming

for t2=1:windowsize

winham=0.54-0.46*cos(2*pi*(t2-1)/(windowsize-1));

swin(t2)=4*suara1(t2)*winham*1.5863;

end

%ukuran fft

fftsize=512;

%fft

windowstep=fs/windowsize;

cols=fix((pjdata-windowsize)/frame);

%set nilai awal

datafft=zeros(1,fftsize);

spektrumfrekuensi=zeros(fftsize/2,cols);

%proses penghitungan magnitude FFT

for awal=0:cols-1

datafft(1:windowsize)=suara1*winham;

mgfft=abs(fft(datafft));

Page 3: Listing Program

spektrumfrekuensi(:,awal+1)=mgfft(1:fftsize/2)';

end

%parameter filter bank

frekuensiterendah=133.3333;

filterliner=13;

spasiliner=66.66666666;

filterlog=27;

spasilog=1.0711703;

%jumlah koefisien spektrum

koefisiencepstrum=13;

%filterbank

filtertotal=filterliner+filterlog;

frekuensi=frekuensiterendah+(0:filterliner-1)*spasiliner;

frekuensi(filterliner+1:filtertotal+2)=frekuensi(filterliner)*spasilog.^(1:filterlog+2);

bawah=frekuensi(1:filtertotal);

tengah=frekuensi(2:filtertotal+1);

atas=frekuensi(3:filtertotal+2);

%set nilai awal

bobotfilter=zeros(filtertotal,fftsize);

mel=zeros(filtertotal,cols);

Page 4: Listing Program

%proses perhitungan bobot filter bank

tinggisegitiga=2./(atas-bawah);

frekuensifft=(0:fftsize-1)/fftsize*fs;

for chan=1:filtertotal;

bobotfilter(chan,:)=(frekuensifft>bawah(chan)&frekuensifft<=tengah(chan)).*tinggisegitiga(chan).*(frekuensifft-bawah(chan))/(tengah(chan)-bawah(chan))+(frekuensifft>tengah(chan)&frekuensifft<atas(chan)).*(atas(chan)-frekuensifft)/(atas(chan)-tengah(chan));

end

%proses perhitungan output filter bank dalam frekuensi mel

for awal=0:cols-1

earmag=log10(bobotfilter*mgfft');

mel(:,awal+1)=earmag;

end

end

%koefisien cepstrum dg DCT

MDCT=1/sqrt(filtertotal/2)*cos((0:(koefisiencepstrum-1))'*(2*(0:(filtertotal-1))+1)*pi/2/filtertotal);

MDCT(1,:)=MDCT(1,:)*sqrt(2)/2;

%set nilai awal

MFCC=zeros(koefisiencepstrum,cols);

outfb=zeros(filtertotal,cols);

%proses perhitungan MFCC

Page 5: Listing Program

for awal=0:cols-1

MFCC(:,awal+1)=MDCT*earmag;

outfb(:,awal+1)=MDCT(1:koefisiencepstrum,:)'*MFCC(:,awal+1);

end

%cepstral mean substraction

meanMFCC=mean(MFCC(:,awal+1));

CMS=MFCC(:,awal+1)-meanMFCC;

%Grafik Rekaman Suara Input Analog

figure(1)

plot(rekam),grid

title('Sinyal Suara Rekaman Input');

xlabel('Waktu')

ylabel('Amplitudo')

figure(2)

plot(suara1),grid

title('pre-emphasis');

xlabel('waktu')

zlabel('amplitudo')

figure(3)

plot(swin),grid

title('windowing');

Page 6: Listing Program

xlabel('cuplikan ke-')

zlabel('magnitude')

figure(4)

plot(spektrumfrekuensi),grid

title('FFT');

xlabel('frekuensi')

zlabel('fft')

figure(5)

plot(bobotfilter),grid

title('filter bank');

xlabel('frekuensi')

zlabel('mFFT')

figure(6)

plot(MDCT),grid

title('mel Frequency Wrapping');

xlabel('indeks filter')

zlabel('')

figure(7)

plot(mel),grid

title('Magnitude FFT');

xlabel('indeks filter')

Page 7: Listing Program

ylabel('')

%Grafik hasil CMS

figure(8)

plot(CMS),grid

title('Hasil CMS');

xlabel('Waktu')

zlabel('Amplitudo')

CMS(1,:)=[];

CMS=abs(CMS);

CMS=mod(CMS,2);

CMS=round(CMS);

CMS=mod(CMS,2);

Input=mod(CMS,2);

Page 8: Listing Program

b. Hasil MFCC

c. GrafikHasil rekaman suara

Pre emphasis

Windowing

Page 9: Listing Program

FFT

Filter blank

Page 10: Listing Program

Mel frekuensi wrapping

Magnitude FFT

Hasil CMS

Page 11: Listing Program
Page 12: Listing Program