annotate graphics/tfdimage.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents 82075c94eed1
children
rev   line source
samer@47 1 function tfdimage(TFD,N,m,fs,range,varargin)
samer@47 2 % TFDIMAGE: image of time frequency distribution with correct axes
samer@47 3 %
samer@47 4 % tfdimage(TFD,N,M,fs[,range])
samer@47 5 %
samer@47 6 % TFD: image matrix
samer@47 7 % fs: sampling rate in Hz
samer@47 8 % N: frame size (used to determine frequency scale)
samer@47 9 % m: hop size (used to derermine time scale)
samer@47 10 % range: if present, determines manual colour scaler. range(1)=dBs of dynamic range,
samer@47 11 % and range(2) is max value.
samer@47 12 % if range=[], uses default manual offset (13.5).
samer@47 13
samer@47 14 if nargin<4, fs=1; end
samer@47 15 opts=options('offset',0,varargin{:});
samer@47 16
samer@47 17 [T,F]=tfscale(fs,N,m,size(TFD));
samer@47 18 if fs>1000,
samer@47 19 imagesc(T+opts.offset,F/1000,10*log10(TFD));
samer@47 20 else
samer@47 21 imagesc(T+opts.offset,F,10*log10(TFD));
samer@47 22 end
samer@47 23 if nargin>=5
samer@47 24 if isempty(range), range=13.5; end
samer@47 25
samer@47 26 dBs=range(1);
samer@47 27 cax=caxis; cax(1)=cax(2)-dBs;
samer@47 28 if length(range)>1,
samer@47 29 cax=cax+range(2)-cax(2);
samer@47 30 end
samer@47 31 caxis(cax);
samer@47 32 end
samer@47 33 axis xy
samer@47 34 xlabel('time/s');
samer@47 35 if fs>1000,
samer@47 36 ylabel('frequency/kHz');
samer@47 37 else
samer@47 38 ylabel('frequency/Hz');
samer@47 39 end
samer@47 40
samer@47 41