clc;
clear all;
disp('clear all');
filestr='D:\DATA\project\bearing轴承\CoEDataSet\2-bearing_IMS\2nd_test\2nd_test\';
% D:\DATA\project\bearing轴承\FEMTDataSet\Training_set\Learning_set\Bearing1_3\
% D:\DATA\project\bearing轴承\FEMTDataSet\Validation_Set\Full_Test_Set\Bearing1_3\
%D:\DATA\project\bearing轴承\CoEDataSet\2-bearing_IMS\1st_test\1st_test\ %第一次
%E:\project\研究Research\CoE预测数据集\2-bearing_IMS\2nd_test\2nd_test\ %第二次
%E:\project\研究Research\CoE预测数据集\2-bearing_IMS\3rd_test\4th_test\txt\ %第三次
filenames=dir([filestr,'*.*']); %获得文件名
filesize=length(filenames)-2; %前两个为.和..不要
tic
for ci=1:filesize
x=dlmread([filestr,filenames(ci+2).name]);
disp(['total number:',num2str(filesize),' ','current process:',num2str(ci)]);
x=x(1:2048,:);
[N,M]=size(x);
for cj=1:1
t=1:N;
xt=x(:,cj)';
T=wpdec(xt,3,'db5'); %进行小波包分解
x1=wpcoef(T,[1,0]);
x2=wpcoef(T,[1,1]);
z1=wpcoef(T,[2,0]);
z2=wpcoef(T,[2,1]);
z3=wpcoef(T,[2,2]);
z4=wpcoef(T,[2,3]);
y1=wpcoef(T,[3,0]);
y2=wpcoef(T,[3,1]);
y3=wpcoef(T,[3,2]);
y4=wpcoef(T,[3,3]);
y5=wpcoef(T,[3,4]);
y6=wpcoef(T,[3,5]);
y7=wpcoef(T,[3,6]);
y8=wpcoef(T,[3,7]);
xx1=wprcoef(T,[1,0]);
xx2=wprcoef(T,[1,1]);
zz1=wprcoef(T,[2,0]);
zz2=wprcoef(T,[2,1]);
zz3=wprcoef(T,[2,2]);
zz4=wprcoef(T,[2,3]);
yy1=wprcoef(T,[3,0]);
yy2=wprcoef(T,[3,1]);
yy3=wprcoef(T,[3,2]);
yy4=wprcoef(T,[3,3]);
yy5=wprcoef(T,[3,4]);
yy6=wprcoef(T,[3,5]);
yy7=wprcoef(T,[3,6]);
yy8=wprcoef(T,[3,7]);
a=pow2(1); %计算第一次分解后的能量
aa=xx1.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E1= bb(1,i+a);
aa=xx2.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E2= bb(1,i+a);
a=pow2(2); %计算第二次分解后的能量
aa=zz1.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E3= bb(1,i+a);
aa=zz2.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E4= bb(1,i+a);
aa=zz3.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E5= bb(1,i+a);
aa=zz4.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E6= bb(1,i+a);
a=pow2(3); %计算第三次分解后的能量
aa=yy1.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E7= bb(1,i+a);
aa=yy2.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E8= bb(1,i+a);
aa=yy3.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E9= bb(1,i+a);
aa=yy4.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E10= bb(1,i+a);
aa=yy5.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E11= bb(1,i+a);
aa=yy6.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E12= bb(1,i+a);
aa=yy7.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E13= bb(1,i+a);
aa=yy8.^2; bb=(aa.*a)/(N-a);
for i=1:a:N-a-1
bb(1,i+a)=bb(1,i+a)+bb(1,i);
end
E14= bb(1,i+a);
E=[E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 E14];
n=[1 2 3 4 5 6 7 8 9 10 11 12 13 14];
if cj==1
XEW_1(ci,:)=E;
end
if cj==2
XEW_2(ci,:)=E;
end
if cj==3
XEW_3(ci,:)=E;
end
if cj==4
XEW_4(ci,:)=E;
end
if cj==5
XEW_5(ci,:)=E;
end
% 还是自己算算能量吧,不放心
Ei(ci,1)=sum(yy1(:).^2);
Ei(ci,2)=sum(yy2(:).^2);
Ei(ci,3)=sum(yy3(:).^2);
Ei(ci,4)=sum(yy4(:).^2);
Ei(ci,5)=sum(yy5(:).^2);
Ei(ci,6)=sum(yy6(:).^2);
Ei(ci,7)=sum(yy7(:).^2);
Ei(ci,8)=sum(yy8(:).^2);
Etot=sum(Ei(ci,:));
for i=1:8
P(ci,i)=Ei(ci,i)/Etot;
Ewentropy(ci,i)=-P(ci,i)*log(P(ci,i)); %小波熵Swt=-sum(Pj*logPj)
end
XE1(ci,cj)=wentropy(yy1,'shannon');
XE2(ci,cj)=wentropy(yy2,'shannon');
XE3(ci,cj)=wentropy(yy3,'shannon');
XE4(ci,cj)=wentropy(yy4,'shannon');
XE5(ci,cj)=wentropy(yy5,'shannon');
XE6(ci,cj)=wentropy(yy6,'shannon');
XE7(ci,cj)=wentropy(yy7,'shannon');
XE8(ci,cj)=wentropy(yy8,'shannon');
XE(ci,cj)=entropy(x(:,cj)); %信号熵
end
end
toc