弹弹弹 发表于 2018-1-3 13:51

[信息熵]奇异熵算出来不正确

为什么我编写的奇异熵,正弦信号算出来只有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]
查看完整版本: [信息熵]奇异熵算出来不正确