目录
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)是结合坐标变换和格拉姆矩阵的相关知识,实现将时间序列变换成图像的一种编码方法。
格拉姆矩阵是两两向量的内积组成,可以保存时间序列的时间依赖性,却不能有效的区分价值信息和高斯噪声。因此,在进行格拉姆矩阵变换之前,时间序列需要进行空间变换,普遍的方法是将笛卡尔坐标系转换成极坐标系(半径、角度)。
所以对于一个时间序列,可以通过以下步骤得到GAF图:
- 使用最小-最大定标器(Min-Max scaler),将原始时间序列数据缩放到[-1,1];
- 将第一步得到的数据进行极坐标系变换,得到每一个数据点对应的半径和角度:
- 利用和角关系和差角关系,得到对应的 GASF 图和 GADF 图:
2 Matlab代码实现
clc
clear
%% 生成数据
speed = xlsread('3_1_link1_1_5_30min.csv');
X = speed';
X = (X - min(X)) / (max(X) - min(X));
m = length(X);
%% 数据处理
% 将数据归一化[1,-1]
X = ((X - max(X)) + (X - min(X)))/(max(X) + min(X));
% 求极坐标
fai = acos(X);
% 生成
GASF = X' * X - sqrt(1 - X.^2)' * sqrt(1 - X.^2);
GADF = sqrt(1-X.^2)' * X + X' * sqrt(1 - X.^2);
%% 显示图(热力图)
%
im_1 = figure(1);
imagesc(GASF)
title('GASF')
% saveas(im_1, 'GASF_2.bmp');
%
im_2 = figure(2);
imagesc(GADF)
title('GADF');
% saveas(im_2, 'GADF_2.bmp');
3 结果
【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】