当前位置: 首页 > news >正文

时间序列成像之点对称模式(Symmetrized Dot Pattern,SDP)

时间序列成像之点对称模式(Symmetrized Dot Pattern,SDP)python实现-CWRU数据集上的多传感器融合

点对称模式分析是一种将时间序列转化为极坐标系散点图的数据图像化方法,可以直接将原始信号转换为镜像对称雪花图像,实现简单,计算量小,且对噪声鲁棒性强。

SDP原理

在这里插入图片描述

下面为SDP的公式:
r i = ( x i − x m i n ) / ( x m a x − x m i n ) r_i = (x_i-x_{min})/(x_{max}-x_{min}) ri=(xixmin)/(xmaxxmin)

θ i = θ + ( ( x i + L − x m i n ) / ( x m a x − x m i n ) ) ∗ ζ θ_i = θ+((x_{i+L}-x_{min})/(x_{max}-x_{min}))*\zeta θi=θ+((xi+Lxmin)/(xmaxxmin))ζ

ϕ i = θ − ( ( x i + L − x m i n ) / ( x m a x − x m i n ) ) ∗ ζ \phi_i = θ-((x_{i+L}-x_{min})/(x_{max}-x_{min}))*\zeta ϕi=θ((xi+Lxmin)/(xmaxxmin))ζ

由公式可以看出,SDP利用时间序列x的第i个数据和第i+L个数据的值获取极坐标中第i对散点的坐标(r(i),θ(i),φ(i))。式中首先对时间序列x进行最大最小归一化,θ为绘图初始角,ξ 为角域增益因子;L为时间延滞系数。

SDP 分析不断将时间序列元素转化为极坐标系中 的散点对,最终所有散点对将在角度范围[θ - ξ,θ + ξ] 内形成对称的两片叶瓣。θ 为两片叶瓣的对称轴角度, 角域增益因子 ξ 限制了叶瓣的角域分布范围,时间延 滞系数L 则可以影响叶瓣形态。

存在多个传感器时,SDP 分析能够通过调整 θ 与 ξ 将所有传感器信号融合到同一张 SDP 图像中,进一步 增大不同故障状态的表征差异,弥补单一传感器特征 信息不足的缺陷。

使用python实现CWRU数据集多传感器融合SDP成像

选择CWRU数据集中的多个传感器,使用SDP方法实现传感器信号融合到同一张SDP图像中。需要注意的是,CWRU数据集中“Normal Baseline Data”文件夹中的数据只有两个传感器数据,而其他文件夹中的数据有三个传感器数据。因此,本文实现CWRU数据集两个传感器数据的SDP图像融合。
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/eb3e527eb726493a802c7fb7b82e5e8c.png#pic_center
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、选择某个mat文件,这里以98.mat文件为例。这个文件中共有两个传感器数据,分别是X098_DE_time和X098_FE_time。

2、其次,使用滑动窗口分割法,将单个mat文件中的数据分割成一个一个的样本(即一个mat文件可以生成多个样本,并非一个mat文件生成一个样本)。并给样本以标签。这里的滑动窗口分割法使用的是这篇文章中的方法。

3、设置SDP参数并根据SDP公式生成多传感器融合后的图像。

4、绘制SDP图像并保存,保存像素为512×512(可自行修改)。图片命名格式为98_0、98_1等等。表示98.mat文件的第0个样本、第一个样本。

代码调用及参数解释

调用代码:

if __name__ == "__main__":loc_1 = 3 #对于CWRU数据集,3和4分别代表两个传感器数据,DE_time和FE_time。因为normal文件夹中的数据只有两个传感器数据loc_2 = 4
#     loc_3 = 5#其他数据集有DE_time,FE_time,BA_timenum_segments = 120#生成的样本数量segment_length = 1024#样本长度overlap = 32#滑动窗口两个样本重叠点数target = 0#故障类型标签length = segment_length + (num_segments-1)*(segment_length-overlap)#生成所需样本需要从数据集中获取数据# 两个传感器数据,所以调用两处函数data_1 = sliding_window_sampling(r'E:\数据集\西储大学数据\48k Drive End Bearing Fault Data\112.mat',loc_1, length, num_segments, segment_length, overlap, target)data_2 = sliding_window_sampling(r'E:\数据集\西储大学数据\48k Drive End Bearing Fault Data\112.mat',loc_2, length, num_segments, segment_length, overlap, target)
#     data_3 = sliding_window_sampling(r'E:\数据集\西储大学数据\48k Drive End Bearing Fault Data\112.mat',
#                                    loc_3, length, num_segments, segment_length, overlap, target)    #这是第三个传感器数据BA_timedata = [data_1,data_2]#将两份数据放在一起作为sdp的输入
#     data = [data_1,data_2,data_3]#三个传感器数据时取消注释th = [0,180]#SDP中theta参数,两份数据使用不同的theta参数才能在极坐标图上分开
#     th = [0,90,180] #三个传感器数据时取消注释dpi = 600#保存的图片的清晰度file_name = 112#数据集名称,这里表示使用的是112.mat文件L = 24#SDP参数,时滞参数zeta = 60#SDP参数,角度增益save_dir = r'E:\数据集\西储大学数据\figure' # 图片保存地址save_figure(save_dir, file_name, data,th, L, zeta, dpi)

代码获取

关注私信回复关键词:“sdpcwru
或点击链接

相关文章:

  • WPF程序使用Sugar操作数据库
  • 路由器重分发(OSPF+静态路由)
  • 62.不同路径
  • stm32之EXIT外部中断详解
  • [Kaggle]:使用Kaggle服务器训练YOLOv5模型 (白嫖服务器)
  • 语音合成之七语音克隆技术突破:从VALL-E到SparkTTS,如何解决音色保真与清晰度的矛盾?
  • PyTorch数据加载与预处理
  • Redis的两种持久化方式:RDB和AOF
  • OSPF的不规则区域和特殊区域
  • WPF实现多语言切换
  • Java 实用工具类:深入讲解 CollectionUtils
  • CCF CSP 第30次(2023.05)(4_电力网络_C++)
  • C++:string 1
  • 游戏状态管理:用Pygame实现场景切换与暂停功能
  • Java 日志:掌握本地与网络日志技术
  • 6.1腾讯技术岗2025面试趋势前瞻:大模型、云原生与安全隐私新动向
  • HTML与安全性:XSS、防御与最佳实践
  • 华为OD机试真题——二维伞的雨滴效应(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 在WSL2+Ubuntu22.04中通过conda pack导出一个conda环境包,然后尝试导入该环境包
  • 【Linux网络】打造初级网络计算器 - 从协议设计到服务实现
  • 外交部:欢迎外国朋友“五一”来中国
  • A股三大股指收跌:地产股领跌,银行股再度走强
  • 促进产销对接,安徽六安特色产品将来沪推介
  • 王一博赛车故障退赛冲上热搜,工作室回应:下次再战
  • 别让心脏“饿肚子”,心肌缺血全解析
  • 一季度规模以上工业企业利润由降转增,国家统计局解读