Python环境下基于深度残差收缩网络的一维时域信号识别

在传统的深度学习模式中,随着网络层次的增加,其非线性表现更加明显, 模型可以获得更多的特性。然而,由于网络规模的增大,使得传统的多层次网络结构很难用非线性表达来表达连续的映射,从而导致了网络的退化。

一维时间序列信号,比如机械振动信号中存在着大量的噪声干扰,严重影响了故障诊断的精度。针对以上问题,有学者提出一种深度残差收缩网络进行一维时域信号识别。深度残差收缩网络是一种针对含噪数据的深度学习方法。在对深度残差网络进行反向传播的情况下,其损失不但可以通过卷积层等逆向传递,而且可以利用残差项的常数映射来实现逆向传播。然后,采用软阈值法对振动信号进行降噪,以获得更好的模型。

深度残差收缩网络DRSN 是基于卷积神经网络(CNN)网络,它包括残差块、软阈值和注意力机制。

算法理论如下:

 

可参考的论文如下:

[1]田钦文,冯辅周,李鸣等.基于一维深度残差收缩网络的汇流行星排齿轮裂纹故障诊断[J].振动与冲击,2022,41(19):198-206.

[2]吴爱华,彭金喜.基于深度残差收缩网络的信号调制类型识别[J].电子信息对抗技术,2022,37(04):24-30.

本项目采用深度残差收缩网络处理一维时域信号,即对一维轴承振动信号进分类。

test_data.zip 已解压的测试数据,来源西储大学的轴承数据集。包含原始数据,信噪比5,信噪比-5的加噪信号(均为高斯白噪声)。

data_process.py 采用滑动窗口采样的方式,将一维时域信号切割为长度2048的多个样本(运行时修改data路径)

rsnet.py 基于resnet34

train.py 训练网络时运行该程序即可,需保证三个程序均在同一路径下,否则可能出现导包异常。

代码所用模块如下:

from torch.utils.data import TensorDataset, DataLoader
import numpy as np
import torch
import torch.nn as nn
from torch.autograd import Variable
import torch.optim as optim
import matplotlib.pyplot as plt
from rsnet import rsnet34
from data_process import preprocess

结果如下:

 

算法可迁移至金融时间序列,地震/微震信号,机械振动信号,声发射信号,电压/电流信号,语音信号,声信号,生理信号(ECG,EEG,EMG)等信号。

代码jian'pin

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值