二、信号分解—>局部均值分解(LMD)学习笔记

二、信号分解—>局部均值分解(LMD)学习笔记LMD 学习笔记总述局部均值分解算法 LMD LMD 算法最大的特点就在依据信号本身的特征对信号的自适应分解能力 产生具有真实物理意义的乘积函数 PF 分量 每个 PF 分量都是一个纯调频信号和包络信

大家好,欢迎来到IT知识分享网。

                                            LMD学习笔记

一、总述

        局部均值分解算法(LMD), LMD算法最大的特点就在依据信号本身的特征对信号的自适应分解能力,产生具有真实物理意义的乘积函数(PF)分量(每个PF分量都是一个纯调频信号和包络信号的乘积,且每个PF分量的瞬时频率具有实际物理意义。),并由此得到能够清晰准确反映出信号能量在空间各尺度上分布规律的时频分布,有利于更加细致的对信号特征进行分析。

        与此同时,局部均值分解算法(LMD)相较于模态分解的创始算法经验模态分解算法(EMD)而言,其具备端点效应小、迭代次数少等优势。

二、分解方法

1.求局部均值函数m11(t)

找出原函数的局部均值ni,

求出所有相邻的局部极值点的平均值:

将所有的相邻平均值点mi用直线连起来后通过滑动平均法进行平 滑处理得到局部均值函数m11(t)。

2.求包络估计函数a11(t)

求出包络估计值:                将所有相邻两个包络估计值ai用直线连起来后通过滑动平均法进行平滑处理得到包络估计函数a11(t)。

其余步骤在笔记本上

三、EMD与LMD的对比分析

1.求解过程EMD与LMD的差别

(1)平均包络函数的产生

EMD:三次样条函数拟合局部极大与极小值形成的上下包络线,然后对上下包络线求平均得到平均包络函数

LMD:不断平滑相邻局部极值点的平均值来获得平均包络函数(局部均值函数)

(2)模态分量迭代过程不同

EMD:不断用原始信号减去平均包络函数(即去掉低频成分),然后判断剩余信号是否满足模态的两个条件的方式得到模态分量的。

LMD:不断用原始信号减去局部均值函数并除以包络估计函数(即对其进行解调),并重复直到包络估计函数近似等于1时,得到纯调频信号,在获得纯调频信号后再进行包络信号与纯调频信号相乘得到PF分量。

(3)求瞬时幅值与瞬时频率

EMD:对每个模态进行Hibert变化后,再通过一下公式

二、信号分解—>局部均值分解(LMD)学习笔记

   求出瞬时幅值与瞬时频率。

LMD:将迭代产生的每个包络估计函数相乘来求得瞬时赋值,而瞬时频率则是由纯调频信号通过

二、信号分解—>局部均值分解(LMD)学习笔记

2.EMD的缺陷

模态混叠和端点效应

3.对比EMD,LMD突出的优势

在抑制端点效应、减少迭代次数和保留信号完整性都优于EMD

4.LMD不足

依然存在端点效应、平滑次数较多时,信号会发生提前或滞后现象、在平滑时步长不能最优确定、无快速算法等问题

注:端点效应的产生:EMD和LMD都是对局部极值进行操作,而两端点有可能既不是极大值点也不是极小值点,二者都未对端点进行处理。

四、算法步骤

二、信号分解—>局部均值分解(LMD)学习笔记

 五、LMD算法matlab程序

主函数代码:

clear;clc;close all; T = 5000 ; t = (1:T)/T; fs=1/T; freqs = 2*pi*(t-0.5-1/T)/(fs); os1=(1+0.5*sin(5*pi*t)).*cos((400*pi*t)+2*cos(10*pi*t)); os2=4*sin(pi*t.^2).*sin(60*pi*t); os=os1+os2; x=os; % x=awgn(os,10,'measured','dB'); T=length(x); %绘制信号和其频谱图 figure(1) subplot(211) plot(t,x) title('time'); subplot(212) y2=x; L=length(y2); NFFT = 2^nextpow2(L); %2的更高次幂的指数 Y = fft(y2,NFFT)/L; f = fs/2*linspace(0,1,NFFT/2); plot(f,2*abs(Y(1:NFFT/2))) % 局域均值分析 [pf,a,si,u] = lmd(x); line=size(pf,1) NN = length(pf(1,:)) n = linspace(0,1,NN); figure('Color',[1 1 1]); for i=1:1:line subplot(line+1,1,i),plot(t,pf(i,:)),ylabel(sprintf('PF%d',i));xlabel('Time / S'); end for i = 1:1:line cc(i)=min(min(corrcoef(pf(i,:), x))); %求相关系数 end figure plot(cc,'-g<','LineWidth',1.5,'MarkerEdgeColor','b','MarkerFaceColor','b','MarkerSize',5); set(gca,'XGrid', 'on', 'YGrid', 'on'); legend('CC'); xlabel('IMF'); ylabel('相关系数'); %重构信号 cg_ev=pf(1,:)+pf(2,:); figure; plot(t,os,'-b');hold on plot(t,cg_ev,'-r');xlabel('t/s');ylabel('幅值');legend('原始信号','重构信号'); %误差信号 err=os-cg_ev; figure; plot(t,err); legend('误差'); xlabel('t'); ylabel('误差'); 

LMD代码:

https://download.csdn.net/download/ARM_qiao/https://download.csdn.net/download/ARM_qiao/

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/150200.html

(0)
上一篇 2025-03-20 13:05
下一篇 2025-03-20 13:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信