马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
为什么我编写的奇异熵,正弦信号算出来只有0.6....
- clc;
- clear all;
- %load('Basic.mat');
- fs=100;N=1024; %采样频率和数据点数
- A=20;Bi=30;C=0.38;
- n=0:N-1;t=n/fs; %时间序列
- Basic=A*sin(2*pi*Bi*t+C); %信号
- n=size(Basic,2);
- m=500;
- Ba=Basic;
- for i=1:m
- C=Basic(:,i:i+n-m);
- c=C';
- B(:,i)=c(:,1);
- end
- B_rank=rank(B);
- [U,S,V]=svd(B); %算奇异分解
- s=svd(B); %返回s
- Sum=sum(sum(s)); %算s奇异值的和
- [N,M]=size(B); %获取奇异值个数
- if N>M
- m=M;
- else
- m=N;
- end
- Hs=0;
- for i=1:m %算法主体
- Pi=s(i,1)/Sum
- Hs=Hs-(Pi*log(Pi));
- end
复制代码
|