使用Cao法选择维度m,首先需要确定延迟时间tau

function [m]=Cao(data,tau)
%data为原始数据
%tau为由自相关函数法求出的最佳延迟
%m为由Cao法求出的最佳维度n=length(data);     %n为原始数据的长度
x=reshape(data,n,1);     %将原始数据data赋给x,转成列向量
m_max=10;       %给定维度最大值为m_max%构造变量E
E=zeros(1,m_max-2+1);       %对应每个维度m,都有一个Efor m=2:1:m_max        %给定维度m最大值为m_maxi_max=n-(m-1)*tau;      %i_max在m维空间中使用i_max_h=n-m*tau;        %i_max_h在m+1维空间中使用%构造向量子空间y=zeros(m,i_max);       %y用来存放m维重构向量,共i_max个y_h=zeros(m+1,i_max_h);     %y_h用来存放m+1维重构向量,共i_max_h个%构造m维空间for i=1:1:i_maxy(:,i)=x(i:tau:i+(m-1)*tau);end%构造m+1维空间for i=1:1:i_max_hy_h(:,i)=x(i:tau:i+m*tau);end%计算各向量在最大模范数下的最邻近向量d=inf(1,i_max_h);       %d用于存放m维空间中各向量与最邻近向量的最大模范数,赋无限大,方便迭代d_h=inf(1,i_max_h);       %d_h用于存放m+1维空间中各向量与最邻近向量的最大模范数temp_d=0;     %temp_d用于暂存m维空间中最大模范数的值temp_d_h=0;      %temp_d_h用于暂存m+1维空间中最大模范数的值for i=1:1:i_max_h       %计算m维空间中每个向量与最邻近向量的最大模范数for j=1:1:i_max_hif j==i      %当j=i的时候,跳过本次计算continueelsetemp_d=norm(y(:,i)-y(:,j),inf);       %计算两个向量之间的最大模范数temp_d_h=norm(y_h(:,i)-y_h(:,j),inf);if temp_d<=d(1,i)d(1,i)=temp_d;        %迭代找到每个向量与最邻近向量的最大模范数(所有最大模范数中最小的一个)endif temp_d_h<=d_h(1,i)d_h(1,i)=temp_d_h;endend   endend%构造变量aa=zeros(1,i_max_h);       %a用来存放最大模范数的商d=d+eps;        %加一个小量,避免分母为零for i=1:1:i_max_ha(1,i)=d_h(1,i)/d(1,i);endE(1,m-1)=sum(a)/(n-m*tau);end%构造变量E1
E1=zeros(1,length(E)-1);
for i=1:1:(m_max-2)E1(i)=E(i+1)/E(i);
end%根据E1的变换确定维度m,找到E1变化平缓时的m
for i=1:1:length(E1)if E1(i)>0.9 && E1(i)<1.1m=i+2;      %E中的元素位置对应维度m的大小+1break      end
endfigure(1);
plot(E);end

