1.软件版本

MATLAB2013b

2.系统概述

Lipschitz exponent),以德国数学家​​Rudolf Lipschitz​​命名,是一个描述比一般的连续可微更强的光滑性指数。具有一定条件的连续性称为李氏连续性。李氏指数α可用于描述信号的奇异性。一般来说,α越大,信号在该点就越光滑;α越小,则信号在该点的奇异性就越大。李氏指数是一个专用于描述函数光滑性的指数。一个函数如果存在无限次可导就称为光滑或没有奇异性,但它如果在某处有间断点或某阶导数不连续,通常叫做函数的奇异性,信号的奇异性通常用李氏指数来刻画。它与小波变换有着密切的关系,由小波变换描述信号奇异性的特点,我们不难得出,李氏指数也有描述奇异信号这一功能。李氏指数检测信号奇异性的结果简单明了,便于观察,具有很大的现实意义。

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_Lipschitz

 

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_小波变换_02

3.部分matlab程序

clc;
clear;
close all;
warning off;
addpath 'func\'

%%
%参数初始化
Len = 2048;%信号的长度
Noise_Power = 0.5; %产生的测试的干扰大小
select = 2; %选择信号

%%
%产生模拟的故障信号
[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');

%计算Lipschitz指数
Lipschitz = func_cal_Lipschitz(Ptr,Max_List,wt,Lengths);
figure;
plot(Lipschitz,'r');


%%
%根据李氏指数的计算结果对故障信号检测
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

4.部分仿真结论

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_小波变换_03

首先加载数据:

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_小波变换_04

然后计算李氏指数:

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_李氏指数_05

根据李氏指数进行故障检测分析:

【Lipschitz】基于matlab的Lipschitz李氏指数仿真_matlab_06

A16-17