%% 清空环境变量
close all;
clear;
clc;
format compact;
%% 状态数据提取
N=2048;
fs=12000;
z1=load('Normal_0.mat');
z2=load('B007-0.mat');
z3=load('IR007-0.mat');
z4=load('OR007@6-0.mat');
N=50; %每种状态下样本个数
M=4*N; %总体样本个数
for i=0:N-1
x1(i+1,:)=(z1.X097_DE_time(1+10*i:2048+10*i))';
x2(i+1,:)=(z2.X118_DE_time(1+10*i:2048+10*i))';
x3(i+1,:)=(z3.X105_DE_time(1+10*i:2048+10*i))';
x4(i+1,:)=(z4.X130_DE_time(1+10*i:2048+10*i))';
end
x=[x1
x2
x3
x4]; %生成4*50个样本
%% 时域特征参数的提取
for i=1:M
dt(i,1)=var(x(i,:)); %方差
dt(i,2)=std(x(i,:)); %均方值
dt(i,3)=rms(x(i,:)); %均方根值
dt(i,4)=skewness(x(i,:)); %偏度
dt(i,5)=kurtosis(x(i,:)); %峭度
dt(i,6)=rms(x(i,:))/mean(x(i,:));%波性指标
dt(i,7)=max(x(i,:))/rms(x(i,:)); %裕度指标
dt(i,8)=max(x(i,:))/mean(x(i,:));%脉冲指标
dt(i,9)=max(x(i,:))/(mean(sqrt(abs(x(i,:))))^2);%峰值指标
dt(i,10)=mean((x(i,:)-mean(x(i,:))).^4)/(std(x(i,:))^4);%峭度指标
end
%% 频域特征参数的提取
for i=1:M
nfft(i) = 2^nextpow2(length(x(i,:)));
y(i,:)=2*abs(fft(x(i,:),nfft(i)))/length(x(i,:));
f(i,:)=fs*(1:nfft(i))/nfft(i);
df(i,1)=mean(y(i,:)); %Mean frequency均方频率,反映频域振动能量的大小;
df(i,2)=sum(f(i,:).*y(i,:))/sum(y(i,:)); %Frequency center频率中心,反映主频带位置的变化;
df(i,3)=sqrt(sum((f(i,:).^2).*y(i,:))/sum(y(i,:))); %Root mean square frequency均方根频率,反映主频带位置的变化;
df(i,4)=sqrt(mean(((f(i,:)-df(i,2)).^2).*y(i,:))); %Standard deviation frequency频率标准差,反映主频带位置的变化;
df(i,5)=mean(((f(i,:)-df(i,2)).^4).*y(i,:))/(df(i,4)^4); %kurtosis frequency峭度频率,表示频谱的分散或者集中程度
end
%% 时频域特征参数的提取
for i=1:M
imf=emd(x(i,:));
dtf(i,1)=sum(imf(1,:).^2);
dtf(i,2)=sum(imf(2,:).^2);
dtf(i,3)=sum(imf(3,:).^2);
dtf(i,4)=sum(imf(4,:).^2);
dtf(i,5)=sum(imf(5,:).^2); %前5个IMF分量的能量特征
dtf(i,6)=LZ_compute(imf(1,:));
dtf(i,7)=LZ_compute(imf(2,:));
dtf(i,8)=LZ_compute(imf(3,:));
dtf(i,9)=LZ_compute(imf(4,:));
dtf(i,10)=LZ_compute(imf(5,:)); %前5个IMF分量的Lempel_Ziv复杂度特征
end
%% 输出200*25特征参数矩阵
d=[dt,df,dtf];
save mydata d;
[d_scale,ps] = mapminmax(d',0,1); %各特征参数值归一化到[0,1]
d_scale = d_scale';
save mydata1 d_scale;
%% 输出200*26特征参数及类别标签的混合矩阵
d_label(1:50,1) = 1;
d_label(51:100,1) = 2;
d_label(101:150,1) = 3;
d_label(151:200,1) = 4;
save mydata2 d_scale d_label;
评论10