相空间重构matlab实现
相空间重构
##更新:最近重新看了这部分的内容,发现dts=max(ds)-min(ds);有误,应该是用r最大的时候的s减去最小时候的s。改为dts = ds(end)-ds(1)。以及C2应该有个m次幂。还有每次计算r应该是子序列对应的领域半径。
对于相空间重构需要确定的嵌入维数(m)和时间延迟(τττ)
使用C-C法可同时确定m和τττ,也可使用求自相关系数当ACF的值低于1−e−11-e ^{-1}1−e−1,从而确定时间延迟。然后通过G-P算法确定m。由于使用G-P算法所需时间较长。故本文直接使用C-C法确定两个参数。
时间窗口tm=(m−1)∗τt_m=(m-1)*τtm=(m−1)∗τ
本文所给的函数是自己编写的,故大家可用于参考,对于相空间理论部分,懒得编写了,直接百度即可。
确定参数tmt_mtm和τττ的主函数
clc;clear
% C-C方法的主程序
data=xlsread('all_data7.xlsx','all_data','b1:b20000');
[ACF,lags,bounds]=autocorr(data,100);
tau=59;
m=15;
[D,MEAN,STD]=zscore(data);
r1=0.5*STD;
N=length(data);
[a,b]=find(ACF<ACF(1)*(1-exp(-1)));
beifen=data;
%% 求统计量S
SS=[];
DTS=[];
COR=[];
T=[];
NN=1:6000;
for t=1:100sums=0;sumdts=0;
% if mod(N,t)~=0
% [a,b]=find(mod(NN,t)==0);
% data=beifen(1:b(end));
% endfor i=1:teval(['datat',num2str(i),'=[];'])for j=1:N/teval(['tran=data(',num2str(i),'+',num2str(t),'*(',num2str(j),'-1));'])eval(['datat',num2str(i),'=[datat',num2str(i),';tran];'])endendfor m=2:5ds=[];for k=1:4S=[];for i=1:teval(['S',num2str(i),'=[];'])eval(['datat=datat',num2str(i),';'])r=r1*k;C1=C(m,N/t,r,t,datat);%%计算关联积分C2=C(1,N/t,r,t,datat);eval(['S',num2str(i),'=[S',num2str(i),',C1-C2];'])%% 计算检验统计量eval(['S=[S;S',num2str(i),'];'])endS=sum(S)/t;ds=[ds,S];sums=sums+S;enddts=max(ds)-min(ds);%% 求ΔSsumdts=sumdts+dts;endsums=sums/16;sumdts=sumdts/4;scor=sumdts+abs(sums);T=[T;t];
% S=S/t;SS=[SS;sums];DTS=[DTS;sumdts];COR=[COR;scor];
end
% xieru=["datat1","datat2","datat3","datat4","datat5"];
% for i=1:t
% eval(['tran=datat',num2str(i),';'])
% xlswrite('xkjcg.xlsx',tran,xieru(i));
% end
tt=1:100;
plot(tt,SS,tt,DTS,tt,COR)
legend('SS','DTS','COR')
C子程序
%% 相空间重构确定嵌入维数和时间延迟
function [C]=C(m,N,r,t,data)%% 将原始数据 重构相空间
M=N-(m-1)*t;%% M为重构相空间中相点的个数
x=[];%x用于保存相空间重构的结果
for i=1:Mfor j=1:mx(i,j)=[data(i+(j-1)*t)];end
end
sumM=0;
for j=1:Mfor i=1:jdij=sum(abs(x(i,:)-x(j,:)));if (r-dij)<0th=0;elseth=1;endsumM=sumM+th;end
end
C=2*sumM/(M*(M-1));
end
相空间重构matlab实现相关推荐
- 相空间重构matlab代码
相空间重构是一种用于从时间序列中恢复系统动力学特征的方法.它可以将高维时间序列数据转换为低维表示,以便更好地理解和分析系统的行为. 以下是一些可能的 Matlab 代码来实现相空间重构: % 输入数据 ...
- 相空间重构 matlab 程序源,matlab求相空间重构延迟时间和嵌入维数
关联积分计算 function C_I=correlation_integral(X,M,r) %该函数用来计算关联积分 %C_I:关联积分的返回值 %X:重构的相空间矢量,是一个m*M的矩阵 %M: ...
- 相空间重构中延迟时间tau的选择:自相关法(matlab实现)
相空间重构技术中有两个关键参数:延迟时间tau和嵌入维数m 使用自相关法确定延迟时间tau,主要思想在于通过计算原信号的自相关函数,找到自相关函数值下降到初始值R(0)时的1-1/e倍时的延迟时间ta ...
- 基于相空间重构的混沌背景下微弱信号检测方法仿真
1.1算法参数取值对系统性能的影响 在研究算法性能之前,首先需要分析各个参数对算法整体性能的影响,本文将重点考虑相空间重构参数和m,SVM支持向量机参数C和.这里分别对四个参数进行性能影响测试,首先对 ...
- Python实现相空间重构求关联维数——GP算法、自相关法求时间延迟tau、最近邻算法求嵌入维数m
Python实现相空间重构求关联维数--GP算法.自相关法求时间延迟tau.最近邻算法求嵌入维数m GP算法: 若有一维时间序列为{x1,x2,-,xn},对其进行相空间重构得到高维相空间的一系列向量 ...
- 数字图像处理-DFTDCTWHT小波变换分解重构(Matlab)
文章目录 数字图像处理-DFT&DCT&WHT&小波变换分解重构(Matlab) 基本的matlab图像处理函数的使用 代码块 运行效果 傅里叶变换(DFT) 对图像进行傅里叶 ...
- 配电网重构matlab程序,配电网络重构matlab代码
[实例简介] 配电网络重构matlab代码 对初学者有一定用处 [实例截图] [核心代码] 配电网络重构matlab代码 └── 配电网络重构matlab代码 ├── IEEE33 │ ├── c ...
- 智能软开关 配电网重构matlab 二阶锥 以33节点为研究对象,编制配电网故障重构模型
智能软开关 配电网重构matlab 二阶锥 编程方法:matlab+yalmip(cplex为求解器) 基本内容:以33节点为研究对象,编制配电网故障重构模型,采用图论知识保证配电网的连通性和辐射性, ...
- 时间序列模型之相空间重构
一般的时间序列主要是在时间域中进行模型的研究,而对于混沌时间序列,无论是混沌不变量的计算,混沌模型的建立和预测都是在所谓的相空间中进行,因此相空间重构就是混沌时间序列处理中非常重要的一个步骤.所谓混沌 ...
最新文章
- 浅谈Transformer 及Attention网络
- Redis初学:2(Redis的启动)
- R语言ggplot2可视化彩色水平条形图并基于条形长度和数值标签长度、自定义最优化配置标签在条形内部或者条形外部
- 8月书讯:喜悦翩然而至
- LeetCode:1. Two Sum
- Canal全方位深入讲解,看这一篇就够了
- js文件里获取路由 vue_【源码拾遗】从vue-router看前端路由的两种实现
- 机器学习经典算法笔记——梯度下降算法
- 【Level 08】U08 Positive Attitude L3 What a life
- Flask-login 原理
- php精准函数,PHP常用函数大全
- 机械振动学|单自由度系统
- 常见Sql面试题及答案
- 《游戏引擎架构》信息总汇
- blockly -- 颜色(Block colour)
- nacos 未读取到合法数据,请检查导入的数据文件
- 30天自制操作系统-初体验
- 「医次元」「心际舰队」:论传销洗脑与纳粹之关联
- 巨头押注的全屋智能,正在驱动海信、华为、小米们「自我革命」
- Spring Boot JPA实体类idea自动生成 其一-https://www.jianshu.com/p/44bb7e25f5c7