⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tfrview.m

📁 matlab时间序列分析工具箱
💻 M
📖 第 1 页 / 共 2 页
字号:
 end
 Maxsp=max(max(spec));
 if linlogspec==0,
  plot(freqs,spec);
  title('Linear scale');  
  set(axspec,'ytick',[0 round(Maxsp/2) round(Maxsp)]);
  set(gca,'Ylim',[0 Maxsp*1.2]);
 else
  plot(freqs,10*log10(spec/Maxsp)); 
  title('Log. scale [dB]');
  set(gca,'ytick',[fix(10^(log10(Maxsp)/2));fix(Maxsp)]);
  str1=['   ']; str2=['   '];
  st1=num2str(fix(10*log10(Maxsp)/2)); str1(1:length(st1))=st1;
  st2=num2str(fix(10*log10(Maxsp)));   str2(1:length(st2))=st2; 
  set(axspec,['Y' TickLabelStr],[str1;str2]);
  set(gca,'Ylim',[10*log10(min(min(spec))/Maxsp) 0]);
 end
 xlabel('Energy spectral density');
 Nsp=length(spec); 
 set(gca,'Xlim',[freqs(1) freqs(Nsp)]);
 set(gca,['X' TickLabelStr],[],'view',[-90 90]);
 
end;

if iscolorbar,                     % Is there a color bar ?
 PositionTfr=get(axtfr,'Position');
 set(axtfr,'Position',PositionTfr-[0 0 0.03 0]);
 set(axcb, 'Position',[PositionTfr(1)+PositionTfr(3)-0.01,...
  PositionTfr(2) 0.01 PositionTfr(4)]);
 axes(axcb); 
 Ncolors=length(colormap); 
% [cmin,cmax]=caxis; colorvect=linspace(cmax,cmin,Ncolors);
 c=caxis; cmin=c(1); cmax=c(2); 
 colorvect=linspace(cmax,cmin,Ncolors);
 imagesc(colorvect'); axis('off'); 
 if issig,                          % there is a signal
  PositionSig=get(axsig,'Position');
  set(axsig,'Position',PositionSig-[0 0 0.03 0]);
 end 
end

axes(axtfr);                         % Display the tfr
if (tcol==1),
 plot(freqr,tfr(1:Nf2));
else
 if strcmp(computer,'MAC'),
  tfr=flipud(tfr(1:Nf2,:));
 else
  tfr=tfr(1:Nf2,:);
 end;
 
 indmin=find(tfr<mini);
 tfr(indmin)=mini*ones(1,length(indmin));
 
 indmax=find(tfr>maxi);
 tfr(indmax)=maxi*ones(1,length(indmax));
 if isaffine & (display==2),
  fprintf('imagesc does not support non-linear scales for axes. Replaced by pcolor.\n');
  display=3; 
 end;
 
 if display==1,                  % contour
  contour(ts,freqr,tfr,levels);  % contour(tfr,levels,ts,freqr);
  DisplayStr=', contour';
 elseif display==2,              % imagesc
  if linlogtfr==0,
   imagesc(ts,freqr,tfr); axis('xy');
  else
   imagesc(ts,freqr,log10(tfr));axis('xy');
  end
  DisplayStr=', imagesc';
  
 elseif display==3,              % pcolor
  if linlogtfr==0,
   pcolor(ts,freqr,tfr); shading interp;
  else
   pcolor(ts,freqr,log10(tfr)); shading interp;
  end
  DisplayStr=', pcolor';
  
 elseif display==4,              % surf
  if linlogtfr==0,
   surf(ts,freqr,tfr); shading interp;
   zlabel('Amplitude');
   axis([ts(1) ts(tcol) freqr(1) freqr(Nf2) mini maxi]);
  else
   surf(ts,freqr,log10(tfr)); shading interp;
   zlabel('Positive values');
   axis([ts(1) ts(tcol) freqr(1) freqr(Nf2) log10(mini) log10(maxi)]);
  end
  DisplayStr=', surf';
  
 elseif display==5,              % mesh
  if linlogtfr==0,
   mesh(ts,freqr,tfr); shading interp;
   zlabel('Amplitude');
   axis([ts(1) ts(tcol) freqr(1) freqr(Nf2) mini maxi]);
  else
   mesh(ts,freqr,log10(tfr));shading interp;
   zlabel('Positive values');
   axis([ts(1) ts(tcol) freqr(1) freqr(Nf2) log10(mini) log10(maxi)]);
  end
  DisplayStr=', mesh';
 end
 
% Define the title and check the input arguments depending on 'method'
 
 method=method(4:length(method));
 
 if nargin==5, % if there is no additional parameters, do the best.
  title([method, LinLogStr,DisplayStr,...
   ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'WV'  ) | strcmp(method,'MH') | ...
   strcmp(method,'PAGE'), % no parameters
  title([method,', Nf=',num2str(Nf2), LinLogStr,DisplayStr,...
   ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'PWV'  )|strcmp(method,'PMH'  )| ...
   strcmp(method,'SP'   )|strcmp(method,'PPAGE')| ...
   strcmp(method,'RSP'  )|strcmp(method,'RPPAG')| ...
   strcmp(method,'RPWV' )|strcmp(method,'RPMH' ),
  h=p1;[hrow,hcol]=size(h); Lh=(hrow-1)/2; % one parameter
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title([method, ', Lh=',num2str(Lh), ', Nf=',num2str(Nf2),...
   LinLogStr, DisplayStr,', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'STFT'), % short-time fourier transform case
  h=p1;[hrow,hcol]=size(h); Lh=(hrow-1)/2;
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title(['|',method, '|^2, Lh=',num2str(Lh),...
   ', Nf=',num2str(Nf2), LinLogStr, DisplayStr,', Thld=',...
   num2str(threshold),'%']);
  
 elseif strcmp(method,'SPWV' ) | strcmp(method,'MHS'  )| ...
   strcmp(method,'RSPWV') | strcmp(method,'RMHS' )| ...
   strcmp(method,'ZAM'  ) | strcmp(method,'RIDBN')|...
   strcmp(method,'BJ'   ) | strcmp(method,'RIDB' )| ...
   strcmp(method,'RIDH' ) | strcmp(method,'RIDT' ),
  g=p1; [grow,gcol]=size(g); Lg=(grow-1)/2;
  if (gcol~=1)|(rem(grow,2)==0),
   error('g must be a smoothing window with odd length'); end;
  h=p2; [hrow,hcol]=size(h); Lh=(hrow-1)/2; 
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title([method,', Lg=',num2str(Lg),', Lh=',num2str(Lh),...
   ', Nf=',num2str(Nf2),LinLogStr, DisplayStr,...
   ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'MMCE'),
  h=p1;[hrow,hcol]=size(h); Lh=(hrow-1)/2;
  if (rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title([method, ', Lh=',num2str(Lh), ', Nf=',num2str(Nf2),...
   LinLogStr, DisplayStr,', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'CW' ) | strcmp(method,'BUD'),
  g=p1; [grow,gcol]=size(g); Lg=(grow-1)/2;
  if (gcol~=1)|(rem(grow,2)==0),
   error('g must be a smoothing window with odd length'); end;
  h=p2; [hrow,hcol]=size(h); Lh=(hrow-1)/2; 
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  sigma=p3;
  title([method,', Lg=',num2str(Lg),', Lh=',num2str(Lh),...
   ' sigma=',num2str(sigma),', Nf=',num2str(Nf2),...
   LinLogStr, DisplayStr, ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'GRD')
  g=p1; [grow,gcol]=size(g); Lg=(grow-1)/2;
  if (gcol~=1)|(rem(grow,2)==0),
   error('g must be a smoothing window with odd length'); end;
  h=p2; [hrow,hcol]=size(h); Lh=(hrow-1)/2; 
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title([method,', Lg=',num2str(Lg),', Lh=',num2str(Lh),...
   ', rs =',num2str(p3), ', M/N =',num2str(p4), ...
   ', Nf =',num2str(Nf2), ...
   LinLogStr, DisplayStr, ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'MSC' ) | strcmp(method,'RMSC' )
  f0T=p1; if (f0T<=0), error('f0T must be positive'); end;
  title([method, ', f0T=',num2str(f0T), ', Nf=',num2str(Nf2),...
   LinLogStr, DisplayStr, ', Threshold=',num2str(threshold),'%']);
  
 elseif strcmp(method,'RGAB' )
  Nh=p1; if (Nh<=0), error('Nh must be positive'); end;
  title([method, ', Nh=',num2str(Nh), ', Nf=',num2str(Nf2),...
   LinLogStr, DisplayStr, ', Threshold=',num2str(threshold),'%']);
  
  
 elseif strcmp(method,'DFLA' ) | strcmp(method,'UNTER' )| ...
   strcmp(method,'BERT' ),
  N=p1; 
  if (N<=0),                error('N must be positive'); end;
  title([method, ', N=',num2str(N), LinLogStr, DisplayStr, ', Threshold=',...
   num2str(threshold), '%']);  
  
 elseif strcmp(method,'SCALO'),
  Nh0=p1; N=p2; 
  if (Nh0<0),               error('Nh0 must be positive'); end;
  if (N<=0),                error('N must be positive'); end;
  if (Nh0>0), 
   title([method, ', Morlet wavelet, Nh0=', num2str(Nh0), ...
    ', N=',num2str(N), LinLogStr, DisplayStr, ', Thld=',...
    num2str(threshold), '%']);  
  else 
   title([method, ', Mexican hat, N=',num2str(N), LinLogStr, DisplayStr, ...
    ', Thld=', num2str(threshold), '%']);  
  end
  
 elseif strcmp(method,'ASPW'),
  Nh0=p1; Ng0=p2; N=p3; 
%  if (Nh0<0),               error('Nh0 must be positive'); end;
%  if (Ng0<0),               error('Ng0 must be positive'); end;
%  if (N<=0),                error('N must be positive'); end;
  if (Nh0>0), 
   title([method, ', Morlet wlt, Nh0=', num2str(Nh0), ', Ng0=',...
    num2str(Ng0), ', N=',num2str(N), LinLogStr, DisplayStr, ', Thld=',...
    num2str(threshold), '%']);  
  else 
   title([method, ', Mexican hat, Ng0=',num2str(Ng0),...  
    ', N=',num2str(N), LinLogStr, DisplayStr, ', Thld=',... 
    num2str(threshold), '%']);  
  end
  
 elseif strcmp(method,'SPAW'),
  K=p1; Nh0=p2; Ng0=p3; N=p4; 
  if (Nh0<0),               error('Nh0 must be positive'); end;
  if (Ng0<0),               error('Ng0 must be positive'); end;
  if (N<=0),                error('N must be positive'); end;
  if (Nh0>0), 
   title([method, ', K=', num2str(K), ', Morlet wlt, Nh0=',...
    num2str(Nh0), ', Ng0=',...
    num2str(Ng0), ', N=',num2str(N), LinLogStr, DisplayStr, ', Thld=',...
    num2str(threshold), '%']);  
  else 
   title([method, ', K=', num2str(K), ', Mexican hat, Ng0=',...
    num2str(Ng0),', N=',num2str(N), LinLogStr, DisplayStr, ', Thld=',...
    num2str(threshold), '%']);  
  end
  
  
 elseif strcmp(method,'GABOR'),
  N=p1; Q=p2; h=p3; [hrow,hcol]=size(h); Lh=(hrow-1)/2;
  if (hcol~=1)|(rem(hrow,2)==0),
   error('h must be a smoothing window with odd length'); end;
  title([method, ', Lh=',num2str(Lh), ', Nf=',...
   num2str(Nf2),', N=',num2str(N),', Q=',num2str(Q),...
   LinLogStr, DisplayStr, ', Thld=',num2str(threshold),'%']);
  
 end;
end

% add the correct legend on the axes
if unitHz==1,
 xlabel('Time [s]'); ylabel('Frequency [Hz]');
elseif unitHz==2,
 xlabel('Time [ms]'); ylabel('Frequency [kHz]');
elseif unitHz==3,
 xlabel('Time [祍]'); ylabel('Frequency [MHz]');
end


if (isgridsig & issig),		% Updating of the grids
 axes(axsig); grid on	
elseif (~isgridsig & issig),
 axes(axsig); grid off
end 
if (isgridspec & isspec),
 axes(axspec); grid on
elseif (~isgridspec & isspec),
 axes(axspec); grid off
end 

if (isgridtfr),			% upating of the grid on the tfr
 axes(axtfr); grid on  
elseif (~isgridtfr),
 axes(axtfr); grid off
end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -