当前位置:   article > 正文

将时间序列转成图像——相对位置矩阵方法 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 方法

相对位置矩阵(Relative Position Matrix, RPM)包含了原始时间序列的冗余特征,使转换后的图像中,类间和类内的相似度信息更容易被捕捉。 对于一个时间序列X=(xt,t=1,2,,N),可以通过以下步骤得到RPM图:

  1. 针对原始时间序列,通过以下z-分值标准化的方法得到一个标准正态分布Z

    zt=xtμσ,t=1,2,,N

    其中μ表示X的平均值,σ表示X的标准差。
  2. 采用分段聚合近似(PAA)方法,选择一个合适的缩减因子k,生成一个新的平滑时间序列X~,将维度N减少到m

    x~i={1kj=k(i1)+1kizj,i=1,2,,m,NkNk=0{1kj=k(i1)+1kizj,i=1,2,,m11Nk(m1)j=k(m1)+1Nzj,i=m,NkNk>0m=Nk

    通过计算分段常数的平均值进行降维,可以保持原始时间序列的近似趋势,最终新的平滑时间序列X~的长度为m
  3. 计算两个时间戳之间的相对位置,将预处理后的时间序列X转换为二维矩阵M

    M=[x~1x~1x~2x~1x~mx~1x~1x~2x~2x~2x~mx~2x~1x~mx~2x~mx~mx~m]

    如上所示,该矩阵表征了时间序列中每两个时间戳之间的相对位置关系。其每一行和每一列都以某一个时间戳为参考,进一步表征整个序列的信息;
  4. 最后利用最小-最大归一化将M转换为灰度值矩阵,最终得到相对位移矩阵F

    F=Mmin(M)max(M)min(M)×255

2 Matlab代码实现

  1. clc
  2. clear
  3. close all
  4. % %%
  5. % % 閫熷害
  6. % speed_original = round(rand(1,111)*40+40);
  7. %
  8. % m = length(speed_original);
  9. %
  10. % % 浣庨�熷尯
  11. % low_xu = round((rand()+0.1)*(m - 10));
  12. % low_num = round((rand()+0.2)*15);
  13. %
  14. % % 鏁版嵁
  15. % speed = speed_original;
  16. % speed(low_xu:low_xu+low_num-1) = round(rand(1,low_num)*20);
  17. %
  18. % % X = speed;
  19. %
  20. % % 璁烘枃閲岀殑鏁版嵁
  21. % X = [0 1 2 1 2 3 4 3 2 3 2 1];
  22. %
  23. % N = length(X);
  24. %% 鐢熸垚鏁版嵁
  25. speed = xlsread('3_1_link6_28_5_30min.csv');
  26. % speed = xlsread('3_1_link1_1_5_30min.csv');
  27. %% z-鍒嗗�兼爣鍑嗗寲
  28. X = speed';
  29. mu = mean(X);
  30. sigma = sqrt(var(X));
  31. Z = (X-mu)/sigma;
  32. %% PAA
  33. k = 2;
  34. N = length(X);
  35. m = ceil(N/k);
  36. if ceil(N/k)-floor(N/k) == 0
  37. for i = 1:m
  38. X2(i) = 1/k * sum(Z(k*(i-1)+1:k*i));
  39. end
  40. else
  41. for i = 1:m-1
  42. X2(i) = 1/k * sum(Z(k*(i-1)+1:k*i));
  43. end
  44. X2(m) = 1/(N-k*(m-1)) * sum(Z(k*(m-1)+1:N));
  45. end
  46. %% 鐢熸垚RPM鍥�
  47. M = repmat(X2,m,1) - repmat(X2',1,m);
  48. F = (M - min(M(:))) / (max(M(:))) - min(M(:)) * 255;
  49. h = figure(2);
  50. set(gcf,'position',[800 300 500 420])
  51. imagesc(F)
  52. title('鐩稿浣嶇Щ鐭╅樀(RPM)')
  53. saveas(h,'RPM_11.bmp')

3.结果

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

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

闽ICP备14008679号