⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g_p_mainmm.m

📁 用于计算G-P关联维;和一些相关参数。并能确定最佳的嵌入维数;不是很成熟;希望各位指正;
💻 M
字号:
%^^^^^^^^^^^^^^^^^^G--P法求时间序列的最佳嵌入维数主函数^^^^^^^^^^^^^^^^^^^^^
clear all;
clc;
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
r0=5e-2;            % attentian 
rn=1;

nn=100;            %控制轨道的变化步长0-10,200
hr=(rn-r0)/nn;
r=r0:hr:(rn-hr);  

tic
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
load('D:\researchdata\S.mat');
h=1*1e-12;

xn=S(1,50001:55000);
maxS=max(xn);
xn=xn./maxS;
% xxn=xn(50001:55000);
N=length(xn);
St=1/h;
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
%^^^^^^^^^^^^^^^^^^^^时间序列的功率谱分析^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Y=fft(xn);
Nn=length(Y);
L=round(Nn/2);
Y(1)=[];
power=abs(Y(1:L)).^2;
nyquist=1/2;
freq=nyquist*(1:L)/L*St;
period=1./freq;
[mp,index]=max(power);
avrpa=period(index)/h;    %关于轨道的平均周期不是时间
avrpa=round(avrpa)
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
J=jjautoc2(xn);                       %时序最佳时延,调用函数获得
J
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
m0=2; mn=15;            %^^^^^^^^^^^最大嵌如维数^^^^^^^^^^^^^^^^^^^^^^^^^^
mm=mn-m0+1;
rrr=zeros(mm,nn);
dm=zeros(1,mm);
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
for m=m0:mn
    m
    %^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    M=N-(m-1)*J;
    xnxn=zeros(M,m);
    for i=1:M
        j=1:m;
        xnxn(i,:)=xn(i+(j-1)*J);
    end
    %^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    distance=zeros(M,M);   
    for i=1:M
        for j=1:M
            distance(i,j)=norm((xnxn(i,:)-xnxn(j,:)),2);
        end
    end
    %^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    distance2=zeros(M,M);
    ooo=zeros(M,M);
    for ij=1:nn
        distance2=r(1,ij)-distance;
        ooo=distance2>=0;
        rrr(m-m0+1,ij)=sum(sum(ooo))/(M*M);
    end
    clear distance distance2 xnxn
    %^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
end              
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
r=log(r);
rrr=log(rrr);

figure(3);
for m=1:(mn-m0+1)
    plot(r,rrr(m,:));hold on;
end
hold off;
xlabel('lnr');ylabel('lnrrr');
%^^^^注意:不同的潜入为数时,拟合的范围不同,要根据图形3的结果确定^^^^^^^^^^^^
for i=1:mm
    [hk,hj1]=min(abs(rrr(i,:)-(-3.5)));    % attentian  below limit
    [hk,hj2]=min(abs(rrr(i,:)-(-1.5)));    % attentian  up limit
    p1=polyfit(r(hj1:hj2),rrr(i,hj1:hj2),1);
    dm(i)=p1(1);
end
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
figure(4);
mx=m0:mn;
plot(mx,dm);xlabel('m');ylabel('dm');
dm
toc

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -