Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- clc
- [c1,pathc1]=uigetfile({'*.wav'},'Select the data');
- file1=[pathc1,c1];
- SAMPEL1=importdata(file1);
- bufS1=SAMPEL1.data;
- S1=bufS1(:,1);
- FS1=SAMPEL1.fs;
- [c2,pathc2]=uigetfile({'*.wav'},'Select the data');
- file2=[pathc2,c2];
- SAMPEL2=importdata(file2);
- bufS2=SAMPEL2.data;
- S2=bufS2(:,1);
- FS2=SAMPEL2.fs;
- panjang1=length(S1);
- panjang2=length(S2);
- N1=FS1*0.02;
- M1=FS1*0.01;
- N2=FS2*0.02;
- M2=FS2*0.01;
- NFRAME1=floor((panjang1/M1)-1);
- count1=0;
- for k=1:NFRAME1
- FRAME1=S1((k-1)*M1+1:N1+(k-1)*M1);
- AMP1MAX=max(S1);
- DEL1=0.09*AMP1MAX
- MAXVAL1=max(FRAME1);
- if MAXVAL1>DEL1
- count1=count1+1;
- S1SRbuf((count1-1)*M1+1:N1+(count1-1)*M1)=FRAME1;
- end
- end
- S1SR=S1SRbuf';
- NFRAME2=floor((panjang2/M2)-1);
- count2=0;
- for k=1:NFRAME2
- FRAME2=S2((k-1)*M2+1:N2+(k-1)*M2);
- AMP2MAX=max(S2);
- DEL2=0.09*AMP2MAX;
- MAXVAL2=max(FRAME2);
- if MAXVAL2>
- count2=count2+1;
- S2SRbuf((count2-1)*M2+1:N2+(count2-1)*M2)=FRAME2;
- end
- end
- S2SR=S2SRbuf';
- L1=length(S1SR);
- L2=length(S2SR);
- S1DCR=S1SR-(sum(S1SR)/L1);
- S2DCR=S2SR-(sum(S2SR)/L2);
- alpha=0.97;
- S1PE=zeros(L1,1);
- S1PE(1,1)=S1DCR(1,1);
- for i=2:L1
- S1PE(i,1)=S1DCR(i,1)-alpha*S1DCR(i-1,1);
- end
- S2PE=zeros(L2,1);
- S2PE(1,1)=S2DCR(1,1);
- for i=2:L2
- S2PE(i,1)=S2DCR(i,1)-alpha*S2DCR(i-1,1);
- end
- N_FRAME1=floor((L1/M1)-1);
- hitung1=0;
- SWND1=hamming(N1);
- for k1=1:N_FRAME1
- FRAME_1=S1PE((k1-1)*M1+1:N1+(k1-1)*M1);
- hitung1=hitung1+1;
- S1W(((hitung1-1)*M1+1):(N1+(hitung1-1)*M1))=S1PE(((hitung1-1)*M1+1):(N1+(hitung1-1)*M1)).*SWND1;
- end
- N_FRAME2=floor((L2/M2)-1);
- hitung2=0;
- SWND2=hamming(N2);
- for k2=1:N_FRAME2
- FRAME_2=S2PE((k2-1)*M2+1:N2+(k2-1)*M2);
- hitung2=hitung2+1;
- S2W((hitung2-1)*M2+1:N2+(hitung2-1)*M2)=S2PE(((hitung2-1)*M2+1):(N2+(hitung2-1)*M2)).*SWND2;
- end
- S1FFT=fftshift(S1W);
- S2FFT=fftshift(S2W);
- [PXX1,Fil1]=periodogram(S1FFT,[],512,FS1);
- Filter1=melfilter(N1,Fil1);
- S1MEL=Filter1*PXX1;
- [PXX2,Fil2]=periodogram(S2FFT,[],512,FS2);
- Filter2=melfilter(N2,Fil2);
- S2MEL=Filter2*PXX2;
- S1DCT=dct(S1MEL);
- S2DCT=dct(S2MEL);
- S1C=cceps(S1DCT);
- S2C=cceps(S2DCT);
- [Dist,D,k,w]=dtw(S1C',S2C');
- disp(Dist);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement