資源簡介
對滾動軸承振動信號提取小波包熵并對各個頻帶上的小波包熵值進行作圖,代碼中有注釋,比較簡單,只要對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
評論
共有 條評論