相空间重构维度m的选择:Cao法(matlab实现)相关推荐

  1. 相空间重构中延迟时间tau的选择:自相关法(matlab实现)

    相空间重构技术中有两个关键参数:延迟时间tau和嵌入维数m 使用自相关法确定延迟时间tau,主要思想在于通过计算原信号的自相关函数,找到自相关函数值下降到初始值R(0)时的1-1/e倍时的延迟时间ta ...

  2. 时间序列模型之相空间重构

    一般的时间序列主要是在时间域中进行模型的研究,而对于混沌时间序列,无论是混沌不变量的计算,混沌模型的建立和预测都是在所谓的相空间中进行,因此相空间重构就是混沌时间序列处理中非常重要的一个步骤.所谓混沌 ...

  3. R语言实现相空间重构的参数选取

    前言 最近写论文用到了相空间重构(PSR)技术,该方法简单来说就是将一个一维的时间序列通过重构的方法映射为一个矩阵,且该矩阵保留了原始时间序列的特征. 进行PSR的关键是确定两个参数:延迟时间和嵌入维 ...

  4. 相空间重构matlab代码

    相空间重构是一种用于从时间序列中恢复系统动力学特征的方法.它可以将高维时间序列数据转换为低维表示,以便更好地理解和分析系统的行为. 以下是一些可能的 Matlab 代码来实现相空间重构: % 输入数据 ...

  5. 【转】CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法

    转自:​​​​​​CT图像重构方法详解--傅里叶逆变换法.直接反投影法.滤波反投影法_Absolute Zero-CSDN博客_反投影法 绪 在做CT图像处理的时候遇到很多问题,对于滤波反变换有许多细 ...

  6. CT图像重构方法详解——傅里叶逆变换法、直接反投影法、滤波反投影法

    绪 在做CT图像处理的时候遇到很多问题,对于滤波反变换有许多细节存在疑问,经过多天查找资料和利用MATLAB程序一步步实现后终于豁然开朗,于是想要总结成文,作为笔记方便今后查看.文中若有错误欢迎指出! ...

  7. 相空间重构matlab实现

    相空间重构 ##更新:最近重新看了这部分的内容,发现dts=max(ds)-min(ds);有误,应该是用r最大的时候的s减去最小时候的s.改为dts = ds(end)-ds(1).以及C2应该有个 ...

  8. 混沌相空间重构中求时延和嵌入维的matlab代码

    这个函数是用互信息法求时延的,好像是找到第一个极小值就是最佳时延 function [mi] = VectorMI(data,delta_t1,N) % 该函数用来计算一个向量之间的互信息随时延的变化 ...

  9. 相空间重构与几个常用非线性模型实现

    本文主要介绍了Lorenz模型.Rossler模型.Logistic映射以及其代码实现 1.Lorenz模型 %sy.m t = -10*pi:pi/250:10*pi; comet3((cos(2* ...

最新文章

  1. TRUNK配置详细讲解
  2. 11月29号例会记录
  3. std string与线程安全_这才是现代C++单例模式简单又安全的实现
  4. 美团搜索中NER技术的探索与实践
  5. 解决Windows 10 CPU占用高风扇吵问题
  6. 课时105.边框属性下(掌握)
  7. 华硕主板无盘启动bios设置_legacy和UEFI启动是什么?电脑BIOS设置开启进入UEFI启动方法...
  8. 1z0_031 视频课程随记
  9. php如何以post形式发送xm并返回xmll数据
  10. 把块存放在页高速缓存中
  11. 安卓手表ADB实用工具箱
  12. zen brush 2 android,Zen Brush 2 才不仅仅是个练字 App 那么简单
  13. 【天线】【2】一些名词和简单概念的解释,仍然
  14. 你有必要不沾计算机一段时间英语,2016新目标八年级英语下全册重点总结.docx
  15. element的上传如何获取路径_element中文件上传
  16. FCP-报表交付工程师考试经验
  17. 设计图标(logo)
  18. springboot-vue前后端分离登录
  19. swift学习笔记_iOS开发(一)
  20. 周庄王,姬佗(公元前696年—公元前682年在位)

热门文章

  1. 电商会员管理系统_vip会员外贸电商模式的实质?
  2. 服务器芯片工艺,英特尔10nm工艺Ice Lake-SP服务器芯片最高达38核
  3. 【dede】安装完CMS源码后,会发现访问网站首页是报错 /templets/default/index.htm Not Found!
  4. 代码片段 - 怎样获取jqGrid的各种参数? jqGrid刷新当前列表页代码
  5. 15. Eul的神圣法杖
  6. 【Tushare金融数据实战】北向资金因子计算—指数衰减法
  7. Iroha and Haiku I
  8. 如何使用 Python 爬取微信公众号文章
  9. element ui的table相关样式修改(待补充)
  10. klt跟踪源码 matlab,Kanade-Lucas-Tomasi(KLT)进行目标跟踪