目录
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)包含了原始时间序列的冗余特征,使转换后的图像中,类间和类内的相似度信息更容易被捕捉。 对于一个时间序列,可以通过以下步骤得到RPM图:
- 针对原始时间序列,通过以下z-分值标准化的方法得到一个标准正态分布: 其中表示的平均值,表示的标准差。
- 采用分段聚合近似(PAA)方法,选择一个合适的缩减因子,生成一个新的平滑时间序列,将维度减少到: 通过计算分段常数的平均值进行降维,可以保持原始时间序列的近似趋势,最终新的平滑时间序列的长度为。
- 计算两个时间戳之间的相对位置,将预处理后的时间序列X转换为二维矩阵: 如上所示,该矩阵表征了时间序列中每两个时间戳之间的相对位置关系。其每一行和每一列都以某一个时间戳为参考,进一步表征整个序列的信息;
- 最后利用最小-最大归一化将转换为灰度值矩阵,最终得到相对位移矩阵:
2 Matlab代码实现
clc
clear
close all
% %%
% % 閫熷害
% speed_original = round(rand(1,111)*40+40);
%
% m = length(speed_original);
%
% % 浣庨�熷尯
% low_xu = round((rand()+0.1)*(m - 10));
% low_num = round((rand()+0.2)*15);
%
% % 鏁版嵁
% speed = speed_original;
% speed(low_xu:low_xu+low_num-1) = round(rand(1,low_num)*20);
%
% % X = speed;
%
% % 璁烘枃閲岀殑鏁版嵁
% X = [0 1 2 1 2 3 4 3 2 3 2 1];
%
% N = length(X);
%% 鐢熸垚鏁版嵁
speed = xlsread('3_1_link6_28_5_30min.csv');
% speed = xlsread('3_1_link1_1_5_30min.csv');
%% z-鍒嗗�兼爣鍑嗗寲
X = speed';
mu = mean(X);
sigma = sqrt(var(X));
Z = (X-mu)/sigma;
%% PAA
k = 2;
N = length(X);
m = ceil(N/k);
if ceil(N/k)-floor(N/k) == 0
for i = 1:m
X2(i) = 1/k * sum(Z(k*(i-1)+1:k*i));
end
else
for i = 1:m-1
X2(i) = 1/k * sum(Z(k*(i-1)+1:k*i));
end
X2(m) = 1/(N-k*(m-1)) * sum(Z(k*(m-1)+1:N));
end
%% 鐢熸垚RPM鍥�
M = repmat(X2,m,1) - repmat(X2',1,m);
F = (M - min(M(:))) / (max(M(:))) - min(M(:)) * 255;
h = figure(2);
set(gcf,'position',[800 300 500 420])
imagesc(F)
title('鐩稿浣嶇Щ鐭╅樀(RPM)')
saveas(h,'RPM_11.bmp')
3.结果
【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】