基于非下采样小波包分析的滚动轴承故障诊断(MATLAB R2021B)

小波变换具有良好的时频局部化特性和多分辨率特性,可准确定位信号的突变点并可在不同尺度上描述信号的局部细节特征,被广泛应用于信号降噪。但标准正交小波变换不具有平移不变性,采用标准正交小波对信号消噪后,会在脉冲尖峰处产生Gibbs振荡现象,造成脉冲信号的失真。

非下采样小波NSW具有平移不变性,用于信号消噪可以较好地抑制Gibbs振荡现象。但NSW变换只对信号的低频部分进行分解,对信号的高频部分不再进行剖分,导致分解后信号高频部分的频率分辨率较差。这对于主要信息包含在低频部分的信号比较适合,但对于强噪声背景下的信号并不适用。因为很多信号中的脉冲尖峰和剧烈振荡部分等重要信息主要位于高频部分,分解后和噪声混杂在一起,不对高频部分进行再次剖分提高其频率分辨率,去噪时就无法有效区分有用细节信息和噪声,会导致较多的有用细节信息被误删除且部分噪声被误保留,从而破坏脉冲累积轮廓的几何特征。非下采样小波包NWP分解可较好地克服这一缺点,它在对信号的低频部分进行分解的同时,对小波变换中没有分解的高频部分也进行进一步的分解,使得高频频带被分解的更加细致,可为信号消噪提供更加丰富和详细的信息,对于含较强噪声的低信噪比信号可取的更好的消噪效果。

鉴于此,采用非下采样小波包分析进行滚动轴承故障诊断,运行环境为MATLAB R2021B。

非下采样小波包时频谱如下:

3层小波包分解及小波包时频谱图:

8个子频带波形:

8个子带对应的包络谱:

可见第3个子带和第8个子带的包络谱故障特征频率较为明显,不妨重新看一下:

Matlab 复制代码
switch num
    case {1,'blocks'}       % blocks.
        tt = linspace(0,1,len);  x = zeros(1,len);
        for j=1:11
            x = x + ( h(j)*(1+sign(tt-t(j)))/2 );
        end
    完整代码:mbd.pub/o/bread/YpyXk5Zr
    case {2,'bumps'}        % bumps.
        h  = abs(h);
        w  = 0.01*[0.5 0.5 0.6 1 1 3 1 1 0.5 0.8 0.5];
        tt = linspace(0,1,len);  x = zeros(1,len);
        for j=1:11
            x = x + ( h(j) ./ (1+ ((tt-t(j))/w(j)).^4));
        end

工学博士,担任《Mechanical System and Signal Processing》《中国电机工程学报》《控制与决策》等期刊审稿专家,擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
多多*2 分钟前
牛客周赛 Round 114 Java题解
算法
张较瘦_4 分钟前
[论文阅读] AI + 软件工程 | 3340个Python ML项目实证:PyQu工具+61种代码变更,精准提升软件质量!
论文阅读·人工智能·软件工程
m0_748248027 分钟前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
笑我归无处7 分钟前
强引用、软引用、弱引用、虚引用详解
java·开发语言·jvm
02苏_7 分钟前
秋招Java面
java·开发语言
ytttr87315 分钟前
64QAM信号的数字预失真处理(MATLAB实现)
开发语言·matlab
他们叫我一代大侠17 分钟前
Leetcode :模拟足球赛小组各种比分的出线状况
算法·leetcode·职场和发展
Nebula_g20 分钟前
C语言应用实例:硕鼠游戏,田忌赛马,搬桌子,活动选择(贪心算法)
c语言·开发语言·学习·算法·游戏·贪心算法·初学者
leafff12322 分钟前
一文了解-大语言模型训练 vs 推理:硬件算力需求数据对比
人工智能·语言模型·自然语言处理
爱吃甜品的糯米团子27 分钟前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript