getstfd.m

来自「自己写的一个计算空间时频分布的程序」· M 代码 · 共 65 行

M
65
字号
function [STFDZ] = GetSTFD(Z,Nf,Nt,TFDType)


%======================== Computation of the STFD of Z ===========================%

% This cancels negative frequencies of signals spectrum and then prevent from
% spectral folding of the TFDs (i.e produces an analytic signal).
[n,T] = size(Z);

 if T<256,
    Nt=T; 
    Nf=2^floor(log2(T)); %Closest power of 2
  end
 

Zh = Z;

 
STFDZ=zeros(n,n,Nf,Nt);


for i=1:n
    if strcmp(TFDType,'SPWV'),
        STFDZ(i,i,:,:)=tfrspwv(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
    if strcmp(TFDType,'MSPW'),
        STFDZ(i,i,:,:)=tfrrspwv(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
    if strcmp(TFDType,'WV'),
        STFDZ(i,i,:,:)=tfrwv(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
     if strcmp(TFDType,'CW'),
        STFDZ(i,i,:,:)=tfrcw(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
    if strcmp(TFDType,'BJ'),
        STFDZ(i,i,:,:)=tfrbj(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
     if strcmp(TFDType,'PWV'),
        STFDZ(i,i,:,:)=tfrpwv(Zh(i,:).',ceil(1:T/Nt:T),Nf); % Auto-terms
    end;
end
for i=1:n
      for j=i+1:n     
          if strcmp(TFDType,'SPWV'),
                TFR=tfrspwv([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
            if strcmp(TFDType,'MSPWV'),
                TFR=tfrrspwv([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
           if strcmp(TFDType,'WV'),
                TFR=tfrwv([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
           if strcmp(TFDType,'CW'),
                TFR=tfrcw([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
           if strcmp(TFDType,'BJ'),
                TFR=tfrbj([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
           if strcmp(TFDType,'PWV'),
                TFR=tfrpwv([ Zh(i,:).' Zh(j,:).'],ceil(1:T/Nt:T),Nf); % Cross-TFDs
           end;
          STFDZ(i,j,:,:)=TFR;
          STFDZ(j,i,:,:)=conj(TFR);
      end
end     

⌨️ 快捷键说明

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