这个函数是用互信息法求时延的,好像是找到第一个极小值就是最佳时延

function [mi] = VectorMI(data,delta_t1,N)
% 该函数用来计算一个向量之间的互信息随时延的变化
% delta_t1是计算互信息的最大时延
% N是参与计算的点数for j=1:delta_t1u1=data(1:N);u2=data(1+j:N+j);wind_size=floor(power(length(u1),1/3)+0.5);%floor向负无穷取整,power幂运算x = [u1, u2];n = wind_size;[xrow, xcol] = size(x);bin = zeros(xrow,xcol);pmf = zeros(n, 2);for i = 1:2minx = min(x(:,i));maxx = max(x(:,i));binwidth = (maxx - minx) / n;edges = minx + binwidth*(0:n);histcEdges = [-Inf edges(2:end-1) Inf];[occur,bin(:,i)] = histc(x(:,i),histcEdges,1);pmf(:,i) = occur(1:n)./xrow;end% Calculate the joint probability density of u1 and u2jointOccur = accumarray(bin,1,[n,n]);%(xi?yi) The number of two data falling into the n * n aliquot is the joint probability densityjointPmf = jointOccur./xrow;Hx = -(pmf(:,1))'*log2(pmf(:,1)+eps);Hy = -(pmf(:,2))'*log2(pmf(:,2)+eps);Hxy = -(jointPmf(:))'*log2(jointPmf(:)+eps);MI = Hx+Hy-Hxy;mi(j) = MI/sqrt(Hx*Hy);
end

这个函数用cao法来求最佳嵌入维,网上找来自己修改的,反正是能用,原理还挺复杂。

function cao_m(data,min_m,max_m,tau)
% 该程序计算时间序列的嵌入维数
% data为原始数据,是列向量
% min_m,max_m分别为最小和最大嵌入维数
% tau为时间延迟
% 计算值会稳定在某个值附近,开始稳定的位置就是嵌入维数N=length(data);
k=1;for m=min_m:max_mY=phasespace(data,m,tau);%相重构Y=Y';[m,M]=size(Y);for i=1:N-m*tau%-----计算第i个向量与每个向量的距离存于d(j)中--------for j=1:N-m*taud(j)=norm(Y(:,i)-Y(:,j),inf);end%-----求距离最短向量的下标-----------temp=sort(d);D(i,1)=i;      %D的第一列为向量序号temp1=find(temp>0);temp2=find(d==temp(temp1(1)));D(i,2)=temp2(1);  %第二列为与之对应的最短距离向量的序号D(i,3)=temp(temp1(1));%第三列为与之对应的最短距离%-----------计算a(i,m)-----------------------Y1=[Y(:,i);data(m*tau+i)];Y2=[Y(:,D(i,2));data(D(i,2)+m*tau)];ad(i)=norm(Y1-Y2,inf)/D(i,3);clear d Y1 Y2 temp temp1 temp2end%---------------求E(d)-----------------E(k,1)=m;E(k,2)=sum(ad)/(N-m*tau);%---------------求E*(d)-----------------En(k,1)=m;En1(k,1)=m;for kk=1:N-m*taudd(kk)=abs(data(D(kk,1)+m*tau)-data(D(kk,2)+m*tau));%dd1(kk)=abs(data(D(kk,1)+1)-data(D(kk,2)+1));endEn(k,2)=sum(dd)/(N-m*tau);k=k+1;clear D
end%-----------求E1(d)-------------------
for i=1:(max_m-min_m)E1(i,1)=E(i,1);E1(i,2)=E(i+1,2)/E(i,2);
end
%-----------求E2(d)-------------------
for i=1:(max_m-min_m)E2(i,1)=En(i,1);E2(i,2)=En(i+1,2)/En(i,2);
end
%-----------画图------------------------
figure(1)
plot(E1(:,1),E1(:,2),'-bs',E2(:,1),E2(:,2),'-r*');xlabel('维数');ylabel('E1(d)&E2(d)');
grid on

混沌相空间重构中求时延和嵌入维的matlab代码相关推荐

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

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

  2. 【优化求解】基于精英反向学习带扰动因子的混沌蚁狮算法(EOPCALO)求解单目标优化问题附matlab代码

    1 简介 针对蚁狮算法易陷入局部最优.收敛速度慢的缺点,本文提出了基于精英反向学习带扰动因子的混沌蚁狮算法.该算法首先通过对蚂蚁的随机游走公式引入扰动因子,有效提高了寻优精度,避免算法陷入局部最优,有 ...

  3. matlab中for循环设置二维数组,MATLAB中定义赋值一个二维数组

    MATLAB中定义赋值一个二维数组 答: 分号:; 因特网能提供的最基本服务 答:E-mail, WWW, FTP 劳动合同中,用人单位给予劳动者低于当地工资最低水平的违反了()合法原则 答:内容合法 ...

  4. c++中求前n项和(这代码不得不让我佩服)

      今天在牛客网上刷题,遇到了这道题,最后我看到一位大佬的代码让我感觉的还差很多!!! 题目   求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等 ...

  5. matlab中求x的y次幂,Matlab求关于x,y的三元函数的幂的拟合

    已知两列数据,求关于两列数据的关于公式y=a*b^-x-c的三元函数的幂的拟合,谢谢! x=[4.48387096774194;4.56451612903226;4.64516129032258;4. ...

  6. matlab中求分段函数的分段点,matlab求解分段函数问题是如何用下面的算法求解下面的分段函数 爱问知识人...

    问题是如何用下面的算法求解下面的分段函数,目前出现的问题是:??? Error using ==> at 11Function 'gt' is not implemented for MuPAD ...

  7. 【路径规划】基于FLOYD算法实现邮政运输网络中的邮路规划和邮车调度matlab代码

    1 简介 邮政运输网络是邮政企业运营的重要保障,而邮路规划和邮车调度设计是决定邮政运输网络效率的关键因素,问题1的邮路规划问题归结为带返程货的车辆路由问题,该问题是NP-难的,采用改进蚁群算法,通过对 ...

  8. matlab中rowset什么意思,没什么用的matlab代码1

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 四数相加 function answer=foursum_18_1(nums,target) combination = nchoosek(nums,4) ...

  9. matlab 图形对称,求任意轴对称图形的核心的Matlab代码实现

    # 背景 #### 材料力学老师给布置了一个很坑的求核心的问题,花了我一个多小时才做出来......于是有了编程解决此类问题的想法. ---------- # 说明 #### 由于还没有开发完全,本程 ...

最新文章

  1. webpack源码之tapable
  2. asp vb 插入,更新,删除数据库操作。
  3. 2021-07-29 labelme注释、分类和Json文件转化(转化成彩图mask)
  4. AI公共政策成全球热点,美国ITI发布《人工智能政策原则》|AI观察
  5. 小而美的个人博客——前端——tags
  6. 解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错
  7. python求数字平均值_python 求10个数的平均数实例
  8. ann人工神经网络_深度学习-人工神经网络(ANN)
  9. 不能错过!简单易懂的哈希表总结
  10. linux 路由表及路由设置
  11. python 类继承 baseclass_Python:Dataclass继承自base Dataclass,如何将值从base升级到新类?...
  12. html 屏幕录像,绝对是最简单的屏幕录像方法!无需安装软件
  13. Hibernate基本(笔记)
  14. 解决服务器内存被pc微信占满,微信占内存的解决方案终于出现了
  15. 全球及中国仿制药产业未来发展走势及营销产量规模预测报告2021-2027年
  16. c语言注释用法,C语言的注释
  17. AngularJS笔记
  18. vue表单校验,根据某选项追加或去掉校验
  19. java rsa 文件加密解密_RSA 加密、解密(自己生成加密解密文件)
  20. Dazdata BI之PDF魔幻输出

热门文章

  1. 常用的seo工具有哪些?推荐这4个seo工具
  2. 杰卡德相似度(Jaccard similarity)
  3. 从大系统到微服务的发展路线和思考分享
  4. 二次递交IPO的嘀嗒出行,离圆上市梦近了吗?
  5. 深入分析JavaWeb技术内幕(修订版)
  6. 前台Service发展历史
  7. Elasticsearch又双叒发生数据泄露了,近200万条“禁飞名单”被泄露
  8. 百度地图mapv方法封装
  9. Inside Java Newscast #1 深度解读
  10. kotlin协程_使Kotlin协程无缝采用的5个技巧