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