samer@47: function tfdimage(TFD,N,m,fs,range,varargin) samer@47: % TFDIMAGE: image of time frequency distribution with correct axes samer@47: % samer@47: % tfdimage(TFD,N,M,fs[,range]) samer@47: % samer@47: % TFD: image matrix samer@47: % fs: sampling rate in Hz samer@47: % N: frame size (used to determine frequency scale) samer@47: % m: hop size (used to derermine time scale) samer@47: % range: if present, determines manual colour scaler. range(1)=dBs of dynamic range, samer@47: % and range(2) is max value. samer@47: % if range=[], uses default manual offset (13.5). samer@47: samer@47: if nargin<4, fs=1; end samer@47: opts=options('offset',0,varargin{:}); samer@47: samer@47: [T,F]=tfscale(fs,N,m,size(TFD)); samer@47: if fs>1000, samer@47: imagesc(T+opts.offset,F/1000,10*log10(TFD)); samer@47: else samer@47: imagesc(T+opts.offset,F,10*log10(TFD)); samer@47: end samer@47: if nargin>=5 samer@47: if isempty(range), range=13.5; end samer@47: samer@47: dBs=range(1); samer@47: cax=caxis; cax(1)=cax(2)-dBs; samer@47: if length(range)>1, samer@47: cax=cax+range(2)-cax(2); samer@47: end samer@47: caxis(cax); samer@47: end samer@47: axis xy samer@47: xlabel('time/s'); samer@47: if fs>1000, samer@47: ylabel('frequency/kHz'); samer@47: else samer@47: ylabel('frequency/Hz'); samer@47: end samer@47: samer@47: