当前位置:   article > 正文

将时间序列转成图像——格拉姆角场方法 Matlab实现_格拉姆角和场matlab代码

格拉姆角和场matlab代码

目录

1 方法

2 Matlab代码实现

3 结果


【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】

其他:

1.时间序列转二维图像方法及其应用研究综述_vm-1215的博客-CSDN博客

2.将时间序列转成图像——马尔可夫转移场方法 Matlab实现_vm-1215的博客-CSDN博客

3.将时间序列转成图像——图形差分场方法 Matlab实现_vm-1215的博客-CSDN博客

4.将时间序列转成图像——递归图方法 Matlab实现_vm-1215的博客-CSDN博客

5.将时间序列转成图像——相对位置矩阵方法 Matlab实现_vm-1215的博客-CSDN博客

1 方法

格拉姆角场(Gramian Angular Field, GAF)是结合坐标变换和格拉姆矩阵的相关知识,实现将时间序列变换成图像的一种编码方法。

格拉姆矩阵是两两向量的内积组成,可以保存时间序列的时间依赖性,却不能有效的区分价值信息和高斯噪声。因此,在进行格拉姆矩阵变换之前,时间序列需要进行空间变换,普遍的方法是将笛卡尔坐标系转换成极坐标系(半径、角度)。

所以对于一个时间序列X=(xt,t=1,2,...,N),可以通过以下步骤得到GAF图:

  1. 使用最小-最大定标器(Min-Max scaler),将原始时间序列数据缩放到[-1,1];

    x~1i=(ximax(X)+(ximin(X))max(X)min(X)

     or x~0i=ximin(X)max(X)min(X)

  2. 将第一步得到的数据进行极坐标系变换,得到每一个数据点对应的半径和角度:

    {ϕ=arccos(x~i),1x~i1,x~iX~r=tiN,tiN

  3. 利用和角关系和差角关系,得到对应的 GASF 图和 GADF 图:

    GASF=[cos(ϕi+ϕj)]=X~X~IX~2IX~2GADF=[sin(ϕiϕj)]=IX~2X~X~IX~2

2 Matlab代码实现

  1. clc
  2. clear
  3. %% 生成数据
  4. speed = xlsread('3_1_link1_1_5_30min.csv');
  5. X = speed';
  6. X = (X - min(X)) / (max(X) - min(X));
  7. m = length(X);
  8. %% 数据处理
  9. % 将数据归一化[1,-1]
  10. X = ((X - max(X)) + (X - min(X)))/(max(X) + min(X));
  11. % 求极坐标
  12. fai = acos(X);
  13. % 生成
  14. GASF = X' * X - sqrt(1 - X.^2)' * sqrt(1 - X.^2);
  15. GADF = sqrt(1-X.^2)' * X + X' * sqrt(1 - X.^2);
  16. %% 显示图(热力图)
  17. %
  18. im_1 = figure(1);
  19. imagesc(GASF)
  20. title('GASF')
  21. % saveas(im_1, 'GASF_2.bmp');
  22. %
  23. im_2 = figure(2);
  24. imagesc(GADF)
  25. title('GADF');
  26. % saveas(im_2, 'GADF_2.bmp');

3 结果

【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/284647
推荐阅读
相关标签
  

闽ICP备14008679号