疑问
当我计算上面附件中的数据500:1500的平均周期时p=5.3767,但在图1中,数据是明显分为两层的
是不是因为受噪声影响?
回复 #16 chenwenjuan86 的帖子
C-C方法只能得到最佳延迟时间,嵌入维数需要用G-P算法算出关联维d,然后利用嵌入维数m>2d+1的关系来确定,而且陆振波在他的论文里指出:小数据量法对延迟时间和嵌入维数的选取并不敏感至于平均周期,他认为——在原混沌序列平均周期无法确定的情况下,可以不考虑限制短暂分离,即设定p=1,也可以得到较好的结果!
我建议你可以安装这些设置,算下试试!有结果了贴出来再讨论讨论! 还有一点,小数据量法无法计算纯噪声的信号,如果你的序列噪声信号太强的话肯定是不适用了!需要注意注意! 原帖由 octopussheng 于 2007-7-27 08:44 发表 http://www.chinavib.com/forum/images/common/back.gif
还有一点,小数据量法无法计算纯噪声的信号,如果你的序列噪声信号太强的话肯定是不适用了!需要注意注意!
小数据量法对延迟时间和嵌入维数的选取并不敏感
这个怎么理解,我在实际计算中受嵌入维数影响很大啊 这个是陆振波论文里面以Logistic映射和Lorenz系统为例证明的,我现在还没有用我的系统去证明,呵呵,实际上我认为他的意思应该表述如下:
嵌入维数的选取有GP方法和FNN(假最邻近方法)等,通过这写(些)方法计算出的嵌入维数肯定是有一定的差别的,但是这种差别对最大LE的影响是有限的
决不是说小数据量方法对任意选取的嵌入维数不敏感。
关键还在于嵌入维数也不是我们自己任选的,也是要通过算法来计算的!
[ 本帖最后由 无水1324 于 2007-7-27 09:19 编辑 ]
回复 #17 octopussheng 的帖子
但是在我用G-P算法计算关联维时,出现了一个问题,当m增加到10以后,关联积分等于0,请问为什么会出现这种情况?另外,用G-P算法和小数据量方法计算时,都存在一个判定线性区域的问题,这样得到的结果是否很容易受到主观的影响? 关联维随嵌入维数的增加应该趋于一个问题的值,否则的话这个序列就是随机的
回复 #22 无水1324 的帖子
但关联积分为什么会等于零呢?回复 #21 chenwenjuan86 的帖子
不知道吕金虎的那本《混沌时间序列分析及其应用》你看过没有首先,用GP方法计算关联维数的时候,并不用计算关联积分,它通过d(m)=lnC(r)/lnr,C(r)为关联函数,而非你上面写的关联积分,由拟合求得对应于预先定义的较小的m0的关联维数预计值d(m0)
然后,增加嵌入维数m1>m0,重复计算d(m),直到d(m)不再随着m的增加而在一定误差范围内不变为止。
建议你检查一下你的程序或者方法,看看是否有问题!
第二个问题——在陆振波文章中指出,曲线y(i)~i最终达到饱和之前,曲线y(i)-y(i-1)~i随着i的变化相对较小的区域即是理想的线性区域,其线性区域的下界为(m-1)t+1,t为时间延迟,
这方面的我没有做过,你可以参考一下这篇文章:
陆振波——关于小数据量法计算最大Lyapunov指数的讨论
回复 #24 octopussheng 的帖子
不好意思,刚才打错了,是计算出的关联函数在m>10后为0程序如下:
function D=GP_Algorithm(data,tau,max_m)
% GP算法求关联维和嵌入维
%clc
%---------------------------------------------------
x=data;
X = normalize_1(x);
%---------------------------------------------------'
disp('----- GP算法求关联维和嵌入维 -----');
% t = 1;
m_vector = 1:max_m;
r_vector = exp(-5:0.25:1);
num_m = length(m_vector);
num_r = length(r_vector);
ln_Cr = zeros(num_m,num_r);
%------------------------------------------------------
% tic
type_norm = 2; % 使用范数类型 (缺省值为2)
% type_norm = 0,1,2时,分别对应无穷范数、1范数和2范数
block = 1; % 分块计计算关联积分 - 分块数 (缺省值为1)
% t越大速度越快,但有误差
for i = 1:num_m
i
for j = 1:num_r
% 计算关联积分S(m,N,r,t), 参见 <<混沌时间序列分析及应用>> P35 式(2.29)
m = m_vector(i);
r = r_vector(j);
%ln_Cr(i,j) = log(CorrelationIntegral(m,X,r,t)); % 缺省用法
ln_Cr(i,j) = log(CorrelationIntegral(m,X,r,tau,type_norm,block));
end
end
% t = toc
subplot(211)
ln_r = log(r_vector);
plot(ln_r,ln_Cr','+:');grid;
xlabel('ln(r)'); ylabel('ln(C(r))');
title(['norm = ',num2str(type_norm),', block = ',num2str(block),', t = ',num2str(tau)]);
legend('m=2','m=3','m=4','m=5',4)
subplot(212)
%------------------------------------------------------
% 拟合线性区域
for i=1:num_m
A=find(ln_Cr(i,:)~=-inf);
t=A(1);
LinearZone = ;
F = polyfit(ln_r(LinearZone),ln_Cr(i,LinearZone),1);
D(i) = F(1);
end
plot(D,'+:'); grid; 原帖由 chenwenjuan86 于 2007-7-27 09:30 发表 http://www.chinavib.com/forum/images/common/back.gif
但关联积分为什么会等于零呢?
没有遇到过,这个只能在理论上出现吧 原帖由 无水1324 于 2007-7-27 10:08 发表 http://www.chinavib.com/forum/images/common/back.gif
没有遇到过,这个只能在理论上出现吧
我用的数据是15#中的 1600:4000。
用G-P算法运算,当m>10,关联函数就为0
理论上什么时候会出现这种情况呢? 呵呵,这个就不知道了,没有遇到这种情况! 再请问一下,使用tstool读取mat格式的数据时,会出现一个对话框,enter variable to load,应该在对话框中输入什么呢? 没有用过你说的这个tstool,呵呵,不好意思帮不上忙!