资源简介
对滚动轴承振动信号提取小波包熵并对各个频带上的小波包熵值进行作图,代码中有注释,比较简单,只要对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
相关资源
- matlab人脸识别和特征提取
- 高光谱图像pca分析特征提取
- 竞争性自适应重加权
- LBP四种特征提取算法
- EEMD集成经验模态分解matlab程序.rar
- MATLAB 灰度共生矩阵特征提取
- matlab纹理特征提取源代码
- 轴承故障诊断matlab代码四种方法
- MATLAB 特征提取
- 激光雷达采集数据的特征提取
- Gabor滤波后的GIST特征提取matlab代码
- 基于小波包能量分析的轴承故障诊断
- 基于Matlab的指纹图像特征提取
- matlab指纹匹配
- 流形学习——轴承振动数据和Matlab处
- 凯斯西储大学轴承实验数据
- Matlab特征提取代码
- 图像处理-边缘检测和特征提取MATLAB源
- 利用MATLAB进行音频特征提取
- 西储大学轴承故障分析matlab代码
- 小波包能量分析的轴承故障诊断 mat
- 图像特征提取源码
- matlab sift特征提取
- 凯斯西储大学轴承故障实验数据
- LK光流法运动目标特征提取
- 基于matlab下的KL变换
- 西储大学轴承数据及EMD代码
- 用MATLAB实现卷积神经网络CNN,并对图
- matlab常用纹理特征提取方法GLCM,GLD
- 特征提取与图像处理 第二版 高清扫描
评论
共有 条评论