Home > fcn > DIVA_GUI_toolbox > grabfmt.m

grabfmt

PURPOSE ^

SYNOPSIS ^

function ofmt=grabfmt(y,fs,Nfmt)

DESCRIPTION ^

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function ofmt=grabfmt(y,fs,Nfmt)
0002 if(nargin==1)
0003   Nfmt=3;
0004   fs=10000;
0005 elseif(nargin<3)
0006   Nfmt=3;
0007 end
0008   
0009 Nlpc=round(fs/1000)+2;
0010 winsize=round(fs*.02); 
0011 begwin=1;
0012 
0013 ypre=convn(y,[1,-.95]);
0014 j=1;
0015 for i=1:winsize:length(ypre)-winsize
0016 %  winstart=max(1,i-round(winsize/4));
0017 %  i=winstart;
0018   data=ypre(i:i+winsize);
0019   hamm_data=hamming(length(data)).*data';
0020   [a,g]=lpc(hamm_data,Nlpc);
0021   r=roots(a);
0022   r(abs(r)<.8 | angle(r)<=0)=[];
0023   r=sort(angle(r)/(2*pi)*fs);
0024   fmt(1:min(Nfmt,length(r)),j)=r(1:min(Nfmt,length(r))); 
0025   j=j+1;
0026 end
0027 meanfmt=mean(fmt,2);
0028 for i=2:size(fmt,2)-1
0029   for j=1:size(fmt,1)
0030     if(abs(fmt(j,i)-fmt(j,i-1))>0.3*meanfmt(j) && ...
0031        abs(fmt(j,i)-fmt(j,i+1))>0.3*meanfmt(j))
0032       fmt(j,i)=(fmt(j,i-1)+fmt(j,i+1))/2;
0033     end
0034   end
0035 end
0036 ofmt=fmt';
0037 %meanfmt=mean(fmt');
0038

Generated on Tue 27-Mar-2007 12:06:24 by m2html © 2003