📄 getstfd.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -