基于振动信号小波时频图与视觉顶会网络SwinTransformer的轴承故障诊断

1.数据预处理

傅里叶变换提取信号的频谱需要利用信号的全部时域信息,只能看到信号整体的频谱构成,不能给出这些频率成分出现的时刻,也不能够反映信号频率成分随时间的变化过程;傅里叶变换的积分作用平滑了非平稳信号的突变成分。相比较,小波变换的优越性:小波变换不仅能给出信号的频率信息,而且能够说明这些频率成分发生的时刻。

连续小波变换(CWT)用于分解小波信号。小波是时间上小的、高度局部的振荡。傅里叶变换将信号分解为无限长的正弦和余弦,从而丢失了所有时间位置信息,而CWT 的基本功能是时间局部化父小波的缩放和移位版本。CWT 用于构建信号的时频表示,以提供非常好的时间和频率定位。CWT 是绘制非平稳信号变化特性的绝佳工具。CWT 也是确定信号在全局意义上是否平稳的理想工具。当信号被认为是非平稳信号时,CWT 可用于识别数据流的平稳部分。其公式如下:

其中,x(t)是输入信号,\phi(t)是小波函数,a是尺度函数,b是平移参数

将CWRU数据集进行连续小波变换

滚动体故障007

内圈故障007

外圈故障007

无故障信号

2.SwinTransfomer网络

Swin Transformer是2021年微软研究院发表在ICCV上的一篇文章,并且已经获得ICCV 2021 best paper的荣誉称号。Swin Transformer网络是Transformer模型在视觉领域的又一次碰撞。该论文一经发表就已在多项视觉任务中霸榜。

3.网络效果

评价指标评价

混淆矩阵

ROC曲线绘制

4.代码获取

感兴趣的朋友可以关注最后一行

import torch
import torch.nn as nn
import numpy as np
import pandas as pd
from swin_transformer import swin_t
from getCWTImage import CWT
import warnings
from torch import optim
from torch.utils.data import DataLoader
from sklearn.metrics import f1_score, accuracy_score, precision_score, recall_score, roc_curve, auc, confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sns
from pytorch_lightning import seed_everything

warnings.filterwarnings("ignore")
seed_everything(0)
# https://mbd.pub/o/bread/mbd-ZpmUlZ1q

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值