📄 five_features.m
字号:
function feature_vector=five_features(Amplititude,Phase,Frequency)
feature_vector=zeros(1,5);
%提取零中心归一化瞬时幅度之谱密度的最大值garma_max
amp_mean=mean(Amplititude);
amp_cn=Amplititude/amp_mean-1;
garma_max1=max(abs(fft(amp_cn.^2)))/size(Amplititude,1);
garma_max=garma_max1;
feature_vector(1)=garma_max;
%提取零中心归一化瞬时幅度绝对值的标准偏差delta_aa
amp_mean=mean(Amplititude);
amp_cn=Amplititude/amp_mean-1;
amp_cn_mean_square=(sum(abs(amp_cn))/size(amp_cn,1)).^2;
amp_cn_square_mean=sum((amp_cn).^2)/size(amp_cn,1);
delta_aa=sqrt(amp_cn_square_mean-amp_cn_mean_square);
feature_vector(2)=delta_aa;
%提取零中心非弱信号段瞬时相位非线性分量绝对值的标准偏差delta_ap
phase_mean=mean(Phase);
phase_nl=Phase-phase_mean;
amp_mean=mean(Amplititude);
amp_n=Amplititude/amp_mean;
nCount=0;
for j=1:size(Amplititude)
if amp_n(j)>0.9
nCount=nCount+1;
else phase_nl(j)=0;
end
end
phase_nl_mean_square=(sum(abs(phase_nl))/nCount).^2;
phase_nl_square_mean=sum((phase_nl).^2)/nCount;
delta_ap=abs(sqrt(phase_nl_mean_square-phase_nl_square_mean));
feature_vector(3)=delta_ap;
%提取零中心非弱信号段瞬时相位非线性分量的标准偏差delta_dp
phase_mean=mean(Phase);
phase_nl=Phase-phase_mean;
amp_mean=mean(Amplititude);
amp_n=Amplititude/amp_mean;
nCount=0;
for j=1:size(Amplititude)
if amp_n(j)>0.9
nCount=nCount+1;
else phase_nl(j)=0;
end
end
phase_nl_mean_square=(sum(phase_nl)/nCount).^2;
phase_nl_square_mean=sum((phase_nl).^2)/nCount;
delta_dp=abs(sqrt(phase_nl_mean_square-phase_nl_square_mean));
feature_vector(4)=delta_dp;
%提取零中心归一化非弱信号段瞬时频率绝对值的标准偏差delta_af
fre_mean=mean(Frequency);
fre_nl=Frequency-fre_mean;
amp_mean=mean(Amplititude);
amp_n=Amplititude/amp_mean;
nCount=0;
for j=1:size(Amplititude)
if amp_n(j)>1
nCount=nCount+1;
else fre_nl(j)=0;
end
end
fre_nl_mean_square=(sum(abs(fre_nl))/nCount).^2;
fre_nl_square_mean=sum((fre_nl).^2)/nCount;
delta_af=abs(sqrt(fre_nl_mean_square-fre_nl_square_mean));
feature_vector(5)=delta_af;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -