将时间序列转成图像——相对位置矩阵方法 Matlab实现

news2024/11/14 14:37:39

目录

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=(x_t,t=1,2,\ldots,N),可以通过以下步骤得到RPM图:

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

    z_{t}=\frac{x_{t}-\mu}{\sigma}, t=1,2, \ldots, N

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

    \begin{aligned} &\tilde x_{i}=\left\{\begin{array}{l} \frac{1}{k} \sum_{j=k *(i-1)+1}^{k * i} z_{j}, i=1,2, \ldots, m,\left\lceil\frac{N}{k}\right\rceil-\left\lfloor\frac{N}{k}\right\rfloor=0 \\ {\left\{\begin{array}{l} \frac{1}{k} \sum_{j=k *(i-1)+1}^{k * i} z_{j}, i=1,2, \ldots, m-1 \\ \frac{1}{N-k *(m-1)} \sum_{j=k *(m-1)+1}^{N} z_{j}, i=m \end{array},\left\lceil\frac{N}{k}\right\rceil-\left\lfloor\frac{N}{k}\right\rfloor>0\right.} \end{array}\right.\\ &m=\left\lceil\frac{N}{k}\right\rceil \end{aligned}

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

    M=\left[\begin{array}{cccc} \tilde x_{1}-\tilde x_{1} & \tilde x_{2}-\tilde x_{1} & \cdots & \tilde x_{m}-\tilde x_{1} \\ \tilde x_{1}-\tilde x_{2} & \tilde x_{2}-\tilde x_{2} & \cdots & \tilde x_{m}-\tilde x_{2} \\ \vdots & \vdots & \ddots & \vdots \\ \tilde x_{1}-\tilde x_{m} & \tilde x_{2}-\tilde x_{m} & \cdots & \tilde x_{m}-\tilde x_{m} \end{array}\right]

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

    F=\frac{M-\min (M)}{\max (M)-\min (M)} \times 255

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.结果

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx实现负载均衡

目录 一、环境准备 1、准备3台centos服务器 2、软件安装 二、负载均衡配置 三、其他分配策略 1、fair(第三方) 一、环境准备 1、准备3台centos服务器​​​​​​​ 服务器名称主机名IP安装服务备注Nginx反向代理服务器proxy192.168.1.10nginx关…

ES倒排序索引

前言 在学习Elasticsearch的使用前,我们先来了解下es是如何实现全文搜索的。 倒排索引是 Elasticsearch 中非常 重要的索引结构,从 文档单词到文档 ID 的过程 为什么要使用倒排索引 先看下面的商品数据goods id 标题 描述 1 小米手机 小米手机性…

【保姆级】新机器部署Redis

1、登录服务器,如果非root用户则切root用户 sudo su - 2、安装gcc yum install gcc-c 3、在/usr/tmp目录上传redis安装包 4、将安装包移到/opt/byd目录 mv redis-4.0.11.tar.gz /opt/byd 5、解压 & 重命名 tar -xzvf redis-4.0.11.tar.gz mv redis-4.0.11 …

安全狗受邀出席CIS 2022网络安全创新大会

11月16日,由网络安全行业门户Freebuf主办的CIS 2022网络安全创新大会(简称CIS)在上海主会场顺利开幕。 作为国内云原生安全领导厂商,安全狗也收到邀请出席此次活动。 据悉,此次大会分为上海、北京、深圳等多个会场&am…

Pytorch中的DDP

一. 概览 DDP的原理? 在分类上,DDP属于Data Parallel。简单来讲,就是通过提高batch size来增加并行度。为什么快? DDP通过Ring-Reduce的数据交换方法提高了通讯效率,并通过启动多个进程的方式减轻Python GIL的限制&am…

2022-11-17 mysql列存储引擎-聚合运算中间结果缓存磁盘文件以避免OOM-需求分析

摘要: mysql列存储引擎-聚合运算中间结果缓存磁盘文件以避免OOM-需求分析 关联ISSUE: https://github.com/stoneatom/stonedb/issues/21 需求分析ISSUE: https://github.com/stoneatom/stonedb/issues/949 上下文说明: 当前聚合运算的结果都缓存在了内存的HASH中, 一旦数据量…

数据库等值查询与统计信息

概念 统计信息是为优化器的 cost 估算提供数据支撑,其中很重要的一点需求便是等值查询(EQUALS, IN 等) 场景下的基数估算。考虑以下 Case CREATE TABLE mc_tac_template (ID BIGINT ,NAME varchar(50) NOT NULL,GENDER varchar(10) NOT NULL,PRIMARY KEY (ID),KEY K…

工业设计公司的办公环境有哪些特点?

设计公司的办公环境一直被称之为个性化的意味着,见惯了新科技公司的各类智能化豪情万丈的办公环境,也有别于正儿八经办公楼的循规蹈矩,每个设计公司的公司办公室总似一股清流一般的存在,自然各种设计公司,如平面、工业…

Flutter 在项目中使用动画(不使用包)

Flutter 在项目中使用动画(不使用包) 前言 动画对于 web 和移动应用程序都非常重要。但是在移动应用程序中不应该使用夸张的动画。简单但是很多动画使你的应用程序更好用。以至于当你点击一个按钮时,一种平滑的感觉或者页面过渡都会影响到你。 正文 1 按下按钮柔软的…

UNIAPP实战项目笔记39 我的页面布局

UNIAPP实战项目笔记39 我的页面布局 my.vue 我的页面布局 具体图片自己替换哈,随便找了个图片的做示例 代码 pages.json部分 去掉默认导航栏,改为自定义导航栏 ,{"path" : "pages/my/my","style" : …

408 | 【数据结构】 排序 —— 总复习框架总结

(一)排序的基本概念 排序算法的稳定性:经过排序后,能使关键字相同的元素保持原顺序中的相对位置不变。 (二)内部排序 2.1、插入排序 算法思想:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。 2.1.1、直接插入排序 顺…

通过Xamarin实现东大集成PDA的扫码

目录1、东大集成PDA的扫码说明2、Xamarin通过广播实现扫码2.1 PDA的扫码工具设置2.2 代码实现2.2.1 主界面2.2.1 定义广播接收器2.2.2 在活动页面实现读取2.3 实现效果3、demo下载1、东大集成PDA的扫码说明 东大集成的PDA有两种方式实现设备自带的扫码功能。一种为调用硬件接口…

终极大招~pycharm自动补全opencv代码提示功能

你的pycharm还能自动补全opencv代码提示吗? 你可能通过修改cv2,进入__init__.py文件,一顿操作,还是不行。 你以为是工具问题,卸载重装? 还是opencv卸载重装好几次了 这次分享下我的方案,保证你一看就会。…

人工智能数学基础--概率与统计10:离散随机变量的概率函数及常见的二项分布、泊松分布

一、离散随机变量的概率函数及分布函数 设X为离散随机变量,其全部可能取值为{a1,a2,…},则:piP(Xai) &nsp&nsp&nsp&nsp (i1,2,…)称为X的概率函数,也称为随机变量X的概率分布; 设X为随机变量&#xf…

【lombok】equals相等返回false contains包含返回false? lombok注解的一个天坑

最近在写代码的时候 遇到个奇怪的问题 使用 list.contains(obj) 方法判断&#xff0c;明明是两个内容一样的对象&#xff0c;却返回了false 这里用伪代码还原一下场景&#xff1a; // 从数据库取的所有数据 List<SysMenuDTO> allList getDataFromDB(); // 一个id等于1…

【Detectron2】代码库学习-3. LazyConfig 配置文件

目录1. 配置文件2. LazyConfig 导入导出3. 递归实例化4. 基于LazyConfig的训练步骤4.1 导入依赖库4.2 日志初始化4.3 训练4.4 评估4.5 训练流程4.6 主函数入口5. TipsDetectron2是Facebook AI Research(FAIR)推出的基于Pytorch的视觉算法开源框架&#xff0c;主要聚焦于目标检测…

进程的通信 - 邮槽

邮槽 邮槽是Windows系统提供的一种单向进程间的通信机制。对于相对简短的地坪率信息发送&#xff0c;使用邮槽通常比命名管道或者Unix域套接字更简单 使用邮槽通信的进程分为服务端和客户端。邮槽由服务端创建&#xff0c;在创建时需要指定邮槽名&#xff0c;创建后服务端得…

PIC单片机-测试例程汇总

内容包括PIC单片机常用外设的测试例程。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01;目录&#xff1a;一、端口的定义与while(1)的使用二、延时1、通过语句延时程序&#xff08;带参数&#xff09; 2、通过语句延时程序&…

N3-PEG-NHS,Azide-PEG-NHS,叠氮-聚乙二醇-活性酯可用来修饰蛋白质

一、详情介绍 1、名称 英文&#xff1a;N3-PEG-NHS&#xff0c;Azide-PEG-NHS 中文&#xff1a;叠氮-聚乙二醇-活性酯 2、描述 Azide-PEG-NHS的分子量&#xff1a;Azide-PEG-NHS 1k&#xff0c;叠氮-聚乙二醇-活性酯 2k&#xff0c;叠氮-PEG-活性酯 5k&#xff0c;N3-PEG-…

rr来debug你的C/C++程序(Linux)

如何用rr来debug你的C/C程序(Linux) 想象一下如果你的程序某时会崩溃&#xff0c;但是不能稳定复现&#xff0c;你会如何debug它? 用传统debugger面临的问题就是你不知道这次运行的时候能不能复现&#xff0c;你猜测可能某段代码出现了问题&#xff0c;所以进行了一番检查。…