用于分析脉冲类信号的二阶瞬态提取变换研究(Matlab代码实现)

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现


1 概述

文献来源:

该文提出一种高分辨率时频分析方法,称为二阶瞬态提取变换(STET),用于分析具有强脉冲分量的高度非平稳信号,用于机器故障诊断。基于对一阶和二阶频变模型的理论分析,讨论并强调了最近发表的两种后处理技术的局限性。然后提出了一种STET技术来克服这一限制。研究中还介绍了STET的离散实现,并通过一些模拟数值数据和三组实验数据来检查该技术的性能。结果证实了所提技术在分析噪声污染信号以及变化速度条件下获取的轴承缺陷信号方面的有效性。

 原文摘要:

In this paper, a high resolution time-frequency analysis method, termed as second-order transient-extracting transform (STET) is proposed in the analysis of highly non-stationary signals with strong impulse components for machine fault diagnosis. The limitation of two recently published post-processing techniques are discussed and highlighted based on a theoretical analysis of the first and the second-order frequency-varying models. A STET technique is then proposed to overcome this limitation. The discrete implementation of STET is also presented in the study and the performance of the technique is examined by a number of simulated numerical data and three sets of experimental data. The results confirm the effectiveness of the proposed technique in the analysis of noise contaminated signals as well as bearing defect signals acquired under varying speed condition.

滚动体轴承在风力涡轮机、航空发动机和高速列车等旋转机械中起着重要作用。不幸的是,轴承故障是机器故障最常报告的原因之一,研究人员和工程师已经付出了巨大的努力来防止这种情况的发生。基于振动的状态监测(CM)是检测轴承缺陷最有效的非侵入式技术之一,在过去几十年中已被从业人员广泛使用[1],[2]。当滚动体穿过有缺陷的表面或有缺陷的元件在赛车表面上滚动时,将产生脉冲信号,然后通过轴承共振放大该信号,该共振可以通过安装在轴承座上的振动传感器捕获[3],[4]。然而,由于背景噪声和其他来源的信号干扰,轴承缺陷,特别是早期缺陷往往无法检测到,这突出了开发有效信号处理技术以实现准确可靠的轴承故障诊断的必要性。

有效的轴承故障诊断程序的一个关键标准是,即使在机器运行噪音的干扰下,它也能在早期阶段检测到缺陷信息。为此目的,已经开发了各种信号处理技术,这些技术通常可分为三类,例如时域分析,频域分析和时频(TFA)分析(TFA)技术。TFA技术能够处理由负载或工作速度条件变化引起的非平稳CM信号[5],[6],[7],[8],因此已广泛用于机器故障诊断。

短时傅里叶变换(STFT)和小波变换(WT)是机器故障诊断中最常用的两种传统TFA技术。这两种技术都属于线性TFA类别,它通过计算信号和一系列TF基函数之间的内积来表征TF特征[9],[10]。然而,线性TFA技术中设计的基函数在分析的时间范围内被隐含地假设为平稳或准平稳,从而限制了该技术在处理具有快速变化动态的信号中的应用。为了克服这些缺点,近年来提出了几种非线性TFA技术。例如,线性啁啾变换[11]、局部多项式变换[12]、多项式啁啾变换(PCT)[9]、参数化TF变换[10]和匹配解调变换[13]是最近的一些尝试。所有这些方法都旨在基于分析信号的非线性构建新的基函数。新设计的基函数在非平稳信号分析中比线性基函数表现更好,尽管当信号的非线性增加时,它将具有相同的限制。这是因为实际信号的非线性很难提前预测或估计。此外,由于海森堡不确定性原理,这些现有的非线性TFA技术经常受到扩散TF能量问题的困扰。

最近,TFA技术发展的新趋势是使用后处理程序表征非平稳信号的非线性特征,例如重新分配方法(RM)[14],[15],同步挤压变换[16],[17](SST)和同步提取变换(SET)[18],[19],[20],[21].从海森堡不确定性原理中众所周知,由线性TFA技术生成的TF表示(TFR)通常在信号的瞬时频率(IF)轨迹周围拖尾。为了克服这个问题,RM技术将扩散的TF能量重新分配到时间和频率轴的IF轨迹中[14],然后在TF平面中产生更高的能量集中TFR。然而,RM的缺点是TF结果不能用于信号重建。相比之下,由于SST技术仅在频率方向[16]上重新分配TF系数,因此保留了TF结果的重建能力。虽然SST的TF分辨率不高于RM,但由于SST的可逆性,其实际应用要普遍得多。此外,随着高阶SST的发展,已经证明SST分析可以达到比RM [22],[23]更好的分辨率。SST的缺点是当信号被噪声污染时,它缺乏消除噪声干扰的能力。这是因为SST的后处理程序可能会将噪声重新分配到最终的TFR中。为了解决这个问题,SET是最近提出的一种技术,可以保留最相关的TF系数,并丢弃弱相关的TF系数来抑制噪声干扰[18]。

