资源描述:
《Laplace小波学习整理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Laplace小波特征波混合基分解的精髓:使用与信号波形最匹配的基函数对信号进行分解、提取隐含故障特征。Laplace小波定义:该小波为单边衰减的复指数小波,定义如下图所示:在MATLAB中程序:Fs=1e4;t=1/Fs:1/Fs:0.1;f=500;w=2*pi*f;A=0.08;%归一化小波函数ep=0.03;%粘滞阻尼比tal=0.1;%时间参数y=A.*exp(-ep/(sqrt(1-ep^2)).*w.*(t-tal)).*exp(-j.*w.*(t-tal));其中,y为复指数小波,欧拉公式知y包含实部和虚部两部
2、分。Laplace小波特性:小波的波形:对应的实部波形图及频谱图:实部Re(y)实际上是一个高通滤波器。Laplace小波基函数库滤波方法(小波检测方法):思想:信号x(t)是某个系统S的输出,信号x(t)与x(t)的Laplce小波原子的内积,可以估计出它们之间的相似性,从而得到系统S的模态参数,与的频率、阻尼特性的对应关系。内积:若x(t)与完全相关,那么它们之间的夹角。可以定义一个相关系数来量化与之间的夹角。其中为Laplace小波基函数库中的一个,一个对应一个。补充知识:内积定义:其中二范数定义:那么应用例子:通过相关
3、滤波法写出MATLAB程序%%------模拟信号检验,用Laplace小波检验自由度响应的脉冲响应信号%------Laplace小波滤波例子%clear;clc;%%An=0.01;%噪声幅度z0=0.05;%阻尼比t0=0.5;%固有时间参数f0=10;%固定频率Fs=200;%采样率t=-5:1/Fs:5;%时间范围L=length(t);%采样点数s=zeros(1,L);%构造信号lap=zeros(1,L);%构造小波原子函数noise=zeros(1,L);%随机噪声%----构造脉冲响应信号,噪声noise=
4、An*random('Normal',0,1,1,L);%----自由度系统的脉冲响应信号fori=1:Lift(i)>=t0s(i)=exp(-z0/(sqrt(1-z0^2))*2*pi*f0.*(t(i)-t0))*(sin(2*pi*f0.*(t(i)-t0)))+noise(i);elses(i)=noise(i);endend%%%----构造Laplace小波特征波库F=5:0.5:20;%频率组Z=[0.005:0.005:0.2,0.3:0.1:0.9];%阻尼比组T=-5:0.1:5;%时间参数组form=
5、1:length(F)forn=1:length(Z)forp=1:length(T)fori=1:Lift(i)>=T(p)lap(i)=exp(-Z(n)/(sqrt(1-Z(n)^2))*2*pi*F(m)*((t(i)-T(p))))...*(sin(2*pi*F(m)*(t(i)-T(p))));elselap(i)=1e-5;endendnorm_lap(m,n,p)=norm(lap,2);norm_s(n,m,p)=norm(s,2);kr(m,n,p)=sqrt(2)*sum(lap.*s)/(norm(s,
6、2)*norm(lap,2));%plot3(F(m),Z(n),kr(m,n,p));holdon;endendend%norm求欧几里得范数%----求信号s的二范数,小波原子的二范数%%求kr最大值并找出最大值对应的坐标size_kr=size(kr);max_kr=max(kr(:));i_max=find(kr==max_kr);[c,k,g]=ind2sub(size_kr,i_max);gy_f=F(c);gy_z=Z(k);gy_t=T(g);gy_s=zeros(1,L);%固有参数对应的结果%%根据得到的固
7、有参数得到的结果fori=1:Lift(i)>=gy_tgy_s(i)=exp(-gy_z/(sqrt(1-gy_z^2))*2*pi*f0*(t(i)-gy_t))*(sin(2*pi*gy_f*(t(i)-gy_t)));elsegy_s(i)=0;endendfigure(1)subplot(1,2,1)plot(t,s,'-r');gridon;subplot(1,2,2)plot(t,gy_s,'-k');gridon;%%每个T时刻对应的相关系数峰值kr(T)forp=1:length(T)-1krT(p)=max
8、(max(kr(:,:,p)));[row,clum]=find(kr(:,:,p)==krT(p));f_lap(p)=F(row);z_lap(p)=Z(clum);endfigure(2)subplot(3,1,1)plot(T(1,1:100),krT);%每个时刻T