马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 牛小贱 于 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([10 25,-50 50]);
- %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([10 25,0 0.001]);
- xlabel('Time(s)');ylabel('Wavelet Entropy');
复制代码 不知道为什么绘出的小波熵图都是成U形,数据不同,小波熵曲线一样,是不是哪里算法错了,求大侠指教
|