warden 发表于 2012-12-3 10:29

有人用过陆振波博士求时间序列关联维数和熵的程序么?

本帖最后由 牛小贱 于 2014-3-7 20:36 编辑

RT,我最近做时间序列的分析,在网上找的陆振波博士的计算时间序列关联维数和熵的程序,对时间序列进行HHT滤波处理之后,导入陆博士的程序,有些得到的是nan和0.00000,这些说明什么情况呢?有人做过吗?求教我一下

下面的是主程序:
clc
clear all
close all
x=importdata('D:\Documents\Desktop\新的要求\10-30%-5.mat'); % 时间序列(列向量)
x=x';
%--------------------------------------------------------------------------
% G-P算法计算关联维
k=length(x);
rr = 0.5;
Log2R = -6:rr:0;      % log2(r)
R = 2.^(Log2R);
fs =100;               % 信号采样频率
t = 10;               % 时延
dd = 4;               % 嵌入维间隔
D = 4:dd:72;            % 嵌入维   
p = 50;               % 限制短暂分离,大于序列平均周期(不考虑该因素时 p = 1)

tic
Log2Cr = log2(CorrelationIntegral(x,t,D,R,p));   % 输出每一行对应一个嵌入维
toc
%--------------------------------------------------------------------------
% 结果作图
figure
plot(Log2R,Log2Cr','k.-'); axis tight; hold on; grid on;
xlabel('log2(r)');
ylabel('log2(C(r))');
title(['signal, length = ',num2str(k)]);
%--------------------------------------------------------------------------
% 最小二乘拟合
Linear = ;                            % 线性似合区域
= LM2(Log2R,Log2Cr,Linear);         % 最小二乘求斜率和截距

disp(sprintf('Correlation Dimension = %.4f',a));
for i = 1:length(D)
    Y = polyval(,Log2R(Linear),1);
    plot(Log2R(Linear),Y,'r');
end
hold off;
%--------------------------------------------------------------------------
% 求梯度

Slope = diff(Log2Cr,1,2)/rr;                % 求梯度
xSlope = Log2R(1:end-1);                  % 梯度所对应的log2(r)

figure;
plot(xSlope,Slope','k.-'); axis tight; grid on;
xlabel('log2(r)');
ylabel('Slope');
title(['signal, length = ',num2str(k)]);

%--------------------------------------------------------------------------
% 差分求K熵

KE = -diff(B)/(dd*t)*fs*log(2);             % 用采样频率 fs 和公式 log(x) = log2(x)*log(2) 将单位转化成 nats/s
D_KE = D(1:end-1);                        % K熵所对应的嵌入维

figure;
plot(D_KE,KE,'k.-'); grid on; hold on;
xlabel('m');
ylabel('Kolmogorov Entropy (nats/s)');
title(['signal, length = ',num2str(k)]);

%--------------------------------------------------------------------------
% 输出显示

disp(sprintf('Kolmogorov Entropy = %.4f',min(KE)));处理一组数据后得到的图形如下:


happy 发表于 2012-12-3 14:53

本帖最后由 happy 于 2012-12-3 14:56 编辑

没有数据,没有代码,没有说明输出是什么,这个问题无从回答
建议看看http://forum.vibunion.com/thread-36219-1-1.html
把问题说明清楚

章紫风 发表于 2012-12-3 18:54

我试过之后感觉出来的Kolmogorov Entropy图不对,结果并不收敛!!!{:{19}:}

happy 发表于 2012-12-4 09:40

章紫风 发表于 2012-12-3 18:54 static/image/common/back.gif
我试过之后感觉出来的Kolmogorov Entropy图不对,结果并不收敛!!!

你的时间序列是仿真结果还是实验结果?

章紫风 发表于 2012-12-5 20:51

happy 发表于 2012-12-4 09:40 static/image/common/back.gif
你的时间序列是仿真结果还是实验结果?

仿真结果,就是Lorenz模型,Kolmogorov Entropy随着m值变化,结果不收敛,图像是先下降然后居然又上升。还有那个程序有使用次数限制吗?

happy 发表于 2012-12-6 10:58

章紫风 发表于 2012-12-5 20:51 static/image/common/back.gif
仿真结果,就是Lorenz模型,Kolmogorov Entropy随着m值变化,结果不收敛,图像是先下降然后居然又上升。还 ...

1. 检查一下仿真得到的时间序列是否已经提出了瞬态响应数据
2. 没听说过他的工具包有这方面的限制

章紫风 发表于 2012-12-6 18:32

happy 发表于 2012-12-6 10:58 static/image/common/back.gif
1. 检查一下仿真得到的时间序列是否已经提出了瞬态响应数据
2. 没听说过他的工具包有这方面的限制

非常感谢,我的问题差不多解决了!!!

happy 发表于 2012-12-11 11:22

章紫风 发表于 2012-12-6 18:32 static/image/common/back.gif
非常感谢,我的问题差不多解决了!!!

建议解决问题后把相关的情况和大家分享一下

warden 发表于 2012-12-27 15:22

章紫风 发表于 2012-12-6 18:32 static/image/common/back.gif
非常感谢,我的问题差不多解决了!!!

同求解决,不知道能否交流一下?

高永强 发表于 2013-5-5 22:22

我想请问相关的问题

200810100659 发表于 2014-2-21 19:50

牛小贱 发表于 2014-2-21 20:20

章紫风 发表于 2012-12-6 18:32
非常感谢,我的问题差不多解决了!!!
希望你分享一下你的经验,方便大家学习!谢了{:{04}:}

liuxiaoxu2011 发表于 2014-5-12 15:31

你好,我是中国矿业大学的研究生,我在网上看到你发的一篇帖子,我对里面的内容很感兴趣。不知道你现在还有没有涉及柯尔莫戈洛夫熵值的领域。我想和你就我们共同感兴趣的地方交流一下。我的QQ是652247469.如果你方便的话请加我QQ好友。谢谢!

沐雨柠檬 发表于 2014-6-3 09:52

31行程序的LM2是什么?子函数么?matlab没这个命令。如果是子函数,那是求什么的?子函数具体什么样?求解答!
页: [1]
查看完整版本: 有人用过陆振波博士求时间序列关联维数和熵的程序么?