anqikeli 发表于 2008-1-12 11:22

小数据量法的疑问

我在一个帖子上看到的说“小数据量法无法计算纯噪声的信号”那么是不是我对于一个系统不加噪声结果就不对呢?还有,在吕金虎的那本《混沌时间序列分析及其应用》的88页,他们就是先用四阶Runge-Kutta法解chen系统的方程,然后取变量x的时间序列计算,经过频谱分析得到平均周期为60.2410,lyapunov指数为2.0247。

我也按照他的方法得到时间序列,但是用fft变换得到的平均周期为555.5556,用另外一个平均周期的算法得到的又是9,我记得前几天还能算对的,得60多就差一点点,不知道的怎么回事现在怎么弄都不对,我把程序贴上来,大家帮我看看把?谢谢了

function P=ave_T(x,N)
=ode45(@chen,,);
xx1 = y1(:,1)';
delt_t1 = 0.0001;
t1 = 0:delt_t1:70;
x1 = spline(tt1, xx1, t1);
Y=fft(x);
N=length(Y);
L=round(N/2);%四舍五入取整
Y(1)=[];
power=abs(Y(1:L)).^2;%%幅度的平方为能量
nyquist=1/2;
freq=(1:L)/(L)*nyquist;
%subplot(2,1,1);plot(freq,power);
%title('freq-power gram');
period=1./freq;
%subplot(2,1,2);plot(period,power);
%title('period-power gram');
=max(power);
P=period(index);
return
这个是555.5556

function P=ave_T(x,N)
=ode45(@chen,,);
xx1 = y1(:,1)';
delt_t1 = 0.0001;
t1 = 0:delt_t1:70;
x1 = spline(tt1, xx1, t1);

xPower=abs(fft(x)).^2;
N=length(xPower);
xPower(1)=[];%去除直流分量
N=floor(N/2);
xPower=xPower(1:N);
freq=(1:N)/N*0.5;
=max(xPower);
P=index;
return
这个得到的是9

function dx=chen(t,x)
dx=zeros(3,1);
a=35;
b=3;
c=28;
dx(1)=a*(x(2)-x(1));
dx(2)=(c-a)*x(1)-x(1)*x(3)+c*x(2);
dx(3)=(x(1)*x(2))-b*x(3);
return


另外书上的时序图都画到5000了,步长是0.0001,那运行起来岂不是要很久,取点只是到60000,没得必要画那么多吧?
不知道是不是我哪里理解错了,还望大家不吝赐教!

octopussheng 发表于 2008-1-14 07:59

和你一样有同感啊,这个平均周期我也是怎么都算不到他这个值哦!

xwinder 发表于 2008-3-26 14:58

小数据量法是不能用来计算纯噪声的,因为计算过程中要找一段近似线性的部分,取其斜率作为最大L指数,纯噪声找不到这样的部分,当然程序还可以出结果,但这个结果是错误的了!

octopussheng 发表于 2008-3-26 20:00

关于这个平均周期的问题,我建议大家还要再研究研究哈!

li_feng_1984 发表于 2008-3-27 21:44

书上的意思应该是[0:0.0001:6]吧
好象不是[0:0.00001:600000]
我算楼主的程序是 平均周期得出个6
十分郁闷啊
页: [1]
查看完整版本: 小数据量法的疑问