最近发表的一些工作利用SST或SET技术,并将它们与其他非线性TFA方法相结合,以进一步提高SST和SET技术的性能。例如,Wang等人首先构建了一个迭代TFA变换来解调能量集中度高的非线性信号,然后使用SST重新分配相应的TF系数以提高TF分辨率[13]。Shi等人提出了一种广义的逐步解调变换,以配合SST[24]。Tu等人引入了解调SST来处理快速变化的振动信号[5]。Yu等人将PCT与SET相结合,以捕获非平稳信号中不断变化的动态[25]。

对于SST和SET来说,他们通过假设信号的IF可以局部近似为所分析窗口帧中的时间不变段来分析信号。SST和SET也已扩展到高阶多项式模型,用于分析更复杂的信号。理论上,这种高阶方法具有更好的处理包含强时变模式的信号的能力。例如,Oberlin等人通过定义二阶调频信号的精确IF估计值[22]提出了一种集中SST技术。Wang等人通过构建IF估计来精确匹配快速变化信号的特性,从而引入了改进的SST[3]。Pham等人使用IF的高阶估计提出了广义SST[23]。Hu等人提出了一种基于WT的高阶SST[26]。而Yu等人采用固定点迭代算法逐步提高了SST的TF分辨率[27]。

然而,时变模型不能很好地近似脉冲信号,因为缺陷产生的脉冲通常发生在非常短的时间内并且具有宽带频率。这意味着上述TFA技术所做的时变假设不能很好地表征轴承故障产生的信号。最近发表的一些技术,如时间重分配SST [28]和瞬态提取变换(TET)[29],它们使用替代的频变模型,试图克服上述TFA技术在脉冲类信号分析中使用的时变模型的限制。然而,这两种技术在分析更复杂的信号时是不够的,因为它们是基于一阶模型建立的。针对这一问题,该文提出一种基于TET框架的二阶频变模型的能量集中TFA用于类脉冲信号的分析。

2 运行结果

 

 

 

部分代码:

function [Te2] = STET_Y(x,hlength)
% Computes the second-order transient-extracting transform (STET) of the signal x.
% INPUT
%    x      :  Signal needed to be column vector.
%    hlength:  The length of window function.

% OUTPUT
%    Te2     :  The STET result
[xrow,xcol] = size(x);
if (xcol~=1),
    error('X must be column vector');
end;
N=xrow;

% hlength: the length of window function.
hlength=hlength+1-rem(hlength,2);
ht = linspace(-0.5,0.5,hlength);ht=ht';
% Gaussian window
h = exp(-0.5*ht.^2/0.02);
% derivative of window
dh = -ht .* h/0.02; % g'

[hrow,~]=size(h); Lh=(hrow-1)/2;

tfr1= zeros (round(N/2),N) ;% G(t,w);
tfr2= zeros (round(N/2),N) ;% Gg'(t,w);
tfr3= zeros (round(N/2),N) ;% Gsu(t,w);

t=1:N;
su=x.*t';% s*u;

for icol=1:N,
    ti= t(icol); tau=-min([round(N/2)-1,Lh,ti-1]):min([round(N/2)-1,Lh,xrow-ti]);
    indices= rem(N+tau,N)+1;
    rSig = x(ti+tau,1);
    suSig = su(ti+tau,1);
    tfr1(indices,icol)=rSig.*h(Lh+1+tau);% G(t,w)*exp(iwt);
    tfr2(indices,icol)=rSig.*dh(Lh+1+tau);% Gg'(t,w)*exp(iwt);
    tfr3(indices,icol)=suSig.*h(Lh+1+tau);% Gsu(t,w)*exp(iwt);

3 参考文献

部分理论来源于网络,如有侵权请联系删除。

4 Matlab代码实现

你可能感兴趣的:(matlab,算法,人工智能)