故障诊断 | 信号降噪算法合集

往期精彩内容:

Python-凯斯西储大学(CWRU)轴承数据解读与分类处理

基于FFT + CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-优快云博客

基于FFT + CNN - Transformer 时域、频域特征融合的轴承故障识别模型-优快云博客

Python轴承故障诊断 (11)基于VMD+CNN-BiGRU-Attenion的故障分类-优快云博客

Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-优快云博客

Python轴承故障诊断 (14)高创新故障识别模型-优快云博客

Python轴承故障诊断 (15)基于CNN-Transformer的一维故障信号识别模型-优快云博客

Python轴承故障诊断 (16)高创新故障识别模型(二)-优快云博客

轴承故障全家桶更新 | 基于时频图像的分类算法-优快云博客

Python轴承故障诊断 (17)基于TCN-CNN并行的一维故障信号识别模型-优快云博客

独家原创 | SCI 1区 高创新轴承故障诊断模型!-优快云博客

基于 GADF+Swin-CNN-GAM 的高创新轴承故障诊断模型-优快云博客

Python轴承故障诊断 (18)基于CNN-TCN-Attention的创新诊断模型-优快云博客

注意力魔改 | 超强轴承故障诊断模型!-优快云博客

轴承故障全家桶更新 | 基于VGG16的时频图像分类算法-优快云博客

轴承故障全家桶更新 | CNN、LSTM、Transformer、TCN、串行、并行模型、时频图像、EMD分解等集合​都在这里-优快云博客

Python轴承故障诊断 (19)基于Transformer-BiLSTM的创新诊断模型-优快云博客

Python轴承故障诊断 (20)高创新故障识别模型(三)-优快云博客

视觉顶会论文 | 基于Swin Transformer的轴承故障诊断-优快云博客

Python轴承故障诊断 | 多尺度特征交叉注意力融合模型-优快云博客

SHAP 模型可视化 + 参数搜索策略在轴承故障诊断中的应用-优快云博客

速发论文 | 基于 2D-SWinTransformer+1D-CNN-SENet并行故障诊断模型-优快云博客

Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型-优快云博客

1DCNN-2DResNet并行故障诊断模型-优快云博客

基于改进1D-VGG模型的轴承故障诊断和t-SNE可视化-优快云博客

基于K-NN + GCN的轴承故障诊断模型-优快云博客

故障诊断 | 创新模型更新:基于SSA-CNN-Transformer诊断模型-优快云博客

独家首发 | 基于 2D-SwinTransformer + BiGRU-GlobalAttention的并行故障诊断模型-优快云博客

位置编码祛魅 | 详解Transformer中位置编码Positional Encoding-优快云博客

创新点 | 基于快速傅里叶卷积(FFC) 的故障诊断模型-优快云博客

代码开源! | 变工况下的域对抗图卷积网络故障诊断-优快云博客

超强 !顶会创新融合!基于 2D-SWinTransformer 的并行分类网络-优快云博客

多模态-故障诊断 | 大核卷积开启视觉新纪元!-优快云博客

超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-优快云博客

Transformer结构优势 ,How Much Attention Do You Need?-优快云博客

故障诊断 | 一个小创新:特征提取+KAN分类-优快云博客

前言

在轴承故障信号中既包含轴承转动声音,又包含场景中的其他噪声信息。如何聚焦轴承转动的时域特征和频域特征,降低场景噪声的干扰,是我们需要解决的问题。本期为大家介绍几种常用且高效的信号降噪算法:

(1)离散小波变换(DWT):通过将信号分解到不同的频带,有效地分离出噪声和故障特征。

(2)经验模态分解(EMD):自适应地将信号分解为一系列本征模态函数(IMF),每个IMF代表不同尺度的成分。

(3)经验小波变换(EWT):结合小波变换和EMD的优势,自适应地选择小波基函数来分解信号。

(4)自编码器(Autoencoder):一种无监督学习方法,通过神经网络学习信号的压缩表示和重构,达到降噪效果。

