%% %产生模拟的故障信号 [s_normal,s_error] = func_sig_gen(Len,Noise_Power); figure; subplot(211);plot(s_normal);title('正常信号'); subplot(212);plot(s_error);title('故障信号'); %% %计算李氏指数 if select == 1 signal = s_normal; end if select == 2 signal = s_error; end
%多个尺度小波变换 Ss = 1; Ls = 32; wt = CWT(signal,Ss:Ls,'gaus2');
%模极大点 Max_Pos = func_WMMT(wt,10);
%将小波变化后的每一级的对应的最大值相连 [Max_List,Ptr,Lengths] = func_find_Max_nlevel(Max_Pos,10); %画出模极大曲线 figure; for k=1:length(Ptr) vec = Max_List(:,Ptr(k):Ptr(k) + Lengths(k)-1); plot(vec(2,:),log2(vec(1,:))); hold on; end axis([0,Len,0,6]); xlabel('u'); ylabel('log2');
%% %根据李氏指数的计算结果对故障信号检测 cnt = 0; PP = []; for i = 1:length(Lipschitz) if abs(Lipschitz(i)) >= 4 cnt = cnt + 1; PP(cnt) = i; end end
if isempty(PP) == 0 START = min(PP); ENDS = max(PP); figure; plot(signal);title('故障检测'); hold on plot(14*START,-10:0.1:10,'r'); hold on plot(Len,-10:0.1:10,'r'); else figure; plot(signal);title('无故障'); end 本文从Lipschitz指数(以下简称李氏指数)的定义出发,分析了它与小波模极大值的关系,并利用MATLAB编程计算得出李氏指数与小波模极大值,实现对随机信号特征的识别。信号的奇异部分往往包含着重要信息,随着信号奇异性检测在越来越广泛的领域中得到运用,人们对检测信号奇异性的方法也进行了更加深入的研究。小波变换在检测信号奇异性方面有着强大的优势,而李氏指数对信号奇异性的描述亦具独特性,并且与小波变换模极大值有着密切的联系。 文中先引入三个带有奇异点的正弦信号进行检测,通过MATLAB进行仿真,计算均值、方差、自相关性,绘制散布图,选择最合适的小波分解尺度,计算李氏指数。由于这些信号较简单,奇异性发生处很明显,因此结果容易识别。随后再引入较复杂的随机信号——27组锋利刀具和27组磨损刀具的数据,检测刀具的磨损程度。由李氏指数定义的数值范围,可分辨出信号的奇异性与正则性(在此即为刀具的磨损与锋利)。并且通过坐标,可判断出发生奇异性的位置。推而广之,可以利用此方法检测其他随机信号,查看李氏指数的值,即可判断信号在何处发生何种程度的奇异性。