wolffd@0: function [h,out] = dataspecgram(wavin, varargin) wolffd@0: %[h,spec] = dataspecgram(data,'sr',fs,'fftlen',2048,'stepw',1024,'winsize',2048,'min_fkhz',0.5,'max_fkhz',15,'nolog',0,'clip',0,'logadd',0); wolffd@0: wolffd@0: wolffd@0: [sr,fftlen, stepw,winsize,min_fkhz,max_fkhz,nolog,clip,logadd,fontsize,cutoff,colormode,unused]=process_options(varargin,... wolffd@0: 'sr',44800,'fftlen',2048,'stepw',1024,'winsize',2048,'min_fkhz',0.5,'max_fkhz',15,... wolffd@0: 'nolog',0,'clip',0,'logadd',0,'fontsize',8,'cutoff',0,'colormode','jet'); wolffd@0: out= specgram(wavin,fftlen,sr,winsize,winsize-stepw); wolffd@0: wolffd@0: wavlens=round(length(wavin)/sr*100)/100; wolffd@0: wolffd@0: firstindex= max(round(fftlen/(sr)*min_fkhz*1000),1); wolffd@0: lastindex= min(round(fftlen/(sr)*max_fkhz*1000),fftlen/2); wolffd@0: wolffd@0: out=out(firstindex:lastindex,:); wolffd@0: if nolog wolffd@0: out=abs(out); wolffd@0: out=sqrt(abs(out)); wolffd@0: out=out./max(max(out)); wolffd@0: else wolffd@0: out=log(0.000000001+logadd+abs(out)); wolffd@0: out=out./max(max(abs(out))); wolffd@0: out=out+1; wolffd@0: end wolffd@0: wolffd@0: %cut off small values wolffd@0: if cutoff wolffd@0: for i=1:size(out,2) wolffd@0: out((out(:,i) 0 wolffd@0: h=image([0 wavlens],[min_fkhz max_fkhz],out*100*clip); wolffd@0: else wolffd@0: h=imagesc([0 wavlens],[min_fkhz max_fkhz],out); wolffd@0: end wolffd@0: wolffd@0: switch colormode wolffd@0: case 'inv' wolffd@0: color= 'w'; wolffd@0: bgcolor= 'k'; wolffd@0: colormap(hot); wolffd@0: case 'bw' wolffd@0: color= 'black'; wolffd@0: colormap(1-grey); wolffd@0: bgcolor= 'w'; wolffd@0: case 'jet' wolffd@0: color= 'black'; wolffd@0: colormap(jet); wolffd@0: bgcolor= 'w'; wolffd@0: end wolffd@0: wolffd@0: set(gca,'FontSize',fontsize,'xcolor',color); wolffd@0: set(gca,'FontSize',fontsize,'ycolor',color); wolffd@0: wolffd@0: h=get(0,'CurrentFigure'); wolffd@0: axis xy; wolffd@0: set(gcf, 'color', bgcolor); wolffd@0: set(gcf, 'InvertHardCopy', 'off'); wolffd@0: wolffd@0: xlabel('Time[s]','FontSize',fontsize,'Color',color) wolffd@0: ylabel('Frequency[kHz]','FontSize',fontsize,'Color',color)