● 数据集:CWRU西储大学轴承数据集

● 环境框架:python 3.9  pytorch 1.8 及其以上版本均可运行

● 使用对象:模型论文需求、毕业设计需求者

● 代码保证:代码注释详细、即拿即可跑通。

噪声可视化

1.1 导入数据

参考之前的文章,读取凯斯西储大学轴承数据:

1.2 添加高斯白噪声

添加信噪比SNR为5db的噪声

2 离散小波变换(DWT)降噪

2.1 处理步骤

(1)选择小波和分解层数:我们选择了db8小波,并计算了分解层数。

(2)DWT分解:使用wavedec函数对信号进行多层次分解。

(3)阈值处理:计算阈值并对细节系数进行软阈值处理,以去除噪声。

(4)信号重构:使用处理后的系数进行信号重构。

(5)绘图:绘制原始信号、带噪信号和降噪后的信号进行比较。

注意事项:

  • 选择合适的小波基函数和分解层数对降噪效果有很大影响,需要根据具体信号特性进行调整。

  • 阈值处理的方法有多种,可以根据实际情况选择不同的阈值计算方法和处理方式(如软阈值或硬阈值)。

2.2 降噪效果

不同故障信号添加 5db 噪声对比:

正常信号分别添加 -5db、-10db、5db  对比:

3 经验模态分解(EMD)

3.1 处理步骤

(1)初始化EMD对象:创建一个EMD对象,用于执行经验模态分解。

(2)进行EMD分解:使用emd.emd方法对带噪声信号进行分解,得到一系列本征模态函数(IMFs)。

(3)选择合适的IMF进行重构:假设第0个IMF主要是噪声,去除它后重构信号。实际应用中需要根据具体情况调整选择的IMF。

(4)绘图:绘制原始信号、带噪信号、IMF以及降噪后的信号进行比较。

注意事项

  • IMF的选择:选择哪些IMF进行重构需要根据具体信号特性和应用需求来确定。通常,较低频的IMF包含主要的信号成分,而高频的IMF可能更多地包含噪声。

3.2 降噪效果

不同故障信号添加 5db 噪声对比:

正常信号分别添加 -5db、-10db、5db  对比:

4 经验小波变换(EWT)降噪

4.1 处理步骤

(1)边界计算:首先计算信号的傅里叶变换,然后找出频谱中的局部最大值作为边界。

(2)EWT分解:ewt函数执行经验小波变换。它计算信号的傅里叶变换,然后应用滤波器组,得到一系列的EWT系数。

(3)信号重构:通过将所有EWT系数相加(去掉第一个主要噪声成分的系数),重构降噪后的信号。

4.2 降噪效果

不同故障信号添加 5db 噪声对比:

5 自编码器(Autoencoder)降噪

5.1 处理步骤

(1)数据准备:将信号转换为PyTorch张量,并创建数据集和数据加载器。

(2)定义自编码器模型:

  • 使用PyTorch的nn.Module定义自编码器模型,包括编码器和解码器。

  • 编码器:将输入信号压缩到低维空间(encoding_dim),使用ReLU激活函数。

  • 解码器:将编码后的信号重构回原始维度。

(3)初始化模型、损失函数和优化器:

(4)降噪信号重构:使用训练好的自编码器对带噪信号进行重构,得到降噪后的信号。

(5)绘图:绘制原始信号、带噪信号和降噪后的信号进行比较。

注意事项

  • 编码维度:编码维度(encoding_dim)控制了信号的压缩程度。较小的编码维度可能导致信息丢失,较大的编码维度可能无法有效去除噪声。可以根据具体应用调整该参数。

  • 训练数据:自编码器的性能依赖于训练数据的质量和数量。确保训练数据覆盖各种可能的信号特征。

  • 模型复杂度:可以尝试增加模型的层数和神经元数量,以提高模型的表示能力。

5.2 降噪效果

不同故障信号添加 5db 噪声对比:

6 代码、数据整理如下:

点击下方卡片获取代码!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值