求小波熵遇到问题,求教大侠
本帖最后由 牛小贱 于 2015-3-16 15:41 编辑本人分析一段数据的小波尺度熵,算法如下
clc;
clear all;
load 'f320010110yeweibodon.txt';
%t1=f420001102yeweibodon(:,1);
y1=f320010110yeweibodon(:,1);
%fs=1250;
t1=2:2:954;
figure(1);
subplot(211);
plot(t1,y1);
%axis();
%set(gca, 'Fontname', 'Times newman', 'Fontsize', 12)
%xlabel('Time(s)');ylabel('Friction force(kN)');
wavename='shan2-2';
%totalscal=512; %尺度序列的长度,即scal的长度
%wcf=centfrq(wavename); %小波的中心频率
%cparam=2*wcf*totalscal; %为得到合适的尺度所求出的参数
%a=totalscal:-1:1;
%Scales=cparam./a; %得到各个尺度,以使转换得到频率序列为等差序列
Scales=512
%%%%%%%%%%%%%计算小波熵%%%%%%%%%%%%%%%%%
WT=cwt(y1,Scales,wavename); %对数据进行连续小波变换
n=length(Scales);
h=length(y1);
for i=1:h
E(i)=0;
for j=1:n;
E(i)=E(i)+abs(WT(j,i))^2;
end
%求第i个节点的范数平方,其实也就是平方和
end
E_total=sum(E);%求总能量
for i=1:h;
for j=1:n;
p(j,i)=abs(WT(j,i))^2/E_total
end
s(j)=-(p(j,i)*log(p(j,i)));
H(i)=sum(s)
end
%以下计算小波熵,即-sum(pj*lnpj),
%disp('小波熵的值S_wt');
%S_wt=sum(m);
%S_wt
%disp(m)
subplot(212)
plot(t1,H)
%m(i);
%axis();
xlabel('Time(s)');ylabel('Wavelet Entropy');不知道为什么绘出的小波熵图都是成U形,数据不同,小波熵曲线一样,是不是哪里算法错了,求大侠指教
楼主,怎么样啦??? 我用的你的方法,做的小波熵曲线几乎一样 周文静 发表于 2014-11-25 10:33
我用的你的方法,做的小波熵曲线几乎一样
对计算机语言不感冒,算法估计编的有问题吧,搞不定,求毕业 算法修改好了没奥???哎我也在用这个shannon小波熵谢谢 韵天之色 发表于 2015-3-16 12:37
算法修改好了没奥???哎我也在用这个shannon小波熵谢谢
一直有问题 粤语残片 发表于 2015-3-18 10:34
一直有问题
小波熵 小波包熵 这些只要按照 参考文献码代码就行了。
有那么复杂吗,你应该把你参考的算法公式贴出来,然后帮你看看是不是哪个地方编错了 另外 都用离散小波熵 为什么要用连续小波熵 sunyuxinhe 发表于 2015-3-21 14:41
另外 都用离散小波熵 为什么要用连续小波熵
首先很感谢你啦,目前没有发现用小波分析连铸信号的报道,自己之前尝试过用离散小波,效果不直观,一般看到都是用离散小波分析轴承什么的旋转部件异常信号,连铸信号形式不太一样吧,用连续小波然后提取1~16尺度下的小波变换系数作熵统计的,效果还不错,至于算法,就是信号每个节点多尺度小波变换系数求一次熵,列出每个节点的熵值,比较基础的分析{:3_49:} 粤语残片 发表于 2015-3-27 20:11
首先很感谢你啦,目前没有发现用小波分析连铸信号的报道,自己之前尝试过用离散小波,效果不直观,一般看 ...
连续和离散其实一个道理,就是离散实时性更好点 {:4_63:} 好好啊真不错啊不错不错 {:{39}:} 最后改成了什么样子?求楼主交流!
页:
[1]