资源简介

对滚动轴承振动信号提取小波包熵并对各个频带上的小波包熵值进行作图,代码中有注释,比较简单,只要对MATLAB懂一些并可理解~

资源截图

代码片段和文件信息

%求小波包的信息熵
%ECG为信号源,n为分解的层数,wpname为小波名字. 
function y=waveletentropy(ECGnwpname)

S=zeros(14);
%正常轴承
x0=X099_FE_time(1:102400);
wpt0=wpdec(x03‘db4‘); %对数据进行小波包分解 
for i=1:8 %对各层小波包分解系数进行重构 
E0(i)=norm(wprcoef(wpt0[3i-1])2)*norm(wprcoef(wpt0[3i-1])2); %求每个节点能量E(i) 
end 
E0_total=sum(E0); %求小波包分解总能量E_total   
for i=1:8 
p0(i)= E0(i)/E0_total; %求归一化后小波包各频带的能量分布 
end 
%提取小波包熵 
for i=1:8 
m0(i)=-p0(i)*log(p0(i)); 
end 
S(1)=sum(m0)*(-1);

%损伤直径为0.1778mm的外圈故障
x1=X300_FE_time(1:102400);
wpt1=wpdec(x13‘db4‘); %对数据进行小波包分解 
for i=1:8 %对各层小波包分解系数进行重构 
E1(i)=norm(wprcoef(wpt1[3i-1])2)*norm(wprcoef(wpt1[3i-1])2); %求每个节点能量E(i) 
end 
E1_total=sum(E1); %求小波包分解总能量E_total   
for i=1:8 
p1(i)= E1(i)/E1_total; %求归一化后小波包各频带的能量分布  
end 
%提取小波包熵 
for i=1:8 
m1(i)=p1(i)*log2(p1(i)); 
end 
S(2)=sum(m1)*(-1); 

%损伤直径为0.3556mm的外圈故障
x2=X311_FE_time(1:102400);
wpt2=wpdec(x23‘db4‘); %对数据进行小波包分解 
for i=1:8 %对各层小波包分解系数进行重构 
E2(i)=norm(wprcoef(wpt2[3i-1])2)*norm(wprcoef(wpt2[3i-1])2); %求每个节点能量E(i) 
end 
E2_total=sum(E2); %求小波包分解总能量E_total   
for i=1:8 
p2(i)= E2(i)/E2_total; %求归一化后小波包各频带的能量分布  
end 
%提取小波包熵 
for i=1:8 
m2(i)=p2(i)*log2(p2(i)); 
end 
S(3)=sum(m2)*(-1);

%损伤直径为0.5334mm的外圈故障
x3=X317_FE_time(1:102400);
wpt3=wpdec(x33‘db4‘); %对数据进行小波包分解 
for i=1:8 %对各层小波包分解系数进行重构 
E3(i)=norm(wprcoef(wpt3[3i-1])2)*norm(wprcoef(wpt3[3i-1])2); %求每个节点能量E(i) 
end 
E3_total=sum(E3); %求小波包分解总能量E_total   
for i=1:8 
p3(i)= E3(i)/E3_total; %求归一化后小波包各频带的能量分布  
end 
%提取小波包熵 
for i=1:8 
m3(i)=p3(i)*log2(p3(i)); 
end 
S(4)=sum(m3)*(-1);
S

figure(1)
bar(p0);
%ylim([0 1.0]);
xlabel(‘提升小波包频带‘‘fontsize‘10‘Fontname‘ ‘方正宋黑简体‘);
ylabel(‘归一化能量值‘‘fontsize‘10‘Fontname‘ ‘方正宋黑简体‘);
set(gcf‘Position‘[100 100 350 300]);
figure_FontSize=10;
%set(get(gca‘XLabel‘)‘FontSize‘figure_FontSize‘Vertical‘‘top‘);
%set(get(gca‘YLabel‘)‘FontSize‘figure_FontSize‘Vertical‘‘middle‘);
set(gca‘XTickLabel‘{‘(30)‘‘(31)‘‘(32)‘‘(33)‘‘(34)‘‘(35)‘‘(36)‘‘(37)‘});
set(findobj(‘FontSize‘9)‘FontSize‘figure_FontSize);
set(findobj(get(gca‘Children‘)‘LineWidth‘0.5)‘LineWidth‘1);

figure(2)
bar(p1);
ylim([0 1.0]);
xlabel(‘小波包节点‘‘fontsize‘10.5);
ylabel(‘归一化能量值‘‘fontsize‘10.5);
set(gcf‘Position‘[100 100 400 220]);
figure_FontSize=8;
set(get(gca‘XLabel‘)‘FontSize‘figure_FontSize‘Vertical‘‘top‘);
set(get(gca‘YLabel‘)‘FontSize‘figure_FontSize‘Vertical‘‘middle‘);
set(gca‘XTickLabel‘{‘(30)‘‘(31)‘‘(32)‘‘(33)‘‘(34)‘‘(35)‘‘(36)‘‘(37)‘});
set(findobj(‘FontSize‘10.5)‘FontSize‘figure_FontSize);
set(findobj(get(gca‘Children‘)‘LineWidth‘0.5)‘LineWidth‘1);

figure(3)
bar(p2);
ylim([0 1.0]);
xlabel(‘小波包节点‘‘fontsize‘10.5);
ylabel(‘归一化能量值‘‘fontsize‘10.5);
set(gcf‘Position‘[100 100 400 220]);
figure_FontSize=8;
set(get(gca‘XLabel‘)‘FontSize‘figure_FontSize‘Vertical‘‘top‘);
set(get(gca‘YLabel‘)‘FontSize‘figure_FontSize‘Vertical

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4624  2017-03-20 18:59  waveletentropy_figure.m

评论

共有 条评论