|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
我在一个帖子上看到的说“小数据量法无法计算纯噪声的信号”那么是不是我对于一个系统不加噪声结果就不对呢?还有,在吕金虎的那本《混沌时间序列分析及其应用》的88页,他们就是先用四阶Runge-Kutta法解chen系统的方程,然后取变量x的时间序列计算,经过频谱分析得到平均周期为60.2410,lyapunov指数为2.0247。
我也按照他的方法得到时间序列,但是用fft变换得到的平均周期为555.5556,用另外一个平均周期的算法得到的又是9,我记得前几天还能算对的,得60多就差一点点,不知道的怎么回事现在怎么弄都不对,我把程序贴上来,大家帮我看看把?谢谢了
function P=ave_T(x,N)
[tt1,y1]=ode45(@chen,[0,500],[0,1,0]);
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');
[mp,index]=max(power);
P=period(index);
return
这个是555.5556
function P=ave_T(x,N)
[tt1,y1]=ode45(@chen,[0,500],[0,1,0]);
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;
[mP,index]=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,没得必要画那么多吧?
不知道是不是我哪里理解错了,还望大家不吝赐教! |
|