[信息熵]奇异熵算出来不正确
为什么我编写的奇异熵,正弦信号算出来只有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);
=svd(B); %算奇异分解
s=svd(B); %返回s
Sum=sum(sum(s)); %算s奇异值的和
=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
页:
